From 18d64f59494cc02c5c1a2b87a479f970e2ea1d7d Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期五, 25 四月 2025 16:18:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingOverviewTask.java |  147 +++++++++---------------------------------------
 1 files changed, 28 insertions(+), 119 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 de344c6..9762eeb 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
@@ -91,6 +91,7 @@
                 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());
@@ -103,7 +104,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<>();
@@ -124,6 +125,32 @@
 
                         }
                         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);
+                            exDatalist.add(ctd);
+                        }
+
                     }
                     CokingOverviewEntity overviewEntity = new CokingOverviewEntity();
                     BeanUtil.fillBeanWithMap(values,overviewEntity,true);
@@ -139,129 +166,11 @@
                     cokingTraceDataService.deleteByExObj(processType, clock);
                 }
                 cokingOverviewService.insert(result);
-
-                // 指标运行趋势
-                List<CokingProcessConfEntity> indRunTrend = list.stream().filter(e -> e.getInfoType().equals("1")).collect(Collectors.toList());
-                List<CokingTraceChartEntity> cokingTraceChartEntityList = new ArrayList<>(indRunTrend.size());
-                // List<CokingTraceSuggestEntity> suggestEntitieList = new ArrayList<>();
-                List<CokingTraceDataEntity> exDatalist = new ArrayList<>(indRunTrend.size());
-                indRunTrend.forEach(e -> {
-                    CokingTraceChartEntity cokingTraceChartEntity = new CokingTraceChartEntity();
-                    cokingTraceChartEntity.setRelId(relId);
-                    cokingTraceChartEntity.setName(e.getIndName());
-                    cokingTraceChartEntity.setClock(clock);
-                    cokingTraceChartEntity.setDataNo(e.getPointNo());
-                    cokingTraceChartEntity.setDataType(e.getDataType());
-
-                    Calendar clone = (Calendar) calendar.clone();
-                    cokingTraceChartEntity.setEndTime(clone.getTime());
-                    if (e.getExt2().equals("month")) {
-                        clone.add(Calendar.MONTH,-1 * Integer.parseInt(e.getExt1()));
-                    } else if (e.getExt2().equals("day")) {
-                        clone.add(Calendar.DAY_OF_YEAR,-1 * Integer.parseInt(e.getExt1()));
-                    }
-                    cokingTraceChartEntity.setStartTime(clone.getTime());
-                    cokingTraceChartEntity.setCreateDate(new Date());
-                    cokingTraceChartEntityList.add(cokingTraceChartEntity);
-
-                    // 异常数据处理
-                    exDatalist.addAll(handleAbnormalData(e, cokingTraceChartEntity.getStartTime(), cokingTraceChartEntity.getEndTime(),relId,clock));
-                });
-                cokingTraceChartService.insert(cokingTraceChartEntityList);
-                // cokingTraceSuggestService.insert(suggestEntitieList);
                 cokingTraceDataService.insertList(exDatalist);
-
             }
         } catch (Exception ex) {
             logger.error("runCokingOverviewTask运行异常",ex);
         }
         logger.info("runCokingOverviewTask运行完成");
