From ccdcd79a48aabb15d9ce9525a3535c01e69475c8 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 31 十月 2025 11:34:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jshdwcs' into jshdwcs

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  324 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 279 insertions(+), 45 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 59c4749..498d42e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,9 +4,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.R;
+import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.AgvTaskAssignmentParam;
@@ -1081,7 +1079,7 @@
             //mark - 3 - ....
             this.locToLoc(crn, crnProtocol,mark);
             //棰勮皟搴�
-//            this.crnRebackHp(crnProtocol, crnThread);
+            this.crnRebackHp(crnProtocol, crnThread);
 
         }
 //        News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
@@ -1097,11 +1095,11 @@
             }
             int x=1;
             switch (crnProtocol.getCrnNo()){
-                case 1: x =1; break;
-                case 2: x =3; break;
-                case 3: x =5; break;
-                case 4: x =7; break;
-                case 5: x =9; break;
+                case 1: x =2; break;
+                case 2: x =6; break;
+                case 3: x =11; break;
+                case 4: x =14; break;
+                case 5: x =18; break;
             }
 
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
@@ -1126,7 +1124,7 @@
             crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
             crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 浠诲姟妯″紡:  鍥炲師鐐�
             crnCommand.setSourcePosX((short) x);     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY((short) 1);     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosY((short) 52);     // 婧愬簱浣嶅垪
             crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
             crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
             crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
@@ -1902,31 +1900,33 @@
                     News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
                     crnThread.setResetFlag(true);
                 }
-            } else if (crnProtocol.getTaskNo() == 9996) {//鐩樼偣鍏ュ簱琛旀帴
-                //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
-                if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
-                    News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
-
-                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
-                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
-                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
-                        wrkMast.setWrkSts(4L);
-                    } else {
-                        continue;
-                    }
-                    Date now = new Date();
-                    wrkMast.setCrnEndTime(now);
-                    wrkMast.setModiTime(now);
-                    // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
-                    if (wrkMastMapper.updateById(wrkMast) > 0) {
-                        // 鍫嗗灈鏈哄浣�
-                        log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
-                        News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
-                        crnThread.setResetFlag(true);
-                    }
-                }
-            }else{
+            }
+//            else if (crnProtocol.getTaskNo() == 9996) {//鐩樼偣鍏ュ簱琛旀帴
+//                //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
+//                if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+//                    News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+//
+//                    // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+//                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
+//                    // 鍏ュ簱 + 搴撲綅杞Щ  ==> 4.鍏ュ簱瀹屾垚
+//                    if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+//                        wrkMast.setWrkSts(4L);
+//                    } else {
+//                        continue;
+//                    }
+//                    Date now = new Date();
+//                    wrkMast.setCrnEndTime(now);
+//                    wrkMast.setModiTime(now);
+//                    // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+//                    if (wrkMastMapper.updateById(wrkMast) > 0) {
+//                        // 鍫嗗灈鏈哄浣�
+//                        log.error(wrkMast.getWrkNo() + "浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}", crnThread.getCrnProtocol().getCrnNo());
+//                        News.warnNoLog("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo());
+//                        crnThread.setResetFlag(true);
+//                    }
+//                }
+//            }
+            else{
                 //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
                 if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
@@ -2220,7 +2220,12 @@
                 }
                 // 鑾峰彇宸ヤ綔妗f暟鎹�
                 WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
-                if (null == wrkMast) { continue; }
+                if (null == wrkMast) {
+                    if(staProtocol.getWorkNo() > 9999){ //寮傚父閫�鍑�
+                        MessageQueue.offer(SlaveType.Led, 2, new Task(3, "寮傚父閫�鍑�"));
+                    }
+                    continue;
+                }
                 wrkMasts.add(wrkMast);
                 // 缁勮鍛戒护
                 LedCommand ledCommand = new LedCommand();
@@ -2270,13 +2275,13 @@
                             total = locDetl.getAnfme();
                         }
                         if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 107) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getOrderNo(), wrkDetl.getSupp(), wrkDetl.getSku(),wrkDetl.getAnfme(),total));
                         }
                     });
                 }
