ansteel-biz/db/mysql.sql
@@ -253,6 +253,23 @@ ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '电力功率因数电网拓扑'; -- ---------------------------- -- 电力功率因数-发电机组实时状态 -- ---------------------------- DROP TABLE IF EXISTS `t_power_gen_status`; CREATE TABLE `t_power_gen_status` ( `id` varchar(36) NOT NULL COMMENT 'id', `name` varchar(50) NULL DEFAULT NULL COMMENT '机组名称', `cur_p` varchar(50) NULL DEFAULT NULL COMMENT '当前有功', `cur_q` varchar(50) NULL DEFAULT NULL COMMENT '当前无功', `cur_cos` varchar(50) NULL DEFAULT NULL COMMENT '当前功率因数', `limit_h` decimal(6, 3) NULL DEFAULT NULL COMMENT '上限', `limit_l` decimal(6, 3) NULL DEFAULT NULL COMMENT '下限', `status` int DEFAULT 0 COMMENT '是否超限(0:正常,1:超限)', `sort` int NULL DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '电力功率因数发电机组实时状态'; -- ---------------------------- -- 电力功率因数-电容器投运状态 -- ---------------------------- DROP TABLE IF EXISTS `t_power_capacitor_status`; @@ -282,7 +299,10 @@ UNIQUE INDEX `uk_name` (`name`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '电力功率因数管控功率因数主表'; -- ---------------------------- ALTER TABLE `t_power_control_main` ADD COLUMN `limit_h` decimal(6, 4) NULL DEFAULT NULL COMMENT '上限', ALTER TABLE `t_power_control_main` ADD COLUMN `limit_l` decimal(6, 4) NULL DEFAULT NULL COMMENT '下限', -- ---------------------------- -- 电力功率因数-管控功率因数从表 -- ---------------------------- DROP TABLE IF EXISTS `t_power_control_det`; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -3,10 +3,7 @@ import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.ansteel.api.dto.PowerCapacitorStatusDTO; import com.iailab.module.ansteel.api.dto.PowerControlDetDTO; import com.iailab.module.ansteel.api.dto.PowerControlMainDTO; import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO; import com.iailab.module.ansteel.api.dto.*; import com.iailab.module.ansteel.api.entity.*; import com.iailab.module.ansteel.api.service.*; import com.iailab.module.data.api.point.DataPointApi; @@ -53,6 +50,9 @@ @Autowired private PowerControlDetService powerControlDetService; @Autowired private PowerGenStatusDaoService powerGenStatusDaoService; @Resource private DataPointApi dataPointApi; @@ -86,6 +86,36 @@ return success(result); } @GetMapping("/gen-status/list") @Operation(summary = "功率因数-发电机组实时状态") public CommonResult<List<PowerGenStatusDTO>> getPowerGenStatusList(@RequestParam Map<String, Object> params) { List<PowerGenStatusEntity> list = powerGenStatusDaoService.list(params); List<PowerGenStatusDTO> result = ConvertUtils.sourceToTarget(list, PowerGenStatusDTO.class); if (CollectionUtils.isEmpty(result)) { return success(result); } for(PowerGenStatusDTO dto : result) { List<String> points = new ArrayList<>(); if (StringUtils.isNotBlank(dto.getCurP())) { points.add(dto.getCurP()); } if (StringUtils.isNotBlank(dto.getCurQ())) { points.add(dto.getCurQ()); } if (!CollectionUtils.isEmpty(points)) { Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); if (pointsRealValue.get(dto.getCurP()) != null) { dto.setCurP(pointsRealValue.get(dto.getCurP()).toString()); } if (pointsRealValue.get(dto.getCurQ()) != null) { dto.setCurQ(pointsRealValue.get(dto.getCurQ()).toString()); } } } return success(result); } @GetMapping("/capacitor-status/list") @Operation(summary = "功率因数-电容器投运状态") public CommonResult<List<PowerCapacitorStatusDTO>> getPowerCapacitorStatusList(@RequestParam Map<String, Object> params) { @@ -100,6 +130,20 @@ return success(ConvertUtils.sourceToTarget(list, PowerControlMainDTO.class)); } @GetMapping("/control-main/update") @Operation(summary = "功率因数-管控变电站修改上下限") public CommonResult<Boolean> updatePowerControlMain(PowerControlMainDTO dto) { if (StringUtils.isBlank(dto.getId())) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST); } PowerControlMainEntity entity = new PowerControlMainEntity(); entity.setId(dto.getId()); entity.setLimitH(dto.getLimitH()); entity.setLimitL(dto.getLimitL()); powerControlMainService.update(entity); return success(true); } @GetMapping("/control-det/list") @Operation(summary = "功率因数-管控功率因数详情") public CommonResult<List<PowerControlDetDTO>> getPowerControlDetList(@RequestParam Map<String, Object> params) { ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/PowerGenStatusDao.java
对比新文件 @@ -0,0 +1,14 @@ package com.iailab.module.ansteel.api.dao; import com.iailab.framework.common.dao.BaseDao; import com.iailab.module.ansteel.api.entity.PowerGenStatusEntity; import org.apache.ibatis.annotations.Mapper; /** * @author PanZhibao * @Description * @createTime 2025年04月15日 */ @Mapper public interface PowerGenStatusDao extends BaseDao<PowerGenStatusEntity> { } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java
@@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** @@ -22,6 +23,12 @@ @Schema(description = "名称") private String name; @Schema(description = "上限") private BigDecimal limitH; @Schema(description = "下限") private BigDecimal limitL; @Schema(description = "备注") private String remark; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerGenStatusDTO.java
对比新文件 @@ -0,0 +1,38 @@ package com.iailab.module.ansteel.api.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** * @author PanZhibao * @Description * @createTime 2025年04月15日 */ @Data public class PowerGenStatusDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "id") private String id; @Schema(description = "机组名称") private String name; @Schema(description = "当前有功") private String curP; @Schema(description = "当前无功") private String curQ; @Schema(description = "上限") private BigDecimal limitH; @Schema(description = "下限") private BigDecimal limitL; @Schema(description = "排序") private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; /** * 电力功率因数电容器投运状态 * @@ -12,7 +14,8 @@ */ @Data @TableName("t_power_capacitor_status") public class PowerCapacitorStatusEntity { public class PowerCapacitorStatusEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** @@ -14,7 +15,8 @@ */ @Data @TableName("t_power_control_det") public class PowerControlDetEntity { public class PowerControlDetEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java
@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** * 电力功率因数管控功率因数主表 * @@ -12,21 +15,35 @@ */ @Data @TableName("t_power_control_main") public class PowerControlMainEntity { public class PowerControlMainEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private String id; /** * 名称 */ private String name; /** * 上限 */ private BigDecimal limitH; /** * 下限 */ private BigDecimal limitL; /** * 备注 */ private String remark; /** * 排序 */ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerGenStatusEntity.java
对比新文件 @@ -0,0 +1,55 @@ package com.iailab.module.ansteel.api.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** * 电力功率因数发电机组实时状态 * * @author PanZhibao * @Description * @createTime 2025年04月15日 */ @Data @TableName("t_power_gen_status") public class PowerGenStatusEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id */ @TableId private String id; /** * 机组名称 */ private String name; /** * 当前有功 */ private String curP; /** * 当前无功 */ private String curQ; /** * 上限 */ private BigDecimal limitH; /** * 下限 */ private BigDecimal limitL; /** * 是否超限(0:正常,1:超限) */ private Integer status; /** * 排序 */ private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; /** @@ -14,7 +15,8 @@ */ @Data @TableName("t_power_net_factor") public class PowerNetFactorEntity { public class PowerNetFactorEntity implements Serializable { private static final long serialVersionUID = 1L; /** * id ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java
@@ -15,4 +15,6 @@ PowerControlMainEntity getByName(String name); List<PowerControlMainEntity> list(Map<String, Object> params); void update(PowerControlMainEntity entity); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerGenStatusDaoService.java
对比新文件 @@ -0,0 +1,16 @@ package com.iailab.module.ansteel.api.service; import com.iailab.module.ansteel.api.entity.PowerGenStatusEntity; import java.util.List; import java.util.Map; /** * @author PanZhibao * @Description * @createTime 2025年04月15日 */ public interface PowerGenStatusDaoService { List<PowerGenStatusEntity> list(Map<String, Object> params); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java
@@ -36,4 +36,9 @@ queryWrapper.orderByAsc("sort"); return powerControlMainDao.selectList(queryWrapper); } @Override public void update(PowerControlMainEntity entity) { powerControlMainDao.deleteById(entity); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerGenStatusDaoServiceImpl.java
对比新文件 @@ -0,0 +1,33 @@ package com.iailab.module.ansteel.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.module.ansteel.api.dao.PowerGenStatusDao; import com.iailab.module.ansteel.api.entity.PowerGenStatusEntity; import com.iailab.module.ansteel.api.service.PowerGenStatusDaoService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; /** * @author PanZhibao * @Description * @createTime 2025年04月15日 */ @Slf4j @Service public class PowerGenStatusDaoServiceImpl implements PowerGenStatusDaoService { @Resource private PowerGenStatusDao PowerGenStatusDao; @Override public List<PowerGenStatusEntity> list(Map<String, Object> params) { QueryWrapper<PowerGenStatusEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.orderByAsc("sort"); return PowerGenStatusDao.selectList(queryWrapper); } }