From 5a6b8f6aae658b025d2e6e1127544bc8a95ec7c6 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期二, 06 五月 2025 17:26:59 +0800 Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/ansteel --- ansteel-biz/src/main/java/com/iailab/module/ansteel/coking/service/impl/CokingTraceDeviationServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 1 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 3e7ecf0..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; /** * 焦化工序影响因数偏差值 @@ -23,6 +32,9 @@ @Autowired private CokingTraceDeviationDao cokingTraceDeviationDao; + @Autowired + private McsApi mcsApi; + @Override public List<CokingTraceDeviationEntity> list(Map<String, Object> params) { String relId = (String) params.get("relId"); @@ -31,11 +43,74 @@ QueryWrapper<CokingTraceDeviationEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("rel_id", relId) .eq(StringUtils.isNotBlank(sugObj),"sug_obj", sugObj); - return cokingTraceDeviationDao.selectList(new QueryWrapper<>()); + return cokingTraceDeviationDao.selectList(queryWrapper); } @Override 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