From a3061e185fe19dc3a92c134335ee55a6c75f50ae Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期六, 12 四月 2025 17:36:55 +0800
Subject: [PATCH] 焦化指标数据采集功能开发

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/CokingProcessConfDao.java                  |   15 ++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProdDayEntity.java                |    3 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessMainService.java          |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java              |    2 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessChildEntity.java           |    3 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java |    5 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessConfServiceImpl.java |   34 +++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java            |    3 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainDayTask.java                 |   87 ++++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessConfEntity.java            |   75 ++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java     |    5 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java                 |   93 +++++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessConfService.java          |   22 +++
 13 files changed, 346 insertions(+), 3 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/CokingProcessConfDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dao/CokingProcessConfDao.java
new file mode 100644
index 0000000..a6512c9
--- /dev/null
+++ b/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> {
+
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessChildEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessChildEntity.java
index 890e3b7..a9d422e 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessChildEntity.java
+++ b/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;
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessConfEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessConfEntity.java
new file mode 100644
index 0000000..6c72e35
--- /dev/null
+++ b/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;
+
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java
index 3999de6..90d11d6 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProcessMainEntity.java
+++ b/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;
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProdDayEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProdDayEntity.java
index 546ef32..7e1b5a7 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/entity/CokingProdDayEntity.java
+++ b/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;
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessConfService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessConfService.java
new file mode 100644
index 0000000..bab38b4
--- /dev/null
+++ b/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);
+
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessMainService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessMainService.java
index 1ebd4aa..15eb09f 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProcessMainService.java
+++ b/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);
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java
index 02e78c9..598b34b 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/CokingProdDayService.java
+++ b/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);
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessConfServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessConfServiceImpl.java
new file mode 100644
index 0000000..a0a653f
--- /dev/null
+++ b/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);
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java
index 60e4223..e142ffd 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProcessMainServiceImpl.java
+++ b/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);
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java
index fd5889e..bec1c11 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/CokingProdDayServiceImpl.java
+++ b/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);
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainDayTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingMainDayTask.java
new file mode 100644
index 0000000..347ebf6
--- /dev/null
+++ b/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运行完成");
+
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunCokingProdDayTask.java
new file mode 100644
index 0000000..6edc964
--- /dev/null
+++ b/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运行完成");
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3