From 634d18758efbd8616d03945da447cc242c880491 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期二, 15 四月 2025 09:54:08 +0800 Subject: [PATCH] 功率因数-发电机组实时状态 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerGenStatusDaoServiceImpl.java | 33 ++++++ ansteel-biz/db/mysql.sql | 22 ++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/PowerGenStatusDao.java | 14 ++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java | 2 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java | 4 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java | 19 +++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerGenStatusDaoService.java | 16 +++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java | 52 +++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java | 7 + ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java | 5 + ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerGenStatusEntity.java | 55 +++++++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerGenStatusDTO.java | 38 +++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java | 4 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java | 5 14 files changed, 267 insertions(+), 9 deletions(-) diff --git a/ansteel-biz/db/mysql.sql b/ansteel-biz/db/mysql.sql index a5e08f4..3f91b0e 100644 --- a/ansteel-biz/db/mysql.sql +++ b/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`; diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java index b7f7676..fb210d5 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java +++ b/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) { diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/PowerGenStatusDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/PowerGenStatusDao.java new file mode 100644 index 0000000..04f7ee5 --- /dev/null +++ b/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> { +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java index f7715d2..a7f5ec1 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java +++ b/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; diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerGenStatusDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerGenStatusDTO.java new file mode 100644 index 0000000..defd770 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java index a8c88f6..e0ec5be 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java +++ b/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 diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java index 189088d..d5ef3e2 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java +++ b/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 diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java index 6098147..e100404 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java +++ b/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; + /** * 排序 */ diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerGenStatusEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerGenStatusEntity.java new file mode 100644 index 0000000..f131677 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java index 1522b16..ac4a338 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java +++ b/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 diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java index 24d9b95..eb537fb 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java +++ b/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); } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerGenStatusDaoService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerGenStatusDaoService.java new file mode 100644 index 0000000..e64e469 --- /dev/null +++ b/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); +} \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java index 61a9b08..4b5279d 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java +++ b/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); + } } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerGenStatusDaoServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerGenStatusDaoServiceImpl.java new file mode 100644 index 0000000..97c9d0b --- /dev/null +++ b/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); + + } +} \ No newline at end of file -- Gitblit v1.9.3