From c63696bec5666ad3064dd72636420e3980ade34f Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 05 十二月 2025 09:06:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   94 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 70 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index ea7ac92..368cdfc 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -721,6 +721,40 @@
 
     @Override
     @Transactional
+    public boolean TaskArmLocStatus(ArmOKParam param) {
+        BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
+                .eq("arm_no", param.getArmNo())
+                .eq("sta_no", param.getStaNo())
+                .eq("status", 1)
+        );
+        if (Cools.isEmpty(basArm)){
+            log.error("鏈烘鑷傞厤缃紓甯革紝鏌ヨ涓嶅埌鏈烘鑷傛暟鎹紒锛侊紒"+ JSON.toJSONString(param));
+            return false;
+        }
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
+        if (Cools.isEmpty(locMast)){
+            log.error("鏌ヨ涓嶅埌locMast鏁版嵁锛侊紒锛�"+ JSON.toJSONString(param));
+            return false;
+        }
+        if (locMast.getLocSts().equals("D")){
+            BasArmMast basArmMast = basArmMastService.selectOne(
+                    new EntityWrapper<BasArmMast>()
+                            .eq("sta_no", basArm.getStaNoSou())
+                            .eq("arm_no", param.getArmNo())
+                            .eq("status", 3)
+            );
+            if (Cools.isEmpty(basArmMast)){
+                return true;
+            }
+            log.error("鏈煡璇㈠埌鐩稿叧鏈烘鑷傛媶鐮佸灈浠诲姟锛侊紒锛�"+ JSON.toJSONString(param));
+        } else {
+            log.error("locMast鐘舵�佷笉涓篋锛侊紒锛�"+ JSON.toJSONString(param));
+        }
+        return false;
+    }
+
+    @Override
+    @Transactional
     public void taskArmWorkspaceStatus(TaskArmWorkspaceStatusParam param) {
         BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
                 .eq("arm_no", param.getArm_no())
@@ -799,24 +833,28 @@
         if (param == null) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
         }
-        // 鍒涘缓瀵硅薄锛堟瀯閫犲嚱鏁颁腑宸茬敓鎴� timestamp锛�
         BasAgvMast basAgvMast = new BasAgvMast();
-        // 鐢熸垚 WMS 浠诲姟鍙凤紙濡傛棤澶栭儴浼犲叆锛屽彲浠ヤ娇鐢ㄩ洩鑺盜D 鎴栬嚜澧烇級
+
+        Long ts = basAgvMast.getTimestamp();
+        if (ts == null) {
+            throw new CoolException("timestamp 鐢熸垚澶辫触");
+        }
+        String locNo = null;
+        String staNo = null;
+
+        basAgvMast.setBarcode(Long.toString(ts));
+
         basAgvMast.setTaskNo(commonService.getWorkNo(0));
-        // 璧嬪�煎弬鏁�
         basAgvMast.setSourceStaNo(param.getSourceStaNo());
         basAgvMast.setStaNo(param.getStaNo());
         basAgvMast.setSourceLocNo(param.getSourceLocNo());
         basAgvMast.setLocNo(param.getLocNo());
-        String locNo = null;
-        String staNo = null;
-        // 榛樿鍊�
-        basAgvMast.setPriority(1L);          // 榛樿浼樺厛绾�
-        basAgvMast.setStatus(0);             // 鍒濆鐘舵��
-        basAgvMast.setAppeTime(new Date());  // 娣诲姞鏃堕棿
-        basAgvMast.setModiTime(new Date());  // 淇敼鏃堕棿
-        basAgvMast.setIoType(param.getIoType());// 浠诲姟绫诲瀷
-        basAgvMast.setFloorNo(param.getFloorNo()); //妤煎眰
+        basAgvMast.setPriority(1L);
+        basAgvMast.setStatus(0);
+        basAgvMast.setAppeTime(new Date());
+        basAgvMast.setModiTime(new Date());
+        basAgvMast.setIoType(param.getIoType());
+        basAgvMast.setFloorNo(param.getFloorNo());
         switch (basAgvMast.getIoType()){
             // AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣  0
             // AGV搴撲綅==銆婣GV搴撲綅  1
@@ -831,10 +869,10 @@
                 staNo = param.getSourceStaNo().toString();
                 break;
         }
-        // 鎻掑叆鏁版嵁搴�
         basAgvMastService.insert(basAgvMast);
+
         bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam();
-        bindParam.setBarcode(basAgvMast.getTimestamp().toString());
+        bindParam.setBarcode(Long.toString(ts));
         bindParam.setIndBind("1");
         bindParam.setFloorNo(basAgvMast.getFloorNo());
         bindParam.setLocNo(locNo);
@@ -941,6 +979,8 @@
     }
 
 
+
+
     @Override
     @Transactional
     public boolean agvApplicationPassedTheGrating(ArmAgvGratingParam arm) {
@@ -971,7 +1011,7 @@
     @Override
     @Transactional
     public boolean agvBindAndBin(String taskNo) {
-        String URL = "http://10.10.10.200:8181/"; // AGV鎺ュ彛鍦板潃
+        String URL = "http://10.10.10.200:8181"; // AGV鎺ュ彛鍦板潃
         String AGVPath = "rcms/services/rest/hikRpcService/bindCtnrAndBin"; // 鎺ュ彛璺緞
         BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no",taskNo));
         if (Cools.isEmpty(basAgvMast)){
@@ -982,39 +1022,45 @@
             BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
                     new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo())
             );
+            BasAgvLocNo locNo = basAgvLocNoService.selectOne(
+                    new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo())
+            );
+            String binCode = basAgvLocNoEnd != null
+                    ? basAgvLocNoEnd.getAgvLocNo()
+                    : (locNo != null ? locNo.getAgvLocNo() : null);
             if (Cools.isEmpty(basAgvMast)){
                 return false;
             }
+            String ctnrCode = basAgvMast.getBarcode().length() > 1?basAgvMast.getBarcode():basAgvMast.getTimestamp().toString();
             AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam();
-            agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
-            agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
+            agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + System.currentTimeMillis());
+            agvBindCtnrAndBinParam.setCtnrCode(ctnrCode);
             agvBindCtnrAndBinParam.setCtnrTyp("1");
-            agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo());
+            agvBindCtnrAndBinParam.setStgBinCode(binCode);
             agvBindCtnrAndBinParam.setIndBind("0");
-            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦", URL,AGVPath, agvBindCtnrAndBinParam);
-            if (resultBind.getCode()!=200){
+            ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒瑙g粦", URL,AGVPath, agvBindCtnrAndBinParam);
+            if (resultBind.getCode() ==200){
                 basAgvMast.setStatus(4);
                 basAgvMastService.updateById(basAgvMast);
                 return true;
             }
             return false;
         }else {
-            if (basAgvMast.getIoType()==0 && basAgvMast.getStaNo()==2034){
+            if (basAgvMast.getIoType()==0 && (basAgvMast.getSourceStaNo()==2033 || basAgvMast.getStaNo()==4003)){
                 AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam();
                 agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId()));
                 agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
                 agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString());
                 agvBindCtnrAndBinTwoParam.setIndBind("0");;
-                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦",
+                ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒瑙g粦",
                         AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
-                if (resultBind.getCode()!=200){
+                if (resultBind.getCode()!=1){
                     basAgvMast.setStatus(4);
                     basAgvMastService.updateById(basAgvMast);
                     return true;
                 }
             }
         }
-
         return false;
 
     }

--
Gitblit v1.9.1