From 29d3f24dc43df41103bc5f483bfc439494a80971 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 17 十二月 2025 09:30:32 +0800
Subject: [PATCH] 对接mes 对接华晓agv 对接海康agv 初始化开发

---
 src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java |  752 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 431 insertions(+), 321 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index de80492..9e42536 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -22,6 +22,7 @@
 import com.zy.common.service.CommonService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -90,6 +91,10 @@
 
     @Resource
     private MobileService mobileService;
+    @Autowired
+    private DocTypeService docTypeService;
+    @Autowired
+    private OrderService orderService;
 
 
     // region MES鎺ュ彛
@@ -124,7 +129,8 @@
         } else {
             throw new CoolException("鍚屾鐗╂枡淇℃伅锛岀敓鎴愬叆搴撳崟澶辫触");
         }
-
+        mesReturn.setSuccess("1");
+        mesReturn.setMessage("");
         return mesReturn;
     }
 
@@ -189,20 +195,6 @@
             if (mat == null) {
                 if (!matService.insert(newMat))
                     return -2;
-            } else {
-                JSONObject dbMemo = JSONObject.parseObject(mat.getMemo());
-                dbMemo.remove("OrderNo");
-                dbMemo.remove("qty");
-                dbMemo.remove("ItemBarcode");
-                JSONObject newMemo = JSONObject.parseObject(newMat.getMemo());
-                newMemo.remove("OrderNo");
-                newMemo.remove("qty");
-                dbMemo.remove("ItemBarcode");
-                if (!dbMemo.equals(newMemo)) {
-                    newMat.setId(mat.getId());
-                    if (!matService.updateById(newMat))
-                        return -2;
-                }
             }
         } else {
             return -1;
@@ -214,13 +206,12 @@
     /**
      * 鐗╂枡鍚屾鍏ュ簱鍗曪紝鎸塐rderNo鐢熸垚澶氫釜璁㈠崟
      *
-     *
      * @param matRecvForm
      * @return
      */
-    public int inBoundOrder_List(MesMatRecvForm matRecvForm){
+    public int inBoundOrder_List(MesMatRecvForm matRecvForm) {
 
-        long docType = 4;   // docType鏍规嵁搴撶被鍨嬬‘瀹�
+        long docType = 1;   // docType鏍规嵁搴撶被鍨嬬‘瀹�  鏉ユ枡鐢宠鍗�
         long settle = 1;
         Date now = new Date();
 
@@ -232,8 +223,12 @@
 
             // 鏍¢獙璁㈠崟鏄惁閲嶅
             OrderPakin order = orderPakinService.selectByNo(entry.getKey());
-            if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
-                return -1;
+            // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+            if (!Cools.isEmpty(order)) {
+                if (order.getSettle() > 1L) {
+                    throw new CoolException(entry.getKey() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+                }
+                orderPakinService.remove(order.getId());
             }
 
             // 鐢熸垚璁㈠崟
@@ -243,52 +238,56 @@
             newMemo.put("operuser", matRecvForm.getOperuser());
             newMemo.put("itemdata", list);
 
+
+
+            // 鐢熸垚璁㈠崟
             OrderPakin orderPakin = new OrderPakin();
             orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
             orderPakin.setOrderNo(entry.getKey());
             orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
             orderPakin.setDocType(docType);
-            orderPakin.setSettle(settle);
+            orderPakin.setSettle(1L);
             orderPakin.setStatus(1);
             orderPakin.setCreateBy(defaultUserId);
             orderPakin.setCreateTime(now);
             orderPakin.setUpdateBy(defaultUserId);
             orderPakin.setUpdateTime(now);
-            orderPakin.setMemo(newMemo.toJSONString());  //涓洪鏂欏叆搴撳畬鎴愬弽棣堜繚瀛�   JSONObject.toJSONString(matRecvForm)
+            orderPakin.setMemo(JSONObject.toJSONString(newMemo));  //涓哄嚭搴撳畬鎴愬弽棣堜繚瀛�
             orderPakin.setPakinPakoutStatus(1);
-            if (!orderPakinService.insert(orderPakin)) {
-                log.error("MES淇濆瓨鍏ュ簱璁㈠崟涓绘。澶辫触");
-                throw new CoolException("淇濆瓨鍏ュ簱璁㈠崟涓绘。澶辫触");
-            }
+            orderPakinService.insert(orderPakin);
+            if (list != null && !list.isEmpty()) {
+                for (MesMatInfo mesMatInfo : list) {
 
-            // 鐢熸垚鏄庣粏
-            for (MesMatInfo mesMat : list) {
-                Mat mat = matService.selectByMatnr(mesMat.getItemNo());
-                OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
-                orderDetlPakin.setOrderId(orderPakin.getId());
-                orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
-                orderDetlPakin.setAnfme(Double.valueOf(mesMat.getQty()));
-                orderDetlPakin.setQty(0.0);
-                orderDetlPakin.setMatnr(mat.getMatnr());
-                orderDetlPakin.setMaktx(mat.getMaktx());
-                orderDetlPakin.setSpecs(mat.getSpecs());
-                orderDetlPakin.setModel(mat.getModel());
-                orderDetlPakin.setStandby1(JSONObject.toJSONString(mesMat.getItemBarcode()));   // 闆朵欢浜岀淮鐮�
-                orderDetlPakin.setStandby2("1");  //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
-                orderDetlPakin.setCreateBy(defaultUserId);
-                orderDetlPakin.setCreateTime(now);
-                orderDetlPakin.setUpdateBy(defaultUserId);
-                orderDetlPakin.setUpdateTime(now);
-                orderDetlPakin.setStatus(1);
-                orderDetlPakin.setPakinPakoutStatus(1);
-                if (!orderDetlPakinService.insert(orderDetlPakin)) {
-                    log.error("MES淇濆瓨鍏ュ簱璁㈠崟鏄庣粏妗eけ璐�1");
-                    throw new CoolException("淇濆瓨鍏ュ簱璁㈠崟鏄庣粏妗eけ璐�1");
+                    // 鐢熸垚鏄庣粏
+                    Mat mat = matService.selectByMatnr(mesMatInfo.getItemNo());
+                    if(Cools.isEmpty(mat)){
+                        log.error("璇ョ墿鏂欑紪鍙风珛搴撴病鏈�="+mesMatInfo.getItemNo());
+                        continue;
+                    }
+                    OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
+                    orderDetlPakin.setOrderId(orderPakin.getId());
+                    orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
+                    orderDetlPakin.setAnfme(Double.valueOf(mesMatInfo.getQty()));
+                    orderDetlPakin.setQty(0.0);
+                    orderDetlPakin.setMatnr(mat.getMatnr());
+                    orderDetlPakin.setMaktx(mat.getMaktx());
+                    orderDetlPakin.setSpecs(mat.getSpecs());
+                    orderDetlPakin.setModel(mat.getModel());
+//                    orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode());
+//                    orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid());   //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+                    orderDetlPakin.setStandby2("0");  //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
+                    orderDetlPakin.setCreateBy(defaultUserId);
+                    orderDetlPakin.setCreateTime(now);
+                    orderDetlPakin.setUpdateBy(defaultUserId);
+                    orderDetlPakin.setUpdateTime(now);
+                    orderDetlPakin.setStatus(1);
+                    orderDetlPakin.setPakinPakoutStatus(1);
+                    orderDetlPakinService.insert(orderDetlPakin);
                 }
             }
         }
-
         return 1;
+
     }
 
     /**
@@ -348,9 +347,9 @@
 
             String url = MES_URL + "MaterialReceiptAndReturn";
             String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesRecvFeedback));
-            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+            if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                 MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                if("1".equals(mesReturn.getSuccess())) {
+                if ("1".equals(mesReturn.getSuccess())) {
                     return 1;
                 }
             }
@@ -367,137 +366,137 @@
      * @param mesOutApply
      * @return 1 鎴愬姛锛�-1 璁㈠崟閲嶅锛�
      */
-    public int outBoundOrder(MesOutApply mesOutApply){
+    public int outBoundOrder(MesOutApply mesOutApply) {
 
-        // 绌烘墭鍑哄簱
-        if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) {
-            // 鐢熸垚绌烘墭鍑哄簱浠诲姟
-            mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1,"1",defaultUserId);
-
-            try {
-                if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
-                    TransTask transTask = new TransTask();
-                    transTask.setTaskno(mesOutApply.getTaskno());
-                    transTask.setTaskname(mesOutApply.getTaskname());
-                    transTask.setOrderNo(mesOutApply.getOrderNo());
-                    transTask.setTransType(mesOutApply.getTransType());
-                    transTask.setCurStationId(WMS_TRANS_START_STATION_1);
-                    transTask.setNextProcess(mesOutApply.getProductLineId());
-                    transTask.setNextStationId(mesOutApply.getStationId());
-                    transTask.setItemno(WMS_ZPALLET_ID);  // 鍥哄畾涓虹┖鎵樼殑缂栫爜
-                    transTask.setQty(1);    // 绌烘墭鍙嚭1涓�
-                    transTask.setProductLineId(mesOutApply.getProductLineId());
-                    transTask.setOperateType(1);
-                    transTask.setAgvFactory(1);
-                    JSONObject sendAgvTask = submitTask(transTask);
-                    if (!"1".equals(sendAgvTask.getString("Success"))) {
-                        log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
-                    }
-                }
-            } catch (Exception e) {
-                log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
-            }
-
-            return 1;
-        } else {    // 姣涘澂锛堢墿鏂欙級鍑哄簱
-            // docType鏍规嵁搴撶被鍨嬬‘瀹�
-            long docType = 7;
-            long settle = 1;
-
-            // 鏍¢獙璁㈠崟鏄惁閲嶅
-            OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo());
-            if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
-                log.error("鍑哄簱璁㈠崟鍙烽噸澶嶏細{}",mesOutApply.getOrderNo());
-                return -1;
-            }
-
-            // 鐢熸垚璁㈠崟
-            Date now = new Date();
-            OrderPakout orderPakout = new OrderPakout();
-            orderPakout.setUuid( String.valueOf(snowflakeIdWorker.nextId()));
-            orderPakout.setOrderNo(mesOutApply.getOrderNo());
-            orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
-            orderPakout.setDocType(docType);
-            orderPakout.setSettle(settle);
-            orderPakout.setStatus(1);
-            orderPakout.setCreateBy(defaultUserId);
-            orderPakout.setCreateTime(now);
-            orderPakout.setUpdateBy(defaultUserId);
-            orderPakout.setUpdateTime(now);
-            orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
-            orderPakout.setPakinPakoutStatus(2);
-            if (!orderPakoutService.insert(orderPakout)) {
-                log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
-                throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
-            }
-
-            // 鐢熸垚鏄庣粏
-            Mat mat = matService.selectByMatnr(mesOutApply.getItemno());
-            OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
-            orderDetlPakout.setOrderId(orderPakout.getId());
-            orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
-            orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty()));
-            orderDetlPakout.setQty(0.0);
-            orderDetlPakout.setMatnr(mat.getMatnr());
-            orderDetlPakout.setMaktx(mat.getMaktx());
-            orderDetlPakout.setSpecs(mat.getSpecs());
-            orderDetlPakout.setModel(mat.getModel());
-            orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode()));
-            orderDetlPakout.setCreateBy(defaultUserId);
-            orderDetlPakout.setCreateTime(now);
-            orderDetlPakout.setUpdateBy(defaultUserId);
-            orderDetlPakout.setUpdateTime(now);
-            orderDetlPakout.setStatus(1);
-            orderDetlPakout.setPakinPakoutStatus(2);
-            if (!orderDetlPakoutService.insert(orderDetlPakout)) {
-                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
-                throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
-            }
-
-            // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
-            // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV杩愰�佸埌绔欑偣锛岀洰鍓嶅鎵樼敓鎴愬涓��
-            try {
-                if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
-                    // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
-                    String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
-                    EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
-                    matItemBarcodeEntityWrapper.in("item_barcode", barCode);
-                    List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
-                     if (barcodes != null) {
-                        Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
-                        for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
-                            List<MatItemBarcode> list = entry.getValue();
-                            List<String> codes = new ArrayList<>();
-                            for (MatItemBarcode zapllet : list) {
-                                codes.add(zapllet.getItemBarcode());
-                            }
-
-                            TransTask transTask = new TransTask();
-                            transTask.setTaskno(mesOutApply.getTaskno());
-                            transTask.setTaskname(mesOutApply.getTaskname());
-                            transTask.setOrderNo(mesOutApply.getOrderNo());
-                            transTask.setTransType(mesOutApply.getTransType());
-                            transTask.setCurStationId(WMS_TRANS_START_STATION_3);
-                            transTask.setNextProcess(mesOutApply.getProductLineId());
-                            transTask.setNextStationId(mesOutApply.getStationId());
-                            transTask.setItemno(mesOutApply.getItemno());
-                            transTask.setQty(list.size());
-                            transTask.setProductLineId(mesOutApply.getProductLineId());
-                            transTask.setItemBarcode(codes);
-                            transTask.setTuoPanId(entry.getKey());
-                            transTask.setOperateType(1);
-                            transTask.setAgvFactory(1);
-                            JSONObject sendAgvTask = submitTask(transTask);
-                            if (!"1".equals(sendAgvTask.getString("Success"))) {
-                                log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
-                            }
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
-            }
-        }
+//        // 绌烘墭鍑哄簱
+//        if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) {
+//            // 鐢熸垚绌烘墭鍑哄簱浠诲姟
+//            mobileService.callEmptyBinOutBound(WMS_TRANS_START_STATION_1, "1", defaultUserId);
+//
+//            try {
+//                if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
+//                    TransTask transTask = new TransTask();
+//                    transTask.setTaskno(mesOutApply.getTaskno());
+//                    transTask.setTaskname(mesOutApply.getTaskname());
+//                    transTask.setOrderNo(mesOutApply.getOrderNo());
+//                    transTask.setTransType(mesOutApply.getTransType());
+//                    transTask.setCurStationId(WMS_TRANS_START_STATION_1);
+//                    transTask.setNextProcess(mesOutApply.getProductLineId());
+//                    transTask.setNextStationId(mesOutApply.getStationId());
+//                    transTask.setItemno(WMS_ZPALLET_ID);  // 鍥哄畾涓虹┖鎵樼殑缂栫爜
+//                    transTask.setQty(1);    // 绌烘墭鍙嚭1涓�
+//                    transTask.setProductLineId(mesOutApply.getProductLineId());
+//                    transTask.setOperateType(1);
+//                    transTask.setAgvFactory(1);
+//                    JSONObject sendAgvTask = submitTask(transTask);
+//                    if (!"1".equals(sendAgvTask.getString("Success"))) {
+//                        log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触锛歿}", JSONObject.toJSONString(transTask));
+//                    }
+//                }
+//            } catch (Exception e) {
+//                log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
+//            }
+//
+//            return 1;
+//        } else {    // 姣涘澂锛堢墿鏂欙級鍑哄簱
+//            // docType鏍规嵁搴撶被鍨嬬‘瀹�
+//            long docType = 7;
+//            long settle = 1;
+//
+//            // 鏍¢獙璁㈠崟鏄惁閲嶅
+//            OrderPakout order = orderPakoutService.selectByNo(mesOutApply.getOrderNo());
+//            if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
+//                log.error("鍑哄簱璁㈠崟鍙烽噸澶嶏細{}", mesOutApply.getOrderNo());
+//                return -1;
+//            }
+//
+//            // 鐢熸垚璁㈠崟
+//            Date now = new Date();
+//            OrderPakout orderPakout = new OrderPakout();
+//            orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+//            orderPakout.setOrderNo(mesOutApply.getOrderNo());
+//            orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
+//            orderPakout.setDocType(docType);
+//            orderPakout.setSettle(settle);
+//            orderPakout.setStatus(1);
+//            orderPakout.setCreateBy(defaultUserId);
+//            orderPakout.setCreateTime(now);
+//            orderPakout.setUpdateBy(defaultUserId);
+//            orderPakout.setUpdateTime(now);
+//            orderPakout.setMemo(JSONObject.toJSONString(mesOutApply));
+//            orderPakout.setPakinPakoutStatus(2);
+//            if (!orderPakoutService.insert(orderPakout)) {
+//                log.error("MES淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+//                throw new CoolException("淇濆瓨鍑哄簱璁㈠崟涓绘。澶辫触");
+//            }
+//
+//            // 鐢熸垚鏄庣粏
+//            Mat mat = matService.selectByMatnr(mesOutApply.getItemno());
+//            OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
+//            orderDetlPakout.setOrderId(orderPakout.getId());
+//            orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
+//            orderDetlPakout.setAnfme(Double.valueOf(mesOutApply.getQty()));
+//            orderDetlPakout.setQty(0.0);
+//            orderDetlPakout.setMatnr(mat.getMatnr());
+//            orderDetlPakout.setMaktx(mat.getMaktx());
+//            orderDetlPakout.setSpecs(mat.getSpecs());
+//            orderDetlPakout.setModel(mat.getModel());
+//            orderDetlPakout.setStandby1(barCodeListToStr(mesOutApply.getItemBarcode()));
+//            orderDetlPakout.setCreateBy(defaultUserId);
+//            orderDetlPakout.setCreateTime(now);
+//            orderDetlPakout.setUpdateBy(defaultUserId);
+//            orderDetlPakout.setUpdateTime(now);
+//            orderDetlPakout.setStatus(1);
+//            orderDetlPakout.setPakinPakoutStatus(2);
+//            if (!orderDetlPakoutService.insert(orderDetlPakout)) {
+//                log.error("MES淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+//                throw new CoolException("淇濆瓨鍑哄簱璁㈠崟鏄庣粏妗eけ璐�");
+//            }
+//
+//            // TODO锛氳嫢AGV鍜岃緭閫佺嚎娌℃湁瀹夊叏浜や簰锛屽垯瑕佷繚璇佺珛搴撳嚭璐у畬鎴愬悗鍐嶅懠鍙獳GV銆�
+//            // 绔嬪簱鐢熸垚璁㈠崟鍚庯紝鑷姩璋冨害AGV杩愰�佸埌绔欑偣锛岀洰鍓嶅鎵樼敓鎴愬涓��
+//            try {
+//                if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
+//                    // 鎸夐浂浠朵簩缁寸爜鏌ヨ鏈夊嚑涓墭锛屽鎵樼敓鎴愬涓换鍔★紝姣忔墭瀵瑰簲闆朵欢浜岀淮鐮�
+//                    String barCode = barCodeListToStr(mesOutApply.getItemBarcode());
+//                    EntityWrapper<MatItemBarcode> matItemBarcodeEntityWrapper = new EntityWrapper<>();
+//                    matItemBarcodeEntityWrapper.in("item_barcode", barCode);
+//                    List<MatItemBarcode> barcodes = matItemBarcodeMapper.selectList(matItemBarcodeEntityWrapper);
+//                    if (barcodes != null) {
+//                        Map<String, List<MatItemBarcode>> map = barcodes.stream().collect(Collectors.groupingBy(MatItemBarcode::getZapplet));
+//                        for (Map.Entry<String, List<MatItemBarcode>> entry : map.entrySet()) {
+//                            List<MatItemBarcode> list = entry.getValue();
+//                            List<String> codes = new ArrayList<>();
+//                            for (MatItemBarcode zapllet : list) {
+//                                codes.add(zapllet.getItemBarcode());
+//                            }
+//
+//                            TransTask transTask = new TransTask();
+//                            transTask.setTaskno(mesOutApply.getTaskno());
+//                            transTask.setTaskname(mesOutApply.getTaskname());
+//                            transTask.setOrderNo(mesOutApply.getOrderNo());
+//                            transTask.setTransType(mesOutApply.getTransType());
+//                            transTask.setCurStationId(WMS_TRANS_START_STATION_3);
+//                            transTask.setNextProcess(mesOutApply.getProductLineId());
+//                            transTask.setNextStationId(mesOutApply.getStationId());
+//                            transTask.setItemno(mesOutApply.getItemno());
+//                            transTask.setQty(list.size());
+//                            transTask.setProductLineId(mesOutApply.getProductLineId());
+//                            transTask.setItemBarcode(codes);
+//                            transTask.setTuoPanId(entry.getKey());
+//                            transTask.setOperateType(1);
+//                            transTask.setAgvFactory(1);
+//                            JSONObject sendAgvTask = submitTask(transTask);
+//                            if (!"1".equals(sendAgvTask.getString("Success"))) {
+//                                log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
+//                            }
+//                        }
+//                    }
+//                }
+//            } catch (Exception e) {
+//                log.error("涓嬪彂AGV杩愯緭浠诲姟澶辫触", e);
+//            }
+//        }
 
         return 1;
     }