-
-    }
-
-    private List<CokingTraceDataEntity> handleAbnormalData(CokingProcessConfEntity e, Date startTime, Date endTime, String relId, String clock) {
-        List<CokingTraceDataEntity> suggestEntities = new ArrayList<>();
-        switch (ProcessConfDataTypeEnum.getEumByCode(e.getDataType())) {
-            case DATAPOINT:
-                ApiPointValueQueryDTO queryDTO = new ApiPointValueQueryDTO();
-                queryDTO.setPointNo(e.getPointNo());
-                queryDTO.setStart(startTime);
-                queryDTO.setEnd(endTime);
-                List<ApiPointValueDTO> pointValues = dataPointApi.queryPointHistoryValue(queryDTO);
-                Map<Date, Double> pointValueMap = pointValues.stream().collect(Collectors.toMap(ApiPointValueDTO::getT, ApiPointValueDTO::getV, (e1, e2) -> e1));
-                Calendar calendar = Calendar.getInstance();
-                calendar.setTime(startTime);
-                while (!calendar.getTime().after(endTime)) {
-                    String content = null;
-                    if (pointValueMap.containsKey(calendar.getTime())) {
-                        Double value = pointValueMap.get(calendar.getTime());
-                        if (value.equals(0.0)) {
-                            content = DateUtils.format(calendar.getTime()) + " " + e.getIndName() + "数据异常(数据为0)";
-                        }else if (value.compareTo(Double.valueOf(e.getExt3())) > 0) {
-                            content = DateUtils.format(calendar.getTime()) + " " + e.getIndName() + "数据异常(超上限)";
-                        }else if (value.compareTo(Double.valueOf(e.getExt4())) < 0) {
-                            content = DateUtils.format(calendar.getTime()) + " " + e.getIndName() + "数据异常(超下限)";
-                        }
-                    }else {
-                        content = DateUtils.format(calendar.getTime()) + " " + e.getIndName() + "数据异常(无数据)";
-                    }
-                    if (StringUtils.isNotBlank(content)) {
-                        CokingTraceDataEntity ctd = new CokingTraceDataEntity();
-                        ctd.setId(UUID.randomUUID().toString());
-                        ctd.setRelId(relId);
-                        ctd.setProcess(ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName());
-                        ctd.setClock(clock);
-                        ctd.setExObj(e.getIndType()+"_AD");
-                        ctd.setExTime(calendar.getTime());
-                        ctd.setExType(content);
-                        suggestEntities.add(ctd);
-                    }
-                    calendar.add(Calendar.DAY_OF_YEAR,1);
-                }
-                break;
-            case IND:
-                ApiIndItemQueryDTO query = new ApiIndItemQueryDTO();
-                query.setItemNo(e.getPointNo());
-                query.setStart(startTime);
-                query.setEnd(endTime);
-                List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemHistoryValue(query);
-                Map<String, Double> indValueMap = indValues.stream().collect(Collectors.toMap(ApiIndItemValueDTO::getDataTime, ind -> Double.valueOf(ind.getDataValue().toString()), (e1, e2) -> e1));
-                Calendar intCalendar = Calendar.getInstance();
-                intCalendar.setTime(startTime);
-                while (!intCalendar.getTime().after(endTime)) {
-                    String content = null;
-                    String time = DateUtils.format(intCalendar.getTime());
-                    if (indValueMap.containsKey(time)) {
-                        Double value = indValueMap.get(time);
-                        if (value.equals(0.0)) {
-                            content = time + " " + e.getIndName() + "数据异常(数据为0)";
-                        }else if (value.compareTo(Double.valueOf(e.getExt3())) > 0) {
-                            content = time + " " + e.getIndName() + "数据异常(超上限)";
-                        }else if (value.compareTo(Double.valueOf(e.getExt4())) < 0) {
-                            content = time + " " + e.getIndName() + "数据异常(超下限)";
-                        }
-                    }else {
-                        content = time + " " + e.getIndName() + "数据异常(无数据)";
-                    }
-                    if (StringUtils.isNotBlank(content)) {
-                        CokingTraceDataEntity ctd = new CokingTraceDataEntity();
-                        ctd.setId(UUID.randomUUID().toString());
-                        ctd.setRelId(relId);
-                        ctd.setProcess(ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName());
-                        ctd.setClock(clock);
-                        ctd.setExObj(e.getIndType()+"_AD");
-                        ctd.setExTime(intCalendar.getTime());
-                        ctd.setExType(content);
-                        suggestEntities.add(ctd);
-                        // suggestEntities.add(new CokingTraceSuggestEntity(UUID.randomUUID().toString(),relId,ProcessTypeEnum.getEumByCode(e.getIndType()).getReportName(),e.getIndType()+"_AD",clock,content,new Date()));
-                    }
-                    intCalendar.add(Calendar.DAY_OF_YEAR,1);
-                }
-                break;
-            default:
-                break;
-
-        }
-        return suggestEntities;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3