From a31816bd82fcf2c10df0cef7f078645676149e78 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 27 Jun 2018 13:56:32 +0800 Subject: [PATCH] 大屏布局监控点 返回配置数据 完善 --- src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java | 136 +++++++++++++++++++++------------------------ src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java | 6 ++ src/main/resources/mapper/SensorMapper.xml | 3 src/main/java/com/moral/entity/layout/SensorComb.java | 29 +++++++++ 4 files changed, 101 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java b/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java index 9b9b96c..690afdb 100644 --- a/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java +++ b/src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java @@ -2,6 +2,7 @@ import lombok.Data; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -16,6 +17,11 @@ Integer id; String name; String chartSensorKey; + public RealTimeDeviceLayout () { + fixedMonitorItems = new ArrayList<>(); + defaultMonitorItems = new ArrayList<>(); + coreMonitorItems = new ArrayList<>(); + } List<SensorComb> fixedMonitorItems; List<SensorComb> defaultMonitorItems; List<SensorComb> coreMonitorItems; diff --git a/src/main/java/com/moral/entity/layout/SensorComb.java b/src/main/java/com/moral/entity/layout/SensorComb.java index 7c4e7ae..c8e86d1 100644 --- a/src/main/java/com/moral/entity/layout/SensorComb.java +++ b/src/main/java/com/moral/entity/layout/SensorComb.java @@ -1,5 +1,8 @@ package com.moral.entity.layout; +import com.moral.entity.OrganizationLayout; +import com.moral.entity.Sensor; +import com.moral.entity.SensorUnit; import lombok.Data; /** @@ -15,4 +18,30 @@ String sourceUnit; String targetUnit; String evaluator; + public static SensorComb generate(Sensor sensor) { + SensorComb sensorComb = new SensorComb(); + sensorComb.setSensorId(sensor.getId()); + sensorComb.setSensorKey(sensor.getSensorKey()); + sensorComb.setName(sensor.getDescription()); + sensorComb.setSourceUnit(sensor.getUnit()); + sensorComb.setTargetUnit(sensor.getUnit()); + return sensorComb; + } + public static SensorComb generate(OrganizationLayout orgLayout) { + SensorComb sensorComb = new SensorComb(); + sensorComb.setIndex(orgLayout.getPagePositionIndex()); + sensorComb.setSensorKey(orgLayout.getPagePositionValue()); + return sensorComb; + } + public void setSensor(Sensor sensor) { + this.setSensorId(sensor.getId()); + this.setSensorKey(sensor.getSensorKey()); + this.setName(sensor.getDescription()); + this.setSourceUnit(sensor.getUnit()); + this.setTargetUnit(sensor.getUnit()); + } + public void setUnit(SensorUnit unit) { + this.setTargetUnit(unit.getName()); + this.setEvaluator(unit.getRules()); + } } diff --git a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java index 067caf3..dea8ca8 100644 --- a/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java +++ b/src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java @@ -89,9 +89,7 @@ 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()); @@ -104,9 +102,7 @@ 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()); @@ -119,9 +115,7 @@ 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()); @@ -148,10 +142,11 @@ 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()); } } } @@ -236,70 +231,66 @@ } @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; } // ��������������������������������� @@ -314,8 +305,9 @@ 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()); } } } diff --git a/src/main/resources/mapper/SensorMapper.xml b/src/main/resources/mapper/SensorMapper.xml index 5eddf7b..054e376 100644 --- a/src/main/resources/mapper/SensorMapper.xml +++ b/src/main/resources/mapper/SensorMapper.xml @@ -50,8 +50,9 @@ ( select dev.id from device_version dev <where> + 1 > 1 <if test="versionNos!=null and versionNos.size() > 0"> - dev.version in + or dev.version in <foreach collection="versionNos" item="versionNo" open="(" close=")" separator=","> #{versionNo,jdbcType=INTEGER} </foreach> -- Gitblit v1.8.0