@@ -509,33 +508,33 @@
      * @param mesInApply
      */
     @Transactional
-    public int inBoundOrder(MesInApply mesInApply){
+    public int inBoundOrder(MesInApply mesInApply) {
 
         // 绌烘墭鍥炲簱
         if (StringUtils.isEmpty(mesInApply.getOrderNo()) && StringUtils.isEmpty(mesInApply.getItemno())) {
-                if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) {
-                    TransTask transTask = new TransTask();
-                    transTask.setTaskno(mesInApply.getTaskno());
-                    transTask.setTaskname(mesInApply.getTaskname());
-                    transTask.setOrderNo(mesInApply.getOrderNo());
-                    transTask.setTransType(mesInApply.getTransType());
-                    transTask.setCurProcess(mesInApply.getProductLineId());
-                    transTask.setCurStationId(mesInApply.getStationID());
-                    transTask.setNextStationId(WMS_TRANS_START_STATION_2);
-                    transTask.setItemno(WMS_ZPALLET_ID);  // 鍥哄畾涓虹┖鎵樼殑缂栫爜
-                    transTask.setQty(1);    // 绌烘墭鍙洖1涓�
-                    transTask.setProductLineId(mesInApply.getProductLineId());
-                    transTask.setOperateType(1);
-                    transTask.setAgvFactory(1);
-                    JSONObject sendAgvTask = submitTask(transTask);
-                    if (!"1".equals(sendAgvTask.getString("Success"))) {
-                        log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触,{}", JSONObject.toJSONString(transTask));
-                        return 2;
-                    }
-                } else {
-                    log.error("鏃犱换鍔″彿锛歿}锛屾垨鏃犵墿鏂欑紪鐮�:{}",mesInApply.getTaskno(),mesInApply.getItemno() );
+            if (!StringUtils.isEmpty(mesInApply.getTaskno()) && !StringUtils.isEmpty(mesInApply.getStationID())) {
+                TransTask transTask = new TransTask();
+                transTask.setTaskno(mesInApply.getTaskno());
+                transTask.setTaskname(mesInApply.getTaskname());
+                transTask.setOrderNo(mesInApply.getOrderNo());
+                transTask.setTransType(mesInApply.getTransType());
+                transTask.setCurProcess(mesInApply.getProductLineId());
+                transTask.setCurStationId(mesInApply.getStationID());
+                transTask.setNextStationId(WMS_TRANS_START_STATION_2);
+                transTask.setItemno(WMS_ZPALLET_ID);  // 鍥哄畾涓虹┖鎵樼殑缂栫爜
+                transTask.setQty(1);    // 绌烘墭鍙洖1涓�
+                transTask.setProductLineId(mesInApply.getProductLineId());
+                transTask.setOperateType(1);
+                transTask.setAgvFactory(1);
+                JSONObject sendAgvTask = submitTask(transTask);
+                if (!"1".equals(sendAgvTask.getString("Success"))) {
+                    log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触,{}", JSONObject.toJSONString(transTask));
                     return 2;
                 }
+            } else {
+                log.error("鏃犱换鍔″彿锛歿}锛屾垨鏃犵墿鏂欑紪鐮�:{}", mesInApply.getTaskno(), mesInApply.getItemno());
+                return 2;
+            }
 
             return 1;
         } else {    // 姣涘澂銆佹垚鍝佸洖搴�
@@ -716,9 +715,9 @@
 
             String url = MES_URL + "issueComplete";
             String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback));
-            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+            if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                 MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                if("1".equals(mesReturn.getSuccess())) {
+                if ("1".equals(mesReturn.getSuccess())) {
                     success = 1;
                 }
             }
@@ -759,9 +758,9 @@
 
             String url = MES_URL + "loadComplete";
             String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
-            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+            if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                 MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                if("1".equals(mesReturn.getSuccess())) {
+                if ("1".equals(mesReturn.getSuccess())) {
                     success = 1;
                 }
             }
@@ -819,9 +818,9 @@
 
                     String url = MES_URL + "loadComplete";
                     String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
-                    if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                    if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                         MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                        if("1".equals(mesReturn.getSuccess())) {
+                        if ("1".equals(mesReturn.getSuccess())) {
                             success++;
                         }
                     }
@@ -885,9 +884,9 @@
 
                     String url = MES_URL + "issueComplete";
                     String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(mesOutFeedback));
