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