鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
2025-04-15 634d18758efbd8616d03945da447cc242c880491
功率因数-发电机组实时状态
已修改9个文件
已添加5个文件
276 ■■■■■ 文件已修改
ansteel-biz/db/mysql.sql 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/PowerGenStatusDao.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerControlMainDTO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerGenStatusDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerCapacitorStatusEntity.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlDetEntity.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerControlMainEntity.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerGenStatusEntity.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/PowerNetFactorEntity.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerControlMainService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/PowerGenStatusDaoService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerControlMainServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/PowerGenStatusDaoServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}