Selaa lähdekoodia

数据管理-同比分析-数据查询

jichaobo 3 vuotta sitten
vanhempi
commit
31eae22468

+ 5 - 1
fiveep-service/src/main/java/com/bizmatics/service/impl/DeviceServiceImpl.java

@@ -131,13 +131,17 @@ public class DeviceServiceImpl extends AbstractCrudService<DeviceMapper, Device>
             for (int i = 0; i < deviceList.size(); i++) {
                 DeviceOneVo deviceOneVoOne = new DeviceOneVo();
                 List<DeviceAnalogVariableList> deviceAnalogVariableListTwo = new ArrayList<>();
+                DeviceAnalogVariableList deviceAnalogVariableListThree = new DeviceAnalogVariableList();
                 deviceOneVoOne.setId(deviceList.get(i).getId());
                 deviceOneVoOne.setDeviceCode(deviceList.get(i).getMonitorDeviceCode());
                 deviceOneVoOne.setDeviceName(deviceList.get(i).getMonitorDeviceName());
                 if (deviceAnalogVariableList.size() > 0) {
                     for (int j = 0; j < deviceAnalogVariableList.size(); j++) {
                         if (deviceList.get(i).getId().equals(deviceAnalogVariableList.get(j).getMonitoringEquipment())) {
-                            deviceAnalogVariableListTwo.add(deviceAnalogVariableList.get(j));
+                            deviceAnalogVariableListThree.setVariableCoding(deviceAnalogVariableList.get(j).getVariableCoding()+"_"+deviceAnalogVariableList.get(j).getId());
+                            deviceAnalogVariableListThree.setVariableName(deviceAnalogVariableList.get(j).getVariableName());
+                            deviceAnalogVariableListThree.setId(deviceAnalogVariableList.get(j).getId());
+                            deviceAnalogVariableListTwo.add(deviceAnalogVariableListThree);
                         }
                     }
                 }

+ 74 - 33
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -7,6 +7,7 @@ import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.Arith;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.core.util.DateUtils;
+import com.bizmatics.common.core.util.StringUtils;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.common.spring.util.JsonUtils;
 import com.bizmatics.model.*;
@@ -19,10 +20,12 @@ import com.bizmatics.service.util.FieldEscapeUtils;
 import com.bizmatics.service.util.SecurityUtils;
 import com.bizmatics.service.vo.*;
 import com.fasterxml.jackson.core.type.TypeReference;
+import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -324,12 +327,14 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         List<HtAnalogDataVo> yearOnYearList = null;
         List<DataManagementVO> dataManagementVOList = new ArrayList<>();
         List<String> newListOne = new ArrayList<>();
+        List<String> newListTwo = new ArrayList<>();
         newListOne.add("dataTime");
         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]);
+            newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
         }
         Set set = new  HashSet();
         List<DataManagementVO> newList = new  ArrayList();
@@ -341,6 +346,11 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         set1.addAll(newListOne);
         list.addAll(set1);
 
+        Set set2 = new  HashSet();
+        List<String> monitor_list = new  ArrayList();
+        set2.addAll(newListTwo);
+        monitor_list.addAll(set2);
+
         if (dataManagementOneVO.getType() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
                 yearOnYearList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime());
@@ -364,44 +374,75 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         } else {
             yearOnYearList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime());
         }
