|
@@ -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);
|
|
|
}
|
|
|
}
|