鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
3 天以前 9b6cf1583cb7fe2c263fcee488958fa1a1e8569a
功率因数 最大最小值
已添加1个文件
已修改2个文件
92 ■■■■ 文件已修改
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerHistoryDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorHisReqDTO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -27,6 +27,7 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static com.iailab.framework.common.pojo.CommonResult.success;
@@ -364,20 +365,22 @@
    @PostMapping("/net-factor/history")
    @Operation(summary = "功率因数-根据nodeName获取最近1440min历史数据,月最大,最小值")
    public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody Map<String, Object> params) {
        String nodeName = (String) params.get("nodeName");
    public CommonResult<PowerHistoryDTO> getPowerHistoryData(@RequestBody PowerNetFactorHisReqDTO dto) {
        String nodeName = dto.getNodeName();
        if (StringUtils.isBlank(nodeName)) {
            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        String queryType = (String) params.get("queryType");
        String queryType = dto.getQueryType();
        if (StringUtils.isBlank(queryType)) {
            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        PowerNetFactorEntity powerNetFactor = powerNetFactorService.getByNodeName(nodeName);
        PowerHistoryDTO result = new PowerHistoryDTO();
        if (powerNetFactor == null) {
            log.info("powerNetFactor is null");
            return success(result);
        }
        log.info("开始查询,");
        ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
        String pointNo = "";
@@ -395,41 +398,21 @@
                break;
        }
        //查询图表
        String startTimeStr =(String) params.get("startTime");
        String endTimeStr =(String) params.get("endTime");
        apiPointValueQueryDTO.setPointNo(pointNo);
        Calendar calendar0 = Calendar.getInstance();
        calendar0.set(Calendar.MILLISECOND, 0);
        calendar0.set(Calendar.SECOND, 0);
        Date end = calendar0.getTime();
        Date end = dto.getEndTime() == null ? calendar0.getTime() : dto.getEndTime();
        calendar0.add(Calendar.MINUTE, -1440);
        Date start = calendar0.getTime();
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if (StringUtils.isNotBlank(startTimeStr)) {
            try {
                start = ft.parse(params.get("startTime").toString());
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
        }
        apiPointValueQueryDTO.setStart(start);
        if (StringUtils.isNotBlank(endTimeStr)) {
            try {
                end = ft.parse(params.get("endTime").toString());
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
        }
        Date start = dto.getStartTime() == null ?  calendar0.getTime() : dto.getStartTime();
        apiPointValueQueryDTO.setEnd(end);
        apiPointValueQueryDTO.setStart(start);
        List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
        List<List<Object>> dataList = new ArrayList<>();
        for (ApiPointValueDTO dto : chartData) {
            List<Object> data = new ArrayList<>();
            String time = ft.format(dto.getT());
            double value = dto.getV();
            data.add(time);
            data.add(value);
        List<Object[]> dataList = new ArrayList<>();
        for (ApiPointValueDTO pv : chartData) {
            Object[] data = new Object[2];
            data[0] = DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
            data[1] = pv.getV();
            dataList.add(data);
        }
        List<String> categories = DateUtils.getTimeScale(start, end, 60);
@@ -447,17 +430,15 @@
        apiPointValueQueryDTO.setStart(start);
        apiPointValueQueryDTO.setEnd(new Date());
        List<ApiPointValueDTO> monthChartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
        List<List<Object>> monthDataList = new ArrayList<>();
        for (ApiPointValueDTO dto : monthChartData) {
            List<Object> data = new ArrayList<>();
            String time = ft.format(dto.getT());
            double value = dto.getV();
            data.add(time);
            data.add(value);
            monthDataList.add(data);
        List<Double> monthValues = new ArrayList<>();
        if (CollectionUtils.isEmpty(monthChartData)) {
            monthValues =  monthChartData.stream().map(item -> {
                return item.getV();
            }).collect(Collectors.toList());
            result.setMax(monthValues.stream().max(Double::compareTo).get());
            result.setMin(monthValues.stream().min(Double::compareTo).get());
        }
        result.setMax(getMax(monthDataList));
        result.setMin(getMin(monthDataList));
        return success(result);
    }
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerHistoryDTO.java
@@ -18,7 +18,7 @@
    private List<String> categories;
    @Schema(description = "图表数据")
    private List<List<Object>> dataList;
    private List<Object[]> dataList;
    @Schema(description = "最大值")
    private double max;
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorHisReqDTO.java
对比新文件
@@ -0,0 +1,27 @@
package com.iailab.module.ansteel.api.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年04月22日
 */
@Data
public class PowerNetFactorHisReqDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    private String nodeName;
    private String queryType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
}