From f14bb52ddab40bf589304b6b43331ddaccea69f6 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 27 十二月 2025 16:03:36 +0800
Subject: [PATCH] 1.完善AGV任务创建和下发 2.完善数据孪生 3.新增拍照获取照片 4.新增PDA配盘出库单立即出库 5.新增PDA配盘入库单下拉框获取订单号

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   86 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 72 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 80f7eb4..3b1dfc1 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,20 +1,21 @@
 package com.zy.asrs.task.handler;
 
+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.*;
+import com.zy.asrs.entity.mes.MesReturn;
 import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.BasStationServiceImpl;
-import com.zy.asrs.service.impl.LocCacheServiceImpl;
-import com.zy.asrs.service.impl.OrderPakinServiceImpl;
-import com.zy.asrs.service.impl.TaskDetlServiceImpl;
+import com.zy.asrs.service.impl.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -56,6 +57,8 @@
     private TaskDetlService taskDetlService;
     @Autowired
     private BasStationServiceImpl basStationService;
+    @Value("${mes.url}")
+    private String url;
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -90,6 +93,7 @@
                         locMast.setLocSts("D");
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setPic(wrkMast.getPic());
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -131,6 +135,11 @@
                             locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
+                            locDetl.setMatnr(wrkDetl.getMatnr());
+                            locDetl.setMaktx(wrkDetl.getMaktx());
+                            locDetl.setSpecs(wrkDetl.getSpecs());
+                            locDetl.setUnit(wrkDetl.getUnit());
+                            locDetl.setZpallet(wrkDetl.getZpallet());
                             if (!locDetlService.insert(locDetl)) {
 //                                exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -169,6 +178,7 @@
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setPic(wrkMast.getPic());
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -186,7 +196,6 @@
                     }
                     // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
                     for (WrkDetl wrkDetl : wrkDetls8) {
-
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
                                 , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                         if (null != locDetl) {
@@ -203,6 +212,11 @@
                             locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
+                            locDetl.setMatnr(wrkDetl.getMatnr());
+                            locDetl.setMaktx(wrkDetl.getMaktx());
+                            locDetl.setSpecs(wrkDetl.getSpecs());
+                            locDetl.setUnit(wrkDetl.getUnit());
+                            locDetl.setZpallet(wrkDetl.getZpallet());
                             if (!locDetlService.insert(locDetl)) {
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                 return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -273,6 +287,7 @@
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setPic(wrkMast.getPic());
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -309,6 +324,11 @@
                             locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
                             locDetl.setModiTime(now);
                             locDetl.setAppeTime(now);
+                            locDetl.setMatnr(wrkDetl.getMatnr());
+                            locDetl.setMaktx(wrkDetl.getMaktx());
+                            locDetl.setSpecs(wrkDetl.getSpecs());
+                            locDetl.setUnit(wrkDetl.getUnit());
+                            locDetl.setZpallet(wrkDetl.getZpallet());
                             if (!locDetlService.insert(locDetl)) {
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                 return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -337,6 +357,7 @@
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setPic(wrkMast.getPic());
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -374,6 +395,7 @@
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
                         locMast.setModiTime(now);
+                        locMast.setPic(wrkMast.getPic());
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -396,8 +418,10 @@
                         }
                     }
                     // 淇敼婧愬簱浣嶇姸鎬� ==> O
+                    String picUrl = "";
                     LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
                     if (null != sourceLoc) {
+                        picUrl = sourceLoc.getPic();
                         sourceLoc.setBarcode("");
                         sourceLoc.setLocSts("O");
                         sourceLoc.setModiTime(now);
@@ -413,6 +437,7 @@
                     locMast.setBarcode(wrkMast.getBarcode());
                     locMast.setIoTime(now);
                     locMast.setModiTime(now);
+                    locMast.setPic(picUrl);
                     if (!locMastService.updateById(locMast)) {
 //                        exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -554,8 +579,13 @@
                 default:
                     break;
             }
-            // 淇敼宸ヤ綔涓绘。鐘舵��
-            wrkMast.setWrkSts(15L);
+            if(!Cools.isEmpty(wrkMast.getMemo())){
+                // 淇敼宸ヤ綔涓绘。鐘舵��
+                wrkMast.setWrkSts(30L);//30.绛夊緟鍒涘缓AGV鎼繍浠诲姟
+            }else {
+                // 淇敼宸ヤ綔涓绘。鐘舵��
+                wrkMast.setWrkSts(15L);
+            }
             wrkMast.setModiTime(now);
             if (!wrkMastService.updateById(wrkMast)) {
 //                exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -579,12 +609,40 @@
      */
     @Transactional(rollbackFor = Exception.class)
     public ReturnT<String> AgvStart(Task task) {
-        // 4.鍏ュ簱瀹屾垚
-        if (task.getWrkSts() == 4) {
-            return agvDoIn(task);
-            // 14.鍑哄簱瀹屾垚
-        } else if (task.getWrkSts() == 14) {
-            return agvDoOut(task);
+        //鏌ヨ鏄惁鏈夊叧鑱旂殑WrkMast浠诲姟
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", task.getWrkNo()));
+        if (wrkMast != null) {
+            if (wrkMast.getIoType()==110){
+                wrkMast.setWrkSts(32L);//32.绛夊緟缁勬墭
+            }else if (wrkMast.getIoType()==101){
+                wrkMast.setWrkSts(15L);//15.鍑哄簱鏇存柊瀹屾垚
+            }
+            wrkMast.setModiTime(new Date());
+            wrkMastService.updateById(wrkMast);
+            task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+            task.setModiTime(new Date());
+            taskService.updateById(task);
+
+            //瀵硅浆搴忔惉杩愬畬鎴愮殑浠诲姟缁撴灉鍙嶉缁檓es
+        }else if(task.getTaskType().equals("ZX-AGV")){
+            HashMap<String,Object> map = new HashMap<>();
+            map.put("taskno", task.getTaskNo());
+            String mesUrl = url+"AGVArrivalCompletedFit";
+            String response = RcsServiceImpl.sendPost(mesUrl, JSONObject.toJSONString(map));
+            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+                if("1".equals(mesReturn.getSuccess())) {
+                    task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+                    task.setModiTime(new Date());
+                    taskService.updateById(task);
+                }else {
+                    return new ReturnT<>(500, mesReturn.getMessage());
+                }
+            }
+        }else {
+            task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+            task.setModiTime(new Date());
+            taskService.updateById(task);
         }
         return SUCCESS;
     }
@@ -702,7 +760,7 @@
 
         locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
         locCache.setModiTime(new Date());
-        locCache.setBarcode("");
+        locCache.setBarcode(wrkMast.getBarcode());
         locCache.setModiTime(new Date());
         locCache.setIoTime(new Date());
         if (!locCacheService.updateById(locCache)) {

--
Gitblit v1.9.1