ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/CokingProcessConfDao.java
对比新文件 @@ -0,0 +1,15 @@ package com.iailab.module.ansteel.api.dao; import com.iailab.framework.common.dao.BaseDao; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import org.apache.ibatis.annotations.Mapper; /** * 焦化工序工序指标配置 Mapper * * @author iailab */ @Mapper public interface CokingProcessConfDao extends BaseDao<CokingProcessConfEntity> { } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessChildEntity.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.api.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -16,7 +17,7 @@ public class CokingProcessChildEntity implements Serializable { private static final long serialVersionUID = 1L; @TableId @TableId(type = IdType.ASSIGN_UUID) private String id; private String category; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessConfEntity.java
对比新文件 @@ -0,0 +1,75 @@ package com.iailab.module.ansteel.api.entity; import lombok.*; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.*; /** * 焦化工序工序指标配置 DO * * @author iailab */ @TableName("t_coking_process_conf") @Data public class CokingProcessConfEntity implements Serializable { /** * id */ @TableId(type = IdType.INPUT) private String id; /** * 信息类型(0:生产情况,1:能源发生,2:能源消耗) */ private String infoType; /** * 指标类型(prod_day,main,child) */ private String indType; /** * 测点编码 */ private String pointNo; /** * 指标编码 */ private String indCode; /** * 指标名称 */ private String indName; /** * 指标单位 */ private String indUnit; /** * 备注 */ private String remark; /** * 拓展字段1 */ private String ext1; /** * 拓展字段2 */ private String ext2; /** * 拓展字段3 */ private String ext3; /** * 拓展字段4 */ private String ext4; /** * 拓展字段5 */ private String ext5; /** * 排序 */ private Integer sort; } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.api.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -16,7 +17,7 @@ public class CokingProcessMainEntity implements Serializable { private static final long serialVersionUID = 1L; @TableId @TableId(type = IdType.ASSIGN_UUID) private String id; private String category; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProdDayEntity.java
@@ -1,5 +1,6 @@ package com.iailab.module.ansteel.api.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -16,7 +17,7 @@ public class CokingProdDayEntity implements Serializable { private static final long serialVersionUID = 1L; @TableId @TableId(type = IdType.ASSIGN_UUID) private String id; private String clock; ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessConfService.java
对比新文件 @@ -0,0 +1,22 @@ package com.iailab.module.ansteel.api.service; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import java.util.List; import java.util.Map; /** * 焦化工序工序指标配置 Service 接口 * * @author iailab */ public interface CokingProcessConfService { /** * 查询配置列表 * @param cokingProcessConfEntity * @return */ List<CokingProcessConfEntity> list(CokingProcessConfEntity cokingProcessConfEntity); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessMainService.java
@@ -13,4 +13,6 @@ public interface CokingProcessMainService { List<CokingProcessMainEntity> list(Map<String, Object> params); void save(CokingProcessMainEntity cokingProcessMainEntity); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java
@@ -13,4 +13,6 @@ public interface CokingProdDayService { List<CokingProdDayEntity> list(Map<String, Object> params); void save(CokingProdDayEntity entity); } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessConfServiceImpl.java
对比新文件 @@ -0,0 +1,34 @@ package com.iailab.module.ansteel.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.iailab.module.ansteel.api.dao.CokingProcessConfDao; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import com.iailab.module.ansteel.api.entity.CokingProcessMainEntity; import com.iailab.module.ansteel.api.service.CokingProcessConfService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.List; import java.util.Map; /** * 焦化工序工序指标配置 Service 实现类 * * @author iailab */ @Service @Validated public class CokingProcessConfServiceImpl implements CokingProcessConfService { @Resource private CokingProcessConfDao cokingProcessConfDao; @Override public List<CokingProcessConfEntity> list(CokingProcessConfEntity cokingProcessConfEntity) { LambdaQueryWrapper<CokingProcessConfEntity> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(cokingProcessConfEntity.getIndType() != null, CokingProcessConfEntity::getIndType, cokingProcessConfEntity.getIndType()); return cokingProcessConfDao.selectList(queryWrapper); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java
@@ -29,4 +29,9 @@ queryWrapper.orderByAsc("sort"); return cokingProcessMainDao.selectList(queryWrapper); } @Override public void save(CokingProcessMainEntity cokingProcessMainEntity) { cokingProcessMainDao.insert(cokingProcessMainEntity); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java
@@ -29,4 +29,9 @@ queryWrapper.orderByAsc("sort"); return cokingProdDayDao.selectList(queryWrapper); } @Override public void save(CokingProdDayEntity entity) { cokingProdDayDao.insert(entity); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainDayTask.java
对比新文件 @@ -0,0 +1,87 @@ package com.iailab.module.ansteel.job.task; import com.iailab.module.ansteel.api.entity.CokingProcessConfEntity; import com.iailab.module.ansteel.api.entity.CokingProcessMainEntity; import com.iailab.module.ansteel.api.entity.CokingProdDayEntity; import com.iailab.module.ansteel.api.service.CokingProcessConfService; import com.iailab.module.ansteel.api.service.CokingProcessMainService; import com.iailab.module.ansteel.api.service.CokingProdDayService; import com.iailab.module.data.api.point.DataPointApi; import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Map; /** * @author HouZhongjian * @Description * @createTime 2025年04月12日 */ @Component("runCokingMainDayTask") public class RunCokingMainDayTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Resource private CokingProcessConfService cokingProcessConfService; @Resource private CokingProcessMainService cokingProcessMainService; @Resource private DataPointApi dataPointApi; @Override public void run(String params) { logger.info("RunCokingMainDayTask,参数为:{}", params); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.SECOND, 0); CokingProcessConfEntity queryParams = new CokingProcessConfEntity(); queryParams.setIndType("main"); List<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); if (ObjectUtils.isNotEmpty(list)) { // List<String> points = list.stream().map(CokingProcessConfEntity::getIndCode).collect(Collectors.toList()); // Map<String, Object> 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<String> points = new ArrayList<>(); points.add(cokingProcessConfEntity.getPointNo()); Map<String, Object> stringObjectMap = dataPointApi.queryPointsRealValue(points); //保存数据 if(ObjectUtils.isNotEmpty(stringObjectMap.get(cokingProcessConfEntity.getPointNo()))) { CokingProcessMainEntity cokingProcessMainEntity = new CokingProcessMainEntity(); cokingProcessMainEntity.setInfoType("0"); cokingProcessMainEntity.setSort(cokingProcessConfEntity.getSort()); cokingProcessMainEntity.setIndName(cokingProcessConfEntity.getIndName()); cokingProcessMainEntity.setClock(formattedDateTime); cokingProcessMainService.save(cokingProcessMainEntity); } }); } } catch (Exception ex) { logger.error("RunCokingMainDayTask运行异常"); ex.printStackTrace(); } logger.info("RunCokingMainDayTask运行完成"); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java
对比新文件 @@ -0,0 +1,93 @@ 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<CokingProcessConfEntity> list = cokingProcessConfService.list(queryParams); if (ObjectUtils.isNotEmpty(list)) { // List<String> points = list.stream().map(CokingProcessConfEntity::getIndCode).collect(Collectors.toList()); // Map<String, Object> 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<String> points = new ArrayList<>(); points.add(cokingProcessConfEntity.getPointNo()); Map<String, Object> 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运行完成"); } }