@@ -3324,7 +3329,7 @@
                         continue;
                     }
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
                     Integer workNo = 0;
                     if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){
                         workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2();
@@ -3390,7 +3395,7 @@
                         continue;
                     }
                     BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+                    basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
                     Integer workNo = 0;
                     if(basRgv.getPakToCrn().equals("1")){
                         workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2();  //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
@@ -3641,7 +3646,7 @@
                 case 1: route = RouteUtils.getRouteOne();break;
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
-            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+            basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
             basRgvMapService.updateById(basRgvMap);
             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
@@ -3767,7 +3772,7 @@
                 case 1: route = RouteUtils.getRouteOne();break;
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
-            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+            basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
             basRgvMapService.updateById(basRgvMap);
             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
@@ -3902,7 +3907,7 @@
                 case 1: route = RouteUtils.getRouteOne();break;
                 case 2: route = RouteUtils.getRouteTwo();break;
             }
-            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+            basRgvMap.setNowRoute(rgvProtocol.getRgvNo() == 1?rgvProtocol.getRgvPosI1():rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
             basRgvMapService.updateById(basRgvMap);
             WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
             if( null == wrkMastSta ) {
@@ -4591,6 +4596,233 @@
                 response, bool);
     }
 
+    /*
+     * agv浠诲姟鐢熸垚  Full
+     * */
+    public synchronized void agvTaskCreateFull() {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍑哄簱鍙�
+            for (DevpSlave.Sta outStaAgv : devp.getOutStaAgvFull())  {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(outStaAgv.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (!staProtocol.isLoading()){
+                    continue;
+                }
+                if (staProtocol.isAutoing() ) {
+                    WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
+                    if (Cools.isEmpty(wrkMast) || Cools.isEmpty(wrkMast.getTakeNone()) || !wrkMast.getTakeNone().equals("1")){
+                        continue;
+                    }
+
+                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+                    List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("task_no", staProtocol.getWorkNo()));
+                    if (!basAgvMastList.isEmpty()) {
+                        wrkMast.setTakeNone("2");
+                        wrkMastMapper.updateById(wrkMast);
+                        continue;
+                    }
+
+                    // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+                    BasAgvMast basAgvMast = new BasAgvMast();
+
+
+                    try {
+                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+                        SearchLocParam param = new SearchLocParam();
+                        param.setBarcode(wrkMast.getBarcode());
+                        param.setIoType(1);
+                        param.setSourceStaNo(outStaAgv.getStaNo());
+                        param.setLocType1(locTypeDto.getLocType1());
+                        String response = new HttpHandler.Builder()
+                                .setUri(wmsUrl)
+                                .setPath("/rpc/pakin/agv/loc/v1")
+                                .setJson(JSON.toJSONString(param))
+                                .build()
+                                .doPost();
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        if (jsonObject.getInteger("code").equals(200)) {
+                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+                            basAgvMast.setTaskNo(wrkMast.getWrkNo());
+                            basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
+                            basAgvMast.setLocNo(dto.getLocNo());
+                            basAgvMast.setSourceLocNo(wrkMast.getSourceLocNo());
+                            basAgvMast.setDevpId(devp.getId());
+                            basAgvMast.setIoType(2);
+
+                            basAgvMastService.insert(basAgvMast);
+
+
+                            wrkMast.setTakeNone("2");
+                            wrkMastMapper.updateById(wrkMast);
+                        } else {
+                            News.error(JSON.toJSONString(staProtocol));
+                        }
+                    } catch (Exception e) {
+                        News.error(JSON.toJSONString(e.getMessage()));
+                    }
+                }
+            }
+        }
+    }
+
+    /*
+     * agv浠诲姟鐢熸垚  Empty
+     * */
+    public synchronized void agvTaskCreateEmpty() {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍑哄簱鍙�
+            for (DevpSlave.Sta outStaAgv : devp.getOutStaAgvEmpty())  {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(outStaAgv.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (!staProtocol.isLoading()){
+                    continue;
+                }
+
+                String barcode = staProtocol.getBarcode();
+                if(!Cools.isEmpty(barcode)) {
+                    if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        News.info("{}鍙风珯鐐规壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", outStaAgv.getStaNo(), barcode);
+                        continue;
+                    }
+                } else {
+                    News.info("{}鍙风珯鐐规壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", outStaAgv.getStaNo(), barcode);
+                    continue;
+                }
+                if (staProtocol.isAutoing()) {
+
+                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+                    List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("source_sta_no", outStaAgv.getStaNo()));
+                    if (!basAgvMastList.isEmpty()) {
+                        News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岃绛夊緟浠诲姟鎵ц瀹屾瘯锛歿}", outStaAgv.getStaNo(), barcode);
+                        continue;
+                    }
+
+                    List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().eq("barcode", barcode));
+                    if (!locMastList.isEmpty()) {
+                        News.info("{}鍙风珯鐐规潯鐮佷俊鎭噸澶嶏細{}", outStaAgv.getStaNo(), barcode);
+                        continue;
+                    }
+                    // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+                    BasAgvMast basAgvMast = new BasAgvMast();
+
+
+                    try {
+                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+                        SearchLocParam param = new SearchLocParam();
+                        param.setBarcode(barcode);
+                        param.setIoType(1);
+                        param.setSourceStaNo(outStaAgv.getStaNo());
+                        param.setLocType1(locTypeDto.getLocType1());
+                        String response = new HttpHandler.Builder()
+                                .setUri(wmsUrl)
+                                .setPath("/rpc/pakin/agv/loc/v1")
+                                .setJson(JSON.toJSONString(param))
+                                .build()
+                                .doPost();
+                        JSONObject jsonObject = JSON.parseObject(response);
+                        if (jsonObject.getInteger("code").equals(200)) {
+                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+                            basAgvMast.setTaskNo(outStaAgv.getStaNo());
+                            basAgvMast.setSourceStaNo(outStaAgv.getStaNo());
+                            basAgvMast.setLocNo(dto.getLocNo());
+                            basAgvMast.setDevpId(devp.getId());
+                            basAgvMast.setIoType(2);
+
+                            basAgvMastService.insert(basAgvMast);
+                        } else {
+                            News.error(JSON.toJSONString(staProtocol));
+                        }
+                    } catch (Exception e) {
+                        News.error(JSON.toJSONString(e.getMessage()));
+                    }
+                }
+            }
+        }
+    }
+
+    /*
+     * agv浠诲姟鐢熸垚  Empty
+     * */
+    public synchronized void agvTaskCreateR() {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍑哄簱鍙�
+            for (DevpSlave.Sta inStaAgv : devp.getInStaAgv())  {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inStaAgv.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (staProtocol.isLoading()){
+                    continue;
+                }
+
+                if (staProtocol.isAutoing()) {
+
+                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+                    List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("sta_no", inStaAgv.getStaNo()));
+                    if (!basAgvMastList.isEmpty()) {
+                        News.info("{}鍙风珯鐐瑰瓨鍦ㄤ换鍔℃墽琛屼腑锛岀瓑寰呬换鍔℃墽琛屽畬姣�!!!", inStaAgv.getStaNo());
+                        continue;
+                    }
+                    // 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
+
+                    BasAgvMast basAgvMast = new BasAgvMast();
+                    try {
+                        List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>()
+                                .eq("loc_sts", "R")
+                                .ge("row1", 23)
+                                .le("row1", 32)
+                                .orderBy("io_time",true)
+                        );
+
+                        for (LocMast locMast : locMastList){
+                            basAgvMast.setTaskNo(inStaAgv.getStaNo());
+                            basAgvMast.setSourceLocNo(locMast.getLocNo());
+                            basAgvMast.setStaNo(inStaAgv.getStaNo());
+                            basAgvMast.setDevpId(devp.getId());
+                            basAgvMast.setIoType(0);//AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣  0
+                            basAgvMastService.insert(basAgvMast);
+                            break;
+                        }
+
+                    } catch (Exception e) {
+                        News.error(JSON.toJSONString(e.getMessage()));
+                    }
+                }
+            }
+        }
+    }
+
 
     /*
      * agv浠诲姟涓嬪彂:AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣
@@ -4685,7 +4917,9 @@
                         staProtocol = staProtocol.clone();
                     }
 
-                    if (!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo())){
+                    if ((!Cools.isEmpty(staProtocol.getWorkNo()) && staProtocol.getWorkNo().equals(basAgvMast.getTaskNo()))
+                            ||
+                            (basAgvMast.getSourceStaNo().equals(2033))){
 
                         AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
 

--
Gitblit v1.9.1