From 95fa8f7f6e3dbc4f13c0a9b15515f4040fa05f03 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期六, 26 四月 2025 11:16:46 +0800 Subject: [PATCH] 焦化概况 能流图指标数据 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java | 92 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 68 insertions(+), 24 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 9eebb07..870e040 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 @@ -20,6 +20,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -39,6 +40,8 @@ private CokingProcessConfService cokingProcessConfService; @Resource private CokingOverviewService cokingOverviewService; + @Resource + private CokingOverviewIndService cokingOverviewIndService; @Resource private DataPointApi dataPointApi; @Resource @@ -82,6 +85,11 @@ reportEntity.setCreateDate(new Date()); cokingTraceReportService.save(reportEntity); + // 清理旧数据 + cokingOverviewService.deleteByProcessType(processType, clock); + cokingTraceDataService.deleteByExObj(processType+"_AD", clock); + cokingOverviewIndService.deleteByProcessType(processType, clock); + // 整体情况 // 筛选info_type = 2,按照子工序类型分组 Map<String, List<CokingProcessConfEntity>> processTypeMap = list.stream().filter(e -> e.getInfoType().equals("2")).collect(Collectors.groupingBy(CokingProcessConfEntity::getExt2)); @@ -100,26 +108,9 @@ logger.info("PointNo is Empty"); continue; } - Double value = null; - switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { - case DATAPOINT: - List<String> points = new ArrayList<>(); - points.add(conf.getPointNo()); - Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); - value = Double.valueOf(pointsRealValue.get(conf.getPointNo()).toString()); - break; - case IND: - List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo()); - if (!CollectionUtils.isEmpty(indValues)) { - value = Double.valueOf(indValues.get(indValues.size() - 1).getDataValue().toString()); - } - break; - case MODEL: - break; - default: - break; - } + Double value = getConfValue(conf); + values.put(conf.getExt1(),value); // 异常数据处理 @@ -141,7 +132,7 @@ ctd.setRelId(relId); ctd.setProcess(ProcessTypeEnum.getEumByCode(conf.getIndType()).getReportName()); ctd.setClock(clock); - ctd.setExObj(conf.getIndType()+"_AD"); + ctd.setExObj(processType+"_AD"); ctd.setExTime(calendar.getTime()); ctd.setExType(content); ctd.setCreateDate(new Date()); @@ -157,17 +148,70 @@ overviewEntity.setSubProcessType(entry.getKey()); overviewEntity.setClock(clock); result.add(overviewEntity); - - // 清理旧数据 - cokingOverviewService.deleteByProcessType(processType, clock); - cokingTraceDataService.deleteByExObj(processType, clock); } cokingOverviewService.insert(result); cokingTraceDataService.insertList(exDatalist); + + // 能流图指标数据 + // 筛选info_type = 1 + List<CokingProcessConfEntity> indList = list.stream().filter(e -> e.getInfoType().equals("1")).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(indList)) { + return; + } + List<CokingOverviewIndEntity> overviewIndEntities = new ArrayList<>(indList.size()); + for (CokingProcessConfEntity conf : indList) { + if (StringUtils.isBlank(conf.getDataType())) { + logger.info("DataType is Empty"); + continue; + } + if (StringUtils.isBlank(conf.getPointNo())) { + logger.info("PointNo is Empty"); + continue; + } + Double value = getConfValue(conf); + CokingOverviewIndEntity entity = new CokingOverviewIndEntity(); + entity.setId(UUID.randomUUID().toString()); + entity.setRelId(relId); + entity.setProcessType(processType); + entity.setClock(clock); + entity.setIndCode(conf.getIndCode()); + entity.setIndName(conf.getIndName()); + entity.setIndUnit(conf.getIndUnit()); + if (value != null) { + entity.setIndValue(BigDecimal.valueOf(value)); + } + entity.setCreateDate(new Date()); + overviewIndEntities.add(entity); + } + cokingOverviewIndService.save(overviewIndEntities); } } catch (Exception ex) { logger.error("runCokingOverviewTask运行异常",ex); } logger.info("runCokingOverviewTask运行完成"); } + + private Double getConfValue(CokingProcessConfEntity conf) { + Double value = null; + switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { + case DATAPOINT: + List<String> points = new ArrayList<>(); + points.add(conf.getPointNo()); + Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); + value = Double.valueOf(pointsRealValue.get(conf.getPointNo()).toString()); + break; + case IND: + List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo()); + if (!CollectionUtils.isEmpty(indValues)) { + value = Double.valueOf(indValues.get(indValues.size() - 1).getDataValue().toString()); + } + break; + case MODEL: + break; + default: + break; + + } + return value; + } } \ No newline at end of file -- Gitblit v1.9.3