From 82374fe4b32d58956810f445b7889f1a370f1ab9 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 27 十月 2025 15:26:13 +0800
Subject: [PATCH] #配置信号

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  111 ++++++++++++++++++++++---------------------------------
 1 files changed, 45 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 2fa2bdb..59c4749 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3486,6 +3486,11 @@
                 basRgvService.updateById(basRgv);
                 rgvThread.setPakMk(true);
             }
+            List<WrkMastSta> wrkMastStaPakingNum = wrkMastStaService.selectPakingWrkNum(basRgv.getRgvNo());
+            if(wrkMastStaPakingNum.size() <1){
+                basRgv.setPakAll("1"); //闃叉鏃犲叾浠栦换鍔℃椂锛岃繛缁彇璐ф棤娉曟仮澶�
+                basRgvService.updateById(basRgv);
+            }
 
         }
     }
@@ -3515,6 +3520,7 @@
                 basRgv.setPakAll("1");
                 basRgvService.updateById(basRgv);
             }
+
             // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
             if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
                     rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
@@ -3557,58 +3563,14 @@
             WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWorkSta(1, (int) rgvProtocol.getRgvNo());
             if(wrkMastSta1 != null && wrkMastSta2 != null){
                 rgvThread.setPakMk(false);  //灏忚溅鍙屽伐浣嶉攣瀹�
+
             }
-//            if(basRgv.getPakToCrn().equals("0")){
-//                rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
-//            }
+
 //            if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
 //                rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
 //            }
 
 
