From f7ea0b1fe3cb3be7d037290a3fa77b30c922b3f6 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 14 十月 2023 16:22:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  177 ++++++++++++++++++++--------------------------------------
 1 files changed, 62 insertions(+), 115 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 5b6cae4..ae6182d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -102,6 +102,8 @@
     private RedisUtil redisUtil;
     @Autowired
     private WrkMastLocMapper wrkMastLocMapper;
+    @Autowired
+    private BasLiftOptService basLiftOptService;
 
 
     /**
@@ -846,6 +848,10 @@
                 return false;//鍑哄簱绔欑偣涓嶅瓨鍦�
             }
 
+            if (!basDevp.getAutoing().equals("Y")) {
+                return false;//涓嶆槸鑷姩鐘舵��
+            }
+
             if (!basDevp.getOutEnable().equals("Y")) {
                 return false;//鍑哄簱绔欑偣涓嶅彲鍑�
             }
@@ -1291,8 +1297,14 @@
                     && liftProtocol.getTaskNo() != 0
                     && !liftProtocol.getBusy()
             ) {
+                BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(liftProtocol.getTaskNo().toString());
+                int taskNo = liftProtocol.getTaskNo().intValue();
+                if (basLiftOpt != null) {
+                    taskNo = basLiftOpt.getWrkNo();
+                }
+
                 //灏嗕换鍔℃。鏍囪涓哄畬鎴�
-                WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(liftProtocol.getTaskNo().intValue());
+                WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(taskNo);
                 if (wrkMast != null) {
                     switch (wrkMast.getWrkSts().intValue()) {
                         case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴�
@@ -2005,54 +2017,54 @@
 
                     if (wrkMast.getStaNo() != 303 && wrkMast.getStaNo() != 317) {
                         //鍚慉GV鍙戣捣缁勬墭璇锋眰
-//                        try {
-//                            HashMap<String, Object> param = new HashMap<>();
-//                            param.put("wrkNo", wrkMast.getWrkNo());
-//                            String response = new HttpHandler.Builder()
-//                                    .setUri(wmsUrl)
-//                                    .setPath("/openAGV")
-//                                    .setJson(JSON.toJSONString(param))
-//                                    .build()
-//                                    .doPost();
-//                            JSONObject jsonObject = JSON.parseObject(response);
-//                            Integer code = jsonObject.getInteger("code");
-//                            if (code.equals(200)) {//AGV缁勬墭鎴愬姛
-//                                //瑕嗙洊宸ヤ綔妗g洰鏍囩珯
-//                                wrkMast.setStaNo(targetSta.intValue());
-//                                wrkMast.setShuttleNo(null);//閲婃斁灏忚溅
-//                                if (wrkMastMapper.updateById(wrkMast) > 0) {
-//                                    //鍚�300绔欏啓鍏ョ洰鏍囩珯
-//                                    staProtocol = staProtocol.clone();
-//                                    staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯
-//                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                                    try {
-//                                        Thread.sleep(500);
-//                                    } catch (Exception e) {
-//                                        e.printStackTrace();
-//                                    }
-//                                    continue;
-//                                }
-//                            }
-//                        } catch (Exception e) {
-//                            e.printStackTrace();
-//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                        }
-
-                        //瑕嗙洊宸ヤ綔妗g洰鏍囩珯
-                        wrkMast.setStaNo(targetSta.intValue());
-                        wrkMast.setShuttleNo(null);//閲婃斁灏忚溅
-                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-                            //鍚�300绔欏啓鍏ョ洰鏍囩珯
-                            staProtocol = staProtocol.clone();
-                            staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            try {
-                                Thread.sleep(500);
-                            } catch (Exception e) {
-                                e.printStackTrace();
+                        try {
+                            HashMap<String, Object> param = new HashMap<>();
+                            param.put("wrkNo", wrkMast.getWrkNo());
+                            String response = new HttpHandler.Builder()
+                                    .setUri(wmsUrl)
+                                    .setPath("/rpc/replenishment")
+                                    .setJson(JSON.toJSONString(param))
+                                    .build()
+                                    .doPost();
+                            JSONObject jsonObject = JSON.parseObject(response);
+                            Integer code = jsonObject.getInteger("code");
+                            if (code.equals(200)) {//AGV缁勬墭鎴愬姛
+                                //瑕嗙洊宸ヤ綔妗g洰鏍囩珯
+                                wrkMast.setStaNo(targetSta.intValue());
+                                wrkMast.setShuttleNo(null);//閲婃斁灏忚溅
+                                if (wrkMastMapper.updateById(wrkMast) > 0) {
+                                    //鍚�300绔欏啓鍏ョ洰鏍囩珯
+                                    staProtocol = staProtocol.clone();
+                                    staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯
+                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                    try {
+                                        Thread.sleep(500);
+                                    } catch (Exception e) {
+                                        e.printStackTrace();
+                                    }
+                                    continue;
+                                }
                             }
-                            continue;
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         }
+
+//                        //瑕嗙洊宸ヤ綔妗g洰鏍囩珯
+//                        wrkMast.setStaNo(targetSta.intValue());
+//                        wrkMast.setShuttleNo(null);//閲婃斁灏忚溅
+//                        if (wrkMastMapper.updateById(wrkMast) > 0) {
+//                            //鍚�300绔欏啓鍏ョ洰鏍囩珯
+//                            staProtocol = staProtocol.clone();
+//                            staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯
+//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            try {
+//                                Thread.sleep(500);
+//                            } catch (Exception e) {
+//                                e.printStackTrace();
+//                            }
+//                            continue;
+//                        }
                     }
                 }
             }
@@ -2142,11 +2154,11 @@
     private boolean agvRestockCall(String staNo, String barcode) {
         try {
             HashMap<String, Object> param = new HashMap<>();
-            param.put("staNo", staNo);
-            param.put("barcode", barcode);
+            param.put("devNo", staNo);
+            param.put("containerCode", barcode);
             String response = new HttpHandler.Builder()
                     .setUri(wmsUrl)
-                    .setPath("/callAGV")
+                    .setPath("/rpc/start")
                     .setJson(JSON.toJSONString(param))
                     .build()
                     .doPost();
@@ -2582,8 +2594,6 @@
             if (!stepMoveLoc) {
                 continue;
             }
-
-//            this.shuttleMoveExecuteStepClearWrkMast(wrkMast);//娓呯悊111.灏忚溅绉诲姩瀹屾垚
 
         }
     }
@@ -3146,69 +3156,6 @@
                 MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
             }
         }
-        return true;
-    }
-
-    /**
-     * 灏忚溅杩佺Щ-娓呯悊111.灏忚溅绉诲姩瀹屾垚
-     */
-    private boolean shuttleMoveExecuteStepClearWrkMast(WrkMast wrkMast) {
-        if (wrkMast.getWrkSts() == 111) {
-            //鑾峰彇鍥涘悜绌挎杞︾嚎绋�
-            NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
-            if (shuttleThread == null) {
-                return false;
-            }
-            NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-            if (shuttleProtocol == null) {
-                return false;
-            }
-
-            //灏忚溅澶勪簬绌洪棽鐘舵��
-            if (!shuttleProtocol.isIdleNoCharge(wrkMast.getWrkNo())) {
-                return false;
-            }
-
-            Object o = redisUtil.get("shuttle_wrk_no_" + shuttleProtocol.getTaskNo());
-            if (o != null) {
-                ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class);
-                ShuttleAssignCommand assignCommand = redisCommand.getAssignCommand();
-                int size = assignCommand.getCommands().size();
-                NyShuttleHttpCommand command = assignCommand.getCommands().get(size - 1);//鑾峰彇鏈�鍚庝竴娈靛懡浠�
-                if (!command.getComplete()) {
-                    return false;//鏈�鍚庝竴娈靛懡浠よ繕鏈畬鎴愶紝涓嶅仛鎿嶄綔
-                }
-                NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo()));
-                navigateMapData.writeNavigateNodeToRedisMap(assignCommand.getNodes(), false);//瑙i攣璺緞
-
-                //鍒犻櫎redis
-                redisUtil.del("shuttle_wrk_no_" + redisCommand.getWrkNo());
-            }
-
-            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-            if (wrkMastLocMapper.save(wrkMast.getWrkNo()) <= 0) {
-                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
-            }
-            // 鍒犻櫎宸ヤ綔涓绘。
-            if (!wrkMastService.deleteById(wrkMast)) {
-                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
-            }
-
-            //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
-            shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
-            //婧愬簱浣嶆竻闆�
-            shuttleProtocol.setSourceLocNo(null);
-            //鐩爣搴撲綅娓呴浂
-            shuttleProtocol.setLocNo(null);
-            //浠诲姟鎸囦护娓呴浂
-            shuttleProtocol.setAssignCommand(null);
-            //宸ヤ綔鍙锋竻闆�
-            shuttleProtocol.setTaskNo(0);
-            //娓呴櫎浠ょ墝
-            shuttleProtocol.setToken(0);
-            News.info("鍥涘悜绌挎杞﹀凡纭涓旂Щ鍔ㄤ换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
-        }
-
         return true;
     }
 

--
Gitblit v1.9.1