Explorar o código

设备监测数据报表查询完整

jichaobo %!s(int64=4) %!d(string=hai) anos
pai
achega
0eb2c73aae

+ 8 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/RtAnalogDataController.java

@@ -67,6 +67,14 @@ public class RtAnalogDataController {
         return ApiResult.success(rtAnalogDataService.getDataReport(siteId,startTime,endTime,queryType));
     }
 
+    @RequestMapping("HistoricalCurve")
+    public ApiResult<List<Map<String,Object>>> getHistoricalCurve(@RequestParam Integer siteId,
+                                                             @RequestParam(required = false) Date startTime,
+                                                             @RequestParam(required = false) Date endTime,
+                                                             @RequestParam(required = true) String queryType){
+        return ApiResult.success(rtAnalogDataService.getHistoricalCurve(siteId,startTime,endTime,queryType));
+    }
+
 
 }
 

+ 1 - 4
fiveep-persistence/src/main/resources/mapper/mysql/RtAnalogDataMapper.xml

@@ -107,10 +107,7 @@
                 and us.site_id = #{siteId}
             </if>
             <if test="startTime != null and endTime != null">
-                and rad.dataTime BETWEEN #{startTime},#{endTime}
-            </if>
-            <if test="endTime != null and startTime != null">
-                and rad.dataTime BETWEEN   #{startTime} and #{endTime}
+                and rad.dataTime BETWEEN #{startTime} and #{endTime}
             </if>
         </where>
     </select>

+ 1 - 0
fiveep-service/src/main/java/com/bizmatics/service/RtAnalogDataService.java

@@ -41,5 +41,6 @@ public interface RtAnalogDataService extends CrudService<RtAnalogData> {
 
 
     List<Map<String,Object>> getDataReport(Integer siteId,Date startTime, Date endTime,String queryType);
+    List<Map<String,Object>> getHistoricalCurve(Integer siteId,Date startTime, Date endTime,String queryType);
 
 }

+ 211 - 57
fiveep-service/src/main/java/com/bizmatics/service/impl/RtAnalogDataServiceImpl.java

@@ -16,8 +16,8 @@ import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
@@ -120,11 +120,7 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
 
     @Override
     public List<Map<String, Object>> getDataReport(Integer siteId,Date startTime, Date endTime,String queryType) {
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        SimpleDateFormat formatter1 = new SimpleDateFormat("MM-dd HH:mm");
-        SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd");
         List<Map<String, Object>> list = new ArrayList<>();
-        String a="2";
         List<HtAnalogData> rtAnalogDataList = null;
         long diff = endTime.getTime() - startTime.getTime();
         long days = diff / (1000 * 60 * 60);
@@ -139,58 +135,60 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
             rtAnalogDataList = baseMapper.getDataReportDMap(device_list,startTime, endTime);
         }
         String[] result = queryType.split(",");
