鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
8 小时以前 34de09b7eb5e1aa7cc03494b8ed82b49839454f4
影响因数偏差值 表结构修改
已修改7个文件
684 ■■■■■ 文件已修改
ansteel-biz/db/mysql.sql 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDeviationEntity.java 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelBMTask.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelGXJTask.java 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelLJTask.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ansteel-biz/db/mysql.sql
@@ -248,7 +248,7 @@
    ADD COLUMN `cur_flag` int DEFAULT 0 COMMENT '无功返送(1:大于0是,-1:小于0是)';
ALTER TABLE `t_power_net_factor`
    ADD COLUMN `node_code`  varchar(50) NULL DEFAULT NULL COMMENT '节点编号';
    ADD COLUMN `node_code` varchar(50) NULL DEFAULT NULL COMMENT '节点编号';
-- ----------------------------
-- 电力功率因数-发电机组实时状态
@@ -518,14 +518,32 @@
    `process`     varchar(20) NULL DEFAULT NULL COMMENT '工序名称',
    `sug_obj`     varchar(20) NULL DEFAULT NULL COMMENT '建议对象',
    `clock`       varchar(20) NULL DEFAULT NULL COMMENT '查询时间',
    `group_name`  varchar(20) NULL DEFAULT NULL COMMENT '分组名称',
    `ind_name`    varchar(20) NULL DEFAULT NULL COMMENT '指标名称',
    `ind_value`   varchar(20) NULL DEFAULT NULL COMMENT '偏差值',
    `ind_unit`    varchar(20) NULL DEFAULT NULL COMMENT '单位',
    `ind1_name`   varchar(20) NULL DEFAULT NULL COMMENT '一级指标-偏差值-名称',
    `ind1_value`  varchar(20) NULL DEFAULT NULL COMMENT '一级指标-偏差值-值',
    `ind1_unit`   varchar(20) NULL DEFAULT NULL COMMENT '一级指标-偏差值-单位',
    `ind2_name`   varchar(20) NULL DEFAULT NULL COMMENT '二级指标-偏差值-名称',
    `ind2_value`  varchar(20) NULL DEFAULT NULL COMMENT '二级指标-偏差值-值',
    `ind2_unit`   varchar(20) NULL DEFAULT NULL COMMENT '二级指标-偏差值-单位',
    `fac1_name`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素1-偏差值-名称',
    `fac1_value`  varchar(20) NULL DEFAULT NULL COMMENT '影响因素1-偏差值-值',
    `fac1_unit`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素1-偏差值-单位',
    `fac2_name`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素2-偏差值-名称',
    `fac2_value`  varchar(20) NULL DEFAULT NULL COMMENT '影响因素2-偏差值-值',
    `fac2_unit`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素2-偏差值-单位',
    `fac3_name`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素3-偏差值-名称',
    `fac3_value`  varchar(20) NULL DEFAULT NULL COMMENT '影响因素3-偏差值-值',
    `fac3_unit`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素4-偏差值-单位',
    `fac4_name`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素4-偏差值-名称',
    `fac4_value`  varchar(20) NULL DEFAULT NULL COMMENT '影响因素4-偏差值-值',
    `fac4_unit`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素4-偏差值-单位',
    `fac5_name`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素5-偏差值-名称',
    `fac5_value`  varchar(20) NULL DEFAULT NULL COMMENT '影响因素5-偏差值-值',
    `fac5_unit`   varchar(20) NULL DEFAULT NULL COMMENT '影响因素5-偏差值-单位',
    `create_date` datetime COMMENT '创建时间',
    PRIMARY KEY (`id`) USING BTREE,
    key           idx_clock (clock)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '焦化工序影响因数偏差值';
