鞍钢鲅鱼圈能源管控系统后端代码
dengzedong
昨天 48b69b857ae860050a790be63b317e15be49f1b1
Merge remote-tracking branch 'origin/master'
已修改11个文件
已添加1个文件
236 ■■■■ 文件已修改
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorHisDTO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorStatusDTO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPowerMaxdemandTask.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerCapacitorHisEntity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerCapacitorHisServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_250512.doc 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_master.doc 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -3,6 +3,7 @@
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.exception.ErrorCode;
import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.framework.common.pojo.PageResult;
@@ -38,6 +39,7 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.iailab.framework.common.pojo.CommonResult.error;
import static com.iailab.framework.common.pojo.CommonResult.success;
/**
@@ -93,6 +95,7 @@
    @Autowired
    private PowerMaxdemandMainService powerMaxDemandMainService;
    @Autowired
    private PowerMaxdemandDetService powerMaxdemandDetService;
@@ -431,8 +434,51 @@
    @GetMapping("/capacitor-status/list")
    @Operation(summary = "功率因数-电容器投退状态")
    public CommonResult<List<PowerCapacitorStatusDTO>> getPowerCapacitorStatusList(@RequestParam Map<String, Object> params) {
        List<PowerCapacitorStatusDTO> result = new ArrayList<>();
        List<PowerCapacitorStatusEntity> list = powerCapacitorStatusService.list(params);
        return success(ConvertUtils.sourceToTarget(list, PowerCapacitorStatusDTO.class));
        for (PowerCapacitorStatusEntity entity : list) {
            PowerCapacitorStatusDTO dto = new PowerCapacitorStatusDTO();
            dto.setId(entity.getId());
            dto.setName(entity.getName());
            dto.setRemark(entity.getRemark());
            dto.setMainCount(DecimalUtil.toBigDecimal(entity.getMainCount()).intValue());
            dto.setChildCount(DecimalUtil.toBigDecimal(entity.getChildCount()).intValue());
            int onCount = 0;
            Map<String, Object> params1 = new HashMap<>();
            params1.put("statusId", entity.getId());
            List<PowerCapacitorDetEntity> detList = powerCapacitorDetService.list(params1);
            if (CollectionUtils.isEmpty(detList)) {
                dto.setOnCount(onCount);
                continue;
            }
            List<String> points = new ArrayList<>();
            Map<String, Object> pointsRealValue = new HashMap<>();
            for (PowerCapacitorDetEntity det : detList) {
                if (StringUtils.isNotBlank(det.getPointNo())) {
                    points.add(det.getPointNo());
                }
            }
            if (!CollectionUtils.isEmpty(points)) {
                pointsRealValue = dataPointApi.queryPointsRealValue(points);
            }
            for (PowerCapacitorDetEntity det : detList) {
                if (StringUtils.isBlank(det.getId())) {
                    continue;
                }
                Object obj = pointsRealValue.get(det.getPointNo());
                if (obj == null) {
                    continue;
                }
                BigDecimal pv = new BigDecimal(obj.toString());
                if (pv.compareTo(BigDecimal.ZERO) <= 0) {
                    continue;
                }
                onCount ++;
            }
            dto.setOnCount(onCount);
            result.add(dto);
        }
        return success(result);
    }
    @GetMapping("/capacitor-det/list")
@@ -440,10 +486,13 @@
    public CommonResult<List<PowerCapacitorDetDTO>> getPowerCapacitorDetList(@RequestParam Map<String, Object> params) {
        List<PowerCapacitorDetEntity> list = powerCapacitorDetService.list(params);
        log.info("list.size=" + list.size());
        List<String> points = list.stream().map(item -> {
            return item.getPointNo();
        }).collect(Collectors.toList());
        List<String> points = new ArrayList<>();
        Map<String, Object> pointsRealValue = new HashMap<>();
        for (PowerCapacitorDetEntity det : list) {
            if (StringUtils.isNotBlank(det.getPointNo())) {
                points.add(det.getPointNo());
            }
        }
        if (!CollectionUtils.isEmpty(points)) {
            pointsRealValue = dataPointApi.queryPointsRealValue(points);
        }
@@ -802,7 +851,7 @@
        apiPointValueQueryDTO.setEnd(new Date());
        List<ApiPointValueDTO> monthChartData = dataPointApi.queryPointHistoryValue(apiPointValueQueryDTO);
        List<Double> monthValues = new ArrayList<>();
        if (CollectionUtils.isEmpty(monthChartData)) {
        if (!CollectionUtils.isEmpty(monthChartData)) {
            monthValues = monthChartData.stream().map(item -> item.getV()).collect(Collectors.toList());
            result.setMax(monthValues.stream().max(Double::compareTo).get());
            result.setMin(monthValues.stream().min(Double::compareTo).get());
@@ -1107,15 +1156,12 @@
    @PostMapping("/power-maxdemand/page")
    @Operation(summary = "负荷移植-最大需量发生记录分页")
    public CommonResult<PageResult<PowerMaxDemandMainDTO>> getPowerMaxDemandMainPage(@RequestBody PowerMaxDemandMainPageReqVO reqVO) {
        if (StringUtils.isBlank(reqVO.getCode())) {
            log.info("code is blank");
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        PageResult<PowerMaxdemandMainEntity> page = powerMaxDemandMainService.page(reqVO);
        PageResult<PowerMaxDemandMainDTO> result = BeanUtils.toBean(page, PowerMaxDemandMainDTO.class);
        /*List<String> parentIds = result.getList()
                .stream()
                .map(PowerMaxDemandMainDTO::getId)
                .collect(Collectors.toList());
        List<PowerMaxdemandDetEntity> children = powerMaxdemandDetService.selectListByRelIds(parentIds);
        Map<String, List<PowerMaxdemandDetEntity>> childrenMap = children.stream()
                .collect(Collectors.groupingBy(PowerMaxdemandDetEntity::getRelId));*/
        result.getList().forEach(dto0 -> {
            List<PowerMaxdemandDetEntity> detList0 = powerMaxdemandDetService.selectListByRelId(dto0.getId(), dto0.getOccurTime());
            dto0.setChildren(ConvertUtils.sourceToTarget(detList0, PowerMaxdemandDetDTO.class));
@@ -1128,4 +1174,15 @@
        });
        return success(result);
    }
    @PostMapping("/power-maxdemand/det-list")
    @Operation(summary = "负荷移植-最大需量发生记录详情")
    public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestParam Map<String, Object> params) {
        String relId = (String) params.get("relId");
        if (StringUtils.isBlank(relId)) {
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        List<PowerMaxdemandDetEntity> list = powerMaxdemandDetService.selectListByRelId(relId);
        return success(ConvertUtils.sourceToTarget(list, PowerMaxdemandDetDTO.class));
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorHisDTO.java
@@ -1,9 +1,11 @@
package com.iailab.module.ansteel.api.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @author PanZhibao
@@ -30,6 +32,7 @@
    @Schema(description = "备注")
    private String remark;
    @Schema(description = "i创建时间d")
    private String createDate;
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerCapacitorStatusDTO.java
@@ -23,13 +23,13 @@
    private String name;
    @Schema(description = "主变数量")
    private String mainCount;
    private Integer mainCount;
    @Schema(description = "下属数量")
    private String childCount;
    private Integer childCount;
    @Schema(description = "投运数量")
    private String onCount;
    private Integer onCount;
    @Schema(description = "备注")
    private String remark;
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java
@@ -1,5 +1,6 @@
package com.iailab.module.ansteel.api.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.iailab.framework.common.pojo.PageParam;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -25,4 +26,12 @@
    @Schema(description = "名称")
    private String code;
    @Schema(description = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;
    @Schema(description = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPowerMaxdemandTask.java
@@ -109,42 +109,15 @@
                mainEntity.setOccurTime(occurTime);
                mainEntity.setMaxDemand(todayMax);
                String mainId = powerMaxdemandMainService.add(mainEntity);
                Map<String, Object> params1 = new HashMap<>();
                params1.put("groupName", demand.getName());
                List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params1);
                if (CollectionUtils.isEmpty(dropdownList)) {
                    logger.info("dropdownList is empty");
                // 插入第一层children
                List<PowerMaxdemandDetEntity> detList0 = powerMaxdemandDetService.addList(mainId, demand.getName(), occurTime);
                if(CollectionUtils.isEmpty(detList0)){
                    logger.info("detList0 is empty");
                    continue;
                }
                Calendar calendar1 = Calendar.getInstance();
                calendar1.setTime(occurTime);
                calendar1.add(Calendar.MINUTE, 1);
                int sort = 0;
                for (PowerNetDropdownEntity dropdown : dropdownList) {
                    if (StringUtils.isBlank(dropdown.getExt1())) {
                        logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty");
                        continue;
                    }
                    logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1());
                    ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO();
                    pointValueQuery1.setStart(occurTime);
                    pointValueQuery1.setEnd(calendar1.getTime());
                    pointValueQuery1.setPointNo(dropdown.getExt1());
                    List<ApiPointValueDTO> valueList1 = dataPointApi.queryPointHistoryValue(pointValueQuery1);
                    if (CollectionUtils.isEmpty(valueList1)) {
                        logger.info("valueList1 is empty");
                        continue;
                    }
                    PowerMaxdemandDetEntity detEntity = new PowerMaxdemandDetEntity();
                    detEntity.setRelId(mainId);
                    detEntity.setCode(dropdown.getNodeCode());
                    detEntity.setName(dropdown.getNodeName());
                    detEntity.setOccurTime(occurTime);
                    detEntity.setMaxDemand(BigDecimal.valueOf(valueList1.get(0).getV()));
                    detEntity.setSort(sort);
                    powerMaxdemandDetService.add(detEntity);
                    sort ++;
                for (PowerMaxdemandDetEntity detEntity : detList0) {
                    // 插入第二层children
                    powerMaxdemandDetService.addList(detEntity.getId(), detEntity.getName(), occurTime);
                }
            }
            logger.info("RunPowerMaxdemandTask end");
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
@@ -19,6 +19,8 @@
        return selectPage(reqVO, new LambdaQueryWrapperX<PowerMaxdemandMainEntity>()
                .likeIfPresent(PowerMaxdemandMainEntity::getName, reqVO.getName())
                .eqIfPresent(PowerMaxdemandMainEntity::getCode, reqVO.getCode())
                .geIfPresent(PowerMaxdemandMainEntity::getOccurTime, reqVO.getStartTime())
                .le(PowerMaxdemandMainEntity::getOccurTime, reqVO.getEndTime())
                .orderByDesc(PowerMaxdemandMainEntity::getOccurTime));
    }
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerCapacitorHisEntity.java
@@ -5,6 +5,7 @@
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @author PanZhibao
@@ -50,5 +51,5 @@
    /**
     * 创建时间
     */
    private String createDate;
    private Date createDate;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
@@ -1,6 +1,5 @@
package com.iailab.module.ansteel.power.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
import java.util.Date;
@@ -15,7 +14,11 @@
    void add(PowerMaxdemandDetEntity entity);
    List<PowerMaxdemandDetEntity> addList(String relId, String groupName, Date occurTime);
    List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds);
    List<PowerMaxdemandDetEntity> selectListByRelId(String relId, Date occurTime);
    List<PowerMaxdemandDetEntity> selectListByRelId(String relId);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerCapacitorHisServiceImpl.java
@@ -9,8 +9,10 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * @author PanZhibao
@@ -32,4 +34,10 @@
                .orderByDesc("create_date");
        return powerCapacitorHisDao.selectList(queryWrapper);
    }
    public void add(PowerCapacitorHisEntity entity) {
        entity.setId(UUID.randomUUID().toString());
        entity.setCreateDate(new Date());
        powerCapacitorHisDao.insert(entity);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
@@ -3,15 +3,21 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.module.ansteel.power.dao.PowerMaxdemandDetDao;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
import com.iailab.module.ansteel.power.entity.PowerNetDropdownEntity;
import com.iailab.module.ansteel.power.service.PowerMaxdemandDetService;
import com.iailab.module.ansteel.power.service.PowerNetDropdownService;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.math.BigDecimal;
import java.util.*;
/**
 * @author PanZhibao
@@ -25,10 +31,59 @@
    @Resource
    private PowerMaxdemandDetDao powerMaxdemandDetDao;
    @Autowired
    private PowerNetDropdownService powerNetDropdownService;
    @Resource
    private DataPointApi dataPointApi;
    @Override
    public void add(PowerMaxdemandDetEntity entity) {
        entity.setId(UUID.randomUUID().toString());
        powerMaxdemandDetDao.insert(entity);
    }
    @Override
    public List<PowerMaxdemandDetEntity> addList(String relId, String groupName, Date occurTime) {
        List<PowerMaxdemandDetEntity> result = new ArrayList<>();
        Map<String, Object> params1 = new HashMap<>();
        params1.put("groupName", groupName);
        List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params1);
        if (CollectionUtils.isEmpty(dropdownList)) {
            log.info("dropdownList is empty");
            return result;
        }
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(occurTime);
        calendar1.add(Calendar.MINUTE, 1);
        int sort0 = 0;
        for (PowerNetDropdownEntity dropdown : dropdownList) {
            if (StringUtils.isBlank(dropdown.getExt1())) {
                log.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty");
                continue;
            }
            log.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1());
            ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO();
            pointValueQuery1.setStart(occurTime);
            pointValueQuery1.setEnd(calendar1.getTime());
            pointValueQuery1.setPointNo(dropdown.getExt1());
            List<ApiPointValueDTO> valueList1 = dataPointApi.queryPointHistoryValue(pointValueQuery1);
            if (CollectionUtils.isEmpty(valueList1)) {
                log.info("valueList1 is empty");
                continue;
            }
            PowerMaxdemandDetEntity detEntity0 = new PowerMaxdemandDetEntity();
            detEntity0.setRelId(relId);
            detEntity0.setCode(dropdown.getNodeCode());
            detEntity0.setName(dropdown.getNodeName());
            detEntity0.setOccurTime(occurTime);
            detEntity0.setMaxDemand(BigDecimal.valueOf(valueList1.get(0).getV()));
            detEntity0.setSort(sort0);
            this.add(detEntity0);
            sort0 ++;
            result.add(detEntity0);
        }
        return result;
    }
    @Override
@@ -42,6 +97,15 @@
        return powerMaxdemandDetDao.selectList(
                new QueryWrapper<PowerMaxdemandDetEntity>()
                        .eq("rel_id", relId)
                        .eq("occur_time", occurTime));
                        .eq("occur_time", occurTime)
                        .orderByAsc("sort"));
    }
    @Override
    public List<PowerMaxdemandDetEntity> selectListByRelId(String relId) {
        return powerMaxdemandDetDao.selectList(
                new QueryWrapper<PowerMaxdemandDetEntity>()
                        .eq("rel_id", relId)
                        .orderByAsc("sort"));
    }
}
doc/鞍钢数据接口文档_250512.doc
Binary files differ
doc/鞍钢数据接口文档_master.doc
Binary files differ