-                    if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                    if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                         MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                        if("1".equals(mesReturn.getSuccess())) {
+                        if ("1".equals(mesReturn.getSuccess())) {
                             success++;
                         }
                     }
@@ -934,67 +933,144 @@
      * @param mesCallOutApply
      * @return
      */
-    public int callOutBoundOrder(MesCallOutApply mesCallOutApply){
-
-        // docType鏍规嵁搴撶被鍨嬬‘瀹�
-        long docType = 7;
-        long settle = 1;
-
-        // 鏍¢獙璁㈠崟鏄惁閲嶅
-        OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo());
-        if (order != null && !StringUtils.isEmpty(order.getOrderNo())) {
-            return -1;
+    public int callOutBoundOrder(MesCallOutApply mesCallOutApply) {
+        DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", mesCallOutApply.getTransType()));
+        if (docType == null) {
+            return 0;
         }
+        //鐢熸垚鍑哄簱鍗�
+        if (docType.getPakout() == 1) {
+            long settle = 1;
 
-        // 鐢熸垚璁㈠崟
-        Date now = new Date();
-        OrderPakout orderPakout = new OrderPakout();
-        orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
-        orderPakout.setOrderNo(mesCallOutApply.getOrderNo());
-        orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
-        orderPakout.setDocType(docType);
-        orderPakout.setSettle(settle);
-        orderPakout.setStatus(1);
-        orderPakout.setCreateBy(defaultUserId);
-        orderPakout.setCreateTime(now);
-        orderPakout.setUpdateBy(defaultUserId);
-        orderPakout.setUpdateTime(now);
-        orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
-        orderPakout.setPakinPakoutStatus(2);
-        if (!orderPakoutService.insert(orderPakout)) {
-            log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
-            throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
-        }
+            // 鏍¢獙璁㈠崟鏄惁閲嶅
+            OrderPakout order = orderPakoutService.selectByNo(mesCallOutApply.getOrderNo());
+            // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+            if (!Cools.isEmpty(order)) {
+                if (order.getSettle() > 1L) {
+                    throw new CoolException(mesCallOutApply.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+                }
+                orderPakoutService.remove(order.getId());
+            }
 
-        // 鐢熸垚鏄庣粏
-        if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
-            for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) {
-                Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
-                OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
-                orderDetlPakout.setOrderId(orderPakout.getId());
-                orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
-                orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
-                orderDetlPakout.setQty(0.0);
-                orderDetlPakout.setMatnr(mat.getMatnr());
-                orderDetlPakout.setMaktx(mat.getMaktx());
-                orderDetlPakout.setSpecs(mat.getSpecs());
-                orderDetlPakout.setModel(mat.getModel());
-                orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode());
-                orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid());   //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
-                orderDetlPakout.setCreateBy(defaultUserId);
-                orderDetlPakout.setCreateTime(now);
-                orderDetlPakout.setUpdateBy(defaultUserId);
-                orderDetlPakout.setUpdateTime(now);
-                orderDetlPakout.setStatus(1);
-                orderDetlPakout.setPakinPakoutStatus(2);
-                if (!orderDetlPakoutService.insert(orderDetlPakout)) {
-                    log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
-                    throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+            // 鐢熸垚璁㈠崟
+            Date now = new Date();
+            OrderPakout orderPakout = new OrderPakout();
+            orderPakout.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+            orderPakout.setOrderNo(mesCallOutApply.getOrderNo());
+            orderPakout.setOrderTime(com.core.common.DateUtils.convert(now));
+            orderPakout.setDocType(docType.getDocId());
+            orderPakout.setSettle(settle);
+            orderPakout.setStatus(1);
+            orderPakout.setCreateBy(defaultUserId);
+            orderPakout.setCreateTime(now);
+            orderPakout.setUpdateBy(defaultUserId);
+            orderPakout.setUpdateTime(now);
+            orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
+            orderPakout.setPakinPakoutStatus(2);
+            if (!orderPakoutService.insert(orderPakout)) {
+                log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
+                throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
+            }
+            Set<String> set = new HashSet<>();
+            // 鐢熸垚鏄庣粏
+            if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
+                for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()) {
+
+                    set.add(mesOutApplyItem.getTrayid());
+                    Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
+                    OrderDetlPakout orderDetlPakout = new OrderDetlPakout();
+                    orderDetlPakout.setOrderId(orderPakout.getId());
+                    orderDetlPakout.setOrderNo(orderPakout.getOrderNo());
+                    orderDetlPakout.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
+                    orderDetlPakout.setQty(0.0);
+                    orderDetlPakout.setMatnr(mat.getMatnr());
+                    orderDetlPakout.setMaktx(mat.getMaktx());
+                    orderDetlPakout.setSpecs(mat.getSpecs());
+                    orderDetlPakout.setModel(mat.getModel());
+                    orderDetlPakout.setThreeCode(mesOutApplyItem.getItemBarcode());
+                    orderDetlPakout.setStandby1(mesOutApplyItem.getTrayid());   //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+                    orderDetlPakout.setCreateBy(defaultUserId);
+                    orderDetlPakout.setCreateTime(now);
+                    orderDetlPakout.setUpdateBy(defaultUserId);
+                    orderDetlPakout.setUpdateTime(now);
+                    orderDetlPakout.setStatus(1);
+                    orderDetlPakout.setPakinPakoutStatus(2);
+                    if (!orderDetlPakoutService.insert(orderDetlPakout)) {
+                        log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+                        throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級鏄庣粏妗eけ璐�");
+                    }
                 }
             }
