From 27d5321180fef418df6f67a8758fa44dc1d7aa87 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期四, 24 四月 2025 16:50:57 +0800 Subject: [PATCH] 影响因素偏差值 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdMonTask.java | 94 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 1 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdMonTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdMonTask.java index 2fe4769..f47957d 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdMonTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdMonTask.java @@ -1,13 +1,29 @@ package com.iailab.module.ansteel.job.task; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.module.ansteel.coking.entity.CokingProcessConfEntity; +import com.iailab.module.ansteel.coking.entity.CokingProdDayEntity; +import com.iailab.module.ansteel.coking.service.CokingProcessConfService; +import com.iailab.module.ansteel.coking.service.CokingProdDayService; +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 org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; /** * 生成焦化月累计生产信息 * 0 5 0 * * ? - * * * @author PanZhibao * @Description @@ -18,9 +34,85 @@ private Logger logger = LoggerFactory.getLogger(getClass()); + @Resource + private CokingProcessConfService cokingProcessConfService; + + @Resource + private CokingProdDayService cokingProdDayService; + + @Resource + private DataPointApi dataPointApi; + + @Resource + private IndItemApi indItemApi; + @Override public void run(String params) { + logger.info("RunCokingProdMonTask,参数为:{}", params); + try { + CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); + queryParams.setIndType("prod_mon"); + List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); + if (CollectionUtils.isEmpty(list)) { + logger.info("ConfLis is Empty"); + return; + } + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MILLISECOND, 0); + calendar.set(Calendar.SECOND, 0); + calendar.add(Calendar.DAY_OF_YEAR, -1); + String clock = DateUtils.format(calendar.getTime(), DateUtils.FORMAT_YEAR_MONTH_DAY); + logger.info("清理旧数据"); + cokingProdDayService.deleteByClock(clock); + for (CokingProcessConfEntity conf : list) { + if (StringUtils.isBlank(conf.getDataType())) { + logger.info("DataType is Empty"); + continue; + } + if (StringUtils.isBlank(conf.getPointNo())) { + logger.info("PointNo is Empty"); + continue; + } + String value = ""; + switch (ProcessConfDataTypeEnum.getEumByCode(conf.getDataType())) { + case DATAPOINT: + List<String> points = new ArrayList<>(); + points.add(conf.getPointNo()); + Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points); + value = pointsRealValue.get(conf.getPointNo()).toString(); + break; + case IND: + List<ApiIndItemValueDTO> indValues = indItemApi.queryIndItemDefaultValue(conf.getPointNo()); + if (!CollectionUtils.isEmpty(indValues)) { + value = indValues.get(indValues.size() - 1).getDataValue().toString(); + } + break; + default: + break; + + } + saveProdDay(conf, value, clock, conf.getIndCode()); + } + + } catch (Exception ex) { + logger.error("RunCokingProdMonTask运行异常"); + ex.printStackTrace(); + } + logger.info("RunCokingProdMonTask运行完成"); + + } + + private void saveProdDay(CokingProcessConfEntity conf, String value, String clock, String indCode) { + CokingProdDayEntity entity = new CokingProdDayEntity(); + entity.setInfoType(conf.getInfoType()); + entity.setSort(conf.getSort()); + entity.setIndCode(indCode); + entity.setIndName(conf.getIndName()); + entity.setIndUnit(conf.getIndUnit()); + entity.setIndValue(value); + entity.setClock(clock); + cokingProdDayService.save(entity); } } \ No newline at end of file -- Gitblit v1.9.3