From 9e8a11aea00e194d4532a1adb48891e95f75b8b9 Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期五, 25 四月 2025 21:29:58 +0800 Subject: [PATCH] 偏差值修改 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingTraceModelHCTask.java | 91 +++++++++++++++++++++++++++++++-------------- 1 files changed, 63 insertions(+), 28 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..080565d 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,13 +80,13 @@ "\"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],[5,345],[2,41]],\n" + " " + + "\"chemProdRow1\":[[5,1342],[7,1342],[9,1342]],\n" + + "\"chemProdRow2\":[[5,1342],[5,1342],[7,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" + - "\"chemProdHomeErr\":\"2月18日化产蒸汽消耗量数据异常(无数据)\"\n" + " }" + "}"; + "\"chemProdHomeIndexInfo\":\"4月25日甲班:化产蒸汽消耗量异常\",\n" + + "\"chemProdHomeErr\":\"4月25日化产蒸汽消耗量数据异常(无数据)\"\n" + " }" + "}"; @Override public void run(String params) { @@ -183,27 +181,64 @@ public void saveTraceDeviation(String relId, String process, String clock, JSONObject result) { List<ChartParamDTO> list = mcsApi.getChartParamList(CommonConstant.CHEMPROD_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.isNotBlank(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