鞍钢鲅鱼圈能源管控系统后端代码
liriming
4 天以前 cf1ecf13ac4c3606371d16aa50f885b831a92e3e
Merge remote-tracking branch 'origin/master'

# Conflicts:
# doc/鞍钢数据接口文档_master.doc
已修改10个文件
已添加2个文件
186 ■■■■■ 文件已修改
ansteel-biz/db/mysql.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPowerMaxdemandTask.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java 15 ●●●●● 补丁 | 查看 | 原始文档 | 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/PowerMaxdemandMainService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/resources/application.yaml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_master.doc 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/db/mysql.sql
@@ -808,7 +808,7 @@
CREATE TABLE `t_power_maxdemand_main`
(
    `id`         varchar(36) NOT NULL COMMENT 'id',
    `occur_time` datetimeL COMMENT '发生时间',
    `occur_time` datetime COMMENT '发生时间',
    `code`       varchar(50) NULL DEFAULT NULL COMMENT '编号',
    `name`       varchar(50) NULL DEFAULT NULL COMMENT '名称',
    `max_demand` decimal(10, 2) NULL DEFAULT NULL COMMENT '最大需量',
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -2,12 +2,21 @@
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.enums.GlobalErrorCodeConstants;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.framework.common.util.object.BeanUtils;
import com.iailab.framework.common.util.object.ConvertUtils;
import com.iailab.framework.tenant.core.context.TenantContextHolder;
import com.iailab.module.ansteel.api.dto.*;
import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
import com.iailab.module.ansteel.common.utils.DecimalUtil;
import com.iailab.module.ansteel.job.dto.ScheduleJobDTO;
import com.iailab.module.ansteel.job.entity.ScheduleJobEntity;
import com.iailab.module.ansteel.job.service.ScheduleJobService;
import com.iailab.module.ansteel.job.vo.ScheduleJobReqVO;
import com.iailab.module.ansteel.power.entity.*;
import com.iailab.module.ansteel.power.service.*;
import com.iailab.module.data.api.point.DataPointApi;
@@ -20,7 +29,9 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
@@ -79,6 +90,11 @@
    @Autowired
    private PowerVoltageStatusService powerVoltageStatusService;
    @Autowired
    private PowerMaxdemandMainService powerMaxDemandMainService;
    @Autowired
    private PowerMaxdemandDetService powerMaxdemandDetService;
    @GetMapping("/net-factor/list")
    @Operation(summary = "功率因数-电网拓扑")
@@ -689,7 +705,7 @@
            }
            if (curValue == null) {
                log.info("curValue is null");
                for (PowerNetDropdownEntity netDropdown : dropdownList){
                for (PowerNetDropdownEntity netDropdown : dropdownList) {
                    PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class);
                    if (dto.getNodeCode().equals(nodeCode)) {
                        dto.setCurDemand(queryDto.getCurDemand());
@@ -707,7 +723,7 @@
                        pointValueMap.put(item.get("time").toString(), DecimalUtil.toBigDecimal(item.get("value")));
                    });
                    dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)));
                    dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)));
                    dto.setDataTime(curValue.getT());
                }
                result.add(dto);
@@ -1092,4 +1108,21 @@
        }
        return success(result);
    }
    @GetMapping("/power-maxDemand/page")
    @Operation(summary = "负荷移植-最大需量折叠分页列表")
    public CommonResult<PageResult<PowerMaxDemandMainDTO>> getPowerMaxDemandMainPage(@Validated PowerMaxDemandMainPageReqVO reqVO) {
        PageResult<PowerMaxDemandMainDTO> page = powerMaxDemandMainService.page(reqVO);
        List<String> parentIds = page.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));
        page.getList().forEach(
                dto -> dto.setChildren(childrenMap.getOrDefault(dto.getId(), Collections.emptyList()))
        );
        return success(BeanUtils.toBean(page, PowerMaxDemandMainDTO.class));
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java
对比新文件
@@ -0,0 +1,39 @@
package com.iailab.module.ansteel.api.dto;
import com.baomidou.mybatisplus.annotation.TableId;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @author dyk
 * @date 2025年04月18日
 */
@Data
public class PowerMaxDemandMainDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "id")
    private String id;
    @Schema(description = "发生时间")
    private Date occurTime;
    @Schema(description = "编号")
    private String code;
    @Schema(description = "名称")
    private String name;
    @Schema(description = "最大需量")
    private BigDecimal maxDemand;
    @Schema(description = "最大需量详情")
    private List<PowerMaxdemandDetEntity> children;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java
对比新文件
@@ -0,0 +1,28 @@
package com.iailab.module.ansteel.api.vo;
import com.iailab.framework.common.pojo.PageParam;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @author dyk
 * @date 2025年05月09日
 */