+
+            //鏈夊灏戠涓嶅悓鐨勯厤鐩樺彿   鍙湁閰嶇洏鍑哄簱鍗曢渶瑕佺煡閬�
+            if (mesCallOutApply.getTransType().equals("閰嶇洏鍑哄簱鍗�")){
+                orderPakout.setPayType(set.size());
+                String shipCode =mesCallOutApply.getItemdata().get(0).getTrayid().split("-")[2];
+                orderPakout.setShipCode(shipCode);//鍖哄煙  鏄惁鏄壒娈婃墭鐩�
+                orderPakoutService.updateById(orderPakout);
+            }
+
+            return 1;
+        } else {
+            // 鏍¢獙璁㈠崟鏄惁閲嶅
+            OrderPakin order = orderPakinService.selectByNo(mesCallOutApply.getOrderNo());
+            // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+            if (!Cools.isEmpty(order)) {
+                if (order.getSettle() > 1L) {
+                    throw new CoolException(mesCallOutApply.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+                }
+                orderPakinService.remove(order.getId());
+            }
+
+            // 鐢熸垚璁㈠崟
+            Date now = new Date();
+            OrderPakin orderPakin = new OrderPakin();
+            orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+            orderPakin.setOrderNo(mesCallOutApply.getOrderNo());
+            orderPakin.setOrderTime(com.core.common.DateUtils.convert(now));
+            orderPakin.setDocType(docType.getDocId());
+            orderPakin.setSettle(1L);
+            orderPakin.setStatus(1);
+            orderPakin.setCreateBy(defaultUserId);
+            orderPakin.setCreateTime(now);
+            orderPakin.setUpdateBy(defaultUserId);
+            orderPakin.setUpdateTime(now);
+            orderPakin.setMemo(JSONObject.toJSONString(mesCallOutApply));  //涓哄嚭搴撳畬鎴愬弽棣堜繚瀛�
+            orderPakin.setPakinPakoutStatus(1);
+            orderPakinService.insert(orderPakin);
+            if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
+                for (MesCallOutApply.MesOutApplyItem mesOutApplyItem : mesCallOutApply.getItemdata()){
+                    // 鐢熸垚鏄庣粏
+                    Mat mat = matService.selectByMatnr(mesOutApplyItem.getItemno());
+                    if(Cools.isEmpty(mat)){
+                        log.error("璇ョ墿鏂欑紪鍙风珛搴撴病鏈�="+mesOutApplyItem.getItemno());
+                        continue;
+                    }
+                    OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
+                    orderDetlPakin.setOrderId(orderPakin.getId());
+                    orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
+                    orderDetlPakin.setAnfme(Double.valueOf(mesOutApplyItem.getQty()));
+                    orderDetlPakin.setQty(0.0);
+                    orderDetlPakin.setMatnr(mat.getMatnr());
+                    orderDetlPakin.setMaktx(mat.getMaktx());
+                    orderDetlPakin.setSpecs(mat.getSpecs());
+                    orderDetlPakin.setModel(mat.getModel());
+                    orderDetlPakin.setThreeCode(mesOutApplyItem.getItemBarcode());
+                    orderDetlPakin.setStandby1(mesOutApplyItem.getTrayid());   //淇濆瓨閰嶇洏鍙凤紝闈炴墭鐩樺彿
+                    orderDetlPakin.setStandby2("0");  //淇濆瓨榻愬鎬ф鏌ユ爣璇嗭紝1 妫�鏌ワ紱0 涓嶆鏌ワ紱
+                    orderDetlPakin.setCreateBy(defaultUserId);
+                    orderDetlPakin.setCreateTime(now);
+                    orderDetlPakin.setUpdateBy(defaultUserId);
+                    orderDetlPakin.setUpdateTime(now);
+                    orderDetlPakin.setStatus(1);
+                    orderDetlPakin.setPakinPakoutStatus(1);
+                    orderDetlPakinService.insert(orderDetlPakin);
+                }
+
+            }
+            return 1;
         }
 
