| | |
| | | package com.moral.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.moral.entity.*; |
| | | import com.moral.entity.DictionaryData; |
| | | import com.moral.entity.OrganizationLayout; |
| | | import com.moral.entity.OrganizationSensorUnit; |
| | | import com.moral.entity.Sensor; |
| | | import com.moral.entity.SensorUnit; |
| | | import com.moral.entity.layout.RealTimeDeviceLayout; |
| | | import com.moral.entity.layout.RtdLayoutUpload; |
| | | import com.moral.entity.layout.SensorComb; |
| | |
| | | import com.moral.mapper.OrganizationSensorUnitMapper; |
| | | import com.moral.mapper.SensorMapper; |
| | | import com.moral.service.OrganizationLayoutService; |
| | | |
| | | import org.springframework.data.annotation.Transient; |
| | | import org.springframework.stereotype.Service; |
| | | import tk.mybatis.mapper.entity.Example; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class OrganizationLayoutServiceImpl implements OrganizationLayoutService{ |
| | |
| | | List<OrganizationLayout> defaultMonitorItems = orgLayoutMapper.selectByExample(example); |
| | | List<SensorComb> defaultSensorCombList = defaultMonitorItems.stream().map( |
| | | item-> { |
| | | SensorComb sensorComb = new SensorComb(); |
| | | sensorComb.setSensorKey(item.getPagePositionValue()); |
| | | sensorComb.setIndex(item.getPagePositionIndex()); |
| | | SensorComb sensorComb = SensorComb.generate(item); |
| | | return sensorComb; |
| | | } |
| | | ).collect(Collectors.toList()); |
| | |
| | | List<OrganizationLayout> coreMonitorItems = orgLayoutMapper.selectByExample(example); |
| | | List<SensorComb> coreSensorCombList = coreMonitorItems.stream().map( |
| | | item-> { |
| | | SensorComb sensorComb = new SensorComb(); |
| | | sensorComb.setSensorKey(item.getPagePositionValue()); |
| | | sensorComb.setIndex(item.getPagePositionIndex()); |
| | | SensorComb sensorComb = SensorComb.generate(item); |
| | | return sensorComb; |
| | | } |
| | | ).collect(Collectors.toList()); |
| | |
| | | List<OrganizationLayout> fixedMonitorItems = orgLayoutMapper.selectByExample(example); |
| | | List<SensorComb> fixedSensorCombList = fixedMonitorItems.stream().map( |
| | | item-> { |
| | | SensorComb sensorComb = new SensorComb(); |
| | | sensorComb.setSensorKey(item.getPagePositionValue()); |
| | | sensorComb.setIndex(item.getPagePositionIndex()); |
| | | SensorComb sensorComb = SensorComb.generate(item); |
| | | return sensorComb; |
| | | } |
| | | ).collect(Collectors.toList()); |
| | |
| | | for (Sensor sensor :sensorList) { |
| | | if(sensor.getSensorKey()!=null |
| | | &&sensor.getSensorKey().equals(sensorComb.getSensorKey())){ |
| | | sensorComb.setName(sensor.getDescription()); |
| | | sensorComb.setSensorId(sensor.getId()); |
| | | sensorComb.setSourceUnit(sensor.getUnit()); |
| | | sensorComb.setTargetUnit(sensor.getUnit()); |
| | | sensorComb.setSensor(sensor); |
| | | // sensorComb.setName(sensor.getDescription()); |
| | | // sensorComb.setSensorId(sensor.getId()); |
| | | // sensorComb.setSourceUnit(sensor.getUnit()); |
| | | // sensorComb.setTargetUnit(sensor.getUnit()); |
| | | } |
| | | } |
| | | } |
| | |
| | | public RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, Integer versionNo) { |
| | | String pageType = getPageType(versionNo); |
| | | if(queryPageConfigCountByOrgId(orgId,pageType) == 0 ){ |
| | | orgId = dataMapper.selectSupperOrgId(); |
| | | // orgId = dataMapper.selectSupperOrgId(); |
| | | orgId = 0; |
| | | } |
| | | RealTimeDeviceLayout rtdLayout = queryRealTimeDeviceLayout(orgId,versionNo); |
| | | loadUnitToComb(orgId,rtdLayout); |
| | |
| | | } |
| | | @Override |
| | | public RealTimeDeviceLayout queryRtdLayoutWithUnit(Integer orgId, List<Integer> versionNos) { |
| | | |
| | | List<Integer> versionNosSort = getVersionNosSort(); |
| | | Integer resultVersion = null; |
| | | for( int num =0 ; num < versionNosSort.size(); num++ ) { |
| | | Integer version =versionNosSort.get(num); |
| | | for (Integer ver:versionNos) { |
| | | if(ver == version) { |
| | | resultVersion = ver; |
| | | versionNos.remove(ver); |
| | | RealTimeDeviceLayout rtdLayout = null; |
| | | if(versionNos.size() == 1) { |
| | | Integer versionNo = versionNos.get(0); |
| | | rtdLayout = queryRtdLayoutWithUnit(orgId,versionNo); |
| | | } else { |
| | | List<Integer> versionNosSort = getVersionNosSort(); |
| | | Integer resultVersion = null; |
| | | for( int num =0 ; num < versionNosSort.size(); num++ ) { |
| | | Integer version =versionNosSort.get(num); |
| | | for (Integer ver:versionNos) { |
| | | if(ver == version) { |
| | | resultVersion = ver; |
| | | versionNos.remove(ver); |
| | | break; |
| | | } |
| | | } |
| | | if(resultVersion!=null) { |
| | | break; |
| | | } |
| | | } |
| | | if(resultVersion!=null) { |
| | | break; |
| | | } |
| | | } |
| | | if(resultVersion != null ) { |
| | | String pageType = getPageType(resultVersion); |
| | | if(queryPageConfigCountByOrgId(orgId,pageType) == 0 ){ |
| | | orgId = dataMapper.selectSupperOrgId(); |
| | | } |
| | | RealTimeDeviceLayout rtdLayout = queryRealTimeDeviceLayout(orgId,resultVersion); |
| | | if (rtdLayout !=null) { |
| | | List<Sensor> sensorList = sensorMapper.selectByVersionNos(versionNos); |
| | | List<SensorComb> sensorCombList = sensorList.stream().map( |
| | | item -> { |
| | | SensorComb sensorComb = new SensorComb(); |
| | | sensorComb.setSensorId(item.getId()); |
| | | sensorComb.setSensorKey(item.getSensorKey()); |
| | | sensorComb.setName(item.getDescription()); |
| | | sensorComb.setSourceUnit(item.getUnit()); |
| | | sensorComb.setTargetUnit(item.getUnit()); |
| | | return sensorComb; |
| | | if(resultVersion != null ) { |
| | | rtdLayout = queryRtdLayoutWithUnit(orgId,resultVersion); |
| | | if (rtdLayout !=null) { |
| | | List<Sensor> sensorList = sensorMapper.selectByVersionNos(versionNos); |
| | | List<SensorComb> allMonitorItems = new ArrayList<>(); |
| | | allMonitorItems.addAll(rtdLayout.getDefaultMonitorItems()); |
| | | allMonitorItems.addAll(rtdLayout.getCoreMonitorItems()); |
| | | if(allMonitorItems.size()>0 && sensorList!=null) { |
| | | List<SensorComb> sensrCombPatchs = new ArrayList<>(); |
| | | List<String> fixedItems = getFixedItemKeys(); |
| | | sensorList |
| | | // 排除固定项 |
| | | .stream().filter( |
| | | item -> { |
| | | return !fixedItems.stream().anyMatch( |
| | | key-> key.equals(item.getSensorKey()) |
| | | ); |
| | | } |
| | | ).collect(Collectors.toList()).forEach(sensor -> { |
| | | boolean isPath = !allMonitorItems.stream().anyMatch( |
| | | sensorComb -> sensorComb.getSensorId() ==sensor.getId() |
| | | ); |
| | | if(isPath) { |
| | | SensorComb sensorComb = SensorComb.generate(sensor); |
| | | sensrCombPatchs.add(sensorComb); |
| | | } |
| | | }); |
| | | if( sensrCombPatchs.size() > 0 ) { |
| | | RealTimeDeviceLayout rtdLayoutTemp = new RealTimeDeviceLayout(); |
| | | rtdLayoutTemp.setDefaultMonitorItems(sensrCombPatchs); |
| | | loadUnitToComb(orgId,rtdLayoutTemp); |
| | | rtdLayout.getDefaultMonitorItems() |
| | | .addAll(rtdLayoutTemp.getDefaultMonitorItems()); |
| | | } |
| | | ).collect(Collectors.toList()); |
| | | List<SensorComb> allMonitorItems = new ArrayList<>(); |
| | | allMonitorItems.addAll(rtdLayout.getDefaultMonitorItems()); |
| | | allMonitorItems.addAll(rtdLayout.getCoreMonitorItems()); |
| | | if(allMonitorItems.size()>0 && sensorCombList!=null) { |
| | | List<SensorComb> sensrCombPatchs = new ArrayList<>(); |
| | | sensorCombList |
| | | // 排除固定项 |
| | | .stream().filter( |
| | | item -> { |
| | | List<String> fixedItems = getFixedItemKeys(); |
| | | return !fixedItems.stream().anyMatch( |
| | | key-> key.equals(item.getSensorKey()) |
| | | ); |
| | | } |
| | | ).collect(Collectors.toList()).forEach(item -> { |
| | | boolean isPath = !allMonitorItems.stream().anyMatch( |
| | | sensorComb -> sensorComb.getSensorId() == item.getSensorId() |
| | | ); |
| | | if(isPath) { |
| | | sensrCombPatchs.add(item); |
| | | } |
| | | }); |
| | | rtdLayout.getDefaultMonitorItems().addAll(sensrCombPatchs); |
| | | loadUnitToComb(orgId,rtdLayout); |
| | | return rtdLayout; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | |
| | | return rtdLayout; |
| | | } |
| | | |
| | | // 装载单位信息到布局配置 |
| | |
| | | SensorUnit sensorUnit = orgUnit.getSensorUnit(); |
| | | if( sensorUnit!=null && sensorUnit.getSensorId() !=null) { |
| | | if(sensorUnit.getSensorId() == item.getSensorId()) { |
| | | item.setTargetUnit(sensorUnit.getName()); |
| | | item.setEvaluator(sensorUnit.getRules()); |
| | | item.setUnit(sensorUnit); |
| | | // item.setTargetUnit(sensorUnit.getName()); |
| | | // item.setEvaluator(sensorUnit.getRules()); |
| | | } |
| | | } |
| | | } |