@Data
public class PowerMaxDemandMainPageReqVO extends PageParam {
    @Schema(description = "编号")
    private String name;
    @Schema(description = "名称")
    private String code;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPowerMaxdemandTask.java
@@ -71,17 +71,18 @@
                return;
            }
            for (PowerDemandEntity demand : demandList) {
                // 查询今天的最大需量
                logger.info("查询今天的最大需量");
                ApiPointValueQueryDTO pointValueQuery0 = new ApiPointValueQueryDTO();
                pointValueQuery0.setStart(dayStart);
                pointValueQuery0.setEnd(nowTime);
                pointValueQuery0.setPointNo(demand.getCurDemand());
                Map<String, Object> maxValue = dataPointApi.queryPointMaxValue(pointValueQuery0);
                BigDecimal todayMax = BigDecimal.ZERO;
                if (CollectionUtils.isEmpty(maxValue) && maxValue.containsKey(demand.getCurDemand())) {
                    todayMax = new BigDecimal(maxValue.get(demand.getCurDemand()).toString());
                if (CollectionUtils.isEmpty(maxValue)) {
                    logger.info("maxValue is empty");
                    continue;
                }
                BigDecimal todayMax = new BigDecimal(maxValue.get(demand.getCurDemand()).toString());
                logger.info("todayMax=" + todayMax);
                List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(pointValueQuery0);
                if (CollectionUtils.isEmpty(valueList)) {
                    logger.info("valueList is empty");
@@ -95,7 +96,7 @@
                    }
                }
                // 查询本月需量发生记录
                logger.info("查询本月需量发生记录");
                BigDecimal monthMax = powerMaxdemandMainService.getMax(demand.getCode(), monStart, nowTime);
                // 保存记录
@@ -110,19 +111,21 @@
                String mainId = powerMaxdemandMainService.add(mainEntity);
                Map<String, Object> params1 = new HashMap<>();
                params1.put("pCode", demand.getCode());
                params1.put("groupName", demand.getName());
                List<PowerNetDropdownEntity> dropdownList = powerNetDropdownService.list(params1);
                if (CollectionUtils.isEmpty(dropdownList)) {
                    logger.info("dropdownList is empty");
                    continue;
                }
                Calendar calendar1 = Calendar.getInstance();
                calendar1.setTime(occurTime);
                calendar1.add(Calendar.MINUTE, 1);
                for (PowerNetDropdownEntity dropdown : dropdownList) {
                    if (StringUtils.isBlank(dropdown.getExt1())) {
                        logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() is empty");
                        continue;
                    }
                    Calendar calendar1 = Calendar.getInstance();
                    calendar1.setTime(occurTime);
                    calendar1.add(Calendar.MINUTE, 1);
                    logger.info(dropdown.getNodeCode() + ":dropdown.getExt1() = " + dropdown.getExt1());
                    ApiPointValueQueryDTO pointValueQuery1 = new ApiPointValueQueryDTO();
                    pointValueQuery1.setStart(occurTime);
                    pointValueQuery1.setEnd(calendar1.getTime());
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
@@ -1,8 +1,15 @@
package com.iailab.module.ansteel.power.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * @author PanZhibao
@@ -10,5 +17,11 @@
 * @createTime 2025年05月07日
 */
@Mapper
public interface PowerMaxdemandMainDao extends BaseDao<PowerMaxdemandMainEntity> {
public interface PowerMaxdemandMainDao extends BaseMapperX<PowerMaxdemandMainEntity> {
    IPage<PowerMaxDemandMainDTO> getPage(IPage<PowerMaxdemandMainEntity> page, @Param("params") PowerMaxDemandMainPageReqVO reqVO);
    default IPage<PowerMaxDemandMainDTO> selectPage(PowerMaxDemandMainPageReqVO params) {
        return getPage(getPage(params), params);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
@@ -1,6 +1,9 @@
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.List;
/**
 * @author PanZhibao
@@ -10,4 +13,6 @@
public interface PowerMaxdemandDetService {
    void add(PowerMaxdemandDetEntity entity);
    List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java
@@ -1,9 +1,13 @@
package com.iailab.module.ansteel.power.service;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
/**
 * @author PanZhibao
@@ -12,7 +16,10 @@
 */
public interface PowerMaxdemandMainService {
    PageResult<PowerMaxDemandMainDTO> page(PowerMaxDemandMainPageReqVO reqVO);
    String add(PowerMaxdemandMainEntity entity);
    BigDecimal getMax(String code, Date start, Date end);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
@@ -1,5 +1,6 @@
package com.iailab.module.ansteel.power.service.impl;
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.service.PowerMaxdemandDetService;
@@ -7,6 +8,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
/**
@@ -26,4 +29,10 @@
        entity.setId(UUID.randomUUID().toString());
        powerMaxdemandDetDao.insert(entity);
    }
    @Override
    public List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds) {
        return powerMaxdemandDetDao.selectList(
                new QueryWrapper<PowerMaxdemandDetEntity>().in("rel_id", relIds));
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java
@@ -1,20 +1,25 @@
package com.iailab.module.ansteel.power.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iailab.framework.common.constant.Constant;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
import com.iailab.module.ansteel.power.dao.PowerMaxdemandMainDao;
import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
import com.iailab.module.ansteel.power.service.PowerMaxdemandMainService;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
import static org.bouncycastle.pqc.jcajce.provider.util.WrapUtil.getWrapper;
/**
 * @author PanZhibao
@@ -29,6 +34,12 @@
    private PowerMaxdemandMainDao powerMaxdemandMainDao;
    @Override
    public PageResult<PowerMaxDemandMainDTO> page(PowerMaxDemandMainPageReqVO reqVO) {
        IPage<PowerMaxDemandMainDTO> page = powerMaxdemandMainDao.selectPage(reqVO);
        return new PageResult<>(page.getRecords(), page.getTotal());
    }
    @Override
    public String add(PowerMaxdemandMainEntity entity) {
        entity.setId(UUID.randomUUID().toString());
        powerMaxdemandMainDao.insert(entity);
ansteel-biz/src/main/resources/application.yaml
@@ -179,6 +179,8 @@
      - t_power_adjusted_factor
      - t_power_net_dropdown
      - t_power_voltage_status
      - t_power_maxdemand_main
      - t_power_maxdemand_det
      - t_peak_valley_flat
      - t_coking_overview_ind
      - t_gas_pred_conf
doc/鞍钢数据接口文档_master.doc
Binary files differ