-        return 1;
     }
 
     // endregion
@@ -1046,18 +1122,18 @@
         rcsTaskSubmit.setTargetRoute(targetRouteList);
 
         // 杞彂缁欐捣搴锋垨鍗庢檽RCS
-//        int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
-        int success = 1;
+        int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
         if (success == 1) {
             int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
             Date now = new Date();
             Task task = new Task();
             task.setWrkNo(workNo);
-            task.setTaskType("AGV");
-            task.setWrkSts(301L);
-            task.setIoType(3);
+            task.setTaskType("ZX-AGV");
+            task.setWrkSts(302L);//302.AGV浠诲姟鎵ц涓�
+            task.setIoType(3);//3.绔欏埌绔�
             task.setIoPri(10.00);
             task.setWrkDate(now);
+            task.setBarcode(transTask.getBarcode());
             task.setSourceStaNo(transTask.getCurStationId());
             task.setStaNo(transTask.getNextStationId());
             task.setBarcode(transTask.getTuoPanId());
@@ -1067,25 +1143,27 @@
             task.setAppeTime(now);
             task.setTaskNo(transTask.getTaskno());
             task.setMemo(JSONObject.toJSONString(transTask));
+            task.setPltType(transTask.getAgvFactory());//鍗庢檽AGV
+            task.setPacked(transTask.getRackNumber());//鏂欐灦鍙�
 
             taskService.insert(task);
-            Mat mat = matService.selectByMatnr(transTask.getItemno());
-            TaskDetl taskDetl = new TaskDetl();
-            taskDetl.setWrkNo(task.getWrkNo());
-            taskDetl.setIoTime(task.getIoTime());
-            taskDetl.setMatnr(transTask.getItemno());
-            taskDetl.setAnfme(0.0);
-            taskDetl.setStandby1(String.valueOf(transTask.getQty()));
-            taskDetl.setMaktx(mat.getMaktx());
-            taskDetl.setSpecs(mat.getSpecs());
-            taskDetl.setOrderNo(transTask.getOrderNo());
-            taskDetl.setZpallet(transTask.getTuoPanId());
-            taskDetl.setMemo(JSONObject.toJSONString(transTask.getItemBarcode()));
-            taskDetl.setModiUser(defaultUserId);
-            taskDetl.setModiTime(now);
-            taskDetl.setAppeUser(defaultUserId);
-            taskDetl.setAppeTime(now);
-            taskDetlService.insert(taskDetl);
+//            Mat mat = matService.selectByMatnr(transTask.getItemno());
+//            TaskDetl taskDetl = new TaskDetl();
+//            taskDetl.setWrkNo(task.getWrkNo());
+//            taskDetl.setIoTime(task.getIoTime());
+//            taskDetl.setMatnr(transTask.getItemno());
+//            taskDetl.setAnfme(0.0);
+//            taskDetl.setStandby1(String.valueOf(transTask.getQty()));
+//            taskDetl.setMaktx(mat.getMaktx());
+//            taskDetl.setSpecs(mat.getSpecs());
+//            taskDetl.setOrderNo(transTask.getOrderNo());
+//            taskDetl.setZpallet(transTask.getTuoPanId());
+//            taskDetl.setMemo(JSONObject.toJSONString(transTask.getItemBarcode()));
+//            taskDetl.setModiUser(defaultUserId);
+//            taskDetl.setModiTime(now);
+//            taskDetl.setAppeUser(defaultUserId);
+//            taskDetl.setAppeTime(now);
+//            taskDetlService.insert(taskDetl);
             result.put("Success", "1");
             result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
         } else {
@@ -1125,9 +1203,9 @@
 
             String url = MES_URL + "api/task/reporter";
             String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(transTaskFeedback));
