From 2a7fd275313003968fc186ee4617aec4eca90266 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期六, 10 五月 2025 16:55:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/AssignAgvTaskScheduler.java |  115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 115 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AssignAgvTaskScheduler.java b/src/main/java/com/zy/asrs/task/AssignAgvTaskScheduler.java
new file mode 100644
index 0000000..b62b798
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AssignAgvTaskScheduler.java
@@ -0,0 +1,115 @@
+package com.zy.asrs.task;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.TaskWrk;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.TaskWrkService;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+@Slf4j
+@Component
+public class AssignAgvTaskScheduler {
+
+    @Autowired
+    private TaskWrkService taskWrkService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Autowired
+    private LocMastService locMastService;
+    @Value("${agv.url}")
+    private String agvUrl;
+    @Value("${agv.applyTask}")
+    private String agvApplyTask;
+
+    /**
+     * 鑷姩娲惧彂AGV鎼繍浠诲姟
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void execute() {
+        List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()
+                .eq("status", TaskStatusType.RECEIVE.id).eq("io_type", 4));
+
+        for (TaskWrk taskWrk : taskWrks) {
+            String startPoint = taskWrk.getStartPoint();
+            String targetPoint = taskWrk.getTargetPoint();
+            LocMast startLocMast = locMastService.selectByLocNo(startPoint);
+            if(startLocMast == null){
+                continue;
+            }
+
+            if (!startLocMast.getLocSts().equals("R")) {
+                continue;
+            }
+
+            LocMast targetLocMast = locMastService.selectByLocNo(targetPoint);
+            if(targetLocMast == null){
+                continue;
+            }
+
+            if (!targetLocMast.getLocSts().equals("S")) {
+                continue;
+            }
+
+            HashMap<String, Object> requestParam = new HashMap<>();
+            requestParam.put("reqCode", taskWrk.getTaskNo());
+            requestParam.put("taskCode", taskWrk.getTaskNo());
+            requestParam.put("taskTyp", "YK");
+
+            ArrayList<HashMap<String, Object>> positionCodePathList = new ArrayList<>();
+            HashMap<String, Object> startPointParam = new HashMap<>();
+            startPointParam.put("positionCode", taskWrk.getStartPoint());
+            startPointParam.put("type", "00");
+
+            HashMap<String, Object> targetPointParam = new HashMap<>();
+            targetPointParam.put("positionCode", taskWrk.getTargetPoint());
+            targetPointParam.put("type", "00");
+
+            positionCodePathList.add(startPointParam);
+            positionCodePathList.add(targetPointParam);
+            requestParam.put("positionCodePath", positionCodePathList);
+
+            String response = null;
+            boolean requestStatus = false;
+            try {
+                log.info("WCS娲惧彂浠诲姟缁橝GV={}", taskWrk);
+                response = new HttpHandler.Builder()
+                        .setUri(agvUrl)
+                        .setPath(agvApplyTask)
+                        .setJson(JSON.toJSONString(requestParam))
+                        .build()
+                        .doPost();
+                JSONObject jsonObject = JSON.parseObject(response);
+                if (jsonObject.get("code").equals("0")) {
+                    taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);
+                    taskWrkService.updateById(taskWrk);
+                    requestStatus = true;
+                }
+            } catch (Exception e) {
+                log.error("WCS娲惧彂浠诲姟缁橝GV澶辫触{},杩斿洖鍊�={}", taskWrk, response);
+            } finally {
+                apiLogService.save("WCS娲惧彂浠诲姟缁橝GV"
+                        , agvUrl + agvApplyTask
+                        , null
+                        , "127.0.0.1"
+                        , JSON.toJSONString(requestParam)
+                        , response
+                        , requestStatus
+                );
+            }
+        }
+    }
+}

--
Gitblit v1.9.1