浏览代码

同比环比每日数据查询优化1

jichaobo 3 年之前
父节点
当前提交
5f3415d7ac

+ 4 - 1
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java

@@ -6,6 +6,7 @@ import com.bizmatics.model.AlarmPower;
 import com.bizmatics.model.HtAnalogData;
 import com.bizmatics.common.mvc.base.CrudMapper;
 import com.bizmatics.model.vo.HtAnalogDataVo;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -71,10 +72,12 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
                                        @Param("endTime") String endTime,
                                        @Param("variableCoding") List variableCoding);
 
+    @MapKey("PNA_ID")
     List<HtAnalogDataVo> yearOnYearThree(@Param("deviceCode") List deviceCode,
                                          @Param("startTime") String startTime,
                                          @Param("endTime") String endTime,
-                                         @Param("variableCoding") List variableCoding);
+                                         @Param("variableCoding") List variableCoding,
+                                         @Param("list") List<String> fieldDisplay);
 
     List<HtAnalogDataVo> dayMaxDataList(@Param("deviceCode") List deviceCode,
                                         @Param("startTime") String startTime,

+ 5 - 61
fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml

@@ -979,70 +979,14 @@
     </select>
 
 
-    <select id="yearOnYearThree" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
+    <select id="yearOnYearThree" parameterType="java.util.List" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
         SELECT
         a.id,
         a.deviceName,
-        a.Busot,
-        a.COS,
-        a.COSa,
-        a.COSb,
-        a.COSc,
-        a.Demand,
-        a.DevResetTimes,
-        a.DeviceTemp,
-        a.Epn,
-        a.Epn1,
-        a.Epn2,
-        a.Epn3,
-        a.Epn4,
-        a.Epp,
-        a.Epp1,
-        a.Epp2,
-        a.Epp3,
-        a.Epp4,
-        a.Eqn,
-        a.Eqp,
-        a.F,
-        a.I0,
-        a.I2,
-        a.IHa,
-        a.IHb,
-        a.IHc,
-        a.Ia,
-        a.Ib,
-        a.Ic,
-        a.Ir,
-        a.LastDayMD,
-        a.LastDayMDt,
-        a.P,
-        a.Pa,
-        a.Pb,
-        a.Pc,
-        a.Q,
-        a.Qa,
-        a.Qb,
-        a.Qc,
-        a.SignalIntensity,
-        a.T1,
-        a.T2,
-        a.T3,
-        a.T4,
-        a.THDUa,
-        a.THDUb,
-        a.THDUc,
-        a.Ua,
-        a.Uab,
-        a.Ub,
-        a.Ubc,
-        a.UblU0,
-        a.UblU2,
-        a.Uc,
-        a.Uca,
-        a.Udt,
-        a.Ul,
-        a.Upt,
-        a.Ust,
+        <foreach collection="list" item="fieldDisplay"   open=" " separator="," close=" ">
+            ${fieldDisplay}
+        </foreach>
+                ,
         FROM_UNIXTIME(
         UNIX_TIMESTAMP(a.dataTime),
         '%m-%d %H:%i'

+ 19 - 4
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -330,7 +330,8 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         List<String> newListOne = new ArrayList<>();
         List<String> newListTwo = new ArrayList<>();
         List<String> newListThree = new ArrayList<>();
-        List<DeviceAnalogVariableList> variableCodingList = new ArrayList<>();
+        List<DeviceAnalogVariableList> variableCodingList = new LinkedList<>();
+        List<String> fieldDisplay = new ArrayList<>();
         newListOne.add("dataTime");
         for (int i = 0; i < dataManagementOneVO.getDisplayField().size(); i++) {
             DataManagementVO dataManagementVO = new DataManagementVO();
@@ -338,6 +339,7 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
             dataManagementVOList.add(dataManagementVO);
             newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
+            fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             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]);
@@ -358,6 +360,11 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         set2.addAll(newListTwo);
         monitor_list.addAll(set2);
 
+        Set set3 = new  HashSet();
+        List<String> fieldDisplayOne = new  ArrayList();
+        set3.addAll(fieldDisplay);
+        fieldDisplayOne.addAll(set3);
+
         if (dataManagementOneVO.getType() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
                 yearOnYearList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
@@ -379,7 +386,7 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
                 yearOnYearList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
             }
         } else {
-            yearOnYearList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+            yearOnYearList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList,fieldDisplayOne);
         }
         FieldEscapeUtils.remove1(list);
         List<CommonIcoVO> reListOne = new ArrayList<>();
@@ -423,13 +430,15 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         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 ArrayList<>();
+        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();
@@ -451,6 +460,11 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         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();
@@ -478,7 +492,8 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
                 currentPeriodRingRatioList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
             }
         } else {
-            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+//            String[] a={"Epn3","Epp"};
+            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList,fieldDisplayOne);
         }
 
         FieldEscapeUtils.remove1(list);