From 91eca979b480dff62809368a5c6563c9e0fcc851 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期日, 08 六月 2025 08:29:49 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  671 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 386 insertions(+), 285 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 288ec0b..7f27a55 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -22,6 +22,7 @@
 import com.zy.asrs.utils.Utils;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -103,15 +104,21 @@
     private String TaskExecCallback;
     @Value("${wms.taskStatusFeedbackPath}")
     private String taskStatusFeedbackPath;
+    @Value("${wms.returnWarehouse}")
+    private String returnWarehouse;
 
     @Value("${wcs.urlWcs}")
     private String wcsUrl;
     @Value("${wcs.inboundTaskApplyPathWcs}")
     private String wcsInboundTaskApplyPath;
+    @Value("${wcs.outboundTaskRequest}")
+    private String outboundTaskRequest;
     @Autowired
     private CrnController crnController;
     @Autowired
     private SiteController siteController;
+    @Autowired
+    private RedisUtil redisUtil;
 
 
     public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
@@ -134,7 +141,7 @@
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
                             && staProtocol.isInEnable()
-                            && !staProtocol.isEmptyMk() && workNo >= 9790
+                            && !staProtocol.isEmptyMk() && workNo >= 9998
                             && staProtocol.isPakMk()) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -145,17 +152,17 @@
                         if (BoxNo.equals("00000000")) {
                             storageEscalationParam.setWCSStatus(1);
                             storageEscalationParam.setWCSErrorMessage("娌℃湁鎵埌鐮�");
-                            BasDevp basDevp= basDevpService.selectOne(new EntityWrapper<BasDevp>()
-                                    .eq("dev_no",staProtocol.getSiteId()));
-                            if(Cools.isEmpty(basDevp)){
-                                log.error("鎵爜澶辫触骞朵笖娌℃湁鎵惧埌璇ョ珯鐐�---"+staProtocol.getSiteId());
-                            }else{
+                            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>()
+                                    .eq("dev_no", staProtocol.getSiteId()));
+                            if (Cools.isEmpty(basDevp)) {
+                                log.error("鎵爜澶辫触骞朵笖娌℃湁鎵惧埌璇ョ珯鐐�---" + staProtocol.getSiteId());
+                            } else {
                                 basDevp.setStaErr(1);//娌℃湁鎵埌鐮�
                                 basDevp.setStaErrMsg("娌℃湁鎵埌鐮侊紒");
                                 basDevpService.updateById(basDevp);
                             }
                             continue;
-                        }else{
+                        } else {
                             TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
                             if (!Cools.isEmpty(taskWrk1)) {
                                 log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
@@ -185,24 +192,26 @@
                                     .doPost();
                             JSONObject jsonObject = JSON.parseObject(response);
 
-                            if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
-                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+                            if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("returnStatus")) && jsonObject.get("returnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("results").toString())) {
+                                Result result = JSON.parseObject(jsonObject.get("results").toString(), Result.class);
                                 // 鍒涙柊涓�涓叆搴撳伐浣滄。
-                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()+"");
+                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo() + "");
                                 if (Cools.isEmpty(taskWrk)) {
-                                    taskWrk = createTask1(result, BoxNo,staProtocol.getSiteId());
+                                    taskWrk = createTask1(result, BoxNo, staProtocol.getSiteId());
                                     if (Cools.isEmpty(taskWrk)) {
                                         log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
                                     } else {
                                         taskWrkService.insert(taskWrk);
                                         StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                                 .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                                        staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
-                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                         HashMap<String, Object> hashMap = new HashMap<>();
                                         hashMap.put("TaskNo", taskWrk.getTaskNo());
                                         Boolean bool = false;
+
+                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                        staProtocol.setStaNo((short) 0);
+                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
                                         try {
                                             //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
                                             response = new HttpHandler.Builder()
@@ -212,9 +221,139 @@
                                                     .build()
                                                     .doPost();
                                             JSONObject jsonObject1 = JSON.parseObject(response);
-
                                             if (jsonObject1.get("ReturnStatus").equals(0)) {
                                                 bool = true;
+
+                                            }
+
+                                        } catch (Exception e) {
+
+                                        } finally {
+                                            apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+                                                    , wmsUrl + TaskExecCallback
+                                                    , null
+                                                    , "127.0.0.1"
+                                                    , JSON.toJSONString(hashMap)
+                                                    , response
+                                                    , bool
+                                            );
+                                        }
+                                    }
+                                }
+                            }
+                        } catch (Exception e) {
+                            log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
+                            log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
+                            try {
+                                BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
+                                if (Cools.isEmpty(basDevp)) {
+                                    log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo());
+                                } else if (basDevp.getStaErr() != 0) {
+                                    basDevp.setStaErr(2);
+                                    basDevpService.updateById(basDevp);
+                                }
+                            } catch (Exception e1) {
+                                // 閫�鍥�
+                                log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1);
+                            }
+                        } finally {
+                            apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+                                    , wmsUrl + inboundTaskApplyPath
+                                    , null
+                                    , "127.0.0.1"
+                                    , JSON.toJSONString(storageEscalationParam)
+                                    , response
+                                    , success
+                            );
+                        }
+                        log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
+                        log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("generateStoreWrkFile e", e);
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+    }
+
+    public synchronized void EmptyPlates() throws IOException, InterruptedException {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                // 閬嶅巻鍏ュ簱鍙�
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    Short workNo = staProtocol.getWorkNo();
+                    Short stano = staProtocol.getStaNo();
+                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                    if (staProtocol.isAutoing() && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && staProtocol.isEmptyMk() && workNo ==9999
+                            && staProtocol.isPakMk()) {
+                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+                        if (barcodeThread == null) {
+                            continue;
+                        }
+                        String BoxNo = barcodeThread.getBarcode();
+
+                        log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
+                        storageEscalationParam.setBoxNo(BoxNo);
+                        storageEscalationParam.setWcsIoType(2);//绌烘澘
+                        storageEscalationParam.setWcsSourceStaNo(staProtocol.getSiteId());
+                        String response = "";
+                        Boolean success = false;
+                        try {
+                            response = new HttpHandler.Builder()
+                                    .setUri(wmsUrl)
+                                    .setPath(inboundTaskApplyPath)
+                                    .setJson(JSON.toJSONString(storageEscalationParam))
+                                    .build()
+                                    .doPost();
+                            JSONObject jsonObject = JSON.parseObject(response);
+
+                            if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("returnStatus")) && jsonObject.get("returnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("results").toString())) {
+                                Result result = JSON.parseObject(jsonObject.get("results").toString(), Result.class);
+                                // 鍒涙柊涓�涓叆搴撳伐浣滄。
+                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo() + "");
+                                if (Cools.isEmpty(taskWrk)) {
+                                    taskWrk = createTask1(result, BoxNo, staProtocol.getSiteId());
+                                    if (Cools.isEmpty(taskWrk)) {
+                                        log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
+                                    } else {
+                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                                        taskWrkService.insert(taskWrk);
+                                        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                        HashMap<String, Object> hashMap = new HashMap<>();
+                                        hashMap.put("TaskNo", taskWrk.getTaskNo());
+                                        Boolean bool = false;
+
+                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                        staProtocol.setStaNo((short) 0);
+                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+                                        try {
+                                            //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                            response = new HttpHandler.Builder()
+                                                    .setUri(wmsUrl)
+                                                    .setPath(taskStatusFeedbackPath)
+                                                    .setJson(JSON.toJSONString(hashMap))
+                                                    .build()
+                                                    .doPost();
+                                            JSONObject jsonObject1 = JSON.parseObject(response);
+                                            if (jsonObject1.get("ReturnStatus").equals(0)) {
+                                                bool = true;
+
                                             }
 
                                         } catch (Exception e) {
@@ -272,55 +411,56 @@
      * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
      */
     public synchronized void crnStnToOutStn() {
-        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
-            // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
-            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
-                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
-                for (StaDesc staDesc : staDescs) {
-                    try {
-                        // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-                        StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-                        if (staProtocol == null) {
-                            continue;
-                        } else {
-                            staProtocol = staProtocol.clone();
-                        }
-                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
-                            // 鏌ヨ宸ヤ綔妗�
-                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
-                            if (taskWrk == null) {
-                                continue;
-                            }
-                            log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
-//                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                            staProtocol.setStaNo(staDesc.getStnNo().shortValue());
-                            boolean offer = false;
-                            try {
-                                offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
-                            } catch (Exception e) {
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
-                            }
-//                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
-                            if (offer) {
-                                log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
-                                taskWrk.setStatus(5);
-                                taskWrk.setWrkSts(16);
-                                taskWrkService.updateById(taskWrk);
-
-                            } else {
-                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
-//                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
-                            }
-                        }
-                    } catch (Exception e) {
-                        log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍑哄簱鍙�
+            for (DevpSlave.Sta outSta : devp.getOutSta()) {
+                try {
+                    // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
                     }
-                }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
+                        // 鏌ヨ宸ヤ綔妗�
+                        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>()
+                                .eq("target_point", staProtocol.getSiteId())
+                                .eq("wrk_sts", 15));
+                        if (taskWrk == null) {
+                            continue;
+                        }
+                        log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+//                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
+                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                        staProtocol.setStaNo((short) 0);
+                        boolean offer = false;
+                        try {
+                            offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+                        } catch (Exception e) {
+                            log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+                            log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
+                        }
+//                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
+                        if (offer) {
+                            log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
+//                            taskWrk.setStatus(5);
+                            taskWrk.setWrkSts(16);
+                            taskWrkService.updateById(taskWrk);
 
+                        } else {
+                            log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+//                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
+                        }
+                    }
+                } catch (Exception e) {
+                    log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e);
+                }
             }
+
+
         }
     }
 
