From 2ddf6fc24333df35bd1ac15848b917336d533d53 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 09 九月 2025 09:22:43 +0800
Subject: [PATCH] 1

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java |   81 +++++++++++++++++++++++++++++++++-------
 1 files changed, 67 insertions(+), 14 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
index c394e79..3476c29 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
@@ -2,9 +2,13 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.acs.framework.common.Cools;
+import com.zy.acs.manager.core.third.dto.TaskEvent;
 import com.zy.acs.manager.core.utils.HttpHandler;
 import com.zy.acs.manager.manager.entity.TaskReport;
 import com.zy.acs.manager.manager.entity.TaskReportLog;
+import com.zy.acs.manager.manager.enums.TaskReportStsType;
 import com.zy.acs.manager.manager.service.TaskReportLogService;
 import com.zy.acs.manager.manager.service.TaskReportService;
 import com.zy.acs.manager.system.service.ConfigService;
@@ -16,6 +20,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -34,32 +39,80 @@
     private ConfigService configService;
 
 
-    @Scheduled(fixedDelay = 1000)
+    @Scheduled(fixedDelay = 3000)
     public void execute() {
         Boolean report = configService.getVal("REPORT", Boolean.class, false);
         if (report) {
             String wmsUrl = configService.getVal("WMS_URL", String.class);
             String wmsPath = configService.getVal("WMS_PATH", String.class);
-            Integer times = configService.getVal("REPORT_TIMES", Integer.class, 3);
-            List<TaskReport> list = taskReportService.list();
+
+            String wcsUrl = configService.getVal("WCS_URL", String.class);
+            String wcsPath = configService.getVal("WCS_TASK_REPORT", String.class);
+            List<TaskReport> list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getCompleted, 0).le(TaskReport::getReportTimes, 3));
             for (TaskReport taskReport : list) {
-                if (taskReport.getReportTimes() > times) {
-                    toLog(taskReport);
-                    continue;
-                }
-                if (report(taskReport, wmsUrl, wmsPath)) {
-                    toLog(taskReport);
+                if (taskReport.getEventType().equalsIgnoreCase(TaskReportStsType.COMPLETED.name)) {
+                    String response = null;
+                    try {
+                        response = new HttpHandler.Builder()
+                                .setUri(wcsUrl)
+                                .setPath(wcsPath)
+                                .setJson(JSON.toJSONString(taskReport))
+                                .build()
+                                .doPost();
+                        log.info("杩斿洖鍙傛暟锛歿}", response);
+                        taskReport.setReportTimes((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) + 1);
+                        taskReport.setUpdateTime(new Date());
+                        taskReport.setCompleted(1);
+                    } catch (IOException e) {
+                        taskReport.setReportTimes((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) + 1);
+                        taskReport.setUpdateTime(new Date());
+                        e.printStackTrace();
+                    }
+                    taskReportService.updateById(taskReport);
                 } else {
-                    taskReport.setReportTimes(taskReport.getReportTimes() + 1);
-                    taskReport.setUpdateTime(new Date());
+                    TaskEvent taskEvent = new TaskEvent(taskReport.getSeqNum(), taskReport.getEventType(), taskReport.getAgvId() + "");
+                    log.info("寮�濮嬩笂鎶ワ細{}", taskEvent);
+                    if (report(taskEvent, wmsUrl, wmsPath)) {
+                        taskReport.setReportTimes((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) + 1);
+                        taskReport.setUpdateTime(new Date());
+                        taskReport.setCompleted(1);
+                    } else {
+                        taskReport.setReportTimes((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) + 1);
+                        taskReport.setUpdateTime(new Date());
+                    }
                     taskReportService.updateById(taskReport);
                 }
             }
         }
     }
 
+    /**
+     * 鍒犻櫎瓒呰繃涓�瀹氬ぉ鏁扮殑涓婃姤鍘嗗彶璁板綍
+     */
+    @Scheduled(fixedDelay = 3000)
+    public void execute2() {
+        Boolean report = configService.getVal("REPORT", Boolean.class, false);
+        if (report) {
+            Calendar instance = Calendar.getInstance();
+            instance.add(Calendar.DATE, 7);
+            List<TaskReport> list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().ge(TaskReport::getUpdateTime, instance.getTime()));
+            Integer times = configService.getVal("REPORT_TIMES", Integer.class, 3);
+            for (TaskReport taskReport : list) {
+                if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) {
+                    toLog(taskReport);
+                }
+            }
+            list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getReportTimes, 4).ge(TaskReport::getUpdateTime, instance.getTime()));
+            for (TaskReport taskReport : list) {
+                if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) {
+                    toLog(taskReport);
+                }
+            }
+        }
+    }
+
     @Transactional
-    public boolean report(TaskReport taskReport, String wmsUrl, String wmsPath) {
+    public boolean report(TaskEvent taskReport, String wmsUrl, String wmsPath) {
         String response = null;
         try {
             response = new HttpHandler.Builder()
@@ -68,13 +121,13 @@
                     .setJson(JSON.toJSONString(taskReport))
                     .build()
                     .doPost();
+            log.info("杩斿洖鍙傛暟锛歿}", response);
             JSONObject jsonObject = JSON.parseObject(response);
-            if (jsonObject.getInteger("code").equals(200)) {
+            if (jsonObject != null && jsonObject.get("code") != null && jsonObject.getInteger("code").equals(200)) {
                 return true;
             }
         } catch (IOException e) {
             log.info("鎶ラ敊浜嗭紝{}", e);
-            taskReport.setMemo(e.getMessage());
             e.printStackTrace();
         }
 

--
Gitblit v1.9.1