-            if (!StringUtils.isEmpty(response) && response.contains("Success")){
+            if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                 MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-                if("1".equals(mesReturn.getSuccess())) {
+                if ("1".equals(mesReturn.getSuccess())) {
                     return 1;
                 }
             }
@@ -1146,9 +1224,9 @@
 
         String url = MES_URL + "api/apply/inLine";
         String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
-        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
             JSONObject jsonObject = JSONObject.parseObject(response);
-            if("1".equals(jsonObject.getString("Success"))) {
+            if ("1".equals(jsonObject.getString("Success"))) {
                 return jsonObject.getJSONObject("Data").getString("status");
             }
         }
@@ -1163,12 +1241,12 @@
      * @return
      */
     public int applyInStation(TransParent apply) {
-        String path = ("LL").equals(apply.getProductLineId()) ? "AGVTransportPalletNotice" : "AprsAGVTransportPalletNotice";
+        String path = "AGVTransportPalletNotice";
         String url = MES_URL + path;
         String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
-        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
             MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-            if("1".equals(mesReturn.getSuccess())) {
+            if ("1".equals(mesReturn.getSuccess())) {
                 return 1;
             }
         }
@@ -1185,19 +1263,34 @@
     public MesReturn allowInStation(TransInOutStationAllow allow) {
 
         MesReturn mesReturn = new MesReturn();
-        mesReturn.setSuccess("1");
+        mesReturn.setSuccess("2");
 
         if ("Y".equals(allow.getStatus())) {
-            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-            rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
-            rcsTaskContinue.setTriggerType("TASK");
-            rcsTaskContinue.setTriggerCode(allow.getTaskno());
+            Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno()));
+            if (Cools.isEmpty(task)) {
+                mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + allow.getTaskno() + "鐨凙GV绉诲姩浠诲姟");
+            } else {
+                //鏌ョ湅鐢宠绔欑偣鐨勬槸娴峰悍杩樻槸鍗庢檽
+                //娴峰悍
+                if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) {
+                    RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                    rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
+                    rcsTaskContinue.setTriggerType("TASK");
+                    rcsTaskContinue.setTriggerCode(allow.getTaskno());
 //            rcsTaskContinue.setTriggerType("ROBOT");
 //            rcsTaskContinue.setTriggerCode(allow.getAgvCode());
 
-            int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode()));
-            mesReturn.setSuccess(success == 1 ? "1" : "2");
-            mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                    int success = rcsService.continueTask(rcsTaskContinue, 1);
+                    mesReturn.setSuccess(success == 1 ? "1" : "2");
+                    mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                } else {
+                    allow.setMethod("APPLY_IN_STATION");
+                    int success = rcsService.continueTask(allow, 2);
+                    mesReturn.setSuccess(success == 1 ? "1" : "2");
+                    mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                }
+
+            }
         }
 
         return mesReturn;
