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