-        rtAnalogDataList.forEach(rtAnalogData -> {
-            Map<String,Object> map = new HashMap<>();
-            if (ArrayUtils.contains(result,"I")){
-                map.put("Ia",rtAnalogData.getIa());
-                map.put("Ib",rtAnalogData.getIb());
-                map.put("Ic",rtAnalogData.getIc());
-                if (ArrayUtils.contains(result,"P")){
-                    map.put("P",rtAnalogData.getP());
-                    map.put("Q",rtAnalogData.getQ());
-                    map.put("Pa",rtAnalogData.getPa());
-                    map.put("Pb",rtAnalogData.getPb());
-                    map.put("Pc",rtAnalogData.getPc());
-                    map.put("Qa",rtAnalogData.getQa());
-                    map.put("Qb",rtAnalogData.getQb());
-                    map.put("Qc",rtAnalogData.getQc());
-                    map.put("Demand",rtAnalogData.getDemand());
-                    if (ArrayUtils.contains(result,"KWh")){
-                        map.put("Epn",rtAnalogData.getEpn());
-                        map.put("Epp",rtAnalogData.getEpp());
-                        map.put("Eqn",rtAnalogData.getEqn());
-                        map.put("Eqp",rtAnalogData.getEqp());
-                        if (ArrayUtils.contains(result,"V")){
-                            map.put("Ua",rtAnalogData.getUa());
-                            map.put("Ub",rtAnalogData.getUb());
-                            map.put("Uc",rtAnalogData.getUc());
-                            map.put("Uab",rtAnalogData.getUab());
-                            map.put("Ubc",rtAnalogData.getUbc());
-                            map.put("Uca",rtAnalogData.getUca());
-                            map.put("Ul",rtAnalogData.getUl());
-                            if (ArrayUtils.contains(result,"C")){
-                                map.put("T1",rtAnalogData.getT1());
-                                map.put("T2",rtAnalogData.getT2());
-                                map.put("T3",rtAnalogData.getT3());
-                                map.put("T4",rtAnalogData.getT4());
-                                map.put("Ic",rtAnalogData.getIc());
-                                if (ArrayUtils.contains(result,"HZ")){
-                                    map.put("F",rtAnalogData.getF());
-                                    if (queryType.startsWith("PS")){
-                                        map.put("COSa",rtAnalogData.getCOSa());
-                                        map.put("COSb",rtAnalogData.getCOSb());
-                                        map.put("COSc",rtAnalogData.getCOSc());
-                                        map.put("COS",rtAnalogData.getCos());
-                                        if (ArrayUtils.contains(result,"RMS")){
-                                            map.put("IHa",rtAnalogData.getIHa());
-                                            map.put("IHb",rtAnalogData.getIHb());
-                                            map.put("IHc",rtAnalogData.getIHc());
-                                            if (ArrayUtils.contains(result,"DDB")){
-                                                map.put("SignalIntensity",rtAnalogData.getSignalIntensity());
-                                                if (ArrayUtils.contains(result,"VT")){
-                                                    map.put("Upt",rtAnalogData.getUpt());
-                                                    map.put("Udt",rtAnalogData.getUdt());
-                                                    map.put("Ust",rtAnalogData.getUst());
+        if (rtAnalogDataList.size()>0){
+            rtAnalogDataList.forEach(rtAnalogData -> {
+                Map<String,Object> map = new HashMap<>();
+                if (ArrayUtils.contains(result,"I")){
+                    map.put("Ia",rtAnalogData.getIa());
+                    map.put("Ib",rtAnalogData.getIb());
+                    map.put("Ic",rtAnalogData.getIc());
+                    if (ArrayUtils.contains(result,"P")){
+                        map.put("P",rtAnalogData.getP());
+                        map.put("Q",rtAnalogData.getQ());
+                        map.put("Pa",rtAnalogData.getPa());
+                        map.put("Pb",rtAnalogData.getPb());
+                        map.put("Pc",rtAnalogData.getPc());
+                        map.put("Qa",rtAnalogData.getQa());
+                        map.put("Qb",rtAnalogData.getQb());
+                        map.put("Qc",rtAnalogData.getQc());
+                        map.put("Demand",rtAnalogData.getDemand());
+                        if (ArrayUtils.contains(result,"KWh")){
+                            map.put("Epn",rtAnalogData.getEpn());
+                            map.put("Epp",rtAnalogData.getEpp());
+                            map.put("Eqn",rtAnalogData.getEqn());
+                            map.put("Eqp",rtAnalogData.getEqp());
+                            if (ArrayUtils.contains(result,"V")){
+                                map.put("Ua",rtAnalogData.getUa());
+                                map.put("Ub",rtAnalogData.getUb());
+                                map.put("Uc",rtAnalogData.getUc());
+                                map.put("Uab",rtAnalogData.getUab());
+                                map.put("Ubc",rtAnalogData.getUbc());
+                                map.put("Uca",rtAnalogData.getUca());
+                                map.put("Ul",rtAnalogData.getUl());
+                                if (ArrayUtils.contains(result,"C")){
+                                    map.put("T1",rtAnalogData.getT1());
+                                    map.put("T2",rtAnalogData.getT2());
+                                    map.put("T3",rtAnalogData.getT3());
+                                    map.put("T4",rtAnalogData.getT4());
+                                    map.put("Ic",rtAnalogData.getIc());
+                                    if (ArrayUtils.contains(result,"HZ")){
+                                        map.put("F",rtAnalogData.getF());
+                                        if (queryType.startsWith("PS")){
+                                            map.put("COSa",rtAnalogData.getCOSa());
+                                            map.put("COSb",rtAnalogData.getCOSb());
+                                            map.put("COSc",rtAnalogData.getCOSc());
+                                            map.put("COS",rtAnalogData.getCos());
+                                            if (ArrayUtils.contains(result,"RMS")){
+                                                map.put("IHa",rtAnalogData.getIHa());
+                                                map.put("IHb",rtAnalogData.getIHb());
+                                                map.put("IHc",rtAnalogData.getIHc());
+                                                if (ArrayUtils.contains(result,"DDB")){
+                                                    map.put("SignalIntensity",rtAnalogData.getSignalIntensity());
+                                                    if (ArrayUtils.contains(result,"VT")){
+                                                        map.put("Upt",rtAnalogData.getUpt());
+                                                        map.put("Udt",rtAnalogData.getUdt());
+                                                        map.put("Ust",rtAnalogData.getUst());
+                                                    }
                                                 }
                                             }
                                         }
@@ -200,6 +198,160 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
                         }
                     }
                 }
+                if (days<=24){
+                    map.put("dataTime",rtAnalogData.getDataTime());
+                }else if (days<360&&days>24){
+                    map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
+                }else if (days>=360){
+                    map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),DateUtils.PARSE_PATTERNS[8]));
+                }
+                list.add(map);
+            });
+        }
+        return list;
+    }
+
+    @Override
+    public List<Map<String, Object>> getHistoricalCurve(Integer siteId,Date startTime, Date endTime,String queryType) {
+        List<Map<String, Object>> list = new ArrayList<>();
+        List<HtAnalogData> rtAnalogDataList = null;
+        long diff = endTime.getTime() - startTime.getTime();
+        long days = diff / (1000 * 60 * 60);
+
+        if (days<=24){
+            rtAnalogDataList = baseMapper.getDataReportMap(siteId, startTime, endTime);
+        }else if (days<360&&days>24){
+            List<Device> device_list = baseMapper.getDeviceListMap(siteId);
+            rtAnalogDataList = baseMapper.getDataReportMMap(device_list,startTime, endTime);
+        }else if (days>=360){
+            List<Device> device_list = baseMapper.getDeviceListMap(siteId);
+            rtAnalogDataList = baseMapper.getDataReportDMap(device_list,startTime, endTime);
+        }
+        String[] result = queryType.split(",");
+        String[] GraphData= {};String[] GraphData2=null;String[] GraphData3=null;String[] GraphData4=null;
+        String[] GraphData5=null;String[] GraphData6=null;String[] GraphData7=null;String[] GraphData8=null;
+
+        for (int i = 0; i < rtAnalogDataList.size(); i++) {
+            HtAnalogData rtAnalogData = (HtAnalogData)rtAnalogDataList.get(i);
+            if (ArrayUtils.contains(result,"I")){
+                Double a=rtAnalogData.getIa();
+                GraphData[i]=""+rtAnalogData.getIa();
+
+//                map.put("Ia",rtAnalogData.getIa());
+//                map.put("Ib",rtAnalogData.getIb());
+//                map.put("Ic",rtAnalogData.getIc());
+            }else if (ArrayUtils.contains(result,"P")){
+//                map.put("P",rtAnalogData.getP());
+//                map.put("Q",rtAnalogData.getQ());
+//                map.put("Pa",rtAnalogData.getPa());
+//                map.put("Pb",rtAnalogData.getPb());
+//                map.put("Pc",rtAnalogData.getPc());
+//                map.put("Qa",rtAnalogData.getQa());
+//                map.put("Qb",rtAnalogData.getQb());
+//                map.put("Qc",rtAnalogData.getQc());
+//                map.put("Demand",rtAnalogData.getDemand());
+            }else if (ArrayUtils.contains(result,"KWh")){
+//                map.put("Epn",rtAnalogData.getEpn());
+//                map.put("Epp",rtAnalogData.getEpp());
+//                map.put("Eqn",rtAnalogData.getEqn());
+//                map.put("Eqp",rtAnalogData.getEqp());
+            }else if (ArrayUtils.contains(result,"V")){
+//                map.put("Ua",rtAnalogData.getUa());
+//                map.put("Ub",rtAnalogData.getUb());
+//                map.put("Uc",rtAnalogData.getUc());
+//                map.put("Uab",rtAnalogData.getUab());
+//                map.put("Ubc",rtAnalogData.getUbc());
+//                map.put("Uca",rtAnalogData.getUca());
+//                map.put("Ul",rtAnalogData.getUl());
+            }else if (ArrayUtils.contains(result,"C")){
+//                map.put("T1",rtAnalogData.getT1());
+//                map.put("T2",rtAnalogData.getT2());
+//                map.put("T3",rtAnalogData.getT3());
+//                map.put("T4",rtAnalogData.getT4());
+//                map.put("Ic",rtAnalogData.getIc());
+            }else if (ArrayUtils.contains(result,"HZ")){
+//                map.put("F",rtAnalogData.getF());
+            }else if (queryType.startsWith("PS")){
+//                map.put("COSa",rtAnalogData.getCOSa());
+//                map.put("COSb",rtAnalogData.getCOSb());
+//                map.put("COSc",rtAnalogData.getCOSc());
+//                map.put("COS",rtAnalogData.getCos());
+            }else if (ArrayUtils.contains(result,"RMS")){
+//                map.put("IHa",rtAnalogData.getIHa());
+//                map.put("IHb",rtAnalogData.getIHb());
+//                map.put("IHc",rtAnalogData.getIHc());
+            }else if (ArrayUtils.contains(result,"DDB")){
+//                map.put("SignalIntensity",rtAnalogData.getSignalIntensity());
+            }else if (ArrayUtils.contains(result,"VT")){
+//                map.put("Upt",rtAnalogData.getUpt());
+//                map.put("Udt",rtAnalogData.getUdt());
+//                map.put("Ust",rtAnalogData.getUst());
+            }
+            if (days<=24){
+//                map.put("dataTime",rtAnalogData.getDataTime());
+            }else if (days<360&&days>24){
+//                map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),"MM-dd HH:mm"));
+            }else if (days>=360){
+//                map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),DateUtils.PARSE_PATTERNS[8]));
+            }
+//            list.add(map);
+        }
+
+        rtAnalogDataList.forEach(rtAnalogData -> {
+            Map<String,Object> map = new HashMap<>();
+            if (ArrayUtils.contains(result,"I")){
+                rtAnalogData.getIa();
+                GraphData[0]=""+rtAnalogData.getIa();
+
+                map.put("Ia",rtAnalogData.getIa());
+                map.put("Ib",rtAnalogData.getIb());
+                map.put("Ic",rtAnalogData.getIc());
+            }else if (ArrayUtils.contains(result,"P")){
+                map.put("P",rtAnalogData.getP());
+                map.put("Q",rtAnalogData.getQ());
+                map.put("Pa",rtAnalogData.getPa());
+                map.put("Pb",rtAnalogData.getPb());
+                map.put("Pc",rtAnalogData.getPc());
+                map.put("Qa",rtAnalogData.getQa());
+                map.put("Qb",rtAnalogData.getQb());
+                map.put("Qc",rtAnalogData.getQc());
+                map.put("Demand",rtAnalogData.getDemand());
+            }else if (ArrayUtils.contains(result,"KWh")){
+                map.put("Epn",rtAnalogData.getEpn());
+                map.put("Epp",rtAnalogData.getEpp());
+                map.put("Eqn",rtAnalogData.getEqn());
+                map.put("Eqp",rtAnalogData.getEqp());
+            }else if (ArrayUtils.contains(result,"V")){
+                map.put("Ua",rtAnalogData.getUa());
+                map.put("Ub",rtAnalogData.getUb());
+                map.put("Uc",rtAnalogData.getUc());
+                map.put("Uab",rtAnalogData.getUab());
+                map.put("Ubc",rtAnalogData.getUbc());
+                map.put("Uca",rtAnalogData.getUca());
+                map.put("Ul",rtAnalogData.getUl());
+            }else if (ArrayUtils.contains(result,"C")){
+                map.put("T1",rtAnalogData.getT1());
+                map.put("T2",rtAnalogData.getT2());
+                map.put("T3",rtAnalogData.getT3());
+                map.put("T4",rtAnalogData.getT4());
+                map.put("Ic",rtAnalogData.getIc());
+            }else if (ArrayUtils.contains(result,"HZ")){
+                map.put("F",rtAnalogData.getF());
+            }else if (queryType.startsWith("PS")){
+                map.put("COSa",rtAnalogData.getCOSa());
+                map.put("COSb",rtAnalogData.getCOSb());
+                map.put("COSc",rtAnalogData.getCOSc());
+                map.put("COS",rtAnalogData.getCos());
+            }else if (ArrayUtils.contains(result,"RMS")){
+                map.put("IHa",rtAnalogData.getIHa());
+                map.put("IHb",rtAnalogData.getIHb());
+                map.put("IHc",rtAnalogData.getIHc());
+            }else if (ArrayUtils.contains(result,"DDB")){
+                map.put("SignalIntensity",rtAnalogData.getSignalIntensity());
+            }else if (ArrayUtils.contains(result,"VT")){
+                map.put("Upt",rtAnalogData.getUpt());
+                map.put("Udt",rtAnalogData.getUdt());
+                map.put("Ust",rtAnalogData.getUst());
             }
             if (days<=24){
                 map.put("dataTime",rtAnalogData.getDataTime());
@@ -209,7 +361,9 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
                 map.put("dataTime", DateUtils.format(rtAnalogData.getDataTime(),DateUtils.PARSE_PATTERNS[8]));
             }
             list.add(map);
+
         });
         return list;
     }
+
 }