From 3420c1e93b9af68ef2b8b4de6af6e59c7b9a5e2f Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 23 四月 2025 17:29:28 +0800 Subject: [PATCH] 生产指标增加字段 indCode --- ansteel-biz/db/mysql.sql | 4 + ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProdDayDTO.java | 5 + ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java | 119 ++++++++++++++++++++------------------- ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingProdDayEntity.java | 2 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java | 25 +++---- 5 files changed, 81 insertions(+), 74 deletions(-) diff --git a/ansteel-biz/db/mysql.sql b/ansteel-biz/db/mysql.sql index 4b6443c..6c7e340 100644 --- a/ansteel-biz/db/mysql.sql +++ b/ansteel-biz/db/mysql.sql @@ -354,11 +354,13 @@ `id` varchar(36) NOT NULL COMMENT 'id', `clock` varchar(20) NULL DEFAULT NULL COMMENT '查询时间', `info_type` varchar(10) NULL DEFAULT NULL COMMENT '信息类型(0:生产情况,1:能源发生,2:能源消耗)', + `ind_code` varchar(50) NULL DEFAULT NULL COMMENT '数据编码', `ind_name` varchar(50) NULL DEFAULT NULL COMMENT '数据名称', `ind_unit` varchar(50) NULL DEFAULT NULL COMMENT '数据单位', `ind_value` varchar(50) NULL DEFAULT NULL COMMENT '数据值', `sort` int NULL DEFAULT NULL COMMENT '排序', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + key idx_clock (clock) ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC COMMENT '焦化工序日生产信息'; -- ---------------------------- diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProdDayDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProdDayDTO.java index c04fd72..620aa03 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProdDayDTO.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/CokingProdDayDTO.java @@ -24,7 +24,10 @@ @Schema(description = "信息类型(0:生产情况,1:能源发生,2:能源消耗)") private String infoType; - @Schema(description = "数据名称") + @Schema(description = "指标编码") + private String indCode; + + @Schema(description = "指标名称") private String indName; @Schema(description = "数据单位") diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingProdDayEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingProdDayEntity.java index a712453..2989e66 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingProdDayEntity.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/entity/CokingProdDayEntity.java @@ -24,6 +24,8 @@ private String infoType; + private String indCode; + private String indName; private String indUnit; diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java index e558a04..a1adf38 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; @@ -48,65 +49,67 @@ CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); queryParams.setIndType("child"); List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); - if (ObjectUtils.isNotEmpty(list)) { - // 先建立ext1到sort的映射关系 - Map<String, Integer> ext1ToSort = list.stream() - .collect(Collectors.toMap( - CokingProcessConfEntity::getExt1, - CokingProcessConfEntity::getSort, - (oldValue, newValue) -> oldValue)); - - // 然后按这个关系排序分组 - Map<String, List<CokingProcessConfEntity>> groupMap = list.stream() - .sorted(Comparator.comparing(CokingProcessConfEntity::getSort)) - .collect(Collectors.collectingAndThen( - Collectors.groupingBy(CokingProcessConfEntity::getExt1), - map -> map.entrySet().stream() - .sorted(Comparator.comparingInt( - e -> ext1ToSort.get(e.getKey()))) // 按ext1对应的sort值排序 - .collect(Collectors.toMap( - Map.Entry::getKey, - Map.Entry::getValue, - (a, b) -> a, - LinkedHashMap::new)))); - - logger.info("清理旧数据"); - cokingProcessChildService.deleteByClock(clock); - - AtomicReference<Integer> counter = new AtomicReference<>(1); - groupMap.forEach((group, confList) -> { - CokingProcessChildEntity cokingProcessChildEntity = new CokingProcessChildEntity(); - cokingProcessChildEntity.setInfoType("0"); - cokingProcessChildEntity.setSort(counter.getAndSet(counter.get() + 1)); - cokingProcessChildEntity.setCategory("day"); - cokingProcessChildEntity.setClock(clock); - CokingProcessConfEntity childConf = confList.get(0); - cokingProcessChildEntity.setIndType(childConf.getExt3()); - cokingProcessChildEntity.setIndMain(childConf.getExt4()); - cokingProcessChildEntity.setIndName(childConf.getExt5()); - confList.forEach(conf -> { - List<String> points = new ArrayList<>(); - points.add(conf.getPointNo()); - Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); - //保存数据 - Object value = stringObjectMap.get(conf.getPointNo()); - if(ObjectUtils.isNotEmpty(value)) { - if(conf.getExt2().equals(ProcessIndDataTypeEnum.LSPJ.getCode())) { - cokingProcessChildEntity.setAvgValue(value.toString()); - } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.LLZ.getCode())) { - cokingProcessChildEntity.setTheoryValue(value.toString()); - } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.SJZ.getCode())) { - cokingProcessChildEntity.setActualValue(value.toString()); - } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.JZZ.getCode())) { - cokingProcessChildEntity.setStandValue(value.toString()); - } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.SSSJ.getCode())) { - cokingProcessChildEntity.setRealValue(value.toString()); - } - } - }); - cokingProcessChildService.save(cokingProcessChildEntity); - }); + if (CollectionUtils.isEmpty(list)) { + logger.info("子工序配置为空"); + return; } + // 先建立ext1到sort的映射关系 + Map<String, Integer> ext1ToSort = list.stream() + .collect(Collectors.toMap( + CokingProcessConfEntity::getExt1, + CokingProcessConfEntity::getSort, + (oldValue, newValue) -> oldValue)); + + // 然后按这个关系排序分组 + Map<String, List<CokingProcessConfEntity>> groupMap = list.stream() + .sorted(Comparator.comparing(CokingProcessConfEntity::getSort)) + .collect(Collectors.collectingAndThen( + Collectors.groupingBy(CokingProcessConfEntity::getExt1), + map -> map.entrySet().stream() + .sorted(Comparator.comparingInt( + e -> ext1ToSort.get(e.getKey()))) // 按ext1对应的sort值排序 + .collect(Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue, + (a, b) -> a, + LinkedHashMap::new)))); + + logger.info("清理旧数据"); + cokingProcessChildService.deleteByClock(clock); + + AtomicReference<Integer> counter = new AtomicReference<>(1); + groupMap.forEach((group, confList) -> { + CokingProcessChildEntity cokingProcessChildEntity = new CokingProcessChildEntity(); + cokingProcessChildEntity.setInfoType("0"); + cokingProcessChildEntity.setSort(counter.getAndSet(counter.get() + 1)); + cokingProcessChildEntity.setCategory("day"); + cokingProcessChildEntity.setClock(clock); + CokingProcessConfEntity childConf = confList.get(0); + cokingProcessChildEntity.setIndType(childConf.getExt3()); + cokingProcessChildEntity.setIndMain(childConf.getExt4()); + cokingProcessChildEntity.setIndName(childConf.getExt5()); + confList.forEach(conf -> { + List<String> points = new ArrayList<>(); + points.add(conf.getPointNo()); + Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); + //保存数据 + Object value = stringObjectMap.get(conf.getPointNo()); + if(ObjectUtils.isNotEmpty(value)) { + if(conf.getExt2().equals(ProcessIndDataTypeEnum.LSPJ.getCode())) { + cokingProcessChildEntity.setAvgValue(value.toString()); + } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.LLZ.getCode())) { + cokingProcessChildEntity.setTheoryValue(value.toString()); + } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.SJZ.getCode())) { + cokingProcessChildEntity.setActualValue(value.toString()); + } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.JZZ.getCode())) { + cokingProcessChildEntity.setStandValue(value.toString()); + } else if(conf.getExt2().equals(ProcessIndDataTypeEnum.SSSJ.getCode())) { + cokingProcessChildEntity.setRealValue(value.toString()); + } + } + }); + cokingProcessChildService.save(cokingProcessChildEntity); + }); } catch (Exception ex) { logger.error("RunCokingChildDayTask运行异常"); diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java index 5be926e..539719a 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java @@ -5,7 +5,6 @@ import com.iailab.module.ansteel.coking.entity.CokingProdDayEntity; import com.iailab.module.ansteel.coking.service.CokingProcessConfService; import com.iailab.module.ansteel.coking.service.CokingProdDayService; -import com.iailab.module.ansteel.coking.service.CokingTraceIndService; 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; @@ -40,9 +39,6 @@ @Resource private CokingProdDayService cokingProdDayService; - - @Resource - private CokingTraceIndService cokingTraceIndService; @Resource private DataPointApi dataPointApi; @@ -96,7 +92,7 @@ break; } - saveProdDay(conf, value, clock); + saveProdDay(conf, value, clock, conf.getIndCode()); } } catch (Exception ex) { logger.error("RunCokingProdDayTask运行异常"); @@ -106,14 +102,15 @@ } - private void saveProdDay(CokingProcessConfEntity conf, String value, String clock) { - CokingProdDayEntity cokingProdDayEntity = new CokingProdDayEntity(); - cokingProdDayEntity.setInfoType(conf.getInfoType()); - cokingProdDayEntity.setSort(conf.getSort()); - cokingProdDayEntity.setIndName(conf.getIndName()); - cokingProdDayEntity.setIndUnit(conf.getIndUnit()); - cokingProdDayEntity.setIndValue(value); - cokingProdDayEntity.setClock(clock); - cokingProdDayService.save(cokingProdDayEntity); + private void saveProdDay(CokingProcessConfEntity conf, String value, String clock, String indCode) { + CokingProdDayEntity entity = new CokingProdDayEntity(); + entity.setInfoType(conf.getInfoType()); + entity.setSort(conf.getSort()); + entity.setIndCode(indCode); + entity.setIndName(conf.getIndName()); + entity.setIndUnit(conf.getIndUnit()); + entity.setIndValue(value); + entity.setClock(clock); + cokingProdDayService.save(entity); } } \ No newline at end of file -- Gitblit v1.9.3