-//            if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) {
-//                //灏忚溅鎵ц鏀捐揣浠诲姟
-//                rgvOutExecute();
-//
-//            }
-        }
-    }
-    public synchronized void rgvRunWrkMastInTest(){
-        BasRgvMap basRgvMap = basRgvMapMapper.selectById(1);
-        List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
-        basRgvMap.setNowRoute(1021); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
-        WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(342);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
-
-//        WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWorkSta(2, 1);
-        boolean result = false;
-//        if(wrkMastSta2 != null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻   2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
-//            result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
-//        }
-//        if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
-//            rgvThread.setPakRgv(false);
-//            continue;
-//        }
-        wrkMastSta.setWorkSta(1);
-        wrkMastSta.setRgvNo(1);
-        wrkMastSta.setStaStart(1035);
-        Short direction = 2;//鍙屽伐浣嶆渶缁堟姷杈句綅缃�
-        boolean sign = false;
-//        sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta,direction,); //鍛戒护涓嬪彂
-        if (sign){
-            wrkMastSta.setWrkSts(1);
-            try{
-                wrkMastStaMapper.updateById(wrkMastSta);
-                log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
-            }catch (Exception e){
-                log.error("鏇存柊灏忚溅浠诲姟澶辫触");
-            }
-//            rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
-            boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
-            if (!signMap){
-                log.error("璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
-            }
-        } else {
-            log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
         }
     }
     /**
@@ -3709,7 +3671,7 @@
 
                 if(wrkMastSta3 != null ){
                     List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart());
-                    if(wrkMastStaPaking.size() < 1){//宸叉湁鏍囪涓嶅啀鏍囪
+                    if(wrkMastStaPaking.size() < 1 ){//宸叉湁鏍囪涓嶅啀鏍囪
                         wrkMastSta3.setMk(1);
                         basRgv.setPakAll("0");
                         basRgvService.updateById(basRgv);
@@ -3814,7 +3776,7 @@
             }
             WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
             if(basRgv.getPakToCrn().equals("0")){
-                wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));
+                wrkMastSta = wrkMastStaMapper.selectNoInterfereCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//澶勭悊鎺ラ┏浠诲姟鏃讹紝杩炵画鍙彇鎺ラ┏浠诲姟
             }
             boolean result = false;
             if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻   2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
@@ -4538,9 +4500,20 @@
                                                 .eq("status", 2)
                                                 .eq("binding_tags", basArmMast.getBindingTags())
                                 );
+
                                 if (binding_tags<2){
-                                    armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦紒锛侊紒", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
-                                    continue;
+                                    BasArmMast basArmMastOne = basArmMastService.selectOne(
+                                            new EntityWrapper<BasArmMast>()
+                                                    .eq("status", 2)
+                                                    .eq("binding_tags", basArmMast.getBindingTags())
+                                    );
+                                    Double anfmeSignOne = basArmMastService.selectBasArmMastSignValue(basArmMastOne.getOrderNo(), basArmMastOne.getSku(),basArmMastOne.getBindingTags());
+
+                                    if (anfmeSignOne>1D){
+                                        armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦紒锛侊紒", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false);
+                                        continue;
+                                    }
+
                                 }
                             }
                             OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku());
@@ -4591,8 +4564,9 @@
         }
     }
 
-    public void armTaskAssignmentCallApiLogSave(StaProtocol staProtocol ,String tableName, String response, Boolean bool) {
-        ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>()
+    public void armTaskAssignmentCallApiLogSave(StaProtocol staProtocol, String tableName, String response, Boolean bool) {
+        // 鏌ヨ绗﹀悎鏉′欢鐨勬墍鏈� ApiLog
+        List<ApiLog> apiLogs = apiLogService.selectList(new EntityWrapper<ApiLog>()
                 .eq("namespace", "鏈烘鑷備换鍔$浉鍏�")
                 .eq("request", "绔欑偣鍙�:" + staProtocol.getSiteId())
                 .eq("response", response)
@@ -4602,16 +4576,21 @@
                 .orderBy("create_time", false)
         );
 
-        if (!Cools.isEmpty(apiLog)){
+        // 閬嶅巻缁撴灉闆嗭紝妫�鏌ユ椂闂存埑宸�兼槸鍚﹀皬浜� 5 鍒嗛挓
+        for (ApiLog apiLog : apiLogs) {
             long parseLong = Long.parseLong(apiLog.getTimestamp());
-            if (new Date().getTime()-parseLong<5*1000*60){
+            if (new Date().getTime() - parseLong < 5 * 1000 * 60) {
+                // 濡傛灉鎵惧埌绗﹀悎鏉′欢鐨勮褰曚笖鏃堕棿宸皬浜� 5 鍒嗛挓锛屽垯涓嶄繚瀛樻柊璁板綍锛岀洿鎺ヨ繑鍥�
                 return;
             }
         }
+
+        // 濡傛灉娌℃湁绗﹀悎鏉′欢鐨勮褰曪紝鎴栬�呮墍鏈夎褰曟椂闂村樊澶т簬 5 鍒嗛挓锛屼繚瀛樻柊鐨勬棩蹇�
         apiLogService.save("鏈烘鑷備换鍔$浉鍏�", tableName, "null", staProtocol.getBarcode(),
-                "绔欑偣鍙�:" + staProtocol.getSiteId() ,
+                "绔欑偣鍙�:" + staProtocol.getSiteId(),
                 response, bool);
     }
+
 
     /*
      * agv浠诲姟涓嬪彂:AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣
@@ -4620,7 +4599,7 @@
         try{
             List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
             for (BasAgvMast basAgvMast : basAgvMastList) {
-                if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=0){//0==銆婣GV搴撲綅==銆嬭緭閫佺嚎绔欑偣
+                if (basAgvMast.getStatus()!=0 || basAgvMast.getIoType()!=0){//0==銆婣GV搴撲綅==銆嬭緭閫佺嚎绔欑偣
                     continue;
                 }
                 try{
@@ -4638,7 +4617,7 @@
                         AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
 
                         //浠诲姟涓嬪彂
-                        ReturnT<String> result = new PostMesDataUtils().postMesData("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+                        ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                         if (result.getCode()==200){
                             basAgvMast.setStatus(1);
                             basAgvMastService.updateById(basAgvMast);
@@ -4662,14 +4641,14 @@
         try{
             List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
             for (BasAgvMast basAgvMast : basAgvMastList) {
-                if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=1){//1==銆婣GV搴撲綅==銆婣GV搴撲綅
+                if (basAgvMast.getStatus()!=0 || basAgvMast.getIoType()!=1){//1==銆婣GV搴撲綅==銆婣GV搴撲綅
                     continue;
                 }
                 try{
-                    AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam();
+                    AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
 
                     //浠诲姟涓嬪彂
-                    ReturnT<String> result = new PostMesDataUtils().postMesData("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+                    ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                     if (result.getCode()==200){
                         basAgvMast.setStatus(1);
                         basAgvMastService.updateById(basAgvMast);
@@ -4693,7 +4672,7 @@
         try{
             List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
             for (BasAgvMast basAgvMast : basAgvMastList) {
-                if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=2){//2==銆嬭緭閫佺嚎绔欑偣==銆婣GV搴撲綅
+                if (basAgvMast.getStatus()!=0 || basAgvMast.getIoType()!=2){//2==銆嬭緭閫佺嚎绔欑偣==銆婣GV搴撲綅
                     continue;
                 }
                 try{
@@ -4708,10 +4687,10 @@
 
                     if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
 
-                        AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam();
+                        AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
 
                         //浠诲姟涓嬪彂
-                        ReturnT<String> result = new PostMesDataUtils().postMesData("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+                        ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                         if (result.getCode()==200){
                             basAgvMast.setStatus(1);
                             basAgvMastService.updateById(basAgvMast);
@@ -4735,7 +4714,7 @@
         try{
             List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("status", 0));
             for (BasAgvMast basAgvMast : basAgvMastList) {
-                if (basAgvMast.getStatus()!=0 && basAgvMast.getIoType()!=3){//3==銆嬭緭閫佺嚎绔欑偣==銆嬭緭閫佺嚎绔欑偣
+                if (basAgvMast.getStatus()!=0 || basAgvMast.getIoType()!=3){//3==銆嬭緭閫佺嚎绔欑偣==銆嬭緭閫佺嚎绔欑偣
                     continue;
                 }
                 try{
@@ -4757,10 +4736,10 @@
 
                     if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
 
-                        AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam();
+                        AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
 
                         //浠诲姟涓嬪彂
-                        ReturnT<String> result = new PostMesDataUtils().postMesData("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
+                        ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                         if (result.getCode()==200){
                             basAgvMast.setStatus(1);
                             basAgvMastService.updateById(basAgvMast);

--
Gitblit v1.9.1