From d104d01175c1658b0e48286afc8213c94b650e1f Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 13 六月 2025 14:19:20 +0800
Subject: [PATCH] 同步日报

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java               |   94 +++++++++++++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java                       |    1 
 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java            |   36 +++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java          |   15 +++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java |   31 +++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java                  |   14 +++
 6 files changed, 191 insertions(+), 0 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java
new file mode 100644
index 0000000..2d7ced6
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/SyncDutyReportTask.java
@@ -0,0 +1,94 @@
+package com.iailab.module.ansteel.job.task;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.iailab.framework.common.util.date.DateUtils;
+import com.iailab.framework.common.util.http.HttpUtils;
+import com.iailab.module.ansteel.report.entity.DutyReportEntity;
+import com.iailab.module.ansteel.report.service.DutyReportService;
+import com.iailab.module.data.api.point.DataPointApi;
+import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO;
+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 java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+@Component("syncDutyReportTask")
+public class SyncDutyReportTask implements ITask {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private DutyReportService dutyReportService;
+
+    @Autowired
+    private DataPointApi dataPointApi;
+
+    private final static String URL = "http://10.50.37.1:8806/batch/xxb/getDutyReportData";
+
+    @Override
+    public void run(String params) {
+        logger.info("SyncDutyReportTask定时任务正在执行,参数为:{}", params);
+        try {
+            String date = params;
+            if (StringUtils.isBlank(date)) {
+                Calendar calendar = Calendar.getInstance();
+                calendar.set(Calendar.MILLISECOND, 0);
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.add(Calendar.DAY_OF_YEAR, -1);
+                date = DateUtils.format(calendar.getTime(), "yyyy-MM-dd");
+            }
+            Map<String, Object> queryMap = new HashMap<String, Object>();
+            queryMap.put("date", date);
+            String responseStr = HttpUtils.sendPost(URL, JSONObject.toJSONString(queryMap));
+            if (StringUtils.isBlank(responseStr)) {
+                logger.info("responseStr is null");
+                return;
+            }
+            Map<String, BigDecimal> dataMap1 = new HashMap<>();
+            Map<String, BigDecimal> dataMap2 = new HashMap<>();
+            JSONArray jsonArray = JSONArray.parseArray(responseStr);
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject jsonObject = jsonArray.getJSONObject(i);
+                dataMap1.put(jsonObject.getString("cdeIndex"), new BigDecimal(jsonObject.get("valAct").toString()));
+                dataMap2.put(jsonObject.getString("cdeIndex"), new BigDecimal(jsonObject.get("monthAvgValue").toString()));
+            }
+
+            List<DutyReportEntity> list = dutyReportService.list();
+            if (CollectionUtils.isEmpty(list)) {
+                logger.info("DutyReportEntity list is empty");
+                return;
+            }
+            for (DutyReportEntity dutyReportEntity : list) {
+                if (dataMap1.get(dutyReportEntity.getCdeIndex()) != null) {
+                    ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO();
+                    writeDTO.setPointNo(dutyReportEntity.getPointNo1());
+                    writeDTO.setValue(dataMap1.get(dutyReportEntity.getCdeIndex()));
+                    dataPointApi.writePointRealValue(writeDTO);
+                }
+                if (dataMap2.get(dutyReportEntity.getCdeIndex()) != null) {
+                    ApiPointValueWriteDTO writeDTO = new ApiPointValueWriteDTO();
+                    writeDTO.setPointNo(dutyReportEntity.getPointNo2());
+                    writeDTO.setValue(dataMap2.get(dutyReportEntity.getCdeIndex()));
+                    dataPointApi.writePointRealValue(writeDTO);
+                }
+            }
+        } catch (Exception ex) {
+            logger.error("SyncDutyReportTask运行异常");
+            ex.printStackTrace();
+        }
+        logger.info("SyncDutyReportTask运行完成");
+    }
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java
new file mode 100644
index 0000000..8845a87
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/dao/DutyReportDao.java
@@ -0,0 +1,14 @@
+package com.iailab.module.ansteel.report.dao;
+
+import com.iailab.framework.common.dao.BaseDao;
+import com.iailab.module.ansteel.report.entity.DutyReportEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+@Mapper
+public interface DutyReportDao extends BaseDao<DutyReportEntity> {
+}
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java
new file mode 100644
index 0000000..2dfbafa
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/entity/DutyReportEntity.java
@@ -0,0 +1,36 @@
+package com.iailab.module.ansteel.report.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+@Data
+@TableName("t_xxb_duty_report")
+public class DutyReportEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId
+    private String id;
+
+    private String cdeIndex;
+
+    private String nameIndex;
+
+    private String pointNo1;
+
+    private String pointNo2;
+
+    private String pointNo3;
+
+    private Integer sort;
+}
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java
new file mode 100644
index 0000000..43e7430
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/package-info.java
@@ -0,0 +1 @@
+package com.iailab.module.ansteel.report;
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java
new file mode 100644
index 0000000..bc62da6
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/DutyReportService.java
@@ -0,0 +1,15 @@
+package com.iailab.module.ansteel.report.service;
+
+import com.iailab.module.ansteel.report.entity.DutyReportEntity;
+
+import java.util.List;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+public interface DutyReportService {
+
+    List<DutyReportEntity> list();
+}
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java
new file mode 100644
index 0000000..fcd98eb
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/report/service/impl/DutyReportServiceImpl.java
@@ -0,0 +1,31 @@
+package com.iailab.module.ansteel.report.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.iailab.module.ansteel.report.dao.DutyReportDao;
+import com.iailab.module.ansteel.report.entity.DutyReportEntity;
+import com.iailab.module.ansteel.report.service.DutyReportService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author PanZhibao
+ * @Description
+ * @createTime 2025年06月13日
+ */
+@Slf4j
+@Service
+public class DutyReportServiceImpl implements DutyReportService {
+
+    @Autowired
+    private DutyReportDao dutyReportDao;
+
+    @Override
+    public List<DutyReportEntity> list() {
+        QueryWrapper<DutyReportEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByAsc("sort");
+        return dutyReportDao.selectList(queryWrapper);
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3