From 34de09b7eb5e1aa7cc03494b8ed82b49839454f4 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期五, 25 四月 2025 17:24:14 +0800 Subject: [PATCH] 影响因数偏差值 表结构修改 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java | 89 +++++++++++++++++++++++++++++++------------- 1 files changed, 62 insertions(+), 27 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java index b62563e..07e4cb6 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java @@ -7,10 +7,6 @@ import com.iailab.module.ansteel.coking.entity.*; import com.iailab.module.ansteel.coking.service.*; import com.iailab.module.ansteel.common.constant.CommonConstant; -import com.iailab.module.ansteel.common.enums.ProcessConfDataTypeEnum; -import com.iailab.module.data.api.ind.IndItemApi; -import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO; -import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.ChartParamDTO; import org.apache.commons.lang3.StringUtils; @@ -64,6 +60,8 @@ private final static String indType = "化产工序异常溯源"; + private final static String chemProdRow = "chemProdRow"; + private static final HashMap<String, Object> chemProdColoumMap = new HashMap<String, Object>() {{ put("chemProdFirstColoum0", "一级指标-偏差值"); put("chemProdFirstColoum1", "二级指标-偏差值"); @@ -82,9 +80,9 @@ "\"chemProdSteam\":[[33836,33925]], \n" + "\"chemProdIndex\":[[352,355],[68,66.3],[82.5,87.6],[50.7,56.5],[73.5,73.1]],\n" + "\"chemProdTotal\":\"蒸汽消耗量异常,当前值1342,经模型计算,指标1异常,当前值1342,建议调整指标1至区间[90,110],指标2异常,当前值1342,建议调整指标2至区间[50,80]\",\n" + - "\"chemProdFirstColoum0\":[[0,42]],\n" + " " + - "\"chemProdFirstColoum1\":[[5,1342],[7,1342],[9,1342]],\n" + - "\"chemProdFirstColoum2\":[[5,10,1342],[5,16,1342],[7,18,1342]],\n" + + "\"chemProdRow0\":[[0,42]],\n" + " " + + "\"chemProdRow1\":[[5,1342],[7,1342],[9,1342]],\n" + + "\"chemProdRow2\":[[5,10,1342],[5,16,1342],[7,18,1342]],\n" + "\"chemProdHomePage\":[[9,1342],[9,1342]],\n" + "\"chemProdHomeIndex\":[[90.4,90.2],[80.3,78],[103,100],[280,270]],\n" + "\"chemProdHomeIndexInfo\":\"2月18日甲班:化产蒸汽消耗量异常\",\n" + @@ -181,29 +179,66 @@ @Transactional public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) { - List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.CHEMPROD_INDEX_CHARTCODE); + List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.COAL_INDEX_CHARTCODE); Map<String, String> steamIndexMaps = list.stream().collect(Collectors.toMap(ChartParamDTO::getParamCode, e -> e.getParamName())); - for (int i = 0; i <= 2; i++) { - String chemProdFirstColoum = result.get("chemProdFirstColoum" + i).toString(); - if (StringUtils.isNotBlank(chemProdFirstColoum)) { - JSONArray responseArr = JSON.parseArray(chemProdFirstColoum); - List<CokingTraceDeviationEntity> cokingTraceDeviationEntities = new ArrayList<>(); - for (int j = 0; j < responseArr.size(); j++) { - JSONArray element = JSON.parseArray(responseArr.get(j).toString()); - CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity(); - deviationEntity.setRelId(relId); - deviationEntity.setProcess(process); - deviationEntity.setClock(clock); - deviationEntity.setSugObj(SugObj); - deviationEntity.setGroupName(chemProdColoumMap.get("chemProdFirstColoum" + i).toString()); - deviationEntity.setIndName(steamIndexMaps.get(element.get(0).toString())); - deviationEntity.setIndValue(element.get(1).toString()); - deviationEntity.setCreateDate(new Date()); - cokingTraceDeviationEntities.add(deviationEntity); - } - cokingTraceDeviationService.save(cokingTraceDeviationEntities); + + List<String> coalRowKeys = new ArrayList<>(); + result.forEach((key, value) -> { + if (StringUtils.isBlank(key) && key.contains(chemProdRow)) { + coalRowKeys.add(key); } + + }); + + List<CokingTraceDeviationEntity> entityList = new ArrayList<>(); + for (String key : coalRowKeys) { + 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(steamIndexMaps.get(rowArr.getJSONArray(0).get(0).toString())); + entity.setInd1Value(rowArr.getJSONArray(0).get(1).toString()); + entity.setInd1Unit(""); + + entity.setInd2Name(steamIndexMaps.get(rowArr.getJSONArray(1).get(0).toString())); + entity.setInd2Value(rowArr.getJSONArray(1).get(1).toString()); + entity.setInd2Unit(""); + + if (rowArr.size() > 2) { + entity.setFac1Name(steamIndexMaps.get(rowArr.getJSONArray(2).get(0).toString())); + entity.setFac1Value(rowArr.getJSONArray(2).get(1).toString()); + entity.setFac1Unit(""); + } + if (rowArr.size() > 3) { + entity.setFac2Name(steamIndexMaps.get(rowArr.getJSONArray(3).get(0).toString())); + entity.setFac2Value(rowArr.getJSONArray(3).get(1).toString()); + entity.setFac2Unit(""); + } + if (rowArr.size() > 4) { + entity.setFac3Name(steamIndexMaps.get(rowArr.getJSONArray(4).get(0).toString())); + entity.setFac3Value(rowArr.getJSONArray(4).get(1).toString()); + entity.setFac3Unit(""); + } + if (rowArr.size() > 5) { + entity.setFac4Name(steamIndexMaps.get(rowArr.getJSONArray(5).get(0).toString())); + entity.setFac4Value(rowArr.getJSONArray(5).get(1).toString()); + entity.setFac4Unit(""); + } + if (rowArr.size() > 6) { + entity.setFac5Name(steamIndexMaps.get(rowArr.getJSONArray(6).get(0).toString())); + entity.setFac5Value(rowArr.getJSONArray(6).get(1).toString()); + entity.setFac5Unit(""); + } + entityList.add(entity); } + + cokingTraceDeviationService.save(entityList); } public void saveAnalyInd(String relId, String process, String analyDate, String analyClass, String analyContent) { -- Gitblit v1.9.3