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.docBinary files differ
doc/鞍钢数据接口文档_master.docBinary files differ