瀏覽代碼

环比分析调整1

jichaobo 3 年之前
父節點
當前提交
9f82dff6a7
共有 1 個文件被更改,包括 143 次插入31 次删除
  1. 143 31
      fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

+ 143 - 31
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -555,13 +555,13 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
 
     @Override
     public List<CommonIcoVO> ringRatioList(DataManagementOneVO dataManagementOneVO) {
-        List<HtAnalogDataVo> currentPeriodRingRatioList = null;
-//        List<HtAnalogDataVo> lastPeriodRingRatioList = null;
         List<DataManagementVO> dataManagementVOList = new ArrayList<>();
         List<String> newListOne = new ArrayList<>();
         List<String> newListTwo = new ArrayList<>();
         List<String> newListThree = new ArrayList<>();
         List<String> fieldDisplay = new ArrayList<>();
+        Integer type = dataManagementOneVO.getType();
+        Integer valueCalculation = dataManagementOneVO.getValueCalculation();
         newListOne.add("dataTime");
         List<DeviceAnalogVariableList> variableCodingList = new LinkedList<>();
         for (int i = 0; i < dataManagementOneVO.getDisplayField().size(); i++) {
@@ -596,37 +596,43 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         set3.addAll(fieldDisplay);
         fieldDisplayOne.addAll(set3);
 
-        //旧数据时间计算
-//        SimpleDateFormat sfOne = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        long startLong = DateUtils.toDate(DateUtils.toLocalDateTime(dataManagementOneVO.getStartTime(), "yyyy-MM-dd HH:mm:ss")).getTime();
-//        long endLong = DateUtils.toDate(DateUtils.toLocalDateTime(dataManagementOneVO.getEndTime(), "yyyy-MM-dd HH:mm:ss")).getTime();
-//        long interval = (endLong - startLong) / 13;
-//        String lastPeriodStartTime = sfOne.format(new Date(startLong - (interval * 14)));
-        if (dataManagementOneVO.getType() == 1) {
-            if (dataManagementOneVO.getValueCalculation() == 1) {
-                currentPeriodRingRatioList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                currentPeriodRingRatioList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                currentPeriodRingRatioList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                currentPeriodRingRatioList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            }
-        } else if (dataManagementOneVO.getType() == 2) {
-            if (dataManagementOneVO.getValueCalculation() == 1) {
-                currentPeriodRingRatioList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                currentPeriodRingRatioList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                currentPeriodRingRatioList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
-            } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                currentPeriodRingRatioList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+        List<String> fieldDisplayOne183 = new ArrayList();
+        List<String> fieldDisplayOne171 = new ArrayList();
+        List<String> fieldDisplayOne173 = new ArrayList();
+        List<Device> deviceList = baseMapper.getDeviceList(newList);
+        for (int i = 0; i < dataManagementOneVO.getDisplayField().size(); i++) {
+            String device_code = dataManagementOneVO.getDisplayField().get(i).split("_")[0];
+            String display_field = dataManagementOneVO.getDisplayField().get(i).split("_")[1];
+            for (int j = 0; j < deviceList.size(); j++) {
+                if (device_code.equals(deviceList.get(j).getDeviceCode())){
+                    if (deviceList.get(j).getDeviceType().equals("1")){
+                        fieldDisplayOne183.add(display_field);
+                    }else if (deviceList.get(j).getDeviceType().equals("3")){
+                        fieldDisplayOne171.add(display_field);
+                    }else if (deviceList.get(j).getDeviceType().equals("4")){
+                        fieldDisplayOne173.add(display_field);
+                    }
+                }
             }
-        } else {
-//            String[] a={"Epn3","Epp"};
-            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayOne);
         }
 
+        List<ContextualDataVo> yearOnYearList1 = new ArrayList<>();
+        List<ContextualDataVo> yearOnYearList2 = new ArrayList<>();
+        List<ContextualDataVo> yearOnYearList3 = new ArrayList<>();
+        if (fieldDisplayOne183.size()>0){
+            List<String> fieldDisplayList = FieldEscapeUtils.getSyllable(type,valueCalculation,fieldDisplayOne183);
+            yearOnYearList1 = baseMapper.getYearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList,fieldDisplayList,"ht_analog_data",0);
+        }
+        if (fieldDisplayOne171.size()>0){
+            List<String> fieldDisplayList = FieldEscapeUtils.getSyllable(type,valueCalculation,fieldDisplayOne171);
+            yearOnYearList2 = baseMapper.getYearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayList,"ht_analog_171_data",0);
+        }
+        if (fieldDisplayOne173.size()>0){
+            List<String> fieldDisplayList = FieldEscapeUtils.getSyllable(type,valueCalculation,fieldDisplayOne173);
+            yearOnYearList3 = baseMapper.getYearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayList,"ht_analog_173_data",0);
+        }
+        List<ContextualDataVo> yearOnYearList4 = Stream.of(yearOnYearList1, yearOnYearList2).flatMap(Collection::stream).distinct().collect(Collectors.toList());
+        List<ContextualDataVo> currentPeriodRingRatioList = Stream.of(yearOnYearList3, yearOnYearList4).flatMap(Collection::stream).distinct().collect(Collectors.toList());
         FieldEscapeUtils.remove1(list);
         List<CommonIcoVO> reListOne = new ArrayList<>();
         if (currentPeriodRingRatioList != null && !currentPeriodRingRatioList.isEmpty()) {
@@ -646,7 +652,7 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
                                 name = currentPeriodRingRatioList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
                                 time.add(currentPeriodRingRatioList.get(k).getDataTime());
 //                                System.out.println();
-                                data.add(FieldEscapeUtils.transformation(currentPeriodRingRatioList.get(k), list.get(j)));
+                                data.add(FieldEscapeUtils.transformation1(currentPeriodRingRatioList.get(k), list.get(j)));
                             }
                         }
                     }
