鞍钢鲅鱼圈能源管控系统后端代码
liriming
2025-05-21 6b21f087b2e9ae6dacdb53f6b0c6ba8880dac160
新增电价接口
已修改6个文件
已添加10个文件
363 ■■■■■ 文件已修改
ansteel-biz/db/mysql.sql 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerPriceDetDTO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerPriceMainDTO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerPriceDetDao.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerPriceMainDao.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerPriceDetEntity.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerPriceMainEntity.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerPriceDetService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerPriceMainService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerPriceDetServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerPriceMainServiceImpl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/resources/application.yaml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_dev_li.doc 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_master.doc 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/db/mysql.sql
@@ -863,6 +863,7 @@
    `name`    varchar(20) NULL DEFAULT NULL COMMENT '时段名称(尖,峰,谷,平)',
    `start`   varchar(50) NULL DEFAULT NULL COMMENT '时段开始(00:00)',
    `end`     varchar(50) NULL DEFAULT NULL COMMENT '时段结束(00:00)',
    `price`   varchar(20) NULL DEFAULT NULL COMMENT '电价',
    `sort`    int NULL DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`) USING BTREE,
    key       idx_main_id (main_id)
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -1,24 +1,16 @@
package com.iailab.module.ansteel.api.controller.admin;
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;
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.PowerCapacitorHisPageReqVO;
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;
@@ -31,9 +23,7 @@
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;
@@ -99,6 +89,9 @@
    @Autowired
    private PowerMaxdemandDetService powerMaxdemandDetService;
    @Autowired
    private PowerPriceMainService powerPriceMainService;
    public static final String VALUE = "value";
@@ -1213,7 +1206,7 @@
    @PostMapping("/power-maxdemand/det-list")
    @Operation(summary = "负荷移植-最大需量发生记录详情")
    public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestParam Map<String, Object> params) {
    public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestBody Map<String, Object> params) {
        String relId = (String) params.get("relId");
        if (StringUtils.isBlank(relId)) {
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
@@ -1221,4 +1214,17 @@
        List<PowerMaxdemandDetEntity> list = powerMaxdemandDetService.selectListByRelId(relId);
        return success(ConvertUtils.sourceToTarget(list, PowerMaxdemandDetDTO.class));
    }
    @GetMapping("/power-price/list")
    @Operation(summary = "获取峰谷平电价信息")
    public CommonResult<List<PowerPriceMainDTO>> getPowerPriceList(@RequestParam Map<String, Object> params) {
        List<PowerPriceMainDTO> result = powerPriceMainService.list(params);
        return success(result);
    }
    @PostMapping("/power-price/save")
    @Operation(summary = "保存峰谷平电价信息")
    public CommonResult<Boolean> savePowerPriceList(@RequestBody PowerPriceMainDTO mainDTO) {
        return success(powerPriceMainService.save(mainDTO));
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerPriceDetDTO.java
对比新文件
@@ -0,0 +1,39 @@
package com.iailab.module.ansteel.api.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
 * 峰谷平电价方案表
 *
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
@Data
public class PowerPriceDetDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "id")
    private String id;
    @Schema(description = "主标id")
    private String mainId;
    @Schema(description = "名称")
    private String name;
    @Schema(description = "时段开始")
    private String start;
    @Schema(description = "时段结束")
    private String end;
    @Schema(description = "电价")
    private String price;
    @Schema(description = "排序")
    private Integer sort;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerPriceMainDTO.java
对比新文件
@@ -0,0 +1,41 @@
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;
import java.util.List;
/**
 * 峰谷平电价方案表
 *
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
@Data
public class PowerPriceMainDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "id")
    private String id;
    @Schema(description = "编码")
    private String code;
    @Schema(description = "名称")
    private String name;
    @Schema(description = "是否有效(1-有效 0-无效)")
    private Integer status;
    @Schema(description = "创建者")
    private Long creator;
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;
    private List<PowerPriceDetDTO> detList;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
@@ -10,6 +10,8 @@
    int IS_ENABLE = 1;
    int IS_UNENABLE = 0;
    BigDecimal BAD_VALUE = new BigDecimal("-2");
    BigDecimal ZERO_VALUE = new BigDecimal("0");
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerPriceDetDao.java
对比新文件
@@ -0,0 +1,10 @@
package com.iailab.module.ansteel.power.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.power.entity.PowerPriceDetEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PowerPriceDetDao extends BaseDao<PowerPriceDetEntity> {
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerPriceMainDao.java
对比新文件
@@ -0,0 +1,13 @@
package com.iailab.module.ansteel.power.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.power.entity.PowerPriceMainEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;
@Mapper
public interface PowerPriceMainDao extends BaseDao<PowerPriceMainEntity> {
    @Update("update t_power_price_main set status = 0 where status = 1")
    void updateStatus();
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerPriceDetEntity.java
对比新文件
@@ -0,0 +1,37 @@
package com.iailab.module.ansteel.power.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
 * @description: 峰谷平电价时段表
 * @author: lirm
 * @date: 2025/05/21
 **/
@Data
@TableName("t_power_price_det")
public class PowerPriceDetEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String mainId;
    private String name;
    private String start;
    private String end;
    private String price;
    private Integer sort;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerPriceMainEntity.java
对比新文件
@@ -0,0 +1,38 @@
package com.iailab.module.ansteel.power.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.UUID;
/**
 * @description: 峰谷平电价方案表
 * @author: lirm
 * @date: 2025/05/21
 **/
@Data
@TableName("t_power_price_main")
public class PowerPriceMainEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String code;
    private String name;
    private Integer status;
    private Long creator;
    private Date createDate;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerPriceDetService.java
对比新文件
@@ -0,0 +1,14 @@
package com.iailab.module.ansteel.power.service;
import com.iailab.module.ansteel.api.dto.PowerPriceDetDTO;
import java.util.List;
/**
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
public interface PowerPriceDetService {
    List<PowerPriceDetDTO> getByMainId(String mainId);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerPriceMainService.java
对比新文件
@@ -0,0 +1,17 @@
package com.iailab.module.ansteel.power.service;
import com.iailab.module.ansteel.api.dto.PowerPriceMainDTO;
import java.util.List;
import java.util.Map;
/**
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
public interface PowerPriceMainService {
    List<PowerPriceMainDTO> list(Map<String, Object> params);
    Boolean save(PowerPriceMainDTO mainDTO);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerPriceDetServiceImpl.java
对比新文件
@@ -0,0 +1,35 @@
package com.iailab.module.ansteel.power.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.util.object.ConvertUtils;
import com.iailab.module.ansteel.api.dto.PowerPriceDetDTO;
import com.iailab.module.ansteel.power.dao.PowerPriceDetDao;
import com.iailab.module.ansteel.power.entity.PowerPriceDetEntity;
import com.iailab.module.ansteel.power.service.PowerPriceDetService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
@Slf4j
@Service
public class PowerPriceDetServiceImpl implements PowerPriceDetService {
    @Autowired
    private PowerPriceDetDao powerPriceDetDao;
    @Override
    public List<PowerPriceDetDTO> getByMainId(String mainId) {
        QueryWrapper<PowerPriceDetEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("main_id", mainId);
        queryWrapper.orderByAsc("sort");
        return ConvertUtils.sourceToTarget(powerPriceDetDao.selectList(queryWrapper),PowerPriceDetDTO.class);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerPriceMainServiceImpl.java
对比新文件
@@ -0,0 +1,84 @@
package com.iailab.module.ansteel.power.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.framework.common.util.object.ConvertUtils;
import com.iailab.framework.security.core.util.SecurityFrameworkUtils;
import com.iailab.module.ansteel.api.dto.PowerPriceDetDTO;
import com.iailab.module.ansteel.api.dto.PowerPriceMainDTO;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.power.dao.PowerPriceDetDao;
import com.iailab.module.ansteel.power.dao.PowerPriceMainDao;
import com.iailab.module.ansteel.power.entity.PowerPriceDetEntity;
import com.iailab.module.ansteel.power.entity.PowerPriceMainEntity;
import com.iailab.module.ansteel.power.service.PowerPriceDetService;
import com.iailab.module.ansteel.power.service.PowerPriceMainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @author lirm
 * @since 1.0.0 2025-05-21
 */
@Slf4j
@Service
public class PowerPriceMainServiceImpl implements PowerPriceMainService {
    @Resource
    private PowerPriceMainDao powerPriceMainDao;
    @Resource
    private PowerPriceDetDao powerPriceDetDao;
    @Resource
    private PowerPriceDetService powerPriceDetService;
    @Override
    public List<PowerPriceMainDTO> list(Map<String, Object> params) {
        PowerPriceMainEntity powerPriceMainEntity = new PowerPriceMainEntity();
        List<PowerPriceMainEntity> entitylist = powerPriceMainDao.selectList(new QueryWrapper<>(powerPriceMainEntity).eq("status", CommonConstant.IS_ENABLE));
        List<PowerPriceMainDTO> dtolist = ConvertUtils.sourceToTarget(entitylist, PowerPriceMainDTO.class);
        dtolist.stream().map(item -> {
            List<PowerPriceDetDTO> detList = powerPriceDetService.getByMainId(item.getId());
            item.setDetList(detList);
            return item;
        }).collect(Collectors.toList());
        return dtolist;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean save(PowerPriceMainDTO mainDTO) {
        if (ObjectUtils.isEmpty(mainDTO)) {
            return null;
        }
        powerPriceMainDao.updateStatus();
        if (!CollectionUtils.isEmpty(mainDTO.getDetList())) {
            PowerPriceMainEntity powerPriceMainEntity = ConvertUtils.sourceToTarget(mainDTO, PowerPriceMainEntity.class);
            powerPriceMainEntity.setCode(DateUtils.format(new Date(), "yyyyMMddHHmmss"));
            powerPriceMainEntity.setStatus(CommonConstant.IS_ENABLE);
            powerPriceMainEntity.setCreator(SecurityFrameworkUtils.getLoginUser().getId());
            powerPriceMainEntity.setCreateDate(new Date());
            powerPriceMainDao.insert(powerPriceMainEntity);
            for (int i = 0; i < mainDTO.getDetList().size(); i++) {
                PowerPriceDetEntity powerPriceDetEntity = ConvertUtils.sourceToTarget(mainDTO.getDetList().get(i), PowerPriceDetEntity.class);
                powerPriceDetEntity.setMainId(powerPriceMainEntity.getId());
                powerPriceDetEntity.setSort(i + 1);
                powerPriceDetDao.insert(powerPriceDetEntity);
            }
        }
        return true;
    }
}
ansteel-biz/src/main/resources/application.yaml
@@ -4,7 +4,7 @@
    name: ansteel-server
  profiles:
    active: prod
    active: dev
  cloud:
    nacos:
@@ -184,6 +184,8 @@
      - t_peak_valley_flat
      - t_coking_overview_ind
      - t_gas_pred_conf
      - t_power_price_main
      - t_power_price_det
  swagger:
    title: 鞍钢鲅鱼圈能源管控系统
    description: 鞍钢鲅鱼圈能源管控系统
doc/鞍钢数据接口文档_dev_li.doc
Binary files differ
doc/鞍钢数据接口文档_master.doc
Binary files differ