From 8dc3bcb40363cc6f9281092b4f6ea0ebcb9335b0 Mon Sep 17 00:00:00 2001
From: tzsk <Administrator@qq.com>
Date: 星期三, 07 二月 2024 11:27:36 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 121 insertions(+), 40 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 a3cc3b7..ee8db79 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2633,9 +2633,10 @@
                     }
 
                     if (wrkMast.getInvWh() == null) {
-                        wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔�
-                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-                            RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303");
+                        boolean result = RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303");
+                        if (result) {
+                            wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔�
+                            wrkMastMapper.updateById(wrkMast);
                         }
                     }
                 }
@@ -2652,9 +2653,10 @@
                         continue;
                     }
                     if (wrkMast.getInvWh() == null) {
-                        wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔�
-                        if (wrkMastMapper.updateById(wrkMast) > 0) {
-                            RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317");
+                        boolean result = RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317");
+                        if (result) {
+                            wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔�
+                            wrkMastMapper.updateById(wrkMast);
                         }
                     }
                 }
@@ -2737,13 +2739,38 @@
         return false;
     }
 
+    //閫氱煡WMS褰撳墠鎷f枡绔欑偣淇℃伅
+    private boolean agvCureentCall(String staNo, String barcode) {
+        try {
+            HashMap<String, Object> param = new HashMap<>();
+            param.put("devNo", staNo);
+            param.put("containerCode", barcode);
+            String response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath("/rpc/current/containerCode")
+                    .setJson(JSON.toJSONString(param))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            News.info("鎮寕绾匡紝WMS杩斿洖缁撴灉锛�" + jsonObject);
+            Integer code = jsonObject.getInteger("code");
+            if (code.equals(200)) {//鍛煎彨AGV
+                return true;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+        return false;
+    }
+
     /**
      * AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣)
      */
     public void agvRestockIntoByHangingWire() {
         try {
             //妫�娴�350鍜�351鎵爜鍣�
-            int[] barcodeStaNo = {11, 12};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
+            int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
             for (int staNo : barcodeStaNo) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
@@ -2759,11 +2786,61 @@
                     String agvStaNo = null;
                     if (staNo == 11) {
                         agvStaNo = "303-1";
-                    } else {
+                    } else if(staNo == 12){
                         agvStaNo = "304-1";
+                    } else if(staNo == 14){
+                        agvStaNo = "311-1";
+                    } else if(staNo == 16){
+                        agvStaNo = "313-1";
+                    } else if(staNo == 18){
+                        agvStaNo = "315-1";
+                    } else if(staNo == 20){
+                        agvStaNo = "317-1";
                     }
                     //閫氱煡AGV鍙栬揣
                     boolean result = agvRestockCall(agvStaNo, barcode);
+                    if (result) {
+                        barcodeThread.setBarcode("");
+                    }
+                    log.info(barcodeThread.getSlave().getId() + "鍙锋壂鐮佸櫒锛岄�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * AGV鎷f枡绔欑偣淇℃伅
+     */
+    public void agvCurrentContainerCodeInfoWire() {
+        try {
+            //妫�娴�350鍜�351鎵爜鍣�
+            int[] barcodeStaNo = {13, 15,17,19};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒
+            for (int staNo : barcodeStaNo) {
+                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo);
+                if (barcodeThread == null) {
+                    continue;
+                }
+                String barcode = barcodeThread.getBarcode();
+                if (!Cools.isEmpty(barcode)) {
+                    if (barcode.contains("NoRead")) {
+                        continue;
+                    }
+
+                    String agvStaNo = null;
+                    if (staNo == 13) {
+                        agvStaNo = "CS-310";
+                    } else if(staNo == 15){
+                        agvStaNo = "CS-311";
+                    } else if(staNo == 17){
+                        agvStaNo = "CS-312";
+                    } else if(staNo == 19){
+                        agvStaNo = "CS-313";
+                    }
+                    //閫氱煡WMS褰撳墠瀹瑰櫒鐮�
+                    boolean result = agvCureentCall(agvStaNo, barcode);
                     if (result) {
                         barcodeThread.setBarcode("");
                     }
@@ -2908,6 +2985,41 @@
                     if (ioType != 110 && ioType != 10) {
                         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
                         if (ioType == 101) {
+                            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo));
+                            wrkDetls.forEach(wrkDetl -> {
+                                ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), 0D, wrkDetl.getSpecs(), wrkDetl.getSuppCode()));
+                            });
+//                            locDetls.forEach(locDetl -> {
+//                                Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo);
+//                                Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch());
+//                                Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode());
+//                                Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime());
+//                                Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮�
+//                                List<WrkDetl> detl = wrkDetlService.selectList(wrapper);
+//                                if (Cools.isEmpty(detl)) {
+//                                    String suppCode = "";
+//                                    if (locDetl.getSuppCode() != null) {
+//                                        suppCode = locDetl.getSuppCode();
+//                                    }
+//                                    ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode));
+//                                } else {
+//                                    //鍑哄簱鏁伴噺绱
+//                                    Double conut = 0.0;
+//                                    for (WrkDetl wrkDetl : detl) {
+//                                        conut = conut + wrkDetl.getAnfme();
+//                                    }
+//
+//                                    for (WrkDetl wrkDetl : detl) {
+//                                        String suppCode = "";
+//                                        if (wrkDetl.getSuppCode() != null) {
+//                                            suppCode = wrkDetl.getSuppCode();
+//                                        }
+//                                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo()));
+//                                    }
+//                                }
+//
+//                            });
+                        } else {
                             locDetls.forEach(locDetl -> {
                                 Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo);
                                 Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch());
@@ -2938,37 +3050,6 @@
                                 }
 
                             });
-                        } else {
-                            locDetls.forEach(locDetl -> {
-                                Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo);
-                                Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch());
-                                Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode());
-                                Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime());
-                                Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮�
-                                List<WrkDetl> detl = wrkDetlService.selectList(wrapper);
-                                if (Cools.isEmpty(detl)) {
-                                    String suppCode = "";
-                                    if (locDetl.getSuppCode() != null) {
-                                        suppCode = locDetl.getSuppCode();
-                                    }
-                                    ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode));
-                                } else {
-                                    //鍑哄簱鏁伴噺绱
-                                    Double conut = 0.0;
-                                    for (WrkDetl wrkDetl : detl) {
-                                        conut = conut + wrkDetl.getAnfme();
-                                    }
-
-                                    for (WrkDetl wrkDetl : detl) {
-                                        String suppCode = "";
-                                        if (wrkDetl.getSuppCode() != null) {
-                                            suppCode = wrkDetl.getSuppCode();
-                                        }
-                                        ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), 0D, wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo()));
-                                    }
-                                }
-
-                            });
                         }
 
 
@@ -2977,7 +3058,7 @@
                             ledCommand.setMatDtos(new ArrayList<>());
                         }
 
-                        if (locDetls.isEmpty()) {
+                        if (locDetls.isEmpty() && ioType != 101) {
                             List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo));
                             wrkDetls.forEach(wrkDetl -> {
                                 ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode()));

--
Gitblit v1.9.1