From d99504a92ccc6d96a2436dbcf461a6259bffd7ea Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 06 五月 2025 07:18:24 +0800
Subject: [PATCH] 溯源查询接口增加 processType

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java          |    2 +
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java |   17 +++++++-
 ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java             |   31 +++++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java         |   46 +++++++++++++++++++++++
 4 files changed, 94 insertions(+), 2 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
index 384e390..1666392 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/CokingController.java
@@ -12,6 +12,7 @@
 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.TraceProcessTypeEnum;
 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;
@@ -196,6 +197,21 @@
     @GetMapping("/trace-suggest/list")
     @Operation(summary = "焦化工序-异常溯源及优化建议")
     public CommonResult<List<CokingTraceSuggestDTO>> getTraceSuggestList(@RequestParam Map<String, Object> params) {
+        String relId = (String) params.get("relId");
+        String processType = (String) params.get("processType");
+        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
+            // 查找最新的relId
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_YEAR, -1);
+            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
+            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
+            if (analyInd != null) {
+                relId = analyInd.getRelId();
+                params.put("relId", relId);
+            } else {
+                return success(new ArrayList<>());
+            }
+        }
         List<CokingTraceSuggestEntity> list = cokingTraceSuggestService.list(params);
         return success(ConvertUtils.sourceToTarget(list, CokingTraceSuggestDTO.class));
     }
@@ -203,6 +219,21 @@
     @GetMapping("/trace-ind/list")
     @Operation(summary = "焦化工序-异常溯源指标")
     public CommonResult<List<CokingTraceIndDTO>> getTraceIndList(@RequestParam Map<String, Object> params) {
+        String relId = (String) params.get("relId");
+        String processType = (String) params.get("processType");
+        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
+            // 查找最新的relId
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_YEAR, -1);
+            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
+            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
+            if (analyInd != null) {
+                relId = analyInd.getRelId();
+                params.put("relId", relId);
+            } else {
+                return success(new ArrayList<>());
+            }
+        }
         List<CokingTraceIndEntity> list = cokingTraceIndService.list(params);
         return success(ConvertUtils.sourceToTarget(list, CokingTraceIndDTO.class));
     }
@@ -210,6 +241,21 @@
     @GetMapping("/trace-deviation/list")
     @Operation(summary = "焦化工序-异常溯源影响因素偏差值")
     public CommonResult<List<CokingTraceDeviationDTO>> getTraceDeviationList(@RequestParam Map<String, Object> params) {
+        String relId = (String) params.get("relId");
+        String processType = (String) params.get("processType");
+        if (StringUtils.isBlank(relId) && StringUtils.isNotBlank(processType)) {
+            // 查找最新的relId
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_YEAR, -1);
+            String clock = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
+            CokingAnalyIndEntity analyInd = cokingAnalyIndService.get(TraceProcessTypeEnum.getEumByCode(processType).getProcess(), clock);
+            if (analyInd != null) {
+                relId = analyInd.getRelId();
+                params.put("relId", relId);
+            } else {
+                return success(new ArrayList<>());
+            }
+        }
         List<CokingTraceDeviationEntity> list = cokingTraceDeviationService.list(params);
         return success(ConvertUtils.sourceToTarget(list, CokingTraceDeviationDTO.class));
     }
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java
index a79086f..b976c6a 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/CokingAnalyIndService.java
@@ -14,6 +14,8 @@
 
     List<CokingAnalyIndEntity> list(Map<String, Object> params);
 
+    CokingAnalyIndEntity get(String analyType, String analyDate);
+
     void save(List<CokingAnalyIndEntity> entityList);
 
     void delete(String analyType, String analyDate);
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java
index 58c9d7f..cc7dce3 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingAnalyIndServiceImpl.java
@@ -37,6 +37,21 @@
     }
 
     @Override
+    public CokingAnalyIndEntity get(String analyType, String analyDate) {
+        QueryWrapper<CokingAnalyIndEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("analy_type", analyType)
+                .eq("analy_date", analyDate)
+                .orderByDesc("analy_date");
+
+        List<CokingAnalyIndEntity> list = cokingAnalyIndDao.selectList(queryWrapper);
+        if (list != null && list.size() > 0) {
+            return list.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    @Override
     public void save(List<CokingAnalyIndEntity> entityList) {
         cokingAnalyIndDao.insert(entityList);
     }
@@ -47,8 +62,6 @@
         queryWrapper.eq("analy_type", analyType)
                 .eq("analy_date", analyDate);
         cokingAnalyIndDao.delete(queryWrapper);
-
-
     }
 
     @Override
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java
new file mode 100644
index 0000000..774c573
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/TraceProcessTypeEnum.java
@@ -0,0 +1,31 @@
+package com.iailab.module.ansteel.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.apache.commons.lang3.StringUtils;
+
+@Getter
+@AllArgsConstructor
+public enum TraceProcessTypeEnum {
+
+    BM("BM", "备煤工序"),
+    LJ("LJ", "炼焦"),
+    GXJ("GXJ", "干熄焦"),
+    HC("HC", "化产"),
+    UNKNOW("unkuow", "未知");
+
+    private String code;
+    private String process;
+
+    public static TraceProcessTypeEnum getEumByCode(String code) {
+        if (StringUtils.isBlank(code)) {
+            return UNKNOW;
+        }
+        for (TraceProcessTypeEnum statusEnum : TraceProcessTypeEnum.values()) {
+            if (statusEnum.getCode().equals(code.trim().toUpperCase())) {
+                return statusEnum;
+            }
+        }
+        return UNKNOW;
+    }
+}

--
Gitblit v1.9.3