-        List<Map<String,Object>> returnList = new ArrayList<>();
-        for (HtAnalogDataVo htAnalogDataVo:yearOnYearList) {
-            Field[] fields = htAnalogDataVo.getClass().getDeclaredFields();
-            Map<String,Object> map = new HashMap<>();
-            for (String  fiied:list) {
-                for (int i = 0; i < fields.length; i++) {
-                    fields[i].setAccessible(true);
-                    if (fiied.equals(fields[i].getName())){
-                        try {
-                            if (fiied.equals("dataTime")){
-                                map.put(fiied,fields[i].get(htAnalogDataVo));
-                            }else {
-                                map.put(fields[2].get(htAnalogDataVo)+"_"+fiied,fields[i].get(htAnalogDataVo));
-                            }
-                        }catch (Exception e){
-
+        FieldEscapeUtils.remove1(list);
+        List<CommonIcoVO> reListOne = new ArrayList<>();
+        if (yearOnYearList!=null && !yearOnYearList.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 < yearOnYearList.size(); k++) {
+                        String variable_one = list.get(j) + "_" + monitor_list.get(i);
+                        String variable_two = list.get(j)+"_"+yearOnYearList.get(k).getDeviceAttributeId();
+                        System.out.println("variable_one:"+variable_one+"---variable_two:"+variable_two);
+                        if (variable_one.equals(variable_two)){
+                            String variable_three = yearOnYearList.get(k).getDeviceName()+"_"+list.get(j)+"_"+yearOnYearList.get(k).getDeviceAttributeId();
+//                            System.out.println("variable_one_a:"+dataManagementOneVO.getDisplayField()+"---variable_two_b:"+variable_three+"value"+dataManagementOneVO.getDisplayField().contains(variable_three));
+//                            if (dataManagementOneVO.getDisplayField().contains(variable_three)){
+                                name = yearOnYearList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
+                                time.add(yearOnYearList.get(k).getDataTime());
+//                                System.out.println();
+                                data.add(FieldEscapeUtils.transformation(yearOnYearList.get(k),list.get(j)));
+//                            }
                         }
                     }
+                    reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
                 }
             }
-            Map<String,Object> deviceMap = new HashMap<>();
-            deviceMap.put("deviceName",htAnalogDataVo.getDeviceName());
-            deviceMap.put("monitorDeviceName",htAnalogDataVo.getMonitorDeviceName());
-            deviceMap.put("deviceAttributeId",htAnalogDataVo.getDeviceAttributeId());
-            deviceMap.put("data",map);
-            returnList.add(deviceMap);
-        }
-        List<CommonIcoVO> reList = new ArrayList<>();
-        Map<String, List<Map<String, Object>>> glist = returnList.stream().collect(Collectors.groupingBy(e -> e.get("deviceAttributeId").toString()));
-        for (String key:glist.keySet()) {
-            List<Object> objectList = new ArrayList<>();
-            List<Map<String, Object>> maps = glist.get(key);
-            for (Map<String,Object> map:maps) {
-                objectList.add(map.get("data"));
-            }
-            reList.add(CommonIcoVO.builder().name(key).list(objectList).listDate(objectList).build());
         }
-        return reList;
+
+
+
+
+//        List<Map<String,Object>> returnList = new ArrayList<>();
+//        for (HtAnalogDataVo htAnalogDataVo:yearOnYearList) {
+//            Field[] fields = htAnalogDataVo.getClass().getDeclaredFields();
+//            Map<String,Object> map = new HashMap<>();
+//            for (String  fiied:list) {
+//                for (int i = 0; i < fields.length; i++) {
+//                    fields[i].setAccessible(true);
+//                    if (fiied.equals(fields[i].getName())){
+//                        try {
+//                            if (fiied.equals("dataTime")){
+//                                map.put(fiied,fields[i].get(htAnalogDataVo));
+//                            }else {
+//                                map.put(fields[2].get(htAnalogDataVo)+"_"+fiied,fields[i].get(htAnalogDataVo));
+//                            }
+//                        }catch (Exception e){
+//
+//                        }
+//                    }
+//                }
+//            }
+//            Map<String,Object> deviceMap = new HashMap<>();
+//            deviceMap.put("deviceName",htAnalogDataVo.getDeviceName());
+//            deviceMap.put("monitorDeviceName",htAnalogDataVo.getMonitorDeviceName());
+//            deviceMap.put("deviceAttributeId",htAnalogDataVo.getDeviceAttributeId());
+//            deviceMap.put("data",map);
+//            returnList.add(deviceMap);
+//        }
+//        List<CommonIcoVO> reList = new ArrayList<>();
+//        Map<String, List<Map<String, Object>>> glist = returnList.stream().collect(Collectors.groupingBy(e -> e.get("deviceAttributeId").toString()));
+//        for (String key:glist.keySet()) {
+//            List<Object> objectList = new ArrayList<>();
+//            List<Map<String, Object>> maps = glist.get(key);
+//            for (Map<String,Object> map:maps) {
+//                objectList.add(map.get("data"));
+//            }
+//            reList.add(CommonIcoVO.builder().name(key).list(objectList).listDate(objectList).build());
+//        }
+        return reListOne;
     }
 
 

+ 227 - 1
fiveep-service/src/main/java/com/bizmatics/service/util/FieldEscapeUtils.java

@@ -1,15 +1,19 @@
 package com.bizmatics.service.util;
 
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.bizmatics.common.core.util.HttpUtils;
+import com.bizmatics.common.core.util.StringUtils;
 import com.bizmatics.common.mvc.utils.IpUtils;
 import com.bizmatics.common.spring.util.JsonUtils;
+import com.bizmatics.model.vo.HtAnalogDataVo;
 import com.bizmatics.service.config.WjConfig;
 import com.fasterxml.jackson.core.type.TypeReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.lang.reflect.Field;
 import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -19,6 +23,17 @@ import java.util.Map;
  */
 public class FieldEscapeUtils
 {
+
+    public static void remove1(List<String> list) {
+        Iterator<String> sListIterator = list.iterator();
+        while (sListIterator.hasNext()) {
+            String str = sListIterator.next();
+            if (str.contains("dataTime")) {
+                sListIterator.remove();
+            }
+        }
+    }
+
    public static String fieldEscapeUtils(String fieldValue){
        String field=null;
        switch (fieldValue) {
@@ -207,4 +222,215 @@ public class FieldEscapeUtils
        }
        return field;
    }
+
+
+   public static Object transformation(HtAnalogDataVo htAnalogDataVo,String fieldValue){
+
+       switch (fieldValue) {
+           case "Busot":
+               return htAnalogDataVo.getBusot();
+//               break;
+           case "COS":
+               return htAnalogDataVo.getCos();
+//               break;
+           case "COSa":
+               return htAnalogDataVo.getCOSa();
+//               break;
+           case "COSb":
+               return htAnalogDataVo.getCOSb();
+//               break;
+           case "COSc":
+               return htAnalogDataVo.getCOSc();
+//               break;
+           case "Demand":
+               return htAnalogDataVo.getDemand();
+//               break;
+           case "DevResetTimes":
+               return htAnalogDataVo.getDevResetTimes();
+//               break;
+           case "DeviceTemp":
+               return htAnalogDataVo.getDeviceTemp();
+//               break;
+           case "Epn":
+               return htAnalogDataVo.getEpn();
+//               break;
+           case "Epn1":
+               return htAnalogDataVo.getEpn1();
+//               break;
+           case "Epn2":
+               return htAnalogDataVo.getEpn2();
+//               break;
+           case "Epn3":
+               return htAnalogDataVo.getEpn3();
+//               break;
+           case "Epn4":
+               return htAnalogDataVo.getEpn4();
+//               break;
+           case "Epp":
+               return htAnalogDataVo.getEpp();
+//               break;
+           case "Epp1":
+               return htAnalogDataVo.getEpp1();
+//               break;
+           case "Epp2":
+               return htAnalogDataVo.getEpp2();
+//               break;
+           case "Epp3":
+               return htAnalogDataVo.getEpp3();
+//               break;
+           case "Epp4":
+               return htAnalogDataVo.getEpp4();
+//               break;
+           case "Eqn":
+               return htAnalogDataVo.getEqn();
+//               break;
+           case "Eqp":
+               return htAnalogDataVo.getEqp();
+//               break;
+           case "F":
+               return htAnalogDataVo.getF();
+//               break;
+           case "I0":
+               return htAnalogDataVo.getI0();
+//               break;
+           case "I2":
+               return htAnalogDataVo.getI2();
+//               break;
+           case "IHa":
+               return htAnalogDataVo.getIHa();
+//               break;
+           case "IHb":
+               return htAnalogDataVo.getIHb();
+//               break;
+           case "IHc":
+               return htAnalogDataVo.getIHc();
+//               break;
+           case "Ia":
+               return htAnalogDataVo.getIa();
+//               break;
+           case "Ib":
+               return htAnalogDataVo.getIb();
+//               break;
+           case "Ic":
+               return htAnalogDataVo.getIc();
+//               break;
+           case "Ir":
+               return htAnalogDataVo.getIr();
+//               break;
+           case "LastDayMD":
+               return htAnalogDataVo.getLastDayMD();
+//               break;
+           case "LastDayMDt":
+               return htAnalogDataVo.getLastDayMDt();
+//               break;
+           case "P":
+               return htAnalogDataVo.getP();
+//               break;
+           case "Pa":
+               return htAnalogDataVo.getPa();
+//               break;
+           case "Pb":
+               return htAnalogDataVo.getPb();
+//               break;
+           case "Pc":
+               return htAnalogDataVo.getPc();
+//               break;
+           case "Q":
+               return htAnalogDataVo.getQ();
+//               break;
+           case "Qa":
+               return htAnalogDataVo.getQa();
+//               break;
+           case "Qb":
+               return htAnalogDataVo.getQb();
+//               break;
+           case "Qc":
+               return htAnalogDataVo.getQc();
+//               break;
+           case "SignalIntensity":
+               return htAnalogDataVo.getSignalIntensity();
+//               break;
+           case "T1":
+               return htAnalogDataVo.getT1();
+//               break;
+           case "T2":
+               return htAnalogDataVo.getT2();
+//               break;
+           case "T3":
+               return htAnalogDataVo.getT3();
+//               break;
+           case "T4":
+               return htAnalogDataVo.getT4();
+//               break;
+           case "THDUa":
+               return htAnalogDataVo.getTHDUa();
+//               break;
+           case "THDUb":
+               return htAnalogDataVo.getTHDUb();
+//               break;
+           case "THDUc":
+               return htAnalogDataVo.getTHDUc();
+//               break;
+           case "Ua":
+               return htAnalogDataVo.getUa();
+//               break;
+           case "Uab":
+               return htAnalogDataVo.getUab();
+//               break;
+           case "Ub":
+               return htAnalogDataVo.getUb();
+//               break;
+           case "Ubc":
+               return htAnalogDataVo.getUbc();
+//               break;
+           case "UblU0":
+               return htAnalogDataVo.getUblU0();
+//               break;
+           case "UblU2":
+               return htAnalogDataVo.getUblU2();
+//               break;
+           case "Uc":
+               return htAnalogDataVo.getUc();
+//               break;
+           case "Uca":
+               return htAnalogDataVo.getUca();
+//               break;
+           case "Udt":
+               return htAnalogDataVo.getUdt();
+//               break;
+           case "Ul":
+               return htAnalogDataVo.getUl();
+//               break;
+           case "Upt":
+               return htAnalogDataVo.getUpt();
+//               break;
+           case "Ust":
+               return htAnalogDataVo.getUst();
+//               break;
+           default:
+               return null;
+       }
+   }
+
+    public static String getStringAbel(List<?> o, Class<?> c, String field) {
+        StringBuffer result = new StringBuffer();
+        if (StringUtils.isNoneBlank(field)) {
+            Field[] fields = c.getDeclaredFields();
+            int pos;
+            for (pos = 0; pos < fields.length; pos++) {
+                if (field.equals(fields[pos].getName())) {
+                    break;
+                }
+            }
+            for (Object o1 : o) {
+                try {
+                    fields[pos].setAccessible(true);
+                    result.append(fields[pos].get(o1) + ",");
+                } catch (Exception e) {
+                    System.out.println("error--------" + "Reason is:" + e.getMessage());
+                }
+            }
+        }
+        return result.deleteCharAt(result.length() - 1).toString();
+    }
 }