@@ -328,89 +468,82 @@
      * 鍏ュ嚭搴�  ===>>  璋冪敤RCS杩涜鍏ュ嚭搴�
      */
     public synchronized void crnIoExecute() throws IOException {
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            this.crnStnToLoc(crn); //  鍏ュ簱
-            this.locToCrnStn(crn); //  鍑哄簱
-            // 搴撲綅绉昏浆
+        this.crnStnToLoc(); //  鍏ュ簱
+        this.locToCrnStn(); //  鍑哄簱
+        // 搴撲綅绉昏浆
 //            this.locToLoc(crn, crnProtocol);
-        }
     }
 
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public synchronized void crnStnToLoc(CrnSlave slave) throws IOException {
-        for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
-            List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
-            for (StaDesc staDesc : staDescs) {
-                boolean flag = false;
-                // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
-                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-                StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+    public synchronized void crnStnToLoc() throws IOException {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                 if (staProtocol == null) {
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
                 }
                 // 鏌ヨ绔欑偣璇︾粏淇℃伅
-                BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+                BasDevp staDetl = basDevpService.selectById(staProtocol.getSiteId());
                 if (staDetl == null) {
-                    log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                    log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", staProtocol.getSiteId());
                     continue;
                 }
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() < 9990
                         && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
-                    flag = true;
-                }
-                if (!flag) {
-                    continue;
-                }
-
-                // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
-                TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
-                if (null == taskWrk) {
-                    continue;
-                }
-
-                String mbz = taskWrk.getTargetPoint().substring(5);
-
-                HashMap<String, Object> hashMap = new HashMap<>();
-                hashMap.put("taskNo", taskWrk.getTaskNo());//wms浠诲姟鍙�
-                hashMap.put("sourceStaNo", staDetl.getDevNo());//婧愮珯鐐�
-                hashMap.put("staNo", Integer.parseInt(mbz) + "");//鐩爣绔�
-                hashMap.put("locNo", taskWrk.getTargetPoint());//鐩爣搴撲綅
-                String response = "";
-                Boolean bool = false;
-                try {
-                    //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
-                    response = new HttpHandler.Builder()
-                            .setUri(wcsUrl)
-                            .setPath(wcsInboundTaskApplyPath)
-                            .setJson(JSON.toJSONString(hashMap))
-                            .build()
-                            .doPost();
-                    JSONObject jsonObject = JSON.parseObject(response);
-
-                    if (jsonObject.get("code").equals(200)) {
-                        bool = true;
-//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
-                        taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿
-                        taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鎴愬姛涓嬪彂鍏ュ簱浠诲姟缁橰CS
-                        taskWrk.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿
-                        taskWrk.setModiTime(new Date());
-                        taskWrk.setModiUser(9988L);
+                    // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+                    TaskWrk taskWrk = taskWrkMapper.selectPakIn(null, staProtocol.getWorkNo().intValue(), staProtocol.getSiteId().toString());
+                    if (null == taskWrk) {
+                        continue;
                     }
-                } catch (Exception e) {
-                } finally {
-                    apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟缁橰CS"
-                            , wcsUrl + wcsInboundTaskApplyPath
-                            , null
-                            , "127.0.0.1"
-                            , JSON.toJSONString(hashMap)
-                            , response
-                            , bool
-                    );
+
+                    HashMap<String, Object> hashMap = new HashMap<>();
+                    hashMap.put("taskNo", taskWrk.getTaskNo());//wms浠诲姟鍙�
+                    hashMap.put("sourceStaNo", staDetl.getDevNo());//婧愮珯鐐�
+                    hashMap.put("staNo", taskWrk.getTargetPoint());//鐩爣绔�
+                    hashMap.put("locNo", taskWrk.getOriginTargetPoint());//鐩爣搴撲綅
+                    String response = "";
+                    Boolean bool = false;
+                    try {
+                        //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                        response = new HttpHandler.Builder()
+                                .setUri(wcsUrl)
+                                .setPath(wcsInboundTaskApplyPath)
+                                .setJson(JSON.toJSONString(hashMap))
+                                .build()
+                                .doPost();
+                        JSONObject jsonObject = JSON.parseObject(response);
+
+                        if (jsonObject.getInteger("code").equals(200)) {
+                            bool = true;
+//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
+                            taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿
+                            taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鎴愬姛涓嬪彂鍏ュ簱浠诲姟缁橰CS
+                            taskWrk.setModiTime(new Date());
+                            taskWrk.setModiUser(9988L);
+                        }
+                    } catch (Exception e) {
+                    } finally {
+                        apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟缁橰CS"
+                                , wcsUrl + wcsInboundTaskApplyPath
+                                , null
+                                , "127.0.0.1"
+                                , JSON.toJSONString(hashMap)
+                                , response
+                                , bool
+                        );
+                    }
                 }
+
+
             }
         }
     }
@@ -419,16 +552,24 @@
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public synchronized void locToCrnStn(CrnSlave slave) {
-        List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
-        if (taskWrksInitial.size() == 0) {
-            return;
-        }
-        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
-            List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
-            for (StaDesc staDesc : staDescs) {
-                // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
-                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(slave.getId(), staDesc.getStnNo().toString());
+    public synchronized void locToCrnStn() {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta outSta : devp.getOutSta()) {
+                StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut(1, staProtocol.getSiteId().toString());
+                if (taskWrks.size() == 0) {
+                    continue;
+                }
                 for (TaskWrk taskWrk : taskWrks) {
                     if (taskWrk == null) {
                         continue;
@@ -444,19 +585,10 @@
                     //棰勭暀
 
 
-                    // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-                    StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-                    if (staProtocol == null) {
-                        break;
-                    } else {
-                        staProtocol = staProtocol.clone();
-                    }
-
                     // 鏌ヨ绔欑偣璇︾粏淇℃伅
-                    BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+                    BasDevp staDetl = basDevpService.selectById(staProtocol.getSiteId());
                     if (staDetl == null) {
-                        log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+                        log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", staProtocol.getSiteId());
                         break;
                     }
 
@@ -464,44 +596,35 @@
                     if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
                             && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-                        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                        if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
-                            break;
-                        }
-
-                        String mbz = taskWrk.getTargetPoint().substring(5);
-
                         HashMap<String, Object> hashMap = new HashMap<>();
                         hashMap.put("taskNo", taskWrk.getTaskNo());//wms浠诲姟鍙�
-                        hashMap.put("sourceStaNo", staDetl.getDevNo());//婧愮珯鐐�
-                        hashMap.put("staNo", Integer.parseInt(mbz) + "");//鐩爣绔�
-                        hashMap.put("locNo", taskWrk.getTargetPoint());//鐩爣搴撲綅
+                        hashMap.put("sourceLocNo", taskWrk.getOriginStartPoint());//婧愬簱浣�
+                        hashMap.put("staNo", taskWrk.getTargetPoint());//鐩爣绔�
                         String response = "";
                         Boolean bool = false;
                         try {
                             //寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
                             response = new HttpHandler.Builder()
                                     .setUri(wcsUrl)
-                                    .setPath(wcsInboundTaskApplyPath)
+                                    .setPath(outboundTaskRequest)
                                     .setJson(JSON.toJSONString(hashMap))
                                     .build()
                                     .doPost();
                             JSONObject jsonObject = JSON.parseObject(response);
 
-                            if (jsonObject.get("code").equals(200)) {
+                            if (jsonObject.getInteger("code").equals(200)) {
                                 bool = true;
 //                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//娲惧彂鐘舵��
                                 taskWrk.setAssignTime(new Date());//娲惧彂鏃堕棿
-                                taskWrk.setWrkSts(3);//宸ヤ綔鐘舵�� 3.鎴愬姛涓嬪彂鍏ュ簱浠诲姟缁橰CS
-                                taskWrk.setCrnNo(staDesc.getCrnNo());//鍫嗗灈鏈哄彿
+                                taskWrk.setWrkSts(12);//宸ヤ綔鐘舵�� 12.鎴愬姛涓嬪彂鍑哄簱浠诲姟
                                 taskWrk.setModiTime(new Date());
                                 taskWrk.setModiUser(9988L);
+                                taskWrkService.updateById(taskWrk);
                             }
                         } catch (Exception e) {
                         } finally {
                             apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟缁橰CS"
-                                    , wcsUrl + wcsInboundTaskApplyPath
+                                    , wcsUrl + outboundTaskRequest
                                     , null
                                     , "127.0.0.1"
                                     , JSON.toJSONString(hashMap)
@@ -509,47 +632,6 @@
                                     , bool
                             );
                         }
-
-                        try {
-                            // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                            Date now = new Date();
-                            taskWrk.setWrkSts(12);
-                            taskWrk.setModiTime(now);
-                            if (taskWrkMapper.updateById(taskWrk) == 0) {
-                                log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                            }
-                        } catch (Exception e) {
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                            log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
-                        }
-//                            try {
-//                                HashMap<String, Object> headParam = new HashMap<>();
-//                                headParam.put("taskNo", taskWrk.getTaskNo());
-//                                headParam.put("status", taskWrk.getStatus());
-//                                headParam.put("ioType", taskWrk.getIoType());
-//                                headParam.put("barcode", taskWrk.getBarcode());
-//                                String response;
-//                                response = new HttpHandler.Builder()
-//                                        // .setHeaders(headParam)
-//                                        .setUri(wmsUrl)
-//                                        .setPath(taskStatusFeedbackPath)
-//                                        .setJson(JSON.toJSONString(headParam))
-//                                        .build()
-//                                        .doPost();
-//                                JSONObject jsonObject = JSON.parseObject(response);
-//                                apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms"
-//                                        , wmsUrl + taskStatusFeedbackPath
-//                                        , null
-//                                        , "127.0.0.1"
-//                                        , JSON.toJSONString(headParam)
-//                                        , response
-//                                        , true
-//                                );
-//                            } catch (Exception e) {
-//                                log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
-////                                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
-//                            }
-
                     }
                 }
             }
@@ -557,99 +639,117 @@
     }
 
     /**
-     * 搴撲綅绉昏浆
+     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
      */
-    public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
-        for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
-            // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
-            List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
-                    .eq("crn_no", slave.getId())
-                    .eq("wrk_sts", 11)
-                    .eq("io_type", 3)
-                    .orderBy("io_pri", false));
-            for (TaskWrk taskWrk : taskWrks) {
-
-                // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
-//                if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
-//                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
-//                    TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
-//                    if (!Cools.isEmpty(hallowLocNoTask)){
-//                        continue;
-//                    }
-//                }
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+    public synchronized void stnToCrnStnPick(Integer mark) {
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鎷f枡鍏ュ簱鍙�
+            for (DevpSlave.Sta pickSta : devp.getPickSta()) {
+                StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+                // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+                if (staProtocol == null) {
                     continue;
-                }
-
-                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
-                    continue;
-                }
-
-                if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) {
-                    continue;
-                }
-                // 宸ヤ綔妗g姸鎬佸垽鏂�
-                if (taskWrk.getIoType() != 3 || taskWrk.getTargetPoint() == null) {
-                    log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/鐩爣搴撲綅鍙�, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getTargetPoint(), taskWrk.getIoType());
-                    continue;
-                }
-
-                // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
-
-
-                // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
-                CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-                crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-                crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-                crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
-                crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
-                crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
-                crnCommand.setCommand((short) 1);
-                if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
-                    log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                 } else {
-                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
-                    Date now = new Date();
-                    taskWrk.setWrkSts(12);
-                    taskWrk.setStatus(2);
-                    taskWrk.setModiTime(now);
-                    if (taskWrkMapper.updateById(taskWrk) == 0) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                    }
+                    staProtocol = staProtocol.clone();
+                }
+
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo() >= 3001 && staProtocol.getWorkNo() <= 6000) {
+
+                    storageEscalationParam.setTaskNo(Integer.valueOf(staProtocol.getWorkNo()));
+                    String response = "";
+                    Boolean success = false;
                     try {
-                        HashMap<String, Object> headParam = new HashMap<>();
-                        headParam.put("TaskNo", taskWrk.getTaskNo());
-                        String response;
+                        //寮�濮嬩笂鎶�,鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱锛學CS鍥炶皟WMS
                         response = new HttpHandler.Builder()
-                                // .setHeaders(headParam)
                                 .setUri(wmsUrl)
-                                .setPath(taskStatusFeedbackPath)
-                                .setJson(JSON.toJSONString(headParam))
+                                .setPath(returnWarehouse)
+                                .setJson(JSON.toJSONString(storageEscalationParam))
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
-                        apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
-                                , wmsUrl + taskStatusFeedbackPath
+                        if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("returnStatus")) && jsonObject.get("returnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("results").toString())) {
+                            Result result = JSON.parseObject(jsonObject.get("results").toString(), Result.class);
+                            // 鍒涙柊涓�涓叆搴撳伐浣滄。
+                            TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo() + "");
+                            if (Cools.isEmpty(taskWrk)) {
+                                taskWrk = createTask1(result, result.getBarcode(), staProtocol.getSiteId());
+                                if (Cools.isEmpty(taskWrk)) {
+                                    log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
+                                } else {
+                                    taskWrkService.insert(taskWrk);
+                                    StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                            .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                    HashMap<String, Object> hashMap = new HashMap<>();
+                                    hashMap.put("TaskNo", taskWrk.getTaskNo());
+                                    Boolean bool = false;
+
+                                    staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                    staProtocol.setStaNo((short) 0);
+                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+                                    try {
+                                        //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                        response = new HttpHandler.Builder()
+                                                .setUri(wmsUrl)
+                                                .setPath(taskStatusFeedbackPath)
+                                                .setJson(JSON.toJSONString(hashMap))
+                                                .build()
+                                                .doPost();
+                                        JSONObject jsonObject1 = JSON.parseObject(response);
+                                        if (jsonObject1.get("ReturnStatus").equals(0)) {
+                                            bool = true;
+
+                                        }
+
+                                    } catch (Exception e) {
+
+                                    } finally {
+                                        apiLogService.save("wcs鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱涓婃姤wms"
+                                                , wmsUrl + TaskExecCallback
+                                                , null
+                                                , "127.0.0.1"
+                                                , JSON.toJSONString(hashMap)
+                                                , response
+                                                , bool
+                                        );
+                                    }
+                                }
+                            }
+                        }
+                    } catch (Exception e) {
+                    } finally {
+                        apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟缁橰CS"
+                                , wcsUrl + outboundTaskRequest
                                 , null
                                 , "127.0.0.1"
-                                , JSON.toJSONString(headParam)
+                                , JSON.toJSONString(storageEscalationParam)
                                 , response
-                                , true
+                                , success
                         );
-                    } catch (Exception e) {
-                        log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
-//                        throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
                     }
 
                 }
-                return;
+
+            }
+        }
+    }
+
+    public void scanForkLift() {
+        for (int i = 1; i <= 2; i++) {
+            Object object = redisUtil.get("fork_lift_put_complete_" + i);
+            if(object != null) {
+                String taskNo = object.toString();
+                TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);//wms浠诲姟鍙�
+                if (taskWrk == null) {
+                    log.info("娌℃湁鎵惧埌璇ヤ换鍔�");
+                }else{
+                    log.info("鎻愬墠瀹屾垚鍑哄簱浠诲姟={}", taskWrk);
+                    taskWrkService.taskComplete(taskWrk);
+                    redisUtil.del("fork_lift_put_complete_" + i);
+                }
             }
         }
 
@@ -1089,19 +1189,20 @@
         return response;
     }
 
-    private TaskWrk createTask1(Result result, String barcode,Integer devNo) {
+    private TaskWrk createTask1(Result result, String barcode, Integer devNo) {
         Date now = new Date();
         TaskWrk taskWrk = new TaskWrk();
 //        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
-        taskWrk.setTaskNo(result.getTaskNo()+"");//浠诲姟鍙�
+        taskWrk.setTaskNo(result.getTaskNo() + "");//浠诲姟鍙�
         taskWrk.setWrkNo(result.getTaskNo());
         taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂
         taskWrk.setCreateTime(now);
         taskWrk.setIoType(1);//浠诲姟绫诲瀷
         taskWrk.setIoPri(13);//浼樺厛绾�
+        taskWrk.setWrkSts(2);//2.娲惧彂鍏ュ簱浠诲姟缁橰CS
         taskWrk.setBarcode(barcode);//鏉$爜
-        taskWrk.setTargetPoint(devNo+"");//绔欑偣缁堢偣
-        taskWrk.setStartPoint(devNo+"");//绔欑偣璧风偣
+        taskWrk.setTargetPoint(devNo + result.getShelfUnitId().substring(6));//绔欑偣缁堢偣
+        taskWrk.setStartPoint(devNo + "");//绔欑偣璧风偣
         taskWrk.setOriginStartPoint("");//婧愬簱浣�
         taskWrk.setOriginTargetPoint(result.getShelfUnitId());//鐩爣搴撲綅
         return taskWrk;

--
Gitblit v1.9.1