package com.iailab.module.ansteel.job.task; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.module.ansteel.coking.entity.CokingAnalyIndEntity; import com.iailab.module.ansteel.coking.entity.CokingTraceDeviationEntity; import com.iailab.module.ansteel.coking.entity.CokingTraceReportEntity; import com.iailab.module.ansteel.coking.entity.CokingTraceSuggestEntity; import com.iailab.module.ansteel.coking.service.CokingAnalyIndService; import com.iailab.module.ansteel.coking.service.CokingTraceDeviationService; import com.iailab.module.ansteel.coking.service.CokingTraceReportService; import com.iailab.module.ansteel.coking.service.CokingTraceSuggestService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.*; /** * 干熄焦工序-异常溯源 * * @author lirm * @Description * @createTime 2025年04月17日 */ @Component("runCokingTraceModelTask") public class RunCokingTraceModelTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private CokingTraceReportService cokingTraceReportService; @Autowired private CokingTraceSuggestService cokingTraceSuggestService; @Autowired private CokingTraceDeviationService cokingTraceDeviationService; @Autowired private CokingAnalyIndService cokingAnalyIndService; private static final HashMap sugObjMap = new HashMap() {{ put("1#", "1#干熄焦主蒸汽温度因装焦量、装焦温度偏低而降低13℃。经模型计算,建议调整XX,预计可使XX指标升高/降低XX"); put("2#", "2#干熄焦蒸汽发生量因空气导入量偏高、锅炉入口温度偏低而减少13t。经模型计算,建议调整XX,预计可使XX指标升高/降低XX\n"); }}; private static final HashMap> deviationMap = new HashMap>() {{ put("1", Arrays.asList("1#", "一级指标-偏差值", "主蒸汽温度", "13", "℃")); put("2", Arrays.asList("1#", "二级指标-偏差值", "装焦温度", "50", "℃")); put("3", Arrays.asList("1#", "影响因素1-偏差值", "CO含量", "5", "%")); put("4", Arrays.asList("1#", "影响因素2-偏差值", "H2含量", "4", "%")); put("5", Arrays.asList("2#", "一级指标-偏差值", "蒸汽产量", "15", "t")); put("6", Arrays.asList("2#", "二级指标-偏差值", "空气导入量", "350", "")); put("7", Arrays.asList("2#", "影响因素1-偏差值", "干熄炉入口温度", "30", "℃")); put("8", Arrays.asList("2#", "影响因素2-偏差值", "H2含量", "4", "%")); }}; @Override public void run(String params) { logger.info("RunCokingTraceModelTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); String yesterday = DateUtils.format(DateUtils.addDateDays(new Date(), -1), DateUtils.FORMAT_YEAR_MONTH_DAY); String clock = ""; if (hour == 0) { clock = yesterday.concat("-").concat("A"); } else if (hour == 8) { clock = yesterday.concat("-").concat("B"); } else if (hour == 16) { clock = yesterday.concat("-").concat("C"); } Map tMap = new HashMap<>(); tMap.put("relId", UUID.randomUUID().toString()); tMap.put("process", "干熄焦工序"); tMap.put("reportName", "锅炉蒸汽产量"); tMap.put("analyDate", yesterday); tMap.put("analyClass", "甲班"); tMap.put("clock", clock); tMap.put("analyContent", "锅炉蒸汽产量异常"); saveTraceReport(tMap); saveTraceSuggest(tMap); saveTraceDeviation(tMap); saveTraceAnalyInd(tMap); } catch (Exception ex) { logger.error("RunCokingTraceModelTask运行异常"); ex.printStackTrace(); } logger.info("RunCokingTraceModelTask运行完成"); } private void saveTraceReport(Map tMap) { CokingTraceReportEntity reportEntity = new CokingTraceReportEntity(); reportEntity.setId(tMap.get("relId").toString()); reportEntity.setProcess(tMap.get("process").toString()); reportEntity.setReportName(tMap.get("reportName").toString()); reportEntity.setAnalyDate(tMap.get("analyDate").toString()); reportEntity.setAnalyClass(tMap.get("analyClass").toString()); reportEntity.setClock(tMap.get("clock").toString()); reportEntity.setAnalyContent(tMap.get("analyContent").toString()); reportEntity.setCreateDate(new Date()); cokingTraceReportService.save(reportEntity); } private void saveTraceSuggest(Map tMap) { for (Map.Entry entry : sugObjMap.entrySet()) { CokingTraceSuggestEntity suggestEntity = new CokingTraceSuggestEntity(); suggestEntity.setRelId(tMap.get("relId").toString()); suggestEntity.setProcess(tMap.get("process").toString()); suggestEntity.setSugObj(entry.getKey()); suggestEntity.setClock(tMap.get("clock").toString()); suggestEntity.setContent(entry.getValue().toString()); cokingTraceSuggestService.save(suggestEntity); } } private void saveTraceDeviation(Map tMap) { for (Map.Entry> entry : deviationMap.entrySet()) { CokingTraceDeviationEntity deviationEntity = new CokingTraceDeviationEntity(); deviationEntity.setRelId(tMap.get("relId").toString()); deviationEntity.setProcess(tMap.get("process").toString()); deviationEntity.setSugObj(entry.getValue().get(0)); deviationEntity.setClock(tMap.get("clock").toString()); deviationEntity.setGroupName(entry.getValue().get(1)); deviationEntity.setIndName(entry.getValue().get(2)); deviationEntity.setIndValue(entry.getValue().get(3)); deviationEntity.setIndUnit(entry.getValue().get(4)); deviationEntity.setCreateDate(new Date()); cokingTraceDeviationService.save(deviationEntity); } } private void saveTraceAnalyInd(Map tMap) { CokingAnalyIndEntity analyIndEntity = new CokingAnalyIndEntity(); analyIndEntity.setRelId(tMap.get("relId").toString()); analyIndEntity.setAnalyType(tMap.get("process").toString()); analyIndEntity.setAnalyDate(tMap.get("analyDate").toString()); analyIndEntity.setAnalyClass(tMap.get("analyClass").toString()); analyIndEntity.setAnalyContent(tMap.get("analyContent").toString()); cokingAnalyIndService.save(analyIndEntity); } }