From 9a3a5bdb568359cf9c429ee3c69ba6910ca7f24f Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期三, 07 五月 2025 17:16:38 +0800 Subject: [PATCH] 计算吨焦产煤气,吨焦产蒸汽,吨焦耗煤气 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainTask.java | 65 ++++++++++++++++++-------------- 1 files changed, 36 insertions(+), 29 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainTask.java index 06a98bb..521ba14 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainTask.java @@ -69,6 +69,8 @@ continue; } List<CokingProcessMainEntity> processMainEntities = new ArrayList<>(list.size()); + // 历史最优计算方向,正数取最大值,负数取最小值 + Map<String,Double> directionMap = new HashMap<>(list.size()); for (CokingProcessConfEntity conf : list) { if (StringUtils.isBlank(conf.getDataType())) { logger.info("DataType is Empty"); @@ -95,32 +97,10 @@ processMainEntity.setStandValue(standValue == null ? BigDecimal.ZERO : BigDecimal.valueOf(standValue)); Double theoryValue = getConfValue("DATAPOINT",conf.getExt2()); processMainEntity.setTheoryValue(theoryValue == null ? BigDecimal.ZERO : BigDecimal.valueOf(theoryValue)); - - // 计算 月累计 - calendar.add(Calendar.DAY_OF_YEAR, -29); - String clock_30 = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); - List<CokingProcessMainEntity> historyList_30 = cokingProcessMainService.historyList(clock_30, clock, "day",conf.getIndCode()); - historyList_30.add(processMainEntity); - double monthValue = historyList_30.stream().mapToDouble(e -> e.getRealValue().doubleValue()).sum(); - processMainEntity.setMonthValue(BigDecimal.valueOf(monthValue)); - - // 计算 历史平均 - calendar.add(Calendar.DAY_OF_YEAR, -60); - String clock_90 = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); - List<CokingProcessMainEntity> historyList_90 = cokingProcessMainService.historyList(clock_90, clock, "day",conf.getIndCode()); - historyList_90.add(processMainEntity); - double avgValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).average().orElse(0.0); - processMainEntity.setAvgValue(BigDecimal.valueOf(avgValue)); - // 历史最优 - double baseValue = 0.0; - if (Double.valueOf(conf.getExt3()) > 0.0) { - baseValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).max().orElse(0.0); - }else { - baseValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).min().orElse(0.0); + // 历史最优计算方向 + if (conf.getExt3() != null) { + directionMap.put(conf.getIndCode(),Double.valueOf(conf.getExt3())); } - processMainEntity.setBaseValue(BigDecimal.valueOf(baseValue)); - - processMainEntities.add(processMainEntity); } // 计算吨焦产煤气,吨焦产蒸汽,吨焦耗煤气 @@ -142,10 +122,6 @@ // 干熄焦蒸汽产生 BigDecimal mainGxjzqcs = resultCodeMap.get("main_gxjzqcs").getRealValue(); e.setRealValue(mainGxjzqcs.divide(jtcl,2,BigDecimal.ROUND_HALF_UP)); - - - e.setRealValue(e.getAvgValue()); - e.setAvgValue(e.getAvgValue().divide(jtcl,2,BigDecimal.ROUND_HALF_UP)); } // 吨焦耗煤气 if (e.getIndCode().equals("main_djhmq") && resultCodeMap.containsKey("main_glmqxh") && resultCodeMap.containsKey("main_jlmqxh")) { @@ -158,6 +134,37 @@ }); } } + + // 计算 统计值 + processMainEntities.forEach(processMainEntity -> { + // 计算 月累计 + calendar.add(Calendar.DAY_OF_YEAR, -29); + String clock_30 = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); + List<CokingProcessMainEntity> historyList_30 = cokingProcessMainService.historyList(clock_30, clock, "day",processMainEntity.getIndCode()); + historyList_30.add(processMainEntity); + double monthValue = historyList_30.stream().mapToDouble(e -> e.getRealValue().doubleValue()).sum(); + processMainEntity.setMonthValue(BigDecimal.valueOf(monthValue)); + + // 计算 历史平均 + calendar.add(Calendar.DAY_OF_YEAR, -60); + String clock_90 = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); + List<CokingProcessMainEntity> historyList_90 = cokingProcessMainService.historyList(clock_90, clock, "day",processMainEntity.getIndCode()); + historyList_90.add(processMainEntity); + double avgValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).average().orElse(0.0); + processMainEntity.setAvgValue(BigDecimal.valueOf(avgValue)); + // 历史最优 + double baseValue = 0.0; + if (!directionMap.containsKey(processMainEntity.getIndCode()) || directionMap.get(processMainEntity.getIndCode()) > 0.0) { + baseValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).max().orElse(0.0); + }else { + baseValue = historyList_90.stream().mapToDouble(e -> e.getRealValue().doubleValue()).min().orElse(0.0); + } + processMainEntity.setBaseValue(BigDecimal.valueOf(baseValue)); + }); + + + + cokingProcessMainService.save(processMainEntities); } } catch (Exception ex) { -- Gitblit v1.9.3