From 9e8a11aea00e194d4532a1adb48891e95f75b8b9 Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期五, 25 四月 2025 21:29:58 +0800 Subject: [PATCH] 偏差值修改 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java | 66 +++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 15 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java index 0b9df33..9eebb07 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java @@ -2,17 +2,16 @@ import cn.hutool.core.bean.BeanUtil; import com.iailab.framework.common.util.date.DateUtils; -import com.iailab.module.ansteel.coking.entity.CokingOverviewEntity; -import com.iailab.module.ansteel.coking.entity.CokingProcessConfEntity; -import com.iailab.module.ansteel.coking.entity.CokingTraceReportEntity; -import com.iailab.module.ansteel.coking.service.CokingOverviewService; -import com.iailab.module.ansteel.coking.service.CokingProcessConfService; -import com.iailab.module.ansteel.coking.service.CokingTraceReportService; +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.ProcessTypeEnum; 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.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointValueDTO; +import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -46,6 +45,8 @@ private IndItemApi indItemApi; @Resource private CokingTraceReportService cokingTraceReportService; + @Resource + private CokingTraceDataService cokingTraceDataService; @Override public void run(String processTypes) { @@ -59,16 +60,18 @@ queryParams.setIndType(processType); List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); if (CollectionUtils.isEmpty(list)) { - logger.info("ConfLis is Empty"); - return; + logger.info("ConfList is Empty"); + continue; } Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.add(Calendar.DAY_OF_YEAR, -1); String clock = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); - // 插入溯源报告 + // 溯源报告 CokingTraceReportEntity reportEntity = new CokingTraceReportEntity(); String relId = UUID.randomUUID().toString(); reportEntity.setId(relId); @@ -76,12 +79,15 @@ reportEntity.setReportName(ProcessTypeEnum.getEumByCode(processType).getReportName()); reportEntity.setAnalyDate(clock); reportEntity.setClock(clock); + reportEntity.setCreateDate(new Date()); cokingTraceReportService.save(reportEntity); - // 按照子工序类型分组 - Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); + // 整体情况 + // 筛选info_type = 2,按照子工序类型分组 + Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().filter(e -> e.getInfoType().equals("2")).collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); // 结果 <子工序类型,<数据key,数据value>> List<CokingOverviewEntity> result = new ArrayList<>(processTypeMap.size()); + List<CokingTraceDataEntity> exDatalist = new ArrayList<>(); for (Map.Entry<String, List<CokingProcessConfEntity>> entry : processTypeMap.entrySet()) { Map<String,Double> values = new HashMap<>(entry.getValue().size()); @@ -94,7 +100,7 @@ logger.info("PointNo is Empty"); continue; } - Double value = 0.0; + Double value = null; switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { case DATAPOINT: List<String> points = new ArrayList<>(); @@ -115,6 +121,33 @@ } values.put(conf.getExt1(),value); + + // 异常数据处理 + String content = null; + if (value != null) { + if (value.equals(0.0)) { + content = clock + " " + conf.getIndName() + "数据异常(数据为0)"; + }else if (value.compareTo(Double.valueOf(conf.getExt3())) > 0) { + content = clock + " " + conf.getIndName() + "数据异常(超上限)"; + }else if (value.compareTo(Double.valueOf(conf.getExt4())) < 0) { + content = clock + " " + conf.getIndName() + "数据异常(超下限)"; + } + }else { + content = clock + " " + conf.getIndName() + "数据异常(无数据)"; + } + if (StringUtils.isNotBlank(content)) { + CokingTraceDataEntity ctd = new CokingTraceDataEntity(); + ctd.setId(UUID.randomUUID().toString()); + ctd.setRelId(relId); + ctd.setProcess(ProcessTypeEnum.getEumByCode(conf.getIndType()).getReportName()); + ctd.setClock(clock); + ctd.setExObj(conf.getIndType()+"_AD"); + ctd.setExTime(calendar.getTime()); + ctd.setExType(content); + ctd.setCreateDate(new Date()); + exDatalist.add(ctd); + } + } CokingOverviewEntity overviewEntity = new CokingOverviewEntity(); BeanUtil.fillBeanWithMap(values,overviewEntity,true); @@ -124,14 +157,17 @@ overviewEntity.setSubProcessType(entry.getKey()); overviewEntity.setClock(clock); result.add(overviewEntity); + + // 清理旧数据 + cokingOverviewService.deleteByProcessType(processType, clock); + cokingTraceDataService.deleteByExObj(processType, clock); } cokingOverviewService.insert(result); + cokingTraceDataService.insertList(exDatalist); } } catch (Exception ex) { - logger.error("runCokingOverviewTask运行异常"); - ex.printStackTrace(); + logger.error("runCokingOverviewTask运行异常",ex); } logger.info("runCokingOverviewTask运行完成"); - } } \ No newline at end of file -- Gitblit v1.9.3