fengxiang
2018-06-27 a31816bd82fcf2c10df0cef7f078645676149e78
大屏布局监控点 返回配置数据 完善
4 files modified
174 ■■■■■ changed files
src/main/java/com/moral/entity/layout/RealTimeDeviceLayout.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/entity/layout/SensorComb.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/OrganizationLayoutServiceImpl.java 136 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/SensorMapper.xml 3 ●●●● patch | view | raw | blame | history
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;
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());
    }
}
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());
                        }
                  }
              }
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>