@@ -1219,9 +1312,9 @@
 
         String url = MES_URL + "AGVArrivalCompleted";
         String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(arrivalStation));
-        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
             MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-            if("1".equals(mesReturn.getSuccess())) {
+            if ("1".equals(mesReturn.getSuccess())) {
                 return 1;
             }
         }
@@ -1237,11 +1330,11 @@
      */
     public int applyOutStation(TransParent apply) {
 
-        String url = MES_URL + "api/apply/outStation";
+        String url = MES_URL + "AGVDepartureRequest";
         String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
-        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
             MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-            if("1".equals(mesReturn.getSuccess())) {
+            if ("1".equals(mesReturn.getSuccess())) {
                 return 1;
             }
         }
@@ -1258,17 +1351,34 @@
     public MesReturn allowOutStation(TransInOutStationAllow allow) {
 
         MesReturn mesReturn = new MesReturn();
-        mesReturn.setSuccess("1");
+        mesReturn.setSuccess("2");
 
         if ("Y".equals(allow.getStatus())) {
-            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-            rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
-            rcsTaskContinue.setTriggerType("TASK");
-            rcsTaskContinue.setTriggerCode(allow.getTaskno());
+            Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", allow.getTaskno()));
+            if (Cools.isEmpty(task)) {
+                mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + allow.getTaskno() + "鐨凙GV绉诲姩浠诲姟");
+            } else {
+                //鏌ョ湅鐢宠绔欑偣鐨勬槸娴峰悍杩樻槸鍗庢檽
+                //娴峰悍
+                if (Cools.isEmpty(task.getPltType()) || task.getPltType() == 1) {
+                    RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                    rcsTaskContinue.setRobotTaskCode(allow.getTaskno());
+                    rcsTaskContinue.setTriggerType("TASK");
+                    rcsTaskContinue.setTriggerCode(allow.getTaskno());
+//            rcsTaskContinue.setTriggerType("ROBOT");
+//            rcsTaskContinue.setTriggerCode(allow.getAgvCode());
 
-            int success = rcsService.continueTask(rcsTaskContinue, checkRcsFactory(allow.getAgvCode()));
-            mesReturn.setSuccess(success == 1 ? "1" : "2");
-            mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                    int success = rcsService.continueTask(rcsTaskContinue, 1);
+                    mesReturn.setSuccess(success == 1 ? "1" : "2");
+                    mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                } else {
+                    allow.setMethod("APPLY_OFF_STATION");
+                    int success = rcsService.continueTask(allow, 2);
+                    mesReturn.setSuccess(success == 1 ? "1" : "2");
+                    mesReturn.setMessage(success == 1 ? "" : "杞彂缁橰CS澶辫触");
+                }
+
+            }
         }
 
         return mesReturn;
@@ -1284,9 +1394,9 @@
 
         String url = MES_URL + "AGVDepartureCompleted";
         String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
-        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
             MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
-            if("1".equals(mesReturn.getSuccess())) {
+            if ("1".equals(mesReturn.getSuccess())) {
                 return 1;
             }
         }
@@ -1295,13 +1405,13 @@
     }
 
     @Override
-    public MesReturn queryInventory(String itemno,String orderNo) {
+    public MesReturn queryInventory(String itemno, String orderNo) {
         MesReturn mesReturn = new MesReturn();
         mesReturn.setSuccess("1");
-        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no",orderNo));
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", itemno).eq("order_no", orderNo));
 
         int count = 0;
-        for(LocDetl locDetl:locDetls) {
+        for (LocDetl locDetl : locDetls) {
             count += locDetl.getAnfme();
         }
         mesReturn.setMessage(String.valueOf(count));

--
Gitblit v1.9.1