|
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.jeecg.common.util.DateUtils;
|
|
|
import org.jeecg.common.util.oConvertUtils;
|
|
|
import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
|
|
@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.IntStream;
|
|
|
|
|
|
/**
|
|
|
* @Description: 峰平谷模型
|
|
@@ -35,6 +37,7 @@ import java.util.stream.Collectors;
|
|
|
* @Date: 2024-10-31
|
|
|
* @Version: V1.0
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, FpgLeanModel> implements IFpgLeanModelService {
|
|
|
|
|
@@ -136,6 +139,11 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
|
|
|
JSONObject result = new JSONObject();
|
|
|
|
|
|
List<DeviceStatiscsModelMongodb> fpgStatiscsModelDataList = queryByTimeRanges(mongoTemplate, leanModelCode, null, null, null, null, null);
|
|
|
+ if (oConvertUtils.listIsEmpty(fpgStatiscsModelDataList)){
|
|
|
+ log.info("{}{}", "mongo数据查询为空,峰平谷模型报表导出失败!", leanModelCode);
|
|
|
+ result.put("data", new ArrayList<>());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
List<String> deviceInformationIds = fpgStatiscsModelDataList.stream().map(DeviceStatiscsModelMongodb::getDeviceInformationId).collect(Collectors.toList());
|
|
|
LambdaQueryWrapper<DeviceInformation> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.in(DeviceInformation::getId, deviceInformationIds);
|
|
@@ -170,8 +178,12 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
|
|
|
public JSONObject queryFpgPowerDataByLeanModelCode(String leanModelCode) {
|
|
|
|
|
|
JSONObject result = new JSONObject();
|
|
|
-
|
|
|
List<DeviceStatiscsModelMongodb> fpgStatiscsModelDataList = queryByTimeRanges(mongoTemplate, leanModelCode, null, null, null, null, null);
|
|
|
+ if (oConvertUtils.listIsEmpty(fpgStatiscsModelDataList)){
|
|
|
+ log.info("{}{}", "mongo数据查询为空,峰平谷功率报表导出失败!", leanModelCode);
|
|
|
+ result.put("data", new ArrayList<>());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
List<String> deviceInformationIds = fpgStatiscsModelDataList.stream().map(DeviceStatiscsModelMongodb::getDeviceInformationId).collect(Collectors.toList());
|
|
|
LambdaQueryWrapper<DeviceInformation> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.in(DeviceInformation::getId, deviceInformationIds);
|
|
@@ -196,38 +208,7 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
|
|
|
}
|
|
|
return null;
|
|
|
}).filter(x -> x != null).collect(Collectors.toList());
|
|
|
-
|
|
|
- List<ModelDataResult> modelDataResults = new ArrayList<>();
|
|
|
- for (ModelReportFormResult modelReportFormResult : combinedList) {
|
|
|
- for (int i = 0; i < 5; i++) {
|
|
|
- ModelDataResult modelDataResult = new ModelDataResult();
|
|
|
- if (i == 0){
|
|
|
- modelDataResult.setKey("尖");
|
|
|
- modelDataResult.setValue(modelReportFormResult.getTopsPower());
|
|
|
- }
|
|
|
- if (i == 1){
|
|
|
- modelDataResult.setKey("峰");
|
|
|
- modelDataResult.setValue(modelReportFormResult.getPeaksPower());
|
|
|
- }
|
|
|
- if (i == 2){
|
|
|
- modelDataResult.setKey("平");
|
|
|
- modelDataResult.setValue(modelReportFormResult.getFlatPower());
|
|
|
- }
|
|
|
- if (i == 3){
|
|
|
- modelDataResult.setKey("谷");
|
|
|
- modelDataResult.setValue(modelReportFormResult.getValleysPower());
|
|
|
- }
|
|
|
- if (i == 4){
|
|
|
- modelDataResult.setKey("反有总");
|
|
|
- modelDataResult.setValue(modelReportFormResult.getTopsPower().add(modelReportFormResult.getPeaksPower()).add(modelReportFormResult.getFlatPower()).add(modelReportFormResult.getValleysPower()));
|
|
|
- }
|
|
|
- modelDataResult.setDeviceTitle(modelReportFormResult.getDeviceTitle());
|
|
|
- modelDataResult.setDeviceRegionId(modelReportFormResult.getDeviceRegionId());
|
|
|
- modelDataResult.setDeviceInformationId(modelReportFormResult.getDeviceInformationId());
|
|
|
- modelDataResult.setCreateTime(modelReportFormResult.getCreateTime());
|
|
|
- modelDataResults.add(modelDataResult);
|
|
|
- }
|
|
|
- }
|
|
|
+ List<ModelDataResult> modelDataResults = generateModelDataResults(combinedList);
|
|
|
JSONArray jArray = JSON.parseArray(JSON.toJSONString(modelDataResults));
|
|
|
result.put("data", jArray);
|
|
|
return result;
|
|
@@ -273,7 +254,69 @@ public class FpgLeanModelServiceImpl extends ServiceImpl<FpgLeanModelMapper, Fpg
|
|
|
query.addCriteria(Criteria.where("createTime").gte(specifiedTimePlus8HoursStartTime).lt(specifiedTimePlus8HoursStartEndTime));
|
|
|
}
|
|
|
// 执行查询
|
|
|
- List<DeviceStatiscsModelMongodb> fpgStatiscsModelDataList = mongoTemplate.find(query, DeviceStatiscsModelMongodb.class, "total_day_power_sum");
|
|
|
+ List<DeviceStatiscsModelMongodb> fpgStatiscsModelDataList = mongoTemplate.find(query, DeviceStatiscsModelMongodb.class, leanModeCode);
|
|
|
return fpgStatiscsModelDataList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转为流处理模型数据、5次循环操作
|
|
|
+ * @param combinedList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<ModelDataResult> generateModelDataResults(List<ModelReportFormResult> combinedList) {
|
|
|
+ return combinedList.stream()
|
|
|
+ .flatMap(modelReportFormResult -> IntStream.range(0, 5)
|
|
|
+ .mapToObj(i -> {
|
|
|
+ ModelDataResult modelDataResult = new ModelDataResult();
|
|
|
+ setKeyValue(modelDataResult, i, modelReportFormResult);
|
|
|
+ setCommonProperties(modelDataResult, modelReportFormResult);
|
|
|
+ return modelDataResult;
|
|
|
+ })).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 不同类型的key/value进行赋值操作
|
|
|
+ * @param modelDataResult
|
|
|
+ * @param i
|
|
|
+ * @param modelReportFormResult
|
|
|
+ */
|
|
|
+ private static void setKeyValue(ModelDataResult modelDataResult, int i, ModelReportFormResult modelReportFormResult) {
|
|
|
+ switch (i) {
|
|
|
+ case 0:
|
|
|
+ modelDataResult.setKey("尖");
|
|
|
+ modelDataResult.setValue(modelReportFormResult.getTopsPower());
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ modelDataResult.setKey("峰");
|
|
|
+ modelDataResult.setValue(modelReportFormResult.getPeaksPower());
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ modelDataResult.setKey("平");
|
|
|
+ modelDataResult.setValue(modelReportFormResult.getFlatPower());
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ modelDataResult.setKey("谷");
|
|
|
+ modelDataResult.setValue(modelReportFormResult.getValleysPower());
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ modelDataResult.setKey("反有总");
|
|
|
+ modelDataResult.setValue(modelReportFormResult.getTopsPower()
|
|
|
+ .add(modelReportFormResult.getPeaksPower())
|
|
|
+ .add(modelReportFormResult.getFlatPower())
|
|
|
+ .add(modelReportFormResult.getValleysPower()));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 公共属性赋值
|
|
|
+ * @param modelDataResult
|
|
|
+ * @param modelReportFormResult
|
|
|
+ */
|
|
|
+ private static void setCommonProperties(ModelDataResult modelDataResult, ModelReportFormResult modelReportFormResult) {
|
|
|
+ modelDataResult.setDeviceTitle(modelReportFormResult.getDeviceTitle());
|
|
|
+ modelDataResult.setDeviceRegionId(modelReportFormResult.getDeviceRegionId());
|
|
|
+ modelDataResult.setDeviceInformationId(modelReportFormResult.getDeviceInformationId());
|
|
|
+ modelDataResult.setCreateTime(modelReportFormResult.getCreateTime());
|
|
|
+ }
|
|
|
}
|