From f4f7953be1735e739df1a0e5798bdd3cf0ba1bf6 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期一, 05 五月 2025 19:27:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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