From 3bf6f972604761c9ac59a2cb9ea01eeacaec2189 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 15:43:51 +0800
Subject: [PATCH] 更新为正式部署许可证

---
 src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java |  119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 112 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
index 46ab32e..8689217 100644
--- a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -1,14 +1,19 @@
 package com.zy.asrs.task;
 
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.Task;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
+import com.zy.asrs.mapper.CanFinMapper;
+import com.zy.asrs.service.OrderPakoutService;
 import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WrkDetlService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.BasDevpServiceImpl;
+import com.zy.asrs.service.impl.RcsServiceImpl;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AGVTaskReportHandler;
 import org.slf4j.Logger;
@@ -34,13 +39,26 @@
     @Autowired
     private WrkMastService wrkMastService;
     @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
     private BasDevpServiceImpl basDevpService;
+    @Autowired
+    private OrderPakoutService orderPakoutService;
+    @Autowired
+    private CanFinMapper canFinMapper;
+    @Value("${mes.url}")
+    private String MES_URL;
 
     /**
      * 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈GV鎼繍浠诲姟
      */
     @Scheduled(cron = "0/3 * * * * ? ")
     private void createAGVTask() {
+        try {
+            Thread.sleep(50);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         if (!switchErpReportOld) {
             return;
         }
@@ -61,19 +79,39 @@
             Task task1 = taskService.selectOne(new EntityWrapper<Task>()
                     .in("source_sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo())
                     .in("sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo()));
-            if (Cools.isEmpty(task1)) {
 
+            if (Cools.isEmpty(task1)) {
                 //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
                 // 淇濆瓨宸ヤ綔妗�
                 Task task = new Task();
                 Date date = new Date();
-                String TaskNo = wrkMast.getWrkNo() + "aa" + date.getTime();
+                String TaskNo = wrkMast.getUserNo();
+                String taskType = "AGV";
+                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+
+                if (wrkMast.getIoType()==110){
+                    if (TaskNo == null){
+                        TaskNo = 55555 + "aa" + date.getTime();
+                    }
+                    taskType = "ZX-AGV-08-1";
+                }else{
+                    if (wrkDetls != null && !Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+                        OrderPakout orderPakout = orderPakoutService.selectByNo(wrkDetls.get(0).getOrderNo());
+                        TaskNo = wrkDetls.get(0).getOrderNo();
+                        if (orderPakout.getDocType()==11){
+                            taskType = "PP-AGV";
+                        }else if (orderPakout.getDocType()==12){
+                            taskType = "ZP-AGV";
+                        }
+                    }
+                }
+
                 task.setWrkNo(wrkMast.getWrkNo())
                         .setTaskNo(TaskNo)
                         .setIoTime(date)
                         .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
                         .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�  4.绔欏埌鍖哄煙
-                        .setTaskType("agv")
+                        .setTaskType(taskType)
                         .setIoPri(10D)
                         .setFullPlt("Y") // 婊℃澘锛歒
                         .setPicking("N") // 鎷f枡
@@ -90,6 +128,24 @@
                 if (!taskService.insert(task)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
                 } else {
+                    if (!wrkMast.getBarcode().isEmpty() && !wrkMast.getMemo().isEmpty()) {
+                        JSONObject map = new JSONObject();
+                        map.put("orderNo", TaskNo);
+                        map.put("barCode", wrkMast.getBarcode());
+                        map.put("staNo", wrkMast.getStaNo());
+                        log.info("鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+                        String url = "ReceiveFinishedPalletCode";
+                        String URL = MES_URL + url;
+                        String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(map));
+                        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+                            if("1".equals(mesReturn.getSuccess())) {
+                                log.info("涓婃姤瀹屾垚 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+                            }else {
+                                log.error("涓婃姤澶辫触 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+                            }
+                        }
+                    }
                     wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
                     wrkMast.setModiTime(date);
                     wrkMastService.updateById(wrkMast);
@@ -101,8 +157,13 @@
     /**
      * AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
      */
-    @Scheduled(cron = "0/3 * * * * ? ")
+    @Scheduled(cron = "0/5 * * * * ? ")
     private void execute() {
+        try {
+            Thread.sleep(50);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
         if (!switchErpReportOld) {
             return;
         }
@@ -110,6 +171,50 @@
         List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301).orderBy("appe_time"));
         if (wrkSts != null && !wrkSts.isEmpty()) {
             for (Task task : wrkSts) {
+
+                if (task.getStaNo().equals("307") && !task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+                    //绛涢�夊叏閮ㄨ繕鏈畬鎴愮殑鍑哄簱浠诲姟
+                    List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>()
+                            .in("settle", 1, 2)     // 1琛ㄧず杩樻湭寮�濮嬶紝2琛ㄧず姝e湪鎵ц
+                            .eq("doc_type", 12)
+                            .orderBy("order_time", true));
+                    if (!orderPakouts.isEmpty()) {
+                        //鑾峰彇绗竴鏉″叆搴撳崟
+                        OrderPakout orderPakout = orderPakouts.get(0);
+                        // 濡傛灉绗竴鏉¤繕鏈紑濮嬬殑鍑哄簱浠诲姟鏃堕棿鏃╀簬绗竴鏉℃湭瀹屾垚鐨勫叆搴撲换鍔℃椂闂达紝璺宠繃锛屼笉鎵ц
+                        if (orderPakout.getCreateTime().getTime() < task.getWrkDate().getTime()){
+                            continue;
+                        }
+                    }
+                }
+
+
+//                List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+//                        .orderBy("apply_time", true)
+//                );
+//                if (!canFinList.isEmpty()) {
+//                    CanFin firstCanFin = canFinList.get(0);
+//                    // 妫�鏌� InNo 鏄惁涓虹┖
+//                    if (firstCanFin.getInNo() != null) {
+//                        // 妫�鏌ュ綋鍓嶄换鍔℃槸鍚︿笌杞簭浠诲姟鐩稿叧
+//                        if (task.getStaNo().equals("307")){
+//                            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+//                                    .in("io_type", 1, 10));
+//                            BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
+//                            if (basDevp.getWrkNo() != 0 || !wrkMasts1.isEmpty()){
+//                                continue;
+//                            }
+//                        }
+//                    }
+//                    if (firstCanFin.getOutNo() != null){
+//                        if (!task.getSourceStaNo().equals("307")){
+//                            if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+//                                continue;
+//                            }
+//                        }
+//                    }
+//                }
+
                 //鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑agv鎼繍浠诲姟
                 //濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
                 Task task1 = taskService.selectOne(new EntityWrapper<Task>()

--
Gitblit v1.9.1