From f5982398a509ecfa15fc210f50040511fd1d382b Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 23 四月 2025 17:30:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingChildDayTask.java | 138 +++++++++++++++++++++++----------------------- 1 files changed, 69 insertions(+), 69 deletions(-) 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 606930d..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 @@ -1,19 +1,19 @@ package com.iailab.module.ansteel.job.task; -import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; -import com.iailab.module.ansteel.api.entity.CokingProcessChildEntity; -import com.iailab.module.ansteel.api.service.CokingProcessChildService; -import com.iailab.module.ansteel.api.service.CokingProcessConfService; -import com.iailab.module.ansteel.api.service.CokingProcessMainService; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.module.ansteel.coking.entity.CokingProcessConfEntity; +import com.iailab.module.ansteel.coking.entity.CokingProcessChildEntity; +import com.iailab.module.ansteel.coking.service.CokingProcessChildService; +import com.iailab.module.ansteel.coking.service.CokingProcessConfService; +import com.iailab.module.ansteel.common.enums.ProcessIndDataTypeEnum; import com.iailab.module.data.api.point.DataPointApi; import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -44,72 +44,72 @@ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); + calendar.add(Calendar.DAY_OF_YEAR, -1); + String clock = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); 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)))); - - // 获取当前日期时间 - LocalDateTime now = LocalDateTime.now(); - // 减去一天得到昨天同一时间 - LocalDateTime yesterday = now.minusDays(1); - // 格式化输出 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String formattedDateTime = yesterday.format(formatter); - 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.setIndName(group); - cokingProcessChildEntity.setClock(formattedDateTime); - CokingProcessConfEntity conf = confList.get(0); - cokingProcessChildEntity.setIndType(conf.getExt2()); - cokingProcessChildEntity.setIndMain(conf.getExt1().replace(conf.getExt2(), "")); - confList.forEach(cokingProcessConfEntity -> { - List<String> points = new ArrayList<>(); - points.add(cokingProcessConfEntity.getPointNo()); - Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); - //保存数据 - Object value = stringObjectMap.get(cokingProcessConfEntity.getPointNo()); - if(ObjectUtils.isNotEmpty(value)) { - if(cokingProcessConfEntity.getIndCode().endsWith("LSPJ")) { - cokingProcessChildEntity.setAvgValue(value.toString()); - } else if(cokingProcessConfEntity.getIndCode().endsWith("LLZ")) { - cokingProcessChildEntity.setTheoryValue(value.toString()); - } else if(cokingProcessConfEntity.getIndCode().endsWith("SJZ")) { - cokingProcessChildEntity.setActualValue(value.toString()); - } else if(cokingProcessConfEntity.getIndCode().endsWith("JZZ")) { - cokingProcessChildEntity.setStandValue(value.toString()); - } else if(cokingProcessConfEntity.getIndCode().endsWith("SSSJ")) { - 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运行异常"); -- Gitblit v1.9.3