@@ -660,6 +666,112 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return reListOne;
     }
 
+//    public List<CommonIcoVO> ringRatioList(DataManagementOneVO dataManagementOneVO) {
+//        List<HtAnalogDataVo> currentPeriodRingRatioList = null;
+////        List<HtAnalogDataVo> lastPeriodRingRatioList = null;
+//        List<DataManagementVO> dataManagementVOList = new ArrayList<>();
+//        List<String> newListOne = new ArrayList<>();
+//        List<String> newListTwo = new ArrayList<>();
+//        List<String> newListThree = new ArrayList<>();
+//        List<String> fieldDisplay = new ArrayList<>();
+//        newListOne.add("dataTime");
+//        List<DeviceAnalogVariableList> variableCodingList = new LinkedList<>();
+//        for (int i = 0; i < dataManagementOneVO.getDisplayField().size(); i++) {
+//            DataManagementVO dataManagementVO = new DataManagementVO();
+//            dataManagementVO.setDisplayField(dataManagementOneVO.getDisplayField().get(i).split("_")[0]);
+//            dataManagementVOList.add(dataManagementVO);
+//            newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
+//            fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
+//            newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
+//            newListThree.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
+//            DeviceAnalogVariableList deviceAnalogVariableList = new DeviceAnalogVariableList();
+//            deviceAnalogVariableList.setVariableCoding(dataManagementOneVO.getDisplayField().get(i).split("_")[0] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
+//            variableCodingList.add(deviceAnalogVariableList);
+//        }
+//        Set set = new HashSet();
+//        List<DataManagementVO> newList = new ArrayList();
+//        set.addAll(dataManagementVOList);
+//        newList.addAll(set);
+//
+//        Set set1 = new HashSet();
+//        List<String> list = new ArrayList();
+//        set1.addAll(newListOne);
+//        list.addAll(set1);
+//
+//        Set set2 = new HashSet();
+//        List<String> monitor_list = new ArrayList();
+//        set2.addAll(newListTwo);
+//        monitor_list.addAll(set2);
+//
+//        Set set3 = new HashSet();
+//        List<String> fieldDisplayOne = new ArrayList();
+//        set3.addAll(fieldDisplay);
+//        fieldDisplayOne.addAll(set3);
+//
+//        //旧数据时间计算
+////        SimpleDateFormat sfOne = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+////        long startLong = DateUtils.toDate(DateUtils.toLocalDateTime(dataManagementOneVO.getStartTime(), "yyyy-MM-dd HH:mm:ss")).getTime();
+////        long endLong = DateUtils.toDate(DateUtils.toLocalDateTime(dataManagementOneVO.getEndTime(), "yyyy-MM-dd HH:mm:ss")).getTime();
+////        long interval = (endLong - startLong) / 13;
+////        String lastPeriodStartTime = sfOne.format(new Date(startLong - (interval * 14)));
+//        if (dataManagementOneVO.getType() == 1) {
+//            if (dataManagementOneVO.getValueCalculation() == 1) {
+//                currentPeriodRingRatioList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 2) {
+//                currentPeriodRingRatioList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 3) {
+//                currentPeriodRingRatioList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 4) {
+//                currentPeriodRingRatioList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            }
+//        } else if (dataManagementOneVO.getType() == 2) {
+//            if (dataManagementOneVO.getValueCalculation() == 1) {
+//                currentPeriodRingRatioList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 2) {
+//                currentPeriodRingRatioList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 3) {
+//                currentPeriodRingRatioList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            } else if (dataManagementOneVO.getValueCalculation() == 4) {
+//                currentPeriodRingRatioList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
+//            }
+//        } else {
+////            String[] a={"Epn3","Epp"};
+//            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayOne);
+//        }
+//
+//        FieldEscapeUtils.remove1(list);
+//        List<CommonIcoVO> reListOne = new ArrayList<>();
+//        if (currentPeriodRingRatioList != null && !currentPeriodRingRatioList.isEmpty()) {
+//            for (int i = 0; i < monitor_list.size(); i++) {
+//                for (int j = 0; j < list.size(); j++) {
+//                    List<Object> data = new ArrayList<>();
+//                    String name = null;
+//                    List<Object> time = new ArrayList<>();
+//                    for (int k = 0; k < currentPeriodRingRatioList.size(); k++) {
+//                        String variable_one = list.get(j) + "_" + monitor_list.get(i);
+//                        String variable_two = list.get(j) + "_" + currentPeriodRingRatioList.get(k).getDeviceAttributeId();
+//                        System.out.println("variable_one:" + variable_one + "---variable_two:" + variable_two);
+//                        if (variable_one.equals(variable_two)) {
+//                            String variable_three = list.get(j) + "_" + currentPeriodRingRatioList.get(k).getDeviceAttributeId();
+//                            System.out.println("variable_one_a:" + newListThree + "---variable_two_b:" + variable_three + "---value:" + newListThree.contains(variable_three));
+//                            if (newListThree.contains(variable_three)) {
+//                                name = currentPeriodRingRatioList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
+//                                time.add(currentPeriodRingRatioList.get(k).getDataTime());
+////                                System.out.println();
+//                                data.add(FieldEscapeUtils.transformation(currentPeriodRingRatioList.get(k), list.get(j)));
+//                            }
+//                        }
+//                    }
+//                    if (data != null && !data.isEmpty()) {
+//                        reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
+//                    }
+//
+//                }
+//            }
+//        }
+//        return reListOne;
+//    }
+
     @Override
     public List<CommonIcoVO> monthlyReport(String deviceCode, int cycle, String startTime, String endTime) {
         List<Object> eppList = new ArrayList<>();