鞍钢鲅鱼圈能源管控系统后端代码
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -16,6 +16,7 @@
import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.ansteel.common.utils.CalendarUtil;
import com.iailab.module.ansteel.common.utils.DecimalUtil;
import com.iailab.module.ansteel.common.utils.PowerUtil;
import com.iailab.module.ansteel.power.entity.*;
@@ -713,6 +714,8 @@
                if (maxdemandMainEntity != null) {
                    demandDTO.setMaxDemand(maxdemandMainEntity.getMaxDemand());
                    demandDTO.setOccurTime(maxdemandMainEntity.getOccurTime());
                } else {
                    demandDTO.setMaxDemand(BigDecimal.ZERO);
                }
            }
            result.add(demandDTO);
@@ -742,11 +745,22 @@
        if (!CollectionUtils.isEmpty(list0)) {
            list.addAll(list0);
        }
        Map<String, Object> params1 = new HashMap<>();
        params1.put("groupName", "COMMON1");
        List<PowerNetDropdownEntity> list1 = powerNetDropdownService.list(params1);
        if (!CollectionUtils.isEmpty(list1)) {
            list.addAll(list1);
        // 所有关口进线的二级界面(表格/曲线)均增加(CCPP/135/CDQ/TRT/余热)的选项。
        if(entity.getSort() <= 14) {
            Map<String, Object> params1 = new HashMap<>();
            params1.put("groupName", "COMMON1");
            List<PowerNetDropdownEntity> list1 = powerNetDropdownService.list(params1);
            if (!CollectionUtils.isEmpty(list1)) {
                list.addAll(list1);
            }
            Map<String, Object> params2 = new HashMap<>();
            params2.put("groupName", "COMMON2");
            List<PowerNetDropdownEntity> list2 = powerNetDropdownService.list(params2);
            if (!CollectionUtils.isEmpty(list2)) {
                list.addAll(list2);
            }
        }
        List<String> points = list.stream().map(item -> {
@@ -1600,6 +1614,7 @@
                    throw new IllegalArgumentException("不支持的queryType: " + queryType);
            }
            // 查询历史数据
            ApiPointValueQueryDTO query = new ApiPointValueQueryDTO();
            query.setPointNo(pointNo);
@@ -1614,10 +1629,13 @@
                    })
                    .collect(Collectors.toList());
            List<Double> valueList = chartData.stream().map(pv -> {
                return pv.getV();
            }).collect(Collectors.toList());
            powerHistoryDTO.setDataList(dataList);
            //查询月最大最小值
            ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
            /*ApiPointValueQueryDTO apiPointValueQueryDTO1 = new ApiPointValueQueryDTO();
            apiPointValueQueryDTO1.setStart(start1);
            apiPointValueQueryDTO1.setEnd(new Date());
            apiPointValueQueryDTO1.setPointNo(pointNo);
@@ -1628,7 +1646,40 @@
            }
            if (minV != null && minV.containsKey(pointNo)) {
                powerHistoryDTO.setMin(new BigDecimal(minV.get(pointNo).toString()));
            }*/
            double max = 0;
            double min = 0;
            double avg = 0;
            String maxTime = "";
            String minTime = "";
            if (!CollectionUtils.isEmpty(valueList)) {
                // max = valueList.stream().mapToDouble(Double::doubleValue).max().getAsDouble();
                // min = valueList.stream().mapToDouble(Double::doubleValue).min().getAsDouble();
                avg = valueList.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
                max = valueList.get(0).doubleValue();
                min = valueList.get(0).doubleValue();
                for (Object[] dataItem : dataList) {
                    String time = (String) dataItem[0];
                    double value = (double)dataItem[1];
                    if (value > max) {
                        max = value;
                        maxTime = time;
                    }
                    if (value < min) {
                        min = value;
                        minTime = time;
                    }
                }
            }
            powerHistoryDTO.setMax(new BigDecimal(max).setScale(2, BigDecimal.ROUND_HALF_UP));
            powerHistoryDTO.setMin(new BigDecimal(min).setScale(2, BigDecimal.ROUND_HALF_UP));
            powerHistoryDTO.setAvg(new BigDecimal(avg).setScale(2, BigDecimal.ROUND_HALF_UP));
            powerHistoryDTO.setMaxTime(maxTime);
            powerHistoryDTO.setMinTime(minTime);
            powerHistoryDTO.setDataList(dataList);
            result.put(code, powerHistoryDTO);
        }
@@ -1677,6 +1728,11 @@
            log.info("code is blank");
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        // 默认只展示当月
        if(reqVO.getStartTime() == null) {
            reqVO.setStartTime(CalendarUtil.getMonthFirstDay());
        }
        PageResult<PowerMaxdemandMainEntity> page = powerMaxDemandMainService.page(reqVO);
        PageResult<PowerMaxDemandMainDTO> result = BeanUtils.toBean(page, PowerMaxDemandMainDTO.class);
        result.getList().forEach(dto0 -> {