From bcd4e611a77fcb65dfc7bc1aacf26eb68095293f Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 19 七月 2025 09:42:57 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  469 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 396 insertions(+), 73 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 0c9f582..2685114 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -110,12 +110,7 @@
     public Integer wrkNo = 10000;
     @Autowired
     private ConfigMapper configMapper;
-
-    /**
-     * 缁勬墭
-     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
-     */
-    public synchronized void generateStoreWrkFile(Integer mark) {
+    public synchronized void generateStoreWrkFile3(Integer mark) {
         String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -136,73 +131,6 @@
                     continue;
                 }
                 String barcode = barcodeThread.getBarcode();
-                if(staProtocolIn.getStamp() == 1) {
-                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
-                            .eq("barcode", barcode)
-                            .in("io_type", 107, 103, 57));
-                    if (!Cools.isEmpty(checkPick)) {
-                        continue;
-                    }
-                    try {
-                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
-                        SearchLocParam param = new SearchLocParam();
-                        locTypeDto.setLocType1((short) 1);
-                        param.setBarcode(barcode);
-                        param.setIoType(1);
-                        param.setSourceStaNo(inSta.getStaNo());
-                        param.setLocType1(locTypeDto.getLocType1());
-                        param.setWeight(staProtocol.getWeight());
-                        String response = new HttpHandler.Builder()
-                                .setTimeout(30, TimeUnit.SECONDS)
-                                .setUri(wmsUrl)
-                                .setPath("/rpc/pakin/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);
-                            barcodeThread.setBarcode("");
-                            staProtocol.setWorkNo(dto.getWorkNo());
-                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
-                            staProtocol.setStaNo(dto.getStaNo().shortValue());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
-
-                            ledThread.errorReset();
-                            log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
-
-                            if (!result) {
-                                News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
-
-                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-                            }
-                        } else {
-                            if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
-                                continue;
-                            }
-                            staProtocol.setWorkNo(wrkNo);
-                            wrkNo++;
-                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
-
-//                            if (ledThread != null) {
-                            String errorMsg = jsonObject.getString("msg");
-                            if (!Cools.isEmpty(errorMsg)) {
-                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
-                            }
-//                            }
-//                            News.error(methodName + ":璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-                        }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    }
-                }
 
                 if (staProtocol == null) {
                     continue;
@@ -398,6 +326,401 @@
 //        News.infoNoLog(""+mark+" - 0"+" - 缁勬墭  ===銆嬫墽琛屽畬鎴�");
 
     }
+    /**
+     * 缁勬墭
+     * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
+     */
+//    public synchronized void generateStoreWrkFile(Integer mark) {
+//        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+//        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+//        for (DevpSlave devp : slaveProperties.getDevp()) {
+//            // 閬嶅巻鍏ュ簱鍙�
+//            for (DevpSlave.Sta inSta : devp.getInSta()) {
+//                // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+//                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+//                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+//                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+//                StaProtocol staProtocolIn = devpThread.getStation().get(inSta.getStaNo() -1);
+//                if (staProtocolIn == null) {
+//                    continue;
+//                } else {
+//                    staProtocolIn = staProtocolIn.clone();
+//                }
+//                if (barcodeThread == null) {
+//                    continue;
+//                }
+//                String barcode = barcodeThread.getBarcode();
+//                if(staProtocolIn.getStamp() == 1 && barcode!=null && !barcode.isEmpty()) {
+//                    log.error("鐢熸垚浠诲姟涓�");
+//
+//                    WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+//                            .eq("barcode", barcode)
+//                            .in("io_type", 107, 103, 57));
+//                    if (!Cools.isEmpty(checkPick)) {
+//                        continue;
+//                    }
+//                    try {
+//                        LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+//                        SearchLocParam param = new SearchLocParam();
+//                        locTypeDto.setLocType1((short) 1);
+//                        param.setBarcode(barcode);
+//                        param.setIoType(1);
+//                        param.setSourceStaNo(inSta.getStaNo());
+//                        param.setLocType1(locTypeDto.getLocType1());
+//                        param.setWeight(staProtocol.getWeight());
+//                        String response = new HttpHandler.Builder()
+//                                .setTimeout(30, TimeUnit.SECONDS)
+//                                .setUri(wmsUrl)
+//                                .setPath("/rpc/pakin/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);
+//                            barcodeThread.setBarcode("");
+//                            staProtocolIn.setWorkNo(dto.getWorkNo());
+////                            //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+////                            staProtocol.setStaNo(dto.getStaNo().shortValue());
+//                            devpThread.setPakMk(staProtocolIn.getSiteId(), false);
+//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocolIn));
+//                            log.error("宸ヤ綔鍙蜂笅鍙�2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+//                            ledThread.errorReset();
+//                            log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+//                            if (!result) {
+//                                News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//
+//                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//                            }
+//                        }
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                    }
+//                }else{
+//                    if (staProtocol == null) {
+//                        continue;
+//                    } else {
+//                        staProtocol = staProtocol.clone();
+//                    }
+//
+//                    // 灏哄妫�娴嬪紓甯�
+//                    boolean back = false;
+//                    String errMsg = "";
+//                    if (staProtocol.isFrontErr()) {
+//                        errMsg = "鍓嶈秴闄�";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.isBackErr()) {
+//                        errMsg = "鍚庤秴闄�";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.isHighErr()) {
+//                        errMsg = "楂樿秴闄�";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.isLeftErr()) {
+//                        errMsg = "宸﹁秴闄�";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.isRightErr()) {
+//                        errMsg = "鍙宠秴闄�";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.getWeight() > 1000) {
+//                        errMsg = "瓒呴噸鎴栨湭璇诲彇";
+//                        back = true;
+//                    }
+//                    if (!back && staProtocol.isBarcodeErr()) {
+//                        errMsg = "鎵爜澶辫触";
+//                        back = true;
+//                    }
+//
+//                    // 閫�鍥�
+//                    if (back) {
+//                        log.info("errmsg: " + errMsg);
+////                        News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+//
+//                        if (!staProtocol.isLoading()) {
+//                            continue;
+//                        }
+//                        if (!staProtocol.isPakMk()) {
+//                            continue;
+//                        }
+//                        staProtocol.setWorkNo(wrkNo);
+//                        News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+//                        wrkNo++;
+//                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                        log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+//                    }
+//
+//                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+//                    if (staProtocol.isAutoing()
+//                            && staProtocol.isLoading()
+//                            && staProtocol.isInEnable()
+//                            && !staProtocol.isEmptyMk()
+//                            && staProtocol.isPakMk()) {
+//                        if (Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+//                            News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+//
+//                            staProtocol.setWorkNo(wrkNo);
+//                            News.info("{}barcode鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo);
+//                            wrkNo++;
+//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+//                            continue;
+//                        }
+//                        // 鍒ゆ柇閲嶅宸ヤ綔妗�
+//                        WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+//                        if (wrkMast != null) {
+//                            News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+//                            continue;
+//                        }
+//                        WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+//                                .eq("barcode", barcode)
+//                                .in("io_type", 107, 103, 57));
+//                        if (!Cools.isEmpty(checkPick)) {
+//                            continue;
+//                        }
+//                        try {
+//                            LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+//
+//                            SearchLocParam param = new SearchLocParam();
+//                            locTypeDto.setLocType1((short) 1);
+//                            param.setBarcode(barcode);
+//                            param.setIoType(1);
+//                            param.setSourceStaNo(inSta.getStaNo());
+//                            param.setLocType1(locTypeDto.getLocType1());
+//                            param.setWeight(staProtocol.getWeight());
+//                            String response = new HttpHandler.Builder()
+//                                    .setTimeout(30,TimeUnit.SECONDS)
+//                                    .setUri(wmsUrl)
+//                                    .setPath("/rpc/pakin/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);
+//                                barcodeThread.setBarcode("");
+//                                staProtocol.setWorkNo(dto.getWorkNo());
+//                                //staProtocol.setStaNo(RouteUtils.SouStaEnd(dto.getStaNo(),dto.getSourceStaNo()));
+//                                staProtocol.setStaNo(dto.getStaNo().shortValue());
+//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                                log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+//
+//                                ledThread.errorReset();
+//                                log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+//
+//                                if (!result) {
+//                                    News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+//
+//                                    throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+//                                }
+//                            } else {
+//                                if (jsonObject.getString("msg").equals("宸ヤ綔妗e凡瀛樺湪")) {
+//                                    continue;
+//                                }
+//                                staProtocol.setWorkNo(wrkNo);
+//                                wrkNo++;
+//                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                                log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+//
+//                                String errorMsg = jsonObject.getString("msg");
+//                                if (!Cools.isEmpty(errorMsg)) {
+//                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+//                                }
+//                            }
+//
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//                        }
+//
+//                    }
+//                }
+//            }
+//        }
+//
+//    }
+
+    public synchronized void generateStoreWrkFile(Integer mark) {
+        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+        final Set<String> INVALID_BARCODES = new HashSet<>(Arrays.asList("NG", "NoRead", "00000000"));
+
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                StaProtocol staProtocolIn = devpThread.getStation().get(inSta.getStaNo() - 1);
+
+                if (staProtocolIn == null || barcodeThread == null) continue;
+                staProtocolIn = staProtocolIn.clone();
+                String barcode = barcodeThread.getBarcode();
+
+                // 濡傛灉鍓嶅伐浣嶆湁璐� + 鎵爜鍣ㄦ湁鏉$爜
+                if (staProtocolIn.getStamp() == 1 && barcode != null && !barcode.isEmpty()) {
+                    if (wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                            .eq("barcode", barcode)
+                            .in("io_type", 107, 103, 57)) != null) {
+                        continue;
+                    }
+
+                    try {
+                        SearchLocParam param = new SearchLocParam();
+                        param.setBarcode(barcode);
+                        param.setIoType(1);
+                        param.setSourceStaNo(inSta.getStaNo());
+                        param.setLocType1((short) 1);
+                        param.setWeight(staProtocolIn.getWeight());
+
+                        String response = new HttpHandler.Builder()
+                                .setTimeout(30, TimeUnit.SECONDS)
+                                .setUri(wmsUrl)
+                                .setPath("/rpc/pakin/loc/v1")
+                                .setJson(JSON.toJSONString(param))
+                                .build()
+                                .doPost();
+
+                        JSONObject json = JSON.parseObject(response);
+                        if (json.getInteger("code").equals(200)) {
+                            StartupDto dto = json.getObject("data", StartupDto.class);
+                            barcodeThread.setBarcode("");
+                            staProtocolIn.setWorkNo(dto.getWorkNo());
+                            devpThread.setPakMk(staProtocolIn.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocolIn));
+                            ledThread.errorReset();
+                            log.error("宸ヤ綔鍙蜂笅鍙�2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+
+                            if (!result) {
+                                News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                            }
+                        }
+                    } catch (Exception e) {
+                        log.error("缁勬墭浠诲姟寮傚父锛�", e);
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    }
+
+                    continue;
+                }
+
+                // 灏哄/閲嶉噺/鎵爜寮傚父妫�娴�
+                if (staProtocol == null) continue;
+                staProtocol = staProtocol.clone();
+                boolean back = false;
+                String errMsg = "";
+
+                if (staProtocol.isFrontErr()) { errMsg = "鍓嶈秴闄�"; back = true; }
+                else if (staProtocol.isBackErr()) { errMsg = "鍚庤秴闄�"; back = true; }
+                else if (staProtocol.isHighErr()) { errMsg = "楂樿秴闄�"; back = true; }
+                else if (staProtocol.isLeftErr()) { errMsg = "宸﹁秴闄�"; back = true; }
+                else if (staProtocol.isRightErr()) { errMsg = "鍙宠秴闄�"; back = true; }
+                else if (staProtocol.getWeight() > 1000) { errMsg = "瓒呴噸鎴栨湭璇诲彇"; back = true; }
+                else if (staProtocol.isBarcodeErr()) { errMsg = "鎵爜澶辫触"; back = true; }
+
+                // 灏哄寮傚父鍥為��
+                if (back) {
+                    log.info("errmsg: " + errMsg);
+                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
+
+                    if (!staProtocol.isLoading() || !staProtocol.isPakMk()) continue;
+                    staProtocol.setWorkNo(wrkNo++);
+                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    log.error("杈撻�佺嚎涓嬪彂1锛�" + wrkNo + "," + inSta.getBackSta());
+                    continue;
+                }
+
+                // 鍏ュ簱鏉′欢婊¤冻锛屽紑濮嬭姹傚叆搴撳湴鍧�
+                if (staProtocol.isAutoing() && staProtocol.isLoading()
+                        && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
+
+                    if (Cools.isEmpty(barcode) || INVALID_BARCODES.contains(barcode)) {
+                        News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                        staProtocol.setWorkNo(wrkNo++);
+                        staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        log.error("杈撻�佺嚎涓嬪彂1锛歿} , {}", wrkNo, inSta.getBackSta());
+                        continue;
+                    }
+
+                    if (wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode) != null ||
+                            wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+                                    .eq("barcode", barcode)
+                                    .in("io_type", 107, 103, 57)) != null) {
+                        News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛�2.璁惧涓婅蛋锛夌殑鏁版嵁锛岃鏌ョ湅WCS杈撻�佺嚎鐣岄潰");
+                        continue;
+                    }
+
+                    try {
+                        SearchLocParam param = new SearchLocParam();
+                        param.setBarcode(barcode);
+                        param.setIoType(1);
+                        param.setSourceStaNo(inSta.getStaNo());
+                        param.setLocType1((short) 1);
+                        param.setWeight(staProtocol.getWeight());
+
+                        String response = new HttpHandler.Builder()
+                                .setTimeout(30, TimeUnit.SECONDS)
+                                .setUri(wmsUrl)
+                                .setPath("/rpc/pakin/loc/v1")
+                                .setJson(JSON.toJSONString(param))
+                                .build()
+                                .doPost();
+
+                        JSONObject json = JSON.parseObject(response);
+                        if (json.getInteger("code").equals(200)) {
+                            StartupDto dto = json.getObject("data", StartupDto.class);
+                            barcodeThread.setBarcode("");
+                            staProtocol.setWorkNo(dto.getWorkNo());
+                            staProtocol.setStaNo(dto.getStaNo().shortValue());
+                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            ledThread.errorReset();
+                            log.error("杈撻�佺嚎涓嬪彂2锛�" + dto.getWorkNo() + "," + dto.getStaNo());
+
+                            if (!result) {
+                                News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                            }
+                        } else {
+                            String msg = json.getString("msg");
+                            if (!"宸ヤ綔妗e凡瀛樺湪".equals(msg)) {
+                                staProtocol.setWorkNo(wrkNo++);
+                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
+                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                                log.error("杈撻�佺嚎涓嬪彂2锛�" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo());
+                                if (!Cools.isEmpty(msg)) {
+                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, msg));
+                                }
+                            }
+                        }
+                    } catch (Exception e) {
+                        log.error("缁勬墭浠诲姟寮傚父锛�", e);
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    }
+                }
+            }
+        }
+    }
+
 
     /**
      * wms鍏ュ簱

--
Gitblit v1.9.1