From 36ca9085321fda163cfa170a4d6a0594f5a28600 Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期一, 05 五月 2025 19:27:15 +0800
Subject: [PATCH] 定时任务修改

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
index df64ea1..50a8f0d 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java
@@ -1,15 +1,24 @@
 package com.iailab.module.ansteel.coking.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.module.ansteel.coking.dao.CokingTraceDeviationDao;
 import com.iailab.module.ansteel.coking.entity.CokingTraceDeviationEntity;
 import com.iailab.module.ansteel.coking.service.CokingTraceDeviationService;
+import com.iailab.module.model.api.mcs.McsApi;
+import com.iailab.module.model.api.mcs.dto.ChartParamDTO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 焦化工序影响因数偏差值
@@ -22,6 +31,9 @@
 
     @Autowired
     private CokingTraceDeviationDao cokingTraceDeviationDao;
+
+    @Autowired
+    private McsApi mcsApi;
 
     @Override
     public List<CokingTraceDeviationEntity> list(Map<String, Object> params) {
@@ -38,4 +50,67 @@
     public void save(List<CokingTraceDeviationEntity> entityList) {
         cokingTraceDeviationDao.insert(entityList);
     }
+
+    @Override
+    public void saveTraceDeviation(String relId, String process, String clock, JSONObject result, String chartcode, String row, String sugObj) {
+        List<ChartParamDTO> list = mcsApi.getChartParamList(chartcode);
+        Map<String, String> indexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName()));
+
+        List<String> rowKeys = new ArrayList<>();
+        result.forEach((key, value) -> {
+            if (StringUtils.isNotBlank(key) && key.contains(row)) {
+                rowKeys.add(key);
+            }
+
+        });
+
+        List<CokingTraceDeviationEntity> entityList = new ArrayList<>();
+        for (String key : rowKeys) {
+            JSONArray rowArr = JSON.parseArray(result.get(key).toString());
+            if (CollectionUtils.isEmpty(rowArr)) {
+                continue;
+            }
+            CokingTraceDeviationEntity entity = new CokingTraceDeviationEntity();
+            entity.setRelId(relId);
+            entity.setProcess(process);
+            entity.setClock(clock);
+            entity.setSugObj(sugObj);
+
+            entity.setInd1Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(0).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+            entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString());
+            entity.setInd1Unit("");
+
+            entity.setInd2Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(1).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+            entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString());
+            entity.setInd2Unit("");
+
+            if (rowArr.size() > 2) {
+                entity.setFac1Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(2).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+                entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString());
+                entity.setFac1Unit("");
+            }
+            if (rowArr.size() > 3) {
+                entity.setFac2Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(3).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+                entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString());
+                entity.setFac2Unit("");
+            }
+            if (rowArr.size() > 4) {
+                entity.setFac3Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(4).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+                entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString());
+                entity.setFac3Unit("");
+            }
+            if (rowArr.size() > 5) {
+                entity.setFac4Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(5).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+                entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString());
+                entity.setFac4Unit("");
+            }
+            if (rowArr.size() > 6) {
+                entity.setFac5Name(indexMaps.get(new BigDecimal(rowArr.getJSONArray(6).get(0).toString()).setScale(0, BigDecimal.ROUND_HALF_UP).toString()));
+                entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString());
+                entity.setFac5Unit("");
+            }
+            entityList.add(entity);
+        }
+        cokingTraceDeviationDao.insert(entityList);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3