-- ----------------------------
-- 焦化工序-异常溯源折线图
@@ -553,16 +571,16 @@
DROP TABLE IF EXISTS `t_coking_trace_data`;
CREATE TABLE `t_coking_trace_data`
(
    `id`         varchar(36) NOT NULL COMMENT 'id',
    `rel_id`     varchar(36) NULL DEFAULT NULL COMMENT '关联ID',
    `id`          varchar(36) NOT NULL COMMENT 'id',
    `rel_id`      varchar(36) NULL DEFAULT NULL COMMENT '关联ID',
    `process`     varchar(20) NULL DEFAULT NULL COMMENT '工序名称',
    `ex_obj`     varchar(20) NULL DEFAULT NULL COMMENT '异常对象',
    `ex_obj`      varchar(20) NULL DEFAULT NULL COMMENT '异常对象',
    `clock`       varchar(20) NULL DEFAULT NULL COMMENT '查询时间',
    `data_type`  varchar(20) NULL DEFAULT NULL COMMENT '数据类型',
    `point_no`   varchar(20) NULL DEFAULT NULL COMMENT '异常点位编号',
    `point_name` varchar(20) NULL DEFAULT NULL COMMENT '异常点位名称',
    `ex_time`    datetime NULL DEFAULT NULL COMMENT '异常时间',
    `ex_type`    varchar(200) NULL DEFAULT NULL COMMENT '异常原因',
    `data_type`   varchar(20) NULL DEFAULT NULL COMMENT '数据类型',
    `point_no`    varchar(20) NULL DEFAULT NULL COMMENT '异常点位编号',
    `point_name`  varchar(20) NULL DEFAULT NULL COMMENT '异常点位名称',
    `ex_time`     datetime NULL DEFAULT NULL COMMENT '异常时间',
    `ex_type`     varchar(200) NULL DEFAULT NULL COMMENT '异常原因',
    `create_date` datetime COMMENT '创建时间',
    PRIMARY KEY (`id`) USING BTREE,
    key           idx_rel_id (rel_id)
@@ -572,31 +590,32 @@
-- 焦化工序-能耗整体情况
-- ----------------------------
DROP TABLE IF EXISTS `t_coking_overview`;
CREATE TABLE `t_coking_overview` (
                                     `id` varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'id',
                                     `rel_id` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关联ID',
                                     `process_type` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工序类型',
                                     `sub_process_type` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子工序类型',
                                     `clock` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '查询时间',
                                     `steam_p` decimal(10,4) DEFAULT NULL COMMENT '蒸汽发生',
                                     `dj_steam_p` decimal(10,4) DEFAULT NULL COMMENT '吨焦产蒸汽',
                                     `steam_c` decimal(10,4) DEFAULT NULL COMMENT '蒸汽消耗',
                                     `steam_only_c` decimal(10,4) DEFAULT NULL COMMENT '蒸汽单耗',
                                     `steam_v` decimal(10,4) DEFAULT NULL COMMENT '蒸汽量',
                                     `gas_p` decimal(10,4) DEFAULT NULL COMMENT '煤气发生',
                                     `gas_c` decimal(10,4) DEFAULT NULL COMMENT '煤气消耗',
                                     `power_c` decimal(10,4) DEFAULT NULL COMMENT '电力消耗',
                                     `power_only_c` decimal(10,4) DEFAULT NULL COMMENT '电力单耗',
                                     `power_c_standard` decimal(10,4) DEFAULT NULL COMMENT '电耗基准',
                                     `idle_time` decimal(10,4) DEFAULT NULL COMMENT '空转时间',
                                     `bfg_c` decimal(10,4) DEFAULT NULL COMMENT 'BFG消耗',
                                     `cog_p` decimal(10,4) DEFAULT NULL COMMENT 'COG回收',
                                     `cog_c` decimal(10,4) DEFAULT NULL COMMENT 'COG消耗',
                                     `bfg_only_c` decimal(10,4) DEFAULT NULL COMMENT 'BFG单耗',
                                     `cog_only_c` decimal(10,4) DEFAULT NULL COMMENT 'COG单耗',
                                     PRIMARY KEY (`id`) USING BTREE,
                                     UNIQUE KEY `process_type_clock_unique` (`process_type`,`sub_process_type`,`clock`),
                                     KEY `idx_rel_id` (`rel_id`)
CREATE TABLE `t_coking_overview`
(
    `id`               varchar(36) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'id',
    `rel_id`           varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关联ID',
    `process_type`     varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工序类型',
    `sub_process_type` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '子工序类型',
    `clock`            varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '查询时间',
    `steam_p`          decimal(10, 4)                         DEFAULT NULL COMMENT '蒸汽发生',
    `dj_steam_p`       decimal(10, 4)                         DEFAULT NULL COMMENT '吨焦产蒸汽',
    `steam_c`          decimal(10, 4)                         DEFAULT NULL COMMENT '蒸汽消耗',
    `steam_only_c`     decimal(10, 4)                         DEFAULT NULL COMMENT '蒸汽单耗',
    `steam_v`          decimal(10, 4)                         DEFAULT NULL COMMENT '蒸汽量',
    `gas_p`            decimal(10, 4)                         DEFAULT NULL COMMENT '煤气发生',
    `gas_c`            decimal(10, 4)                         DEFAULT NULL COMMENT '煤气消耗',
    `power_c`          decimal(10, 4)                         DEFAULT NULL COMMENT '电力消耗',
    `power_only_c`     decimal(10, 4)                         DEFAULT NULL COMMENT '电力单耗',
    `power_c_standard` decimal(10, 4)                         DEFAULT NULL COMMENT '电耗基准',
    `idle_time`        decimal(10, 4)                         DEFAULT NULL COMMENT '空转时间',
    `bfg_c`            decimal(10, 4)                         DEFAULT NULL COMMENT 'BFG消耗',
    `cog_p`            decimal(10, 4)                         DEFAULT NULL COMMENT 'COG回收',
    `cog_c`            decimal(10, 4)                         DEFAULT NULL COMMENT 'COG消耗',
    `bfg_only_c`       decimal(10, 4)                         DEFAULT NULL COMMENT 'BFG单耗',
    `cog_only_c`       decimal(10, 4)                         DEFAULT NULL COMMENT 'COG单耗',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `process_type_clock_unique` (`process_type`,`sub_process_type`,`clock`),
    KEY                `idx_rel_id` (`rel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='工序概况情况';
-- ----------------------------
@@ -637,20 +656,21 @@
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='月最大需量,实测需量,有功功率';
ALTER TABLE `t_power_demand`
    ADD COLUMN `code`  varchar(50) NULL DEFAULT NULL COMMENT '编号';
    ADD COLUMN `code` varchar(50) NULL DEFAULT NULL COMMENT '编号';
CREATE UNIQUE INDEX  `idx_code` ON t_power_demand(`code`);
CREATE UNIQUE INDEX `idx_code` ON t_power_demand (`code`);
-- ----------------------------
-- 负荷移植-调整后的功率因数与无功倒送量
-- ----------------------------
CREATE TABLE `t_power_adjusted_factor` (
                                           `id` varchar(36) NOT NULL,
                                           `code` varchar(50) DEFAULT NULL COMMENT '编码',
                                           `name` varchar(50) DEFAULT NULL COMMENT '名称',
                                           `data_type`  varchar(20) NULL DEFAULT NULL COMMENT '数据类型',
                                           `point_no` varchar(50) DEFAULT NULL COMMENT '点位',
                                           `sort` varchar(50) DEFAULT NULL COMMENT '排序',
                                           PRIMARY KEY (`id`),
                                           UNIQUE key         uk_code (code)
CREATE TABLE `t_power_adjusted_factor`
(
    `id`        varchar(36) NOT NULL,
    `code`      varchar(50) DEFAULT NULL COMMENT '编码',
    `name`      varchar(50) DEFAULT NULL COMMENT '名称',
    `data_type` varchar(20) NULL DEFAULT NULL COMMENT '数据类型',
    `point_no`  varchar(50) DEFAULT NULL COMMENT '点位',
    `sort`      varchar(50) DEFAULT NULL COMMENT '排序',
    PRIMARY KEY (`id`),
    UNIQUE key uk_code (code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='调整后的功率因数与无功倒送量';
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/dto/CokingTraceDeviationDTO.java
@@ -33,17 +33,68 @@
    @Schema(description = "查询时间")
    private String clock;
    @Schema(description = "分组名称")
    private String groupName;
    @Schema(description = "一级指标-偏差值-名称")
    private String ind1Name;
    @Schema(description = "指标名称")
    private String indName;
    @Schema(description = "一级指标-偏差值-值")
    private String ind1Value;
    @Schema(description = "偏差值")
    private String indValue;
    @Schema(description = "一级指标-偏差值-单位")
    private String ind1Unit;
    @Schema(description = "单位")
    private String indUnit;
    @Schema(description = "二级指标-偏差值-名称")
    private String ind2Name;
    @Schema(description = "二级指标-偏差值-值")
    private String ind2Value;
    @Schema(description = "二级指标-偏差值-单位")
    private String ind2Unit;
    @Schema(description = "影响因素1-偏差值-名称")
    private String fac1Name;
    @Schema(description = "影响因素1-偏差值-值")
    private String fac1Value;
    @Schema(description = "影响因素1-偏差值-单位")
    private String fac1Unit;
    @Schema(description = "影响因素2-偏差值-名称")
    private String fac2Name;
    @Schema(description = "影响因素2-偏差值-值")
    private String fac2Value;
    @Schema(description = "影响因素2-偏差值-单位")
    private String fac2Unit;
    @Schema(description = "影响因素3-偏差值-名称")
    private String fac3Name;
    @Schema(description = "影响因素3-偏差值-值")
    private String fac3Value;
    @Schema(description = "影响因素3-偏差值-单位")
    private String fac3Unit;
    @Schema(description = "影响因素4-偏差值-名称")
    private String fac4Name;
    @Schema(description = "影响因素4-偏差值-值")
    private String fac4Value;
    @Schema(description = "影响因素4-偏差值-单位")
    private String fac4Unit;
    @Schema(description = "影响因素5-偏差值-名称")
    private String fac5Name;
    @Schema(description = "影响因素5-偏差值-值")
    private String fac5Value;
    @Schema(description = "影响因素5-偏差值-单位")
    private String fac5Unit;
    @Schema(description = "创建时间")
    private Date createDate;
ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingTraceDeviationEntity.java
@@ -18,15 +18,15 @@
public class CokingTraceDeviationEntity {
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String id;
    /**
     * 关联ID
     */
    private String relId;
    private String relId;
    /**
     * 工序名称
     */
    private String process;
    private String process;
    /**
     * 建议对象
     */
@@ -34,25 +34,102 @@
    /**
     * 查询时间
     */
    private String clock;
    private String clock;
    /**
     * 分组名称
     * 一级指标-偏差值-名称
     */
    private String groupName;
    private String ind1Name;
    /**
     * 指标名称
     * 一级指标-偏差值-值
     */
    private String indName;
    private String ind1Value;
    /**
     * 偏差值
     * 一级指标-偏差值-单位
     */
    private String indValue;
    private String ind1Unit;
    /**
     * 单位
     * 二级指标-偏差值-名称
     */
    private String indUnit;
    private String ind2Name;
    /**
     * 二级指标-偏差值-值
     */
    private String ind2Value;
    /**
     * 二级指标-偏差值-单位
     */
    private String ind2Unit;
    /**
     * 影响因素1-偏差值-名称
     */
    private String fac1Name;
    /**
     * 影响因素1-偏差值-值
     */
    private String fac1Value;
    /**
     * 影响因素1-偏差值-单位
     */
    private String fac1Unit;
    /**
     * 影响因素2-偏差值-名称
     */
    private String fac2Name;
    /**
     * 影响因素2-偏差值-值
     */
    private String fac2Value;
    /**
     * 影响因素2-偏差值-单位
     */
    private String fac2Unit;
    /**
     * 影响因素3-偏差值-名称
     */
    private String fac3Name;
    /**
     * 影响因素3-偏差值-值
     */
    private String fac3Value;
    /**
     * 影响因素3-偏差值-单位
     */
    private String fac3Unit;
    /**
     * 影响因素4-偏差值-名称
     */
    private String fac4Name;
    /**
     * 影响因素4-偏差值-值
     */
    private String fac4Value;
    /**
     * 影响因素4-偏差值-单位
     */
    private String fac4Unit;
    /**
     * 影响因素5-偏差值-名称
     */
    private String fac5Name;
    /**
     * 影响因素5-偏差值-值
     */
    private String fac5Value;
    /**
     * 影响因素5-偏差值-单位
     */
    private String fac5Unit;
    /**
     * 创建时间
     */
    private Date createDate;
    private Date createDate;
}
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelBMTask.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@@ -72,6 +73,8 @@
    private final static String indType = "备煤工序异常溯源";
    private final static String coalRow = "coalRow";
    private static final HashMap<String, Object> coalColoumMap = new HashMap<String, Object>() {{
        put("coalColoum0", "一级指标-偏差值");
        put("coalColoum1", "二级指标-偏差值");
@@ -88,9 +91,9 @@
            "\"coalPrepElecIndex\":[[0.8,0.73],[723,608],[1782,1782],[752,743],[729,783]],\n" +
            "\"coalPrepElecTotal1\":\"1#粉碎机耗电因粉碎机偏高增加220KW/h,经模型计算,建建议调整单班用煤量,预计可使粉碎机耗电量指标降低170KW/h\",\n" +
            "\"coalPrepElecTotal2\":\"1#粉碎机耗电量数据异常\",\n" +
            "\"coalColoum0\":[[0,450],[0,137],[0,342]],\n" +
            "\"coalColoum1\":[[2,306],[3,134],[1,142]],\n" +
            "\"coalColoum2\":[[4,142],[4,132],[4,349]],\n" +
            "\"coalRow0\":[[0,450],[0,137],[0,342]],\n" +
            "\"coalRow1\":[[0,450],[3,134],[1,142]],\n" +
            "\"coalRow2\":[[4,142],[4,132],[4,349]],\n" +
            "\"coalPrepElecHomePage\":[[50,42],[10,10]],\n" +
            "\"coalHomeIndex\":[[90.4,90.2],[80.3,78],[103,100],[280,270]],\n" +
            "\"coalIndexInfo\":\"2月18日甲班:备煤耗电异常\",\n" +
@@ -190,27 +193,64 @@
    public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) {
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COAL_INDEX_CHARTCODE);
        Map<String, String> steamIndexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
        for (int i = 0; i <= 2; i++) {
            String coalColoum = result.get("coalColoum" + i).toString();
            if (StringUtils.isNotBlank(coalColoum)) {
                JSONArray responseArr = JSON.parseArray(coalColoum);
                List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
                for (int j = 0; j < responseArr.size(); j++) {
                    JSONArray element = JSON.parseArray(responseArr.get(j).toString());
                    CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity();
                    deviationEntity.setRelId(relId);
                    deviationEntity.setProcess(process);
                    deviationEntity.setClock(clock);
                    deviationEntity.setSugObj(SugObj);
                    deviationEntity.setGroupName(coalColoumMap.get("coalColoum" + i).toString());
                    deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString()));
                    deviationEntity.setIndValue(element.get(1).toString());
                    deviationEntity.setCreateDate(new Date());
                    entityList.add(deviationEntity);
                }
                cokingTraceDeviationService.save(entityList);
        List<String> coalRowKeys = new ArrayList<>();
        result.forEach((key, value) -> {
            if (StringUtils.isBlank(key) && key.contains(coalRow)) {
                coalRowKeys.add(key);
            }
        });
        List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
        for (String key : coalRowKeys) {
            JSONArray rowArr = JSON.parseArray(result.get(key).toString());
            if (CollectionUtils.isEmpty(rowArr)) {
                continue;
            }
            CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity();
            entity.setRelId(relId);
            entity.setProcess(process);
            entity.setClock(clock);
            entity.setSugObj(SugObj);
            entity.setInd1Name(steamIndexMaps.get(rowArr.getJSONArray(0).get(0).toString()));
            entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString());
            entity.setInd1Unit("");
            entity.setInd2Name(steamIndexMaps.get(rowArr.getJSONArray(1).get(0).toString()));
            entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString());
            entity.setInd2Unit("");
            if (rowArr.size() > 2) {
                entity.setFac1Name(steamIndexMaps.get(rowArr.getJSONArray(2).get(0).toString()));
                entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString());
                entity.setFac1Unit("");
            }
            if (rowArr.size() > 3) {
                entity.setFac2Name(steamIndexMaps.get(rowArr.getJSONArray(3).get(0).toString()));
                entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString());
                entity.setFac2Unit("");
            }
            if (rowArr.size() > 4) {
                entity.setFac3Name(steamIndexMaps.get(rowArr.getJSONArray(4).get(0).toString()));
                entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString());
                entity.setFac3Unit("");
            }
            if (rowArr.size() > 5) {
                entity.setFac4Name(steamIndexMaps.get(rowArr.getJSONArray(5).get(0).toString()));
                entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString());
                entity.setFac4Unit("");
            }
            if (rowArr.size() > 6) {
                entity.setFac5Name(steamIndexMaps.get(rowArr.getJSONArray(6).get(0).toString()));
                entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString());
                entity.setFac5Unit("");
            }
            entityList.add(entity);
        }
        cokingTraceDeviationService.save(entityList);
    }
    public void saveAnalyInd(String relId, String process, String analyDate, String analyClass, String analyContent) {
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelGXJTask.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@@ -51,22 +52,16 @@
    private CokingTraceIndService cokingTraceIndService;
    @Autowired
    private CokingTraceConfService cokingTraceConfService;
    @Autowired
    private McsApi mcsApi;
    @Autowired
    private DataPointApi dataPointApi;
    @Autowired
    private IndItemApi indItemApi;
    private final static String process = "干熄焦工序";
    private final static String reportName = "干熄焦工序异常溯源";
    private final static String indType = "干熄焦工序异常溯源";
    private final static String steamRow = "steamRow";
    private static final HashMap<String, Object> steamFirstColoumMap = new HashMap<String, Object>() {{
        put("steamFirstColoum0", "一级指标-偏差值");
        put("steamFirstColoum1", "二级指标-偏差值");
@@ -88,12 +83,12 @@
    private static final String jsonStr="{\"result\":{" +
            "      \"steamTotal1\":\"2#干熄焦蒸汽发生量因空气导入量偏高、锅炉入口温度偏低而减少13t,经模型计算,建议调整空气导入量,预计可使主蒸汽流量指标升高20m3/h\",\n" +
            "      \"steamTotal2\":\"2#干熄焦蒸汽发生量因空气导入量偏高、锅炉入口温度偏低而减少13m3/h,经模型计算,建议调整循环风机转速,预计可使主蒸汽流量指标升高32m3/h\",\n" +
            "      \"steamFirstColoum0\":[[14,20],[14,30],[14,35]],\n" +
            "      \"steamFirstColoum1\":[[10,5],[11,15],[21,20]],\n" +
            "      \"steamFirstColoum2\":[[74,8],[36,18],[35,34]],\n" +
            "      \"steamFirstColoum3\":[[24,67],[6,12],[19,21]],\n" +
            "      \"steamFirstColoum4\":[[21,19],[22,31],[8,42]],\n" +
            "      \"steamFirstColoum5\":[[11,45],[9,62],[18,34]],\n" +
            "      \"steamRow0\":[[14,20],[14,30],[14,35]],\n" +
            "      \"steamRow1\":[[10,5],[11,15],[21,20]],\n" +
            "      \"steamRow2\":[[74,8],[36,18],[35,34]],\n" +
            "      \"steamRow3\":[[24,67],[6,12],[19,21]],\n" +
            "      \"steamRow4\":[[21,19],[22,31],[8,42]],\n" +
            "      \"steamRow5\":[[11,45],[9,62],[18,34]],\n" +
            "      \"steamSecondColoum0\":[[14,20],[14,50],[14,13]],\n" +
            "      \"steamSecondColoum1\":[[11,27],[10,35],[22,16]],\n" +
            "      \"steamSecondColoum2\":[[36,90],[35,34],[74,55]],\n" +
@@ -196,51 +191,66 @@
    @Transactional
    public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) {
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.STEAM_INDEX_CHARTCODE);
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COAL_INDEX_CHARTCODE);
        Map<String, String> steamIndexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
        for(int i=0;i<=5;i++){
            String steamFirstColoum = result.get("steamFirstColoum"+i).toString();
            if(StringUtils.isNotBlank(steamFirstColoum)){
                JSONArray responseArr = JSON.parseArray(steamFirstColoum);
                List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
                for (int j = 0; j < responseArr.size(); j++) {
                    JSONArray element = JSON.parseArray(responseArr.get(j).toString());
                    CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity();
                    deviationEntity.setRelId(relId);
                    deviationEntity.setProcess(process);
                    deviationEntity.setClock(clock);
                    deviationEntity.setSugObj("1#");
                    deviationEntity.setGroupName(steamFirstColoumMap.get("steamFirstColoum"+i).toString());
                    deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString()));
                    deviationEntity.setIndValue(element.get(1).toString());
                    deviationEntity.setCreateDate(new Date());
                    entityList.add(deviationEntity);
                }
                cokingTraceDeviationService.save(entityList);
        List<String> coalRowKeys = new ArrayList<>();
        result.forEach((key, value) -> {
            if (StringUtils.isBlank(key) && key.contains(steamRow)) {
                coalRowKeys.add(key);
            }
        }
        for(int i=0;i<=5;i++){
            String steamSecondColoum = result.get("steamSecondColoum"+i).toString();
            if(StringUtils.isNotBlank(steamSecondColoum)){
                JSONArray responseArr = JSON.parseArray(steamSecondColoum);
                List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
                for (int j = 0; j < responseArr.size(); j++) {
                    JSONArray element = JSON.parseArray(responseArr.get(j).toString());
                    CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity();
                    deviationEntity.setRelId(relId);
                    deviationEntity.setProcess(process);
                    deviationEntity.setClock(clock);
                    deviationEntity.setSugObj("2#");
                    deviationEntity.setGroupName(steamSecondColoumMap.get("steamSecondColoum" + i).toString());
                    deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString()));
                    deviationEntity.setIndValue(element.get(1).toString());
                    deviationEntity.setCreateDate(new Date());
                    entityList.add(deviationEntity);
                }
                cokingTraceDeviationService.save(entityList);
        });
        List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
        for (String key : coalRowKeys) {
            JSONArray rowArr = JSON.parseArray(result.get(key).toString());
            if (CollectionUtils.isEmpty(rowArr)) {
                continue;
            }
            CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity();
            entity.setRelId(relId);
            entity.setProcess(process);
            entity.setClock(clock);
            entity.setSugObj("");
            entity.setInd1Name(steamIndexMaps.get(rowArr.getJSONArray(0).get(0).toString()));
            entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString());
            entity.setInd1Unit("");
            entity.setInd2Name(steamIndexMaps.get(rowArr.getJSONArray(1).get(0).toString()));
            entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString());
            entity.setInd2Unit("");
            if (rowArr.size() > 2) {
                entity.setFac1Name(steamIndexMaps.get(rowArr.getJSONArray(2).get(0).toString()));
                entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString());
                entity.setFac1Unit("");
            }
            if (rowArr.size() > 3) {
                entity.setFac2Name(steamIndexMaps.get(rowArr.getJSONArray(3).get(0).toString()));
                entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString());
                entity.setFac2Unit("");
            }
            if (rowArr.size() > 4) {
                entity.setFac3Name(steamIndexMaps.get(rowArr.getJSONArray(4).get(0).toString()));
                entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString());
                entity.setFac3Unit("");
            }
            if (rowArr.size() > 5) {
                entity.setFac4Name(steamIndexMaps.get(rowArr.getJSONArray(5).get(0).toString()));
                entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString());
                entity.setFac4Unit("");
            }
            if (rowArr.size() > 6) {
                entity.setFac5Name(steamIndexMaps.get(rowArr.getJSONArray(6).get(0).toString()));
                entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString());
                entity.setFac5Unit("");
            }
            entityList.add(entity);
        }
        cokingTraceDeviationService.save(entityList);
    }
    public void saveAnalyInd(String relId, String process, String analyDate, String analyClass, String analyContent) {
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java
@@ -7,10 +7,6 @@
import com.iailab.module.ansteel.coking.entity.*;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum;
import com.iailab.module.data.api.ind.IndItemApi;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mcs.dto.ChartParamDTO;
import org.apache.commons.lang3.StringUtils;
@@ -64,6 +60,8 @@
    private final static String indType = "化产工序异常溯源";
    private final static String chemProdRow = "chemProdRow";
    private static final HashMap<String, Object> chemProdColoumMap = new HashMap<String, Object>() {{
        put("chemProdFirstColoum0", "一级指标-偏差值");
        put("chemProdFirstColoum1", "二级指标-偏差值");
@@ -82,9 +80,9 @@
            "\"chemProdSteam\":[[33836,33925]],  \n" +
            "\"chemProdIndex\":[[352,355],[68,66.3],[82.5,87.6],[50.7,56.5],[73.5,73.1]],\n" +
            "\"chemProdTotal\":\"蒸汽消耗量异常,当前值1342,经模型计算,指标1异常,当前值1342,建议调整指标1至区间[90,110],指标2异常,当前值1342,建议调整指标2至区间[50,80]\",\n" +
            "\"chemProdFirstColoum0\":[[0,42]],\n" + "      " +
            "\"chemProdFirstColoum1\":[[5,1342],[7,1342],[9,1342]],\n" +
            "\"chemProdFirstColoum2\":[[5,10,1342],[5,16,1342],[7,18,1342]],\n" +
            "\"chemProdRow0\":[[0,42]],\n" + "      " +
            "\"chemProdRow1\":[[5,1342],[7,1342],[9,1342]],\n" +
            "\"chemProdRow2\":[[5,10,1342],[5,16,1342],[7,18,1342]],\n" +
            "\"chemProdHomePage\":[[9,1342],[9,1342]],\n" +
            "\"chemProdHomeIndex\":[[90.4,90.2],[80.3,78],[103,100],[280,270]],\n" +
            "\"chemProdHomeIndexInfo\":\"2月18日甲班:化产蒸汽消耗量异常\",\n" +
@@ -181,29 +179,66 @@
    @Transactional
    public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) {
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.CHEMPROD_INDEX_CHARTCODE);
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COAL_INDEX_CHARTCODE);
        Map<String, String> steamIndexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
        for (int i = 0; i <= 2; i++) {
            String chemProdFirstColoum = result.get("chemProdFirstColoum" + i).toString();
            if (StringUtils.isNotBlank(chemProdFirstColoum)) {
                JSONArray responseArr = JSON.parseArray(chemProdFirstColoum);
                List<CokingTraceDeviationEntity> cokingTraceDeviationEntities = new ArrayList<>();
                for (int j = 0; j < responseArr.size(); j++) {
                    JSONArray element = JSON.parseArray(responseArr.get(j).toString());
                    CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity();
                    deviationEntity.setRelId(relId);
                    deviationEntity.setProcess(process);
                    deviationEntity.setClock(clock);
                    deviationEntity.setSugObj(SugObj);
                    deviationEntity.setGroupName(chemProdColoumMap.get("chemProdFirstColoum" + i).toString());
                    deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString()));
                    deviationEntity.setIndValue(element.get(1).toString());
                    deviationEntity.setCreateDate(new Date());
                    cokingTraceDeviationEntities.add(deviationEntity);
                }
                cokingTraceDeviationService.save(cokingTraceDeviationEntities);
        List<String> coalRowKeys = new ArrayList<>();
        result.forEach((key, value) -> {
            if (StringUtils.isBlank(key) && key.contains(chemProdRow)) {
                coalRowKeys.add(key);
            }
        });
        List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
        for (String key : coalRowKeys) {
            JSONArray rowArr = JSON.parseArray(result.get(key).toString());
            if (CollectionUtils.isEmpty(rowArr)) {
                continue;
            }
            CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity();
            entity.setRelId(relId);
            entity.setProcess(process);
            entity.setClock(clock);
            entity.setSugObj(SugObj);
            entity.setInd1Name(steamIndexMaps.get(rowArr.getJSONArray(0).get(0).toString()));
            entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString());
            entity.setInd1Unit("");
            entity.setInd2Name(steamIndexMaps.get(rowArr.getJSONArray(1).get(0).toString()));
            entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString());
            entity.setInd2Unit("");
            if (rowArr.size() > 2) {
                entity.setFac1Name(steamIndexMaps.get(rowArr.getJSONArray(2).get(0).toString()));
                entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString());
                entity.setFac1Unit("");
            }
            if (rowArr.size() > 3) {
                entity.setFac2Name(steamIndexMaps.get(rowArr.getJSONArray(3).get(0).toString()));
                entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString());
                entity.setFac2Unit("");
            }
            if (rowArr.size() > 4) {
                entity.setFac3Name(steamIndexMaps.get(rowArr.getJSONArray(4).get(0).toString()));
                entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString());
                entity.setFac3Unit("");
            }
            if (rowArr.size() > 5) {
                entity.setFac4Name(steamIndexMaps.get(rowArr.getJSONArray(5).get(0).toString()));
                entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString());
                entity.setFac4Unit("");
            }
            if (rowArr.size() > 6) {
                entity.setFac5Name(steamIndexMaps.get(rowArr.getJSONArray(6).get(0).toString()));
                entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString());
                entity.setFac5Unit("");
            }
            entityList.add(entity);
        }
        cokingTraceDeviationService.save(entityList);
    }
    public void saveAnalyInd(String relId, String process, String analyDate, String analyClass, String analyContent) {
ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelLJTask.java
@@ -9,8 +9,6 @@
import com.iailab.module.ansteel.coking.entity.CokingTraceSuggestEntity;
import com.iailab.module.ansteel.coking.service.*;
import com.iailab.module.ansteel.common.constant.CommonConstant;
import com.iailab.module.data.api.ind.IndItemApi;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.model.api.mcs.McsApi;
import com.iailab.module.model.api.mcs.dto.ChartParamDTO;
import org.apache.commons.lang3.StringUtils;
@@ -19,6 +17,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@@ -50,19 +49,10 @@
    private CokingTraceIndService cokingTraceIndService;
    @Autowired
    private CokingTraceConfService cokingTraceConfService;
    @Autowired
    private CokingTraceChartService cokingTraceChartService;
    @Autowired
    private McsApi mcsApi;
    @Autowired
    private DataPointApi dataPointApi;
    @Autowired
    private IndItemApi indItemApi;
    private final static String process = "炼焦工序";
@@ -71,6 +61,8 @@
    private final static String SugObj = "LJ";
    private final static String indType = "炼焦工序异常溯源";
    private final static String cokeRow = "cokeRow";
    private static final HashMap<String, Object> cokeColoumMap = new HashMap<String, Object>() {{
        put("cokeColoum0", "一级指标-偏差值");
@@ -92,12 +84,12 @@
            "\"cokeHeat\":[3.7,3.8],\n" + "      " +
            "\"cokeIndex\":[[0.8,0.7],[608,608],[1440,1460],[1346,1293],[0.8,0.7],[1372,1293]],\n" + "      " +
            "\"cokeTotal\":\"炼焦吨焦耗热量因煤气流量偏高、煤气水分偏低而增加23,经模型计算,延建议调整煤气流量,预计可使吨焦耗热量指标降低17\",\n" + "      " +
            "\"cokeColoum0\":[[0,13],[0,42],[0,34]],\n" + "      " +
            "\"cokeColoum1\":[[13,12],[12,34],[24,42]],\n" + "     " +
            "\"cokeColoum2\":[[27,45],[58,42],[70,31]],\n" + "      " +
            "\"cokeColoum3\":[[108,56],[110,89],[185,21]],\n" + "      " +
            "\"cokeColoum4\":[[199,13],[200,51],[197,34]],\n" + "      " +
            "\"cokeColoum5\":[[147,33],[131,12],[122,13]],\n" + "      " +
            "\"cokeRow0\":[[0,13],[0,42],[0,34]],\n" + "      " +
            "\"cokeRow1\":[[13,12],[12,34],[24,42]],\n" + "     " +
            "\"cokeRow2\":[[27,45],[58,42],[70,31]],\n" + "      " +
            "\"cokeRow3\":[[108,56],[110,89],[185,21]],\n" + "      " +
            "\"cokeRow4\":[[199,13],[200,51],[197,34]],\n" + "      " +
            "\"cokeRow5\":[[147,33],[131,12],[122,13]],\n" + "      " +
            "\"cokeHomePage\":[[202,42],[203,13],[204,45],[205,34],[206,17]],\n" + "      " +
            "\"cokeHomeIndex\":[[90.4,90.2],[80.3,78],[103,100],[280,270]],\n" + "      " +
            "\"cokeHomeIndexInfo\":\"2月18日甲班:吨焦耗热量异常\",\n" + "      " +
@@ -194,29 +186,66 @@
    @Transactional
    public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) {
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COKE_INDEX_CHARTCODE);
        List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COAL_INDEX_CHARTCODE);
        Map<String, String> steamIndexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
        for (int i = 0; i <= 5; i++) {
            String cokeColoum = result.get("cokeColoum" + i).toString();
            if (StringUtils.isNotBlank(cokeColoum)) {
                JSONArray responseArr = JSON.parseArray(cokeColoum);
                List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
                for (int j = 0; j < responseArr.size(); j++) {
                    JSONArray element = JSON.parseArray(responseArr.get(j).toString());
                    CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity();
                    deviationEntity.setRelId(relId);
                    deviationEntity.setProcess(process);
                    deviationEntity.setClock(clock);
                    deviationEntity.setSugObj(SugObj);
                    deviationEntity.setGroupName(cokeColoumMap.get("cokeColoum" + i).toString());
                    deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString()));
                    deviationEntity.setIndValue(element.get(1).toString());
                    deviationEntity.setCreateDate(new Date());
                    entityList.add(deviationEntity);
                }
                cokingTraceDeviationService.save(entityList);
        List<String> coalRowKeys = new ArrayList<>();
        result.forEach((key, value) -> {
            if (StringUtils.isBlank(key) && key.contains(cokeRow)) {
                coalRowKeys.add(key);
            }
        });
        List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
        for (String key : coalRowKeys) {
            JSONArray rowArr = JSON.parseArray(result.get(key).toString());
            if (CollectionUtils.isEmpty(rowArr)) {
                continue;
            }
            CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity();
            entity.setRelId(relId);
            entity.setProcess(process);
            entity.setClock(clock);
            entity.setSugObj(SugObj);
            entity.setInd1Name(steamIndexMaps.get(rowArr.getJSONArray(0).get(0).toString()));
            entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString());
            entity.setInd1Unit("");
            entity.setInd2Name(steamIndexMaps.get(rowArr.getJSONArray(1).get(0).toString()));
            entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString());
            entity.setInd2Unit("");
            if (rowArr.size() > 2) {
                entity.setFac1Name(steamIndexMaps.get(rowArr.getJSONArray(2).get(0).toString()));
                entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString());
                entity.setFac1Unit("");
            }
            if (rowArr.size() > 3) {
                entity.setFac2Name(steamIndexMaps.get(rowArr.getJSONArray(3).get(0).toString()));
                entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString());
                entity.setFac2Unit("");
            }
            if (rowArr.size() > 4) {
                entity.setFac3Name(steamIndexMaps.get(rowArr.getJSONArray(4).get(0).toString()));
                entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString());
                entity.setFac3Unit("");
            }
            if (rowArr.size() > 5) {
                entity.setFac4Name(steamIndexMaps.get(rowArr.getJSONArray(5).get(0).toString()));
                entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString());
                entity.setFac4Unit("");
            }
            if (rowArr.size() > 6) {
                entity.setFac5Name(steamIndexMaps.get(rowArr.getJSONArray(6).get(0).toString()));
                entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString());
                entity.setFac5Unit("");
            }
            entityList.add(entity);
        }
        cokingTraceDeviationService.save(entityList);
    }
    public void saveAnalyInd(String relId, String process, String analyDate, String analyClass, String analyContent) {