鞍钢鲅鱼圈能源管控系统后端代码
2f5864f98743fcc1b32d1eb94015adf70c1a9bf5..1ecada5de50a79b5fc9ecca17e47e32dd07a692c
9 天以前 潘志宝
功率因数-电网拓扑预警信息
1ecada 对比 | 目录
9 天以前 潘志宝
母线电压状态
ffd112 对比 | 目录
9 天以前 潘志宝
功率因数-电网拓扑 增加有功无功预警
145f3c 对比 | 目录
9 天以前 潘志宝
母线电压状态
aae955 对比 | 目录
9 天以前 潘志宝
Merge branch 'master' of http://dlindusit.com:53929/r/ansteel
5a6b8f 对比 | 目录
9 天以前 潘志宝
limitH
596bc4 对比 | 目录
9 天以前 潘志宝
t_power_voltage_status
20d110 对比 | 目录
9 天以前 dengzedong
占比-月累计
de3e67 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
5de4db 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
692952 对比 | 目录
9 天以前 dengzedong
占比-月累计
345b3d 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
37cb1b 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
54a2a2 对比 | 目录
9 天以前 dengzedong
占比-月累计
c3a0a2 对比 | 目录
9 天以前 潘志宝
Merge remote-tracking branch 'origin/master'
eb23bc 对比 | 目录
9 天以前 潘志宝
功率因数-母线电压状态
5c8d17 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
8c7333 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
7ec870 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
6d8703 对比 | 目录
9 天以前 liriming
Merge remote-tracking branch 'origin/master'
2cf82d 对比 | 目录
9 天以前 liriming
定时任务修改
61d871 对比 | 目录
9 天以前 潘志宝
通用-获取预测数据图表 产消历史
2cef9e 对比 | 目录
9 天以前 潘志宝
Merge remote-tracking branch 'origin/master'
ed2835 对比 | 目录
9 天以前 dengzedong
endTime startTime 判断空串
840ad8 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
833f18 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
3d4783 对比 | 目录
9 天以前 dengzedong
getHistoryValue
e09a08 对比 | 目录
9 天以前 dengzedong
getHistoryValue
56a46d 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
e99b85 对比 | 目录
9 天以前 潘志宝
实测需量有功功率历史(多code)
d74a61 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
0ff042 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
1e3177 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
f601f0 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
30c97b 对比 | 目录
9 天以前 潘志宝
Merge remote-tracking branch 'origin/master'
dabf0f 对比 | 目录
9 天以前 潘志宝
TraceProcessTypeEnum
cf04e4 对比 | 目录
9 天以前 潘志宝
TraceProcessTypeEnum
4a6063 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
a99e3e 对比 | 目录
9 天以前 潘志宝
Merge remote-tracking branch 'origin/master'
cf2e8e 对比 | 目录
9 天以前 潘志宝
负荷移植-实测需量,有功功率 历史(多code)
40fb78 对比 | 目录
9 天以前 dongyukun
Merge remote-tracking branch 'origin/master'
ad3a9c 对比 | 目录
9 天以前 dongyukun
峰谷平占比计算
75c0a5 对比 | 目录
9 天以前 潘志宝
负荷移植-实测需量,有功功率 历史(多code)
d7f9a4 对比 | 目录
9 天以前 潘志宝
溯源查询接口增加 processType
31c664 对比 | 目录
9 天以前 潘志宝
溯源查询接口增加 processType
d99504 对比 | 目录
已修改25个文件
已添加6个文件
843 ■■■■ 文件已修改
ansteel-biz/db/mysql.sql 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java 227 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerDemandHisReqDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorDTO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerVoltageStatusDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceSuggestService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceIndServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceSuggestServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelBMTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelGXJTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelLJTask.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerVoltageStatusDao.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PeakValleyFlatEntity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerNetFactorEntity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerVoltageStatusEntity.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerVoltageStatusService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerVoltageStatusServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/resources/application.yaml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/鞍钢数据接口文档_master.doc 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/db/mysql.sql
@@ -250,6 +250,15 @@
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `node_code` varchar(50) NULL DEFAULT NULL COMMENT '节点编号';
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `p_limit_l` decimal(9, 3) NULL DEFAULT NULL COMMENT '有功下限';
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `p_limit_h` decimal(9, 3) NULL DEFAULT NULL COMMENT '有功上限';
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `q_limit_l` varchar(50) NULL DEFAULT NULL COMMENT '无功下限';
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `q_limit_h` varchar(50) NULL DEFAULT NULL COMMENT '无功上限';
-- ----------------------------
-- 电力功率因数-发电机组实时状态
-- ----------------------------
@@ -708,6 +717,21 @@
    UNIQUE key uk_code (code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='调整后的功率因数与无功倒送量';
-- ----------------------------
-- 功率因数-母线电压状态
-- ----------------------------
CREATE TABLE `t_power_voltage_status`
(
    `id`    varchar(36) NOT NULL COMMENT 'id',
    `code`  varchar(50),
    `name`  varchar(50)   DEFAULT NULL COMMENT '机组名称',
    `point` varchar(50)   DEFAULT NULL COMMENT '测点',
    `limit_h` decimal(8, 2) DEFAULT NULL COMMENT '阈值',
    `sort`  int NULL DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='功率因数-母线电压状态';
CREATE TABLE `t_coking_overview_ind`
(
    `id`           varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'id',
@@ -728,21 +752,21 @@
-- ----------------------------
CREATE TABLE `t_power_net_dropdown`
(
    `id`        varchar(36) NOT NULL,
    `p_code`    varchar(50)                                                  DEFAULT NULL COMMENT '父编码',
    `id`         varchar(36) NOT NULL,
    `p_code`     varchar(50)                                                  DEFAULT NULL COMMENT '父编码',
    `group_name` varchar(50) NULL DEFAULT NULL COMMENT '分组名称',
    `node_code` varchar(50)                                                  DEFAULT NULL COMMENT '编码',
    `node_name` varchar(50)                                                  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 '当前功率因数',
    `ext1`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段1',
    `ext2`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段2',
    `ext3`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段3',
    `ext4`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段4',
    `ext5`      varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段5',
    `sort`      int                                                          DEFAULT NULL COMMENT '排序',
    `node_code`  varchar(50)                                                  DEFAULT NULL COMMENT '编码',
    `node_name`  varchar(50)                                                  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 '当前功率因数',
    `ext1`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段1',
    `ext2`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段2',
    `ext3`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段3',
    `ext4`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段4',
    `ext5`       varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拓展字段5',
    `sort`       int                                                          DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`),
    key         uk_p_code (p_code),
    key          uk_p_code (p_code),
    UNIQUE key uk_node_code (node_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='电力下拉关系表';
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
@@ -12,6 +12,7 @@
import com.iailab.module.ansteel.coking.entity.*;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
import com.iailab.module.data.api.ind.IndItemApi;
import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
@@ -196,6 +197,21 @@
    @GetMapping("/trace-suggest/list")
    @Operation(summary = "焦化工序-异常溯源及优化建议")
    public CommonResult<List<CokingTraceSuggestDTO>> getTraceSuggestList(@RequestParam Map<String, Object> params) {
        String relId = (String) params.get("relId");
        String processType = (String) params.get("processType");
        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
            // 查找最新的relId
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
            if (analyInd != null) {
                relId = analyInd.getRelId();
                params.put("relId", relId);
            } else {
                return success(new ArrayList<>());
            }
        }
        List<CokingTraceSuggestEntity> list = cokingTraceSuggestService.list(params);
        return success(ConvertUtils.sourceToTarget(list, CokingTraceSuggestDTO.class));
    }
@@ -203,6 +219,21 @@
    @GetMapping("/trace-ind/list")
    @Operation(summary = "焦化工序-异常溯源指标")
    public CommonResult<List<CokingTraceIndDTO>> getTraceIndList(@RequestParam Map<String, Object> params) {
        String relId = (String) params.get("relId");
        String processType = (String) params.get("processType");
        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
            // 查找最新的relId
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
            if (analyInd != null) {
                relId = analyInd.getRelId();
                params.put("relId", relId);
            } else {
                return success(new ArrayList<>());
            }
        }
        List<CokingTraceIndEntity> list = cokingTraceIndService.list(params);
        return success(ConvertUtils.sourceToTarget(list, CokingTraceIndDTO.class));
    }
@@ -210,6 +241,21 @@
    @GetMapping("/trace-deviation/list")
    @Operation(summary = "焦化工序-异常溯源影响因素偏差值")
    public CommonResult<List<CokingTraceDeviationDTO>> getTraceDeviationList(@RequestParam Map<String, Object> params) {
        String relId = (String) params.get("relId");
        String processType = (String) params.get("processType");
        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
            // 查找最新的relId
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
            if (analyInd != null) {
                relId = analyInd.getRelId();
                params.put("relId", relId);
            } else {
                return success(new ArrayList<>());
            }
        }
        List<CokingTraceDeviationEntity> list = cokingTraceDeviationService.list(params);
        return success(ConvertUtils.sourceToTarget(list, CokingTraceDeviationDTO.class));
    }
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/DataController.java
@@ -1,8 +1,16 @@
package com.iailab.module.ansteel.api.controller.admin;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.api.dto.*;
import com.iailab.module.ansteel.api.service.DataService;
import com.iailab.module.ansteel.coking.dto.CokingTraceChartDTO;
import com.iailab.module.ansteel.coking.dto.CokingTraceDataDTO;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.api.point.dto.ApiPointValueDTO;
import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO;
import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestReqVO;
import io.swagger.v3.oas.annotations.Operation;
@@ -10,6 +18,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.*;
import static com.iailab.framework.common.pojo.CommonResult.success;
@@ -59,5 +68,11 @@
        return success(dataService.ignoreSuggest(ReqVO));
    }
    @GetMapping("/data/history-value")
    @Operation(summary = "指标/测点历史数据")
    public CommonResult<List<Object[]>> getHistoryValue(@RequestParam Map<String, Object> params) {
        return success(dataService.getHistoryValue(params));
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -77,11 +77,14 @@
    @Autowired
    private PowerNetDropdownService powerNetDropdownService;
    @Autowired
    private PowerVoltageStatusService powerVoltageStatusService;
    @GetMapping("/net-factor/list")
    @Operation(summary = "功率因数-电网拓扑")
    public CommonResult<List<PowerNetFactorDTO>> getPowerNetFactorList(@RequestParam Map<String, Object> params) {
        List<PowerNetFactorEntity> list = powerNetFactorService.list(params);
        List<PowerNetFactorDTO> result = ConvertUtils.sourceToTarget(list, PowerNetFactorDTO.class);
        List<PowerNetFactorDTO> result = new ArrayList<>();
        if (CollectionUtils.isEmpty(result)) {
            return success(result);
        }
@@ -91,72 +94,102 @@
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        for (PowerNetFactorDTO dto : result) {
        for (PowerNetFactorEntity entity : list) {
            PowerNetFactorDTO powerNetFactorDTO = new PowerNetFactorDTO();
            powerNetFactorDTO.setId(entity.getId());
            powerNetFactorDTO.setGroupName(entity.getGroupName());
            powerNetFactorDTO.setNodeCode(entity.getNodeCode());
            powerNetFactorDTO.setNodeName(entity.getNodeName());
            boolean cosFlag = false;
            try {
                List<String> points = new ArrayList<>();
                if (StringUtils.isNotBlank(dto.getCurP())) {
                    points.add(dto.getCurP());
                if (StringUtils.isNotBlank(entity.getCurP())) {
                    points.add(entity.getCurP());
                }
                if (StringUtils.isNotBlank(dto.getCurQ())) {
                    points.add(dto.getCurQ());
                if (StringUtils.isNotBlank(entity.getCurQ())) {
                    points.add(entity.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(entity.getCurP()) != null) {
                        powerNetFactorDTO.setCurP(new BigDecimal(pointsRealValue.get(entity.getCurP()).toString()));
                    }
                    if (pointsRealValue.get(dto.getCurQ()) != null) {
                        dto.setCurQ(pointsRealValue.get(dto.getCurQ()).toString());
                    if (pointsRealValue.get(entity.getCurQ()) != null) {
                        powerNetFactorDTO.setCurQ(new BigDecimal(pointsRealValue.get(entity.getCurQ()).toString()));
                    }
                    if (pointsRealValue.get(dto.getCurCos()) != null) {
                        dto.setCurCos(pointsRealValue.get(dto.getCurCos()).toString());
                    if (pointsRealValue.get(entity.getCurCos()) != null) {
                        powerNetFactorDTO.setCurCos(new BigDecimal(pointsRealValue.get(entity.getCurCos()).toString()));
                        cosFlag = true;
                    }
                }
            } catch (Exception ex) {
                log.info(dto.getNodeName() + "获取当前值异常" + ex.getMessage());
                log.info(entity.getNodeName() + "获取当前值异常" + ex.getMessage());
            }
            try {
                PredictLastValueReqVO reqVO = new PredictLastValueReqVO();
                reqVO.setPredictTime(calendar.getTime());
                List<String[]> itemNos = new ArrayList<>();
                if (StringUtils.isNotBlank(dto.getPreP())) {
                    itemNos.add(dto.getPreP().split(","));
                if (StringUtils.isNotBlank(entity.getPreP())) {
                    itemNos.add(entity.getPreP().split(","));
                }
                if (StringUtils.isNotBlank(dto.getPreQ())) {
                    itemNos.add(dto.getPreQ().split(","));
                if (StringUtils.isNotBlank(entity.getPreQ())) {
                    itemNos.add(entity.getPreQ().split(","));
                }
                if (StringUtils.isNotBlank(dto.getPreCos())) {
                    itemNos.add(dto.getPreCos().split(","));
                if (StringUtils.isNotBlank(entity.getPreCos())) {
                    itemNos.add(entity.getPreCos().split(","));
                }
                if (!CollectionUtils.isEmpty(itemNos)) {
                    reqVO.setItemNos(itemNos);
                    log.info("reqVO=" + JSONObject.toJSONString(reqVO));
                    Map<String, BigDecimal> preValues = mcsApi.getPredictValueByTime(reqVO);
                    if (StringUtils.isNotBlank(dto.getPreP()) && preValues.get(dto.getPreP()) != null) {
                        dto.setPreP(preValues.get(dto.getPreP()).toString());
                    if (StringUtils.isNotBlank(entity.getPreP()) && preValues.get(entity.getPreP()) != null) {
                        powerNetFactorDTO.setPreP(new BigDecimal(preValues.get(entity.getPreP()).toString()));
                    }
                    if (StringUtils.isNotBlank(dto.getPreQ()) && preValues.get(dto.getPreQ()) != null) {
                        dto.setPreQ(preValues.get(dto.getPreQ()).toString());
                    if (StringUtils.isNotBlank(entity.getPreQ()) && preValues.get(entity.getPreQ()) != null) {
                        powerNetFactorDTO.setPreQ(new BigDecimal(preValues.get(entity.getPreQ()).toString()));
                    }
                    if (StringUtils.isNotBlank(dto.getPreCos()) && preValues.get(dto.getPreCos()) != null) {
                        dto.setPreCos(preValues.get(dto.getPreCos()).toString());
                    if (StringUtils.isNotBlank(entity.getPreCos()) && preValues.get(entity.getPreCos()) != null) {
                        powerNetFactorDTO.setPreCos(new BigDecimal(preValues.get(entity.getPreCos()).toString()));
                    }
                }
            } catch (Exception ex) {
                log.info(dto.getNodeName() + "获取预测值异常," + ex.getMessage());
                log.info(entity.getNodeName() + "获取预测值异常," + ex.getMessage());
            }
            // 设置状态
            if (cosFlag && StringUtils.isNotBlank(dto.getCurCos()) && NumberUtil.isNumber(dto.getCurCos())) {
                BigDecimal curCos = new BigDecimal(dto.getCurCos());
                if (dto.getLimitL() != null && dto.getLimitH() != null &&
                        curCos.compareTo(dto.getLimitL()) < 0 || curCos.compareTo(dto.getLimitH()) > 0) {
                    dto.setStatus(1);
            // 设置功率因数状态
            if (cosFlag && powerNetFactorDTO.getCurCos() != null) {
                BigDecimal curCos = powerNetFactorDTO.getCurCos();
                if (entity.getLimitL() != null && curCos.compareTo(entity.getLimitL()) < 0) {
                    powerNetFactorDTO.setStatus(1);
                } else if (entity.getLimitH() != null && curCos.compareTo(entity.getLimitH()) > 0) {
                    powerNetFactorDTO.setStatus(1);
                } else {
                    dto.setStatus(0);
                    powerNetFactorDTO.setStatus(0);
                }
            }
            // 设置有功预警状态
            if (powerNetFactorDTO.getCurP() != null) {
                BigDecimal curP = powerNetFactorDTO.getCurP();
                if (entity.getPLimitH() != null && curP.compareTo(entity.getPLimitL()) < 0) {
                    powerNetFactorDTO.setStatus(1);
                } else if (entity.getPLimitH() != null && curP.compareTo(entity.getPLimitH()) > 0) {
                    powerNetFactorDTO.setStatus(1);
                } else {
                    powerNetFactorDTO.setStatus(0);
                }
            }
            // 设置无功预警状态
            if (powerNetFactorDTO.getCurQ() != null) {
                BigDecimal curQ = powerNetFactorDTO.getCurQ();
                if (entity.getQLimitH() != null && curQ.compareTo(entity.getQLimitL()) < 0) {
                    powerNetFactorDTO.setStatus(1);
                } else if (entity.getQLimitH() != null && curQ.compareTo(entity.getQLimitH()) > 0) {
                    powerNetFactorDTO.setStatus(1);
                } else {
                    powerNetFactorDTO.setStatus(0);
                }
            }
        }
@@ -216,32 +249,32 @@
        if (CollectionUtils.isEmpty(dtoList)) {
            return success(result);
        }
        for (PowerNetFactorDTO dto : dtoList) {
        for (PowerNetFactorEntity entity : list) {
            List<String> points = new ArrayList<>();
            String message = "";
            if (StringUtils.isNotBlank(dto.getCurQ())) {
                points.add(dto.getCurQ());
            if (StringUtils.isNotBlank(entity.getCurQ())) {
                points.add(entity.getCurQ());
            }
            if (StringUtils.isNotBlank(dto.getCurCos())) {
                points.add(dto.getCurCos());
            if (StringUtils.isNotBlank(entity.getCurCos())) {
                points.add(entity.getCurCos());
            }
            if (CollectionUtils.isEmpty(points)) {
                continue;
            }
            Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points);
            if (pointsRealValue.get(dto.getCurQ()) != null) {
                BigDecimal curQ = new BigDecimal(pointsRealValue.get(dto.getCurQ()).toString());
                if (curQ.compareTo(BigDecimal.ZERO) == dto.getCurFlag()) {
                    message = dto.getNodeName() + "发生无功返送;";
            if (pointsRealValue.get(entity.getCurQ()) != null) {
                BigDecimal curQ = new BigDecimal(pointsRealValue.get(entity.getCurQ()).toString());
                if (curQ.compareTo(BigDecimal.ZERO) == entity.getCurFlag()) {
                    message = entity.getNodeName() + "发生无功返送;";
                }
            }
            if (pointsRealValue.get(dto.getCurCos()) != null) {
                BigDecimal curCos = new BigDecimal(pointsRealValue.get(dto.getCurCos()).toString());
                if (curCos.compareTo(dto.getLimitH()) > 0) {
                    message += dto.getNodeName() + "功率因数超上限";
                } else if (curCos.compareTo(dto.getLimitL()) < 0) {
                    message += dto.getNodeName() + "功率因数超下限";
            if (pointsRealValue.get(entity.getCurCos()) != null) {
                BigDecimal curCos = new BigDecimal(pointsRealValue.get(entity.getCurCos()).toString());
                if (entity.getLimitH() != null && curCos.compareTo(entity.getLimitH()) > 0) {
                    message += entity.getNodeName() + "功率因数超上限";
                } else if (entity.getLimitL() != null && curCos.compareTo(entity.getLimitL()) < 0) {
                    message += entity.getNodeName() + "功率因数超下限";
                }
            }
            if (!message.isEmpty()) {
@@ -758,7 +791,7 @@
    }
    @PostMapping("/demand/history")
    @Operation(summary = "负荷移植-实测需量,有功功率 历史")
    @Operation(summary = "负荷移植-实测需量有功功率历史")
    public CommonResult<PowerHistoryDTO> getPowerDemandHistory(@RequestBody PowerDemandHisReqDTO dto) {
        log.info("请求参数: {}", JSONObject.toJSONString(dto));
@@ -826,4 +859,100 @@
        return success(result);
    }
    @PostMapping("/demand/history-list")
    @Operation(summary = "负荷移植-实测需量有功功率历史(多code)")
    public CommonResult<LinkedHashMap<String, List<Object[]>>> getPowerDemandHistoryList(@RequestBody PowerDemandHisReqDTO dto) {
        log.info("请求参数: {}", JSONObject.toJSONString(dto));
        LinkedHashMap<String, List<Object[]>> result = new LinkedHashMap<>();
        // 参数校验
        if (CollectionUtils.isEmpty(dto.getCodeList())) {
            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST, "codeList不能为空");
        }
        if (StringUtils.isBlank(dto.getQueryType())) {
            return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST, "queryType不能为空");
        }
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.MILLISECOND, 0);
        cal.set(Calendar.SECOND, 0);
        Date endTime = dto.getEndTime() == null ? cal.getTime() : dto.getEndTime();
        Date startTime = dto.getStartTime();
        if (dto.getStartTime() == null) {
            cal.add(Calendar.DAY_OF_YEAR, -1);
            startTime = cal.getTime();
        }
        for (String code : dto.getCodeList()) {
            PowerDemandEntity powerDemand = powerDemandService.getByCode(code);
            if (powerDemand == null) {
                log.info("未找到code对应的数据: {}", dto.getCode());
                return success(new LinkedHashMap<>());
            }
            String queryType = dto.getQueryType().toUpperCase();
            String pointNo;
            switch (queryType.toUpperCase()) {
                case "D":
                    pointNo = powerDemand.getCurDemand();
                    break;
                case "P":
                    pointNo = powerDemand.getActivePower();
                    break;
                default:
                    throw new IllegalArgumentException("不支持的queryType: " + queryType);
            }
            // 查询历史数据
            ApiPointValueQueryDTO query = new ApiPointValueQueryDTO();
            query.setPointNo(pointNo);
            query.setStart(startTime);
            query.setEnd(endTime);
            log.info("开始查询实测需量有功功率历史数据,测点: {}", pointNo);
            List<ApiPointValueDTO> chartData = dataPointApi.queryPointHistoryValue(query);
            List<Object[]> dataList = chartData.stream()
                    .map(pv -> new Object[]{
                            DateUtils.format(pv.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND),
                            pv.getV()
                    })
                    .collect(Collectors.toList());
            result.put(code, dataList);
        }
        return success(result);
    }
    @GetMapping("/voltage/status-list")
    @Operation(summary = "功率因数-母线电压状态")
    public CommonResult<List<PowerVoltageStatusDTO>> getPowerVoltageStatusList(@RequestParam Map<String, Object> params) {
        List<PowerVoltageStatusDTO> result = new ArrayList<>();
        List<PowerVoltageStatusEntity> list = powerVoltageStatusService.list(params);
        if (CollectionUtils.isEmpty(list)) {
            return success(result);
        }
        List<String> points = new ArrayList<>();
        for (PowerVoltageStatusEntity entity : list) {
            if (StringUtils.isBlank(entity.getPoint())) {
                continue;
            }
            points.add(entity.getPoint());
        }
        Map<String, Object> pointsRealValue = new HashMap<>();
        if (!CollectionUtils.isEmpty(points)) {
            pointsRealValue = dataPointApi.queryPointsRealValue(points);
        }
        for (PowerVoltageStatusEntity entity : list) {
            PowerVoltageStatusDTO dto = ConvertUtils.sourceToTarget(entity, PowerVoltageStatusDTO.class);
            dto.setStatus(0);
            BigDecimal value = new BigDecimal(pointsRealValue.get(entity.getPoint()).toString());
            if (value.compareTo(entity.getLimitH()) > 0) {
                dto.setStatus(1);
            }
            dto.setVoltage(value);
            result.add(dto);
        }
        return success(result);
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerDemandHisReqDTO.java
@@ -5,6 +5,7 @@
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
 * @author dyk
@@ -17,6 +18,8 @@
    private String code;
    private List<String> codeList;
    private String queryType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerNetFactorDTO.java
@@ -29,25 +29,25 @@
    private String nodeName;
    @Schema(description = "当前有功")
    private String curP;
    private BigDecimal curP;
    @Schema(description = "当前无功")
    private String curQ;
    private BigDecimal curQ;
    @Schema(description = "当前功率因数")
    private String curCos;
    private BigDecimal curCos;
    @Schema(description = "无功返送(1:大于0是,-1:小于0是)")
    private Integer curFlag;
    @Schema(description = "预测有功")
    private String preP;
    private BigDecimal preP;
    @Schema(description = "预测无功")
    private String preQ;
    private BigDecimal preQ;
    @Schema(description = "预测功率因数")
    private String preCos;
    private BigDecimal preCos;
    @Schema(description = "上限")
    private BigDecimal limitH;
@@ -55,11 +55,17 @@
    @Schema(description = "下限")
    private BigDecimal limitL;
    @Schema(description = "是否超限(0:正常,1:超限)")
    @Schema(description = "功率因数是否超限(0:正常,1:超限)")
    private Integer status;
    @Schema(description = "排序")
    private Integer sort;
    @Schema(description = "有功是否超限(0:正常,1:超限)")
    private Integer pStatus;
    @Schema(description = "无功是否超限(0:正常,1:超限)")
    private Integer qStatus;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerVoltageStatusDTO.java
对比新文件
@@ -0,0 +1,29 @@
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年05月06日
 */
@Data
public class PowerVoltageStatusDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Schema(description = "编码")
    private String code;
    @Schema(description = "名称")
    private String name;
    @Schema(description = "电压值")
    private BigDecimal voltage;
    @Schema(description = "电压状态:0无电压,1有电压")
    private Integer status;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/DataService.java
@@ -33,4 +33,6 @@
    List<PowerControlMainDTO> getPowerControlMainList();
    List<PowerControlDetDTO> getPowerControlDetList(Map<String, Object> params);
    List<Object[]> getHistoryValue(Map<String, Object> params);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java
@@ -5,6 +5,7 @@
import com.iailab.framework.common.util.object.ConvertUtils;
import com.iailab.module.ansteel.api.dao.*;
import com.iailab.module.ansteel.api.dto.*;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.ansteel.power.dao.*;
import com.iailab.module.ansteel.power.entity.PowerCapacitorStatusEntity;
import com.iailab.module.ansteel.power.entity.PowerControlDetEntity;
@@ -12,6 +13,9 @@
import com.iailab.module.ansteel.power.entity.PowerNetFactorEntity;
import com.iailab.module.ansteel.api.service.DataService;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.data.api.ind.IndItemApi;
import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.api.plan.PlanItemApi;
import com.iailab.module.data.api.plan.dto.ApiPlanDataDTO;
import com.iailab.module.data.api.point.DataPointApi;
@@ -30,12 +34,16 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.iailab.framework.common.pojo.CommonResult.success;
@Slf4j
@Service
public class DataServiceImpl implements DataService {
    @Autowired
    private DataPointApi dataPointApi;
    @Autowired
    private IndItemApi indItemApi;
    @Autowired
    private McsApi mcsApi;
@@ -105,9 +113,9 @@
    @Override
    public List<MainProcessIndexDTO> getIndexList(Map<String, Object> params) {
        List<MainProcessIndexDTO> list = new ArrayList<>();
        if("day".equals(params.get("type"))) {
        if ("day".equals(params.get("type"))) {
            list = ConvertUtils.sourceToTarget(mainProcessIndexDayDao.selectList(new QueryWrapper<>()), MainProcessIndexDTO.class);
        }else if("team".equals(params.get("type"))){
        } else if ("team".equals(params.get("type"))) {
            list = ConvertUtils.sourceToTarget(mainProcessIndexTeamDao.selectList(new QueryWrapper<>()), MainProcessIndexDTO.class);
        }
        if (!CollectionUtils.isEmpty(list)) {
@@ -180,9 +188,12 @@
        PreDataSingleChartRespVO resultOld = mcsApi.getPreDataSingleChart(reqVO);
        PreDataChartRespVO result = ConvertUtils.sourceToTarget(resultOld, PreDataChartRespVO.class);
        PreDataViewDTO preDataView = ConvertUtils.sourceToTarget(resultOld.getDataView(), PreDataViewDTO.class);
        if(trendsDataH != null) {
        if (StringUtils.isNotBlank(trendsDataH)) {
            // 动态上限
            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
            pointValueQueryDTO.setPointNo(trendsDataH);
            pointValueQueryDTO.setStart(startTime);
            pointValueQueryDTO.setEnd(endTime);
            List<ApiPointValueDTO> trendsDataHList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class);
            List<Object[]> newList = new ArrayList<>();
            trendsDataHList.forEach(item -> {
@@ -193,9 +204,12 @@
            });
            preDataView.setTrendsDataH(newList);
        }
        if(trendsDataL != null) {
        if (StringUtils.isNotBlank(trendsDataL)) {
            // 动态下限
            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
            pointValueQueryDTO.setPointNo(trendsDataL);
            pointValueQueryDTO.setStart(startTime);
            pointValueQueryDTO.setEnd(endTime);
            List<ApiPointValueDTO> trendsDataLList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class);
            List<Object[]> newList = new ArrayList<>();
            trendsDataLList.forEach(item -> {
@@ -208,7 +222,6 @@
        }
        preDataView.setPreData(resultOld.getDataView().getPreDataL());
        result.setPreDataView(preDataView);
        return result;
    }
@@ -244,7 +257,7 @@
    }
    /**
     *  查询原始计划、修正计划数据
     * 查询原始计划、修正计划数据
     */
    @Override
    public Map<String, Object> getPlanDataChart(PlanDataChartReqVO reqVO) {
@@ -370,4 +383,64 @@
        wrapper.orderByAsc("sort");
        return ConvertUtils.sourceToTarget(powerControlDetDao.selectList(wrapper), PowerControlDetDTO.class);
    }
    @Override
    public List<Object[]> getHistoryValue(Map<String, Object> params) {
        List<Object[]> dataList = new ArrayList<>();
        if (!params.containsKey("dataType") || !params.containsKey("dataNo")) {
            return dataList;
        }
        String dataType = params.get("dataType").toString();
        String dataNo = params.get("dataNo").toString();
        Date startTime = null;
        Date endTime = null;
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        if (!params.containsKey("endTime") || StringUtils.isBlank(params.get("endTime").toString())) {
            endTime = calendar.getTime();
        }else {
            endTime = DateUtils.parse(params.get("endTime").toString(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
        }
        if (!params.containsKey("startTime") || StringUtils.isBlank(params.get("startTime").toString())) {
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            startTime = calendar.getTime();
        }else {
            startTime = DateUtils.parse(params.get("startTime").toString(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
        }
        switch (ProcessConfDataTypeEnum.getEumByCode(dataType)) {
            case DATAPOINT:
                ApiPointValueQueryDTO queryParams1 = new ApiPointValueQueryDTO();
                queryParams1.setPointNo(dataNo);
                queryParams1.setStart(startTime);
                queryParams1.setEnd(endTime);
                List<com.iailab.module.data.api.point.dto.ApiPointValueDTO> pointHisValue = dataPointApi.queryPointHistoryValue(queryParams1);
                pointHisValue.forEach(item -> {
                    Object[] values = new Object[2];
                    values[0] = DateUtils.format(item.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);
                    values[1] = new BigDecimal(item.getV()).setScale(3, BigDecimal.ROUND_HALF_UP);
                    dataList.add(values);
                });
                break;
            case IND:
                log.info("IND");
                ApiIndItemQueryDTO queryParams2 = new ApiIndItemQueryDTO();
                queryParams2.setItemNo(dataNo);
                queryParams2.setStart(startTime);
                queryParams2.setEnd(endTime);
                List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemHistoryValue(queryParams2);
                indValues.forEach(item -> {
                    Object[] values = new Object[2];
                    values[0] = item.getDataTime();
                    values[1] = item.getDataValue();
                    dataList.add(values);
                });
                break;
            default:
                break;
        }
        return dataList;
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingOverviewDTO.java
@@ -126,4 +126,19 @@
     * 平时占比
     */
    private BigDecimal psRatio;
//    /**
//     * 峰时占比-月累计
//     */
//    private BigDecimal fsRatioMonth;
//
//    /**
//     * 谷时占比-月累计
//     */
//    private BigDecimal gsRatioMonth;
//
//    /**
//     * 平时占比-月累计
//     */
//    private BigDecimal psRatioMonth;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingOverviewEntity.java
@@ -120,4 +120,19 @@
     * 平时占比
     */
    private BigDecimal psRatio;
    /**
     * 峰时占比-月累计
     */
    private BigDecimal fsRatioMonth;
    /**
     * 谷时占比-月累计
     */
    private BigDecimal gsRatioMonth;
    /**
     * 平时占比-月累计
     */
    private BigDecimal psRatioMonth;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java
@@ -14,6 +14,8 @@
    List<CokingAnalyIndEntity> list(Map<String, Object> params);
    CokingAnalyIndEntity get(String analyType, String analyDate);
    void save(List<CokingAnalyIndEntity> entityList);
    void delete(String analyType, String analyDate);
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingTraceSuggestService.java
@@ -21,5 +21,5 @@
    List<CokingTraceSuggestEntity> getAbnormalData(Map<String, Object> params);
    void saveTraceSuggest(String relId, String process, String clock, String total, String sugObj);
    void saveTraceSuggest(String relId, String process, String clock, String content, String sugObj);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java
@@ -37,6 +37,21 @@
    }
    @Override
    public CokingAnalyIndEntity get(String analyType, String analyDate) {
        QueryWrapper<CokingAnalyIndEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("analy_type", analyType)
                .eq("analy_date", analyDate)
                .orderByDesc("analy_date");
        List<CokingAnalyIndEntity> list = cokingAnalyIndDao.selectList(queryWrapper);
        if (list != null && list.size() > 0) {
            return list.get(0);
        } else {
            return null;
        }
    }
    @Override
    public void save(List<CokingAnalyIndEntity> entityList) {
        cokingAnalyIndDao.insert(entityList);
    }
@@ -47,8 +62,6 @@
        queryWrapper.eq("analy_type", analyType)
                .eq("analy_date", analyDate);
        cokingAnalyIndDao.delete(queryWrapper);
    }
    @Override
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingOverviewServiceImpl.java
@@ -14,7 +14,10 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@Service
@@ -60,20 +63,38 @@
        });
        result.put("day", dayDTOList);
        Map<String, CokingOverviewEntity> ratioMonth = new HashMap<>();
        if (processType.equals(ProcessTypeEnum.BM.getCode())) {
            ratioMonth = dayList.stream().collect(Collectors.toMap(CokingOverviewEntity::getSubProcessType, Function.identity(), (e1, e2) -> e1));
        }
        // 月数据
        QueryWrapper<CokingOverviewEntity> queryWrapperMonth = new QueryWrapper<>();
        queryWrapperMonth.eq("process_type", processType);
        queryWrapperMonth.between("clock", monthStartClock,clock);
        queryWrapperMonth.select("sub_process_type","SUM(steam_p) as steam_p","SUM(dj_steam_p) as dj_steam_p","SUM(steam_c) as steam_c","SUM(steam_only_c) as steam_only_c","SUM(steam_v) as steam_v","SUM(gas_p) as gas_p","SUM(gas_c) as gas_c","SUM(power_c) as power_c","SUM(power_only_c) as power_only_c","SUM(power_c_standard) as power_c_standard","SUM(idle_time) as idle_time","SUM(bfg_c) as bfg_c","SUM(cog_p) as cog_p","SUM(cog_c) as cog_c","SUM(bfg_only_c) as bfg_only_c","SUM(cog_only_c) as cog_only_c","SUM(gxls) as gxls","SUM(fs_ratio) as fs_ratio","SUM(gs_ratio) as gs_ratio","SUM(ps_ratio) as ps_ratio")
        queryWrapperMonth.select("sub_process_type","SUM(steam_p) as steam_p","SUM(dj_steam_p) as dj_steam_p","SUM(steam_c) as steam_c","SUM(steam_only_c) as steam_only_c","SUM(steam_v) as steam_v","SUM(gas_p) as gas_p","SUM(gas_c) as gas_c","SUM(power_c) as power_c","SUM(power_only_c) as power_only_c","SUM(power_c_standard) as power_c_standard","SUM(idle_time) as idle_time","SUM(bfg_c) as bfg_c","SUM(cog_p) as cog_p","SUM(cog_c) as cog_c","SUM(bfg_only_c) as bfg_only_c","SUM(cog_only_c) as cog_only_c","SUM(gxls) as gxls")
                .groupBy("sub_process_type");
        List<CokingOverviewEntity> monthList = cokingOverviewDao.selectList(queryWrapperMonth);
        monthList.forEach(e -> e.setClock("前30日累计"));
        List<CokingOverviewDTO> monthDTOList = ConvertUtils.sourceToTarget(monthList, CokingOverviewDTO.class);
        monthDTOList.forEach(e -> {
        for (CokingOverviewDTO e : monthDTOList) {
            e.setProcessTypeName(processName);
            e.setSubProcessTypeName(SubProcessTypeEnum.getEumByCode(e.getSubProcessType()).getProcess());
        });
            if (processType.equals(ProcessTypeEnum.BM.getCode())) {
                // 月占比用
                if (ratioMonth.containsKey(e.getSubProcessType())) {
                    e.setFsRatio(ratioMonth.get(e.getSubProcessType()).getFsRatioMonth());
                    e.setGsRatio(ratioMonth.get(e.getSubProcessType()).getGsRatioMonth());
                    e.setPsRatio(ratioMonth.get(e.getSubProcessType()).getPsRatioMonth());
                }else {
                    e.setFsRatio(BigDecimal.ZERO);
                    e.setGsRatio(BigDecimal.ZERO);
                    e.setPsRatio(BigDecimal.ZERO);
                }
            }
        }
        result.put("month", monthDTOList);
        return result;
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceIndServiceImpl.java
@@ -16,6 +16,7 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -77,12 +78,12 @@
                    List<String> points = new ArrayList<>();
                    points.add(conf.getPointNo());
                    Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points);
                    value = pointsRealValue.get(conf.getPointNo()).toString();
                    value = new BigDecimal(pointsRealValue.get(conf.getPointNo()).toString()).setScale(2,BigDecimal.ROUND_HALF_UP) .toString();
                    break;
                case IND:
                    List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo());
                    if (!CollectionUtils.isEmpty(indValues)) {
                        value = indValues.get(indValues.size() - 1).getDataValue().toString();
                        value = new BigDecimal(indValues.get(indValues.size() - 1).getDataValue().toString()).setScale(2,BigDecimal.ROUND_HALF_UP) .toString();
                    }
                    break;
                default:
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceSuggestServiceImpl.java
@@ -66,8 +66,8 @@
    }
    @Override
    public void saveTraceSuggest(String relId, String process, String clock, String total, String sugObj) {
        if (StringUtils.isBlank(total)) {
    public void saveTraceSuggest(String relId, String process, String clock, String content, String sugObj) {
        if (StringUtils.isBlank(content)) {
            return;
        }
        CokingTraceSuggestEntity suggestEntity = new CokingTraceSuggestEntity();
@@ -75,7 +75,7 @@
        suggestEntity.setProcess(process);
        suggestEntity.setSugObj(sugObj);
        suggestEntity.setClock(clock);
        suggestEntity.setContent(total);
        suggestEntity.setContent(content);
        suggestEntity.setCreateDate(new Date());
        cokingTraceSuggestDao.insert(suggestEntity);
    }
ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java
对比新文件
@@ -0,0 +1,31 @@
package com.iailab.module.ansteel.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
@Getter
@AllArgsConstructor
public enum TraceProcessTypeEnum {
    BM("BM", "备煤工序"),
    LJ("LJ", "炼焦工序"),
    GXJ("GXJ", "干熄焦工序"),
    HC("HC", "化产工序"),
    UNKNOW("unkuow", "未知");
    private String code;
    private String process;
    public static TraceProcessTypeEnum getEumByCode(String code) {
        if (StringUtils.isBlank(code)) {
            return UNKNOW;
        }
        for (TraceProcessTypeEnum statusEnum : TraceProcessTypeEnum.values()) {
            if (statusEnum.getCode().equals(code.trim().toUpperCase())) {
                return statusEnum;
            }
        }
        return UNKNOW;
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelBMTask.java
@@ -5,6 +5,7 @@
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mdk.MdkApi;
import org.slf4j.Logger;
@@ -51,7 +52,7 @@
    @Autowired
    private MdkApi mdkApi;
    private final static String process = "备煤工序";
    private final static String process = TraceProcessTypeEnum.BM.getProcess();
    private final static String reportName = "备煤工序异常溯源";
@@ -115,13 +116,14 @@
            // 保存报告
            String analyDate = DateUtils.format(startDate);
            String analyContent = clock + " " + result.getString("coalHomeIndexInfo");
            String content = result.getString(total);
            String relId = cokingTraceReportService.save(process, reportName, analyDate, clock, analyContent);
            // 保存一级分析指标
            cokingAnalyIndService.saveAnalyInd(relId, process, analyDate, analyContent);
            // 保存优化建议
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, total, SugObj);
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, content, SugObj);
            // 保存偏差值
            cokingTraceDeviationService.saveTraceDeviation(relId, process, clock, result, CommonConstant.COKE_INDEX_CHARTCODE, row, SugObj);
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelGXJTask.java
@@ -5,6 +5,7 @@
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mdk.MdkApi;
import org.slf4j.Logger;
@@ -49,7 +50,7 @@
    @Autowired
    private MdkApi mdkApi;
    private final static String process = "干熄焦工序";
    private final static String process = TraceProcessTypeEnum.GXJ.getProcess();
    private final static String reportName = "干熄焦工序异常溯源";
@@ -113,13 +114,14 @@
            // 保存报告
            String analyDate = DateUtils.format(startDate);
            String analyContent = clock + " " + result.getString("steamHomeIndexInfo");
            String content = result.getString(total);
            String relId = cokingTraceReportService.save(process, reportName, analyDate, clock, analyContent);
            // 保存一级分析指标
            cokingAnalyIndService.saveAnalyInd(relId, process, analyDate, analyContent);
            // 保存优化建议
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, total, SugObj);
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, content, SugObj);
            // 保存偏差值
            cokingTraceDeviationService.saveTraceDeviation(relId, process, clock, result, CommonConstant.COKE_INDEX_CHARTCODE, row, SugObj);
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java
@@ -5,6 +5,7 @@
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mdk.MdkApi;
import org.slf4j.Logger;
@@ -51,7 +52,7 @@
    @Autowired
    private MdkApi mdkApi;
    private final static String process = "化产工序";
    private final static String process = TraceProcessTypeEnum.HC.getProcess();
    private final static String reportName = "化产工序异常溯源";
@@ -104,13 +105,14 @@
            // 保存报告
            String analyDate = DateUtils.format(startDate);
            String analyContent = clock + " " + result.getString("chemProdHomeIndexInfo");
            String content = result.getString(total);
            String relId = cokingTraceReportService.save(process, reportName, analyDate, clock, analyContent);
            // 保存一级分析指标
            cokingAnalyIndService.saveAnalyInd(relId, process, analyDate, analyContent);
            // 保存优化建议
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, total, SugObj);
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, content, SugObj);
            // 保存偏差值
            cokingTraceDeviationService.saveTraceDeviation(relId, process, clock, result, CommonConstant.COKE_INDEX_CHARTCODE, row, SugObj);
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelLJTask.java
@@ -5,6 +5,7 @@
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.TraceProcessTypeEnum;
import com.iailab.module.model.api.mdk.MdkApi;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,7 +48,7 @@
    @Autowired
    private MdkApi mdkApi;
    private final static String process = "炼焦工序";
    private final static String process = TraceProcessTypeEnum.LJ.getProcess();
    private final static String reportName = "炼焦工序异常溯源";
@@ -104,13 +105,14 @@
            // 保存报告
            String analyDate = DateUtils.format(startDate);
            String analyContent = clock + " " + result.getString("cokeHomeIndexInfo");
            String content = result.getString(total);
            String relId = cokingTraceReportService.save(process, reportName, analyDate, clock, analyContent);
            // 保存一级分析指标
            cokingAnalyIndService.saveAnalyInd(relId, process, analyDate, analyContent);
            // 保存优化建议
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, total, SugObj);
            cokingTraceSuggestService.saveTraceSuggest(relId, process, clock, content, SugObj);
            // 保存偏差值
            cokingTraceDeviationService.saveTraceDeviation(relId, process, clock, result, CommonConstant.COKE_INDEX_CHARTCODE, row, SugObj);
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java
@@ -43,68 +43,72 @@
            //根据测点分组
            Map<String, List<PeakValleyFlatEntity>> groupedByPointNo = list.stream()
                    .collect(Collectors.groupingBy(PeakValleyFlatEntity::getPowerNo));
                    .collect(Collectors.groupingBy(PeakValleyFlatEntity::getPointNo));
            groupedByPointNo.entrySet().stream().forEach(entry -> {
                Calendar cal = (Calendar) calendar.clone();
                cal.set(Calendar.MILLISECOND, 0);
                cal.set(Calendar.SECOND, 0);
                cal.set(Calendar.MINUTE, 0);
                cal.set(Calendar.HOUR_OF_DAY, 0);
                Date endTime = calendar.getTime();
                cal.add(Calendar.DAY_OF_YEAR, -1);
                Date startTime = cal.getTime();
                cal.add(Calendar.DAY_OF_YEAR, -29);
                Date monthStartTime = cal.getTime();
                //计算昨日的累积量
                //计算昨日的峰/谷累积量
                double value = getSumValue(entry.getValue(), 1, calendar);
                //计算昨日总电耗
                calendar.set(Calendar.MILLISECOND, 0);
                calendar.set(Calendar.MINUTE, 0);
                calendar.set(Calendar.HOUR_OF_DAY, 0);
                Date endTime = calendar.getTime();
                calendar.add(Calendar.DAY_OF_YEAR, -1);
                Date startTime = calendar.getTime();
                double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime,endTime);
                double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime, endTime);
                //计算前三十日峰/谷累积量
                double valueMonth = getSumValueTotal(entry.getValue().get(0).getPointNoTotal(), monthStartTime, startTime)+value;
                //计算前三十日总电耗
                double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), monthStartTime, endTime);
                logger.info("name:"+entry.getValue().get(0).getName()+";value:"+value+";totalValue:"+totalValue+";valueMonth:"+valueMonth+";totalValueMonth:"+totalValueMonth);
                //下发昨日占比
                ApiPointValueWriteDTO dto = new ApiPointValueWriteDTO();
                dto.setPointNo(entry.getValue().get(0).getPointNo());
                dto.setValue(value/totalValue*100);
                dataPointApi.writePointRealValue(dto);
                ApiPointValueWriteDTO percentDto = new ApiPointValueWriteDTO();
                percentDto.setPointNo(entry.getValue().get(0).getPointNo());
                double percent = totalValue == 0 ? 0 : value / totalValue * 100;
                percentDto.setValue(percent);
                dataPointApi.writePointRealValue(percentDto);
                if(entry.getValue().get(0).getPointNoMonth()!=null){
                    //计算前三十日累积量
                    double value30 = 0;
                    for (int i = 1; i < 31; i++) {
                        //计算前三十日累积量
                        value30 = value30 + getSumValue(entry.getValue(), i, calendar);
                    }
                //下发昨日峰/谷累积量
                ApiPointValueWriteDTO totalDto = new ApiPointValueWriteDTO();
                totalDto.setPointNo(entry.getValue().get(0).getPointNoTotal());
                totalDto.setValue(value);
                dataPointApi.writePointRealValue(totalDto);
                    //计算前三十日总电耗
                    calendar.set(Calendar.MILLISECOND, 0);
                    calendar.set(Calendar.MINUTE, 0);
                    calendar.set(Calendar.HOUR_OF_DAY, 0);
                    calendar.add(Calendar.DAY_OF_YEAR, -30);
                    Date startTimeMonth = calendar.getTime();
                    double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTimeMonth,endTime);
                    //下发前三十日占比
                    ApiPointValueWriteDTO monthDto = new ApiPointValueWriteDTO();
                    monthDto.setPointNo(entry.getValue().get(0).getPointNoMonth());
                    monthDto.setValue(value30/totalValueMonth*100);
                    dataPointApi.writePointRealValue(monthDto);
                }
                //下发前三十日占比
                ApiPointValueWriteDTO monthDto = new ApiPointValueWriteDTO();
                monthDto.setPointNo(entry.getValue().get(0).getPointNoMonth());
                double percentMonth = totalValueMonth == 0 ? 0 : valueMonth / totalValueMonth * 100;
                monthDto.setValue(percentMonth);
                dataPointApi.writePointRealValue(monthDto);
            });
        } catch (Exception ex) {
            logger.error("runPeakValleyFlatTask运行异常");
            ex.printStackTrace();
            logger.error("runPeakValleyFlatTask运行异常", ex);
        }
    }
    private Date getTime(String timeStr, int ago, Calendar calendar) {
        Calendar cal = (Calendar) calendar.clone();
        String[] timeSplit = timeStr.split(":");
        if (timeSplit.length != 2) {
            throw new IllegalArgumentException("时间配置格式不合法");
        }
        //根据配置获取startTime、endTime
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeSplit[0]));
        calendar.set(Calendar.MINUTE, Integer.parseInt(timeSplit[1]));
        calendar.add(Calendar.DAY_OF_YEAR, -ago);
        return calendar.getTime();
        cal.set(Calendar.MILLISECOND, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeSplit[0]));
        cal.set(Calendar.MINUTE, Integer.parseInt(timeSplit[1]));
        cal.add(Calendar.DAY_OF_YEAR, -ago);
        return cal.getTime();
    }
    private List<ApiPointValueDTO> fillMissingData(List<ApiPointValueDTO> valueList,
@@ -169,9 +173,14 @@
            dto.setPointNo(entity.getPowerNo());
            dto.setStart(startTime);
            dto.setEnd(endTime);
            logger.info("开始查询,测点:" + entity.getPowerNo() + "startTime:" + startTime + "endTime:" + endTime);
            List<ApiPointValueDTO> valueList;
            //查找数据
            List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(dto);
            try {
                valueList = dataPointApi.queryPointHistoryValue(dto);
            } catch (Exception e) {
                throw new RuntimeException("查询测点异常");
            }
            //补全数据
            valueList = fillMissingData(valueList, startTime, endTime);
            //累加
@@ -192,6 +201,6 @@
        //补全数据
        valueList = fillMissingData(valueList, startTime, endTime);
        //累加
        return valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum()/ 60;
        return valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum() / 60;
    }
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerVoltageStatusDao.java
对比新文件
@@ -0,0 +1,14 @@
package com.iailab.module.ansteel.power.dao;
import com.iailab.framework.common.dao.BaseDao;
import com.iailab.module.ansteel.power.entity.PowerVoltageStatusEntity;
import org.apache.ibatis.annotations.Mapper;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年05月06日
 */
@Mapper
public interface PowerVoltageStatusDao extends BaseDao<PowerVoltageStatusEntity> {
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PeakValleyFlatEntity.java
@@ -41,6 +41,10 @@
     */
    private String pointNoMonth;
    /**
     * 下发测点编码
     */
    private String pointNoTotal;
    /**
     * 功率测点编码
     */
    private String powerNo;
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerNetFactorEntity.java
@@ -87,4 +87,24 @@
     * 排序
     */
    private Integer sort;
    /**
     * 有功下限
     */
    private BigDecimal pLimitL;
    /**
     * 有功上限
     */
    private BigDecimal pLimitH;
    /**
     * 无功下限
     */
    private BigDecimal qLimitL;
    /**
     * 无功上限
     */
    private BigDecimal qLimitH;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/entity/PowerVoltageStatusEntity.java
对比新文件
@@ -0,0 +1,35 @@
package com.iailab.module.ansteel.power.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年05月06日
 */
@Data
@TableName("t_power_voltage_status")
public class PowerVoltageStatusEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId
    private String id;
    private String code;
    private String name;
    private String point;
    private BigDecimal limitH;
    private Integer sort;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerVoltageStatusService.java
对比新文件
@@ -0,0 +1,16 @@
package com.iailab.module.ansteel.power.service;
import com.iailab.module.ansteel.power.entity.PowerVoltageStatusEntity;
import java.util.List;
import java.util.Map;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年05月06日
 */
public interface PowerVoltageStatusService {
    List<PowerVoltageStatusEntity> list(Map<String, Object> params);
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerVoltageStatusServiceImpl.java
对比新文件
@@ -0,0 +1,33 @@
package com.iailab.module.ansteel.power.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iailab.module.ansteel.power.dao.PowerVoltageStatusDao;
import com.iailab.module.ansteel.power.entity.PowerVoltageStatusEntity;
import com.iailab.module.ansteel.power.service.PowerVoltageStatusService;
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年05月06日
 */
@Slf4j
@Service
public class PowerVoltageStatusServiceImpl implements PowerVoltageStatusService {
    @Resource
    private PowerVoltageStatusDao powerVoltageStatusDao;
    @Override
    public List<PowerVoltageStatusEntity> list(Map<String, Object> params) {
        QueryWrapper<PowerVoltageStatusEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByAsc("sort");
        return powerVoltageStatusDao.selectList(queryWrapper);
    }
}
ansteel-biz/src/main/resources/application.yaml
@@ -178,6 +178,7 @@
      - t_power_demand
      - t_power_adjusted_factor
      - t_power_net_dropdown
      - t_power_voltage_status
      - t_peak_valley_flat
      - t_coking_overview_ind
  swagger:
doc/鞍钢数据接口文档_master.doc
Binary files differ