package com.iailab.module.ansteel.job.task; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import com.iailab.module.ansteel.api.entity.CokingProdDayEntity; import com.iailab.module.ansteel.api.service.CokingProcessConfService; import com.iailab.module.ansteel.api.service.CokingProdDayService; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; /** * @author HouZhongjian * @Description * @createTime 2025年04月12日 */ @Component("runCokingProdDayTask") public class RunCokingProdDayTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Resource private CokingProcessConfService cokingProcessConfService; @Resource private CokingProdDayService cokingProdDayService; @Resource private DataPointApi dataPointApi; @Override public void run(String params) { logger.info("RunCokingProdDayTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); queryParams.setIndType("prod_day"); List list = cokingProcessConfService.list(queryParams); if (ObjectUtils.isNotEmpty(list)) { // List points = list.stream().map(CokingProcessConfEntity::getIndCode).collect(Collectors.toList()); // Map stringObjectMap = dataPointApi.queryPointsRealValue(points); // 获取当前日期时间 LocalDateTime now = LocalDateTime.now(); // 减去一天得到昨天同一时间 LocalDateTime yesterday = now.minusDays(1); // 格式化输出 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDateTime = yesterday.format(formatter); list.stream().forEach(cokingProcessConfEntity -> { List points = new ArrayList<>(); points.add(cokingProcessConfEntity.getPointNo()); Map stringObjectMap = dataPointApi.queryPointsRealValue(points); //保存数据 if(ObjectUtils.isNotEmpty(stringObjectMap.get(cokingProcessConfEntity.getPointNo()))) { CokingProdDayEntity cokingProdDayEntity = new CokingProdDayEntity(); cokingProdDayEntity.setInfoType("0"); cokingProdDayEntity.setSort(cokingProcessConfEntity.getSort()); cokingProdDayEntity.setIndName(cokingProcessConfEntity.getIndName()); cokingProdDayEntity.setIndUnit(cokingProcessConfEntity.getIndUnit()); cokingProdDayEntity.setIndValue(stringObjectMap.get(cokingProcessConfEntity.getPointNo()).toString()); cokingProdDayEntity.setClock(formattedDateTime); cokingProdDayService.save(cokingProdDayEntity); } }); } } catch (Exception ex) { logger.error("RunCokingProdDayTask运行异常"); ex.printStackTrace(); } logger.info("RunCokingProdDayTask运行完成"); } }