فهرست منبع

排序,调节

xushili 1 سال پیش
والد
کامیت
88819cf02d

+ 17 - 10
power-fitting-JN/src/main/java/com.gyee.power.fitting/controller/gf/PhotovoltaicAnalysisController.java

@@ -1,11 +1,13 @@
 package com.gyee.power.fitting.controller.gf;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gyee.power.fitting.common.result.JsonResult;
 import com.gyee.power.fitting.common.result.ResultCode;
+import com.gyee.power.fitting.dispersionanalysis.InverterPowerAnalysis2;
 import com.gyee.power.fitting.model.Device;
 import com.gyee.power.fitting.model.PhotovoltaicAnalysis;
 import com.gyee.power.fitting.model.ProBasicEquipment;
@@ -41,6 +43,8 @@ public class PhotovoltaicAnalysisController {
     private ProBasicEquipmentService proBasicEquipmentService;
     @Resource
     private IStateCauseService stateCauseService;
+    @Resource
+    private InverterPowerAnalysis2 inverterPowerAnalysis;
 
     //状态转换
     @GetMapping("/state_transition")
@@ -62,9 +66,10 @@ public class PhotovoltaicAnalysisController {
         QueryWrapper<StateCause> scWrapper = new QueryWrapper<>();
 //        Page<StateCause> page = new Page<>(pageNum, pageSize);
         scWrapper.eq("state_type", "8种状态").in("equipment_id", pageItems)
-                .gt("start_time", startTime).lt("end_time", endTime);
+                .ge("start_time", startTime).lt("end_time", endTime)
+                .orderByAsc("equipment_id");
         List<StateCause> list = stateCauseService.list(scWrapper);
-        Map<String, List<StateCause>> listMap = list.stream().peek(sc -> sc.setEquipmentId(stringMap.get(sc.getEquipmentId()))).collect(Collectors.groupingBy(StateCause::getEquipmentId));
+        Map<String, List<StateCause>> listMap = list.stream().peek(sc -> sc.setEquipmentId(stringMap.get(sc.getEquipmentId()))).collect(Collectors.groupingBy(StateCause::getEquipmentId,LinkedHashMap::new,Collectors.toList()));
 //        PageMap<StateCause> stateCauses = (PageMap<StateCause>) stateCauseService.page(page, scWrapper);
 
 //        stateCauses.setRecordMap(stateCauses.getRecords().stream().collect(Collectors.groupingBy(StateCause::getEquipmentId)));
@@ -101,10 +106,9 @@ public class PhotovoltaicAnalysisController {
         scWrapper.select("equipment_id,event,sum(time)/3600 hour");
         scWrapper.eq("state_type", "8种状态").in("equipment_id", pageItems)
                 .ge("start_time", startTime).lt("end_time", endTime);
-        ;
-        scWrapper.groupBy("equipment_id,event");
+        scWrapper.groupBy("equipment_id,event").orderByAsc("equipment_id");
         List<StateCause> causePage = stateCauseService.list(scWrapper);
-        Map<String, List<StateCause>> listMap = causePage.stream().peek(sc -> sc.setEquipmentId(stringMap.get(sc.getEquipmentId()))).collect(Collectors.groupingBy(StateCause::getEquipmentId));
+        Map<String, List<StateCause>> listMap = causePage.stream().peek(sc -> sc.setEquipmentId(stringMap.get(sc.getEquipmentId()))).collect(Collectors.groupingBy(StateCause::getEquipmentId,LinkedHashMap::new,Collectors.toList()));
         List<Device> deviceList = statecauses2Devices(listMap);
         /*PageMap<StateCause> pageMap = new PageMap<>();
         pageMap.
@@ -160,7 +164,7 @@ public class PhotovoltaicAnalysisController {
                         break;
                 }
             });
-            device.setTotal(sum.get());
+            device.setTotal(NumberUtil.round(sum.get(),2).doubleValue());
             deviceList.add(device);
         });
         return deviceList;
@@ -231,9 +235,9 @@ public class PhotovoltaicAnalysisController {
         }
 
         QueryWrapper<PhotovoltaicAnalysis> wrapper = new QueryWrapper<>();
-        wrapper.select("station_id,equipment_id,avg(scatter) scatter,avg(conversion_efficiency)" +
-                        " conversion_efficiency,sum(equivalent_generating_time) equivalent_generating_time," +
-                        "avg(device_availability) device_availability").between("data_date", startDate, endDate)
+        wrapper.select("station_id,equipment_id,avg(average_light_intensity) average_light_intensity,avg(average_power)" +
+                        " average_power,avg(scatter) scatter,avg(equivalent_generating_time_stan) equivalent_generating_time_stan")
+                .between("data_date", startDate, endDate)
                 .eq("station_id", stationId)
                 .groupBy("station_id,equipment_id").orderByAsc("equipment_id");
         Page<PhotovoltaicAnalysis> page = new Page<>(pageNum, pageSize);
@@ -241,7 +245,10 @@ public class PhotovoltaicAnalysisController {
 
         Map<String, String> collect = proBasicEquipmentService.getWtNcMap("IN");
 
-        list.setRecords(list.getRecords().stream().peek(pa -> pa.setEquipmentId(collect.get(pa.getEquipmentId()))).collect(Collectors.toList()));
+        list.setRecords(list.getRecords().stream().peek(pa -> {
+            pa.setEquipmentId(collect.get(pa.getEquipmentId()));
+            pa.setScatterStatus(inverterPowerAnalysis.analyzeInverterStatus(pa.getScatter(),pa.getAveragePower()));
+        }).collect(Collectors.toList()));
         return JsonResult.successData(ResultCode.SUCCESS, list);
     }
 }

+ 3 - 3
power-fitting-JN/src/main/java/com.gyee.power.fitting/dispersionanalysis/InverterPowerAnalysis2.java

@@ -41,11 +41,11 @@ public class InverterPowerAnalysis2 {
 
     // 根据复杂规则分析逆变器状态
     public String analyzeInverterStatus(double powerDeviation, double averagePower) {
-        if (powerDeviation < 0.1 && averagePower > 800) {
+        if (powerDeviation < 5 && averagePower > 200) {
             return "运行稳定";
-        } else if (powerDeviation < 0.2 && averagePower > 600) {
+        } else if (powerDeviation < 8 && averagePower > 35) {
             return "运行良好";
-        } else if (powerDeviation < 0.3 && averagePower > 400) {
+        } else if (powerDeviation < 20 && averagePower > 20) {
             return "运行水平有待提高";
         } else {
             return "必须整改";

+ 3 - 3
power-fitting-JN/src/main/java/com.gyee.power.fitting/service/impl/ProBasicEquipmentServiceImpl.java

@@ -54,7 +54,7 @@ public class ProBasicEquipmentServiceImpl extends ServiceImpl<ProBasicEquipmentM
     public Map<String, String> getWtNcMap(String type) {
         QueryWrapper<ProBasicEquipment> wrapper = new QueryWrapper<>();
         wrapper.eq(StrUtil.isNotBlank(type), "spare1", type);
-        wrapper.orderByAsc("nem_code");
+        wrapper.orderByAsc("order_num");
         List<ProBasicEquipment> eList = baseMapper.selectList(wrapper);
         Map<String, String> collect = eList.stream().collect(Collectors.toMap(ProBasicEquipment::getId, ProBasicEquipment::getNemCode));
         return collect;
@@ -64,7 +64,7 @@ public class ProBasicEquipmentServiceImpl extends ServiceImpl<ProBasicEquipmentM
     public Map<String, List<ProBasicEquipment>> getStationMap(String type) {
         QueryWrapper<ProBasicEquipment> wrapper = new QueryWrapper<>();
         wrapper.eq(StrUtil.isNotBlank(type), "spare1", type);
-        wrapper.orderByAsc("nem_code");
+        wrapper.orderByAsc("order_num");
         List<ProBasicEquipment> eList = baseMapper.selectList(wrapper);
         Map<String, List<ProBasicEquipment>> collect = eList.stream().collect(Collectors.groupingBy(ProBasicEquipment::getWindpowerstationId));
         return collect;
@@ -74,7 +74,7 @@ public class ProBasicEquipmentServiceImpl extends ServiceImpl<ProBasicEquipmentM
     public List<ProBasicEquipment> getCacheList(String type) {
         QueryWrapper<ProBasicEquipment> wrapper = new QueryWrapper<>();
         wrapper.eq(StrUtil.isNotBlank(type), "spare1", type);
-        wrapper.orderByAsc("nem_code");
+        wrapper.orderByAsc("order_num");
         return baseMapper.selectList(wrapper);
     }
 }