From 8b9b604e379f92dc61fb55e1454b7f1d107428d9 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 16 六月 2025 16:14:17 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  383 +++++++++++++++++++++++++++---------------------------
 1 files changed, 191 insertions(+), 192 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 8e98ef9..01f354a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -12,7 +12,6 @@
 import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.Result;
 import com.zy.asrs.entity.param.StorageEscalationParam;
 import com.zy.asrs.entity.param.TaskOverToWms;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
@@ -388,172 +387,172 @@
         }
     }
 
-    //鎷f枡鍥炲簱
-    public synchronized void PickingAndReturningToTheWarehouse() throws IOException, InterruptedException {
-        try {
-            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
-            for (DevpSlave devp : slaveProperties.getDevp()) {
-                // 閬嶅巻鍏ュ簱鍙�
-                for (DevpSlave.Sta inSta : devp.getPickSta()) {
-                    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();
-                    //led
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
-                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                    if (staProtocol.isAutoing() && staProtocol.isLoading()
-                            && staProtocol.isInEnable()
-                            && staProtocol.isPakMk()) {
-                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
-                        String BoxNo = "";
-                        //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉�
-                        TaskWrk taskWrkk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point", staProtocol.getSiteId()));
-                        if (!Cools.isEmpty(taskWrkk)) {
-                            continue;
-                        }
-                        if (!staProtocol.isEmptyMk() && staProtocol.getWorkNo() < 9990) {
-
-                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo));
-
-                            if (!Cools.isEmpty(taskWrk1)) {
-                                BoxNo = taskWrk1.getBarcode();
-                            } else {
-                                TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false));
-                                if (taskWrkLog != null) {
-                                    BoxNo = taskWrkLog.getBarcode();
-                                }
-                            }
-                        }
-                        log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
-                        storageEscalationParam.setBoxNo(BoxNo);
-                        //鏄惁婊℃澘 1婊℃澘  0绌烘澘
-                        storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
-                        //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣�
-                        storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0);
-                        storageEscalationParam.setTerminalNo(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("Result").toString())) {
-                                Result result = JSON.parseObject(jsonObject.get("Result").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 {
-                                        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());
-                                        try {
-                                            //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
-                                            response = new HttpHandler.Builder()
-                                                    .setUri(wmsUrl)
-                                                    .setPath(taskStatusFeedbackPath)
-                                                    .setJson(JSON.toJSONString(hashMap))
-                                                    .build()
-                                                    .doPost();
-                                            JSONObject jsonObject1 = JSON.parseObject(response);
-                                            Boolean bool = false;
-                                            if (jsonObject1.get("ReturnStatus").equals(0)) {
-                                                taskWrk.setStatus(2);//娲惧彂浠诲姟
-                                                bool = true;
-                                                taskWrkService.updateById(taskWrk);
-                                            }
-                                            apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
-                                                    , wmsUrl + TaskExecCallback
-                                                    , null
-                                                    , "127.0.0.1"
-                                                    , JSON.toJSONString(hashMap)
-                                                    , response
-                                                    , bool
-                                            );
-                                        } catch (Exception e) {
-
-                                        }
-                                    }
-                                } else {
-                                    // led 寮傚父鏄剧ず
-                                    if (ledThread != null) {
-                                        String errorMsg = "浠诲姟宸插瓨鍦紒锛侊紒锛�";
-                                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
-                                    }
-                                    staProtocol.setWorkNo((short) 9991);
-                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                }
-
-                            } else {
-                                // led 寮傚父鏄剧ず
-                                if (ledThread != null) {
-                                    String errorMsg = jsonObject.getString("ErrorMessage");
-                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
-                                }
-                                staProtocol.setWorkNo((short) 9991);
-                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                                devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            }
-
-                        } 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();
-        }
-    }
+//    //鎷f枡鍥炲簱
+//    public synchronized void PickingAndReturningToTheWarehouse() throws IOException, InterruptedException {
+//        try {
+//            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+//            for (DevpSlave devp : slaveProperties.getDevp()) {
+//                // 閬嶅巻鍏ュ簱鍙�
+//                for (DevpSlave.Sta inSta : devp.getPickSta()) {
+//                    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();
+//                    //led
+//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+//
+//                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+//                    if (staProtocol.isAutoing() && staProtocol.isLoading()
+//                            && staProtocol.isInEnable()
+//                            && staProtocol.isPakMk()) {
+//                        // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+//                        String BoxNo = "";
+//                        //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉�
+//                        TaskWrk taskWrkk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point", staProtocol.getSiteId()));
+//                        if (!Cools.isEmpty(taskWrkk)) {
+//                            continue;
+//                        }
+//                        if (!staProtocol.isEmptyMk() && staProtocol.getWorkNo() < 9990) {
+//
+//                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo));
+//
+//                            if (!Cools.isEmpty(taskWrk1)) {
+//                                BoxNo = taskWrk1.getBarcode();
+//                            } else {
+//                                TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false));
+//                                if (taskWrkLog != null) {
+//                                    BoxNo = taskWrkLog.getBarcode();
+//                                }
+//                            }
+//                        }
+//                        log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
+//                        storageEscalationParam.setBoxNo(BoxNo);
+//                        //鏄惁婊℃澘 1婊℃澘  0绌烘澘
+//                        storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
+//                        //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣�
+//                        storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0);
+//                        storageEscalationParam.setTerminalNo(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("Result").toString())) {
+//                                Result result = JSON.parseObject(jsonObject.get("Result").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 {
+//                                        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());
+//                                        try {
+//                                            //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+//                                            response = new HttpHandler.Builder()
+//                                                    .setUri(wmsUrl)
+//                                                    .setPath(taskStatusFeedbackPath)
+//                                                    .setJson(JSON.toJSONString(hashMap))
+//                                                    .build()
+//                                                    .doPost();
+//                                            JSONObject jsonObject1 = JSON.parseObject(response);
+//                                            Boolean bool = false;
+//                                            if (jsonObject1.get("ReturnStatus").equals(0)) {
+//                                                taskWrk.setStatus(2);//娲惧彂浠诲姟
+//                                                bool = true;
+//                                                taskWrkService.updateById(taskWrk);
+//                                            }
+//                                            apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+//                                                    , wmsUrl + TaskExecCallback
+//                                                    , null
+//                                                    , "127.0.0.1"
+//                                                    , JSON.toJSONString(hashMap)
+//                                                    , response
+//                                                    , bool
+//                                            );
+//                                        } catch (Exception e) {
+//
+//                                        }
+//                                    }
+//                                } else {
+//                                    // led 寮傚父鏄剧ず
+//                                    if (ledThread != null) {
+//                                        String errorMsg = "浠诲姟宸插瓨鍦紒锛侊紒锛�";
+//                                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+//                                    }
+//                                    staProtocol.setWorkNo((short) 9991);
+//                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                                }
+//
+//                            } else {
+//                                // led 寮傚父鏄剧ず
+//                                if (ledThread != null) {
+//                                    String errorMsg = jsonObject.getString("ErrorMessage");
+//                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+//                                }
+//                                staProtocol.setWorkNo((short) 9991);
+//                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
+//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
+//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//                            }
+//
+//                        } 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 generateStoreWrkFile() throws IOException, InterruptedException {
         try {
@@ -1705,31 +1704,31 @@
         return response;
     }
 
-    private TaskWrk createTask1(Result result, String barcode, Integer staNo) {
-        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
-
-        Date now = new Date();
-        TaskWrk taskWrk = new TaskWrk();
-        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
-        taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
-        taskWrk.setWrkNo(workNo1);
-        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
-        taskWrk.setCreateTime(now);
-        taskWrk.setIoType(1);//浠诲姟绫诲瀷 鍏ュ簱
-        taskWrk.setIoPri(13);//浼樺厛绾�
-        taskWrk.setBarcode(barcode);//鏉$爜
-        taskWrk.setTargetPoint(locNo);
-        taskWrk.setStartPoint(staNo + "");
-        taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿
-
-        if (taskWrk.getIoType() == 1) {
-            taskWrk.setWrkSts(2);
-            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
-                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
-            }
-        }
-        return taskWrk;
-    }
+//    private TaskWrk createTask1(Result result, String barcode, Integer staNo) {
+//        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
+//
+//        Date now = new Date();
+//        TaskWrk taskWrk = new TaskWrk();
+//        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+//        taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
+//        taskWrk.setWrkNo(workNo1);
+//        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+//        taskWrk.setCreateTime(now);
+//        taskWrk.setIoType(1);//浠诲姟绫诲瀷 鍏ュ簱
+//        taskWrk.setIoPri(13);//浼樺厛绾�
+//        taskWrk.setBarcode(barcode);//鏉$爜
+//        taskWrk.setTargetPoint(locNo);
+//        taskWrk.setStartPoint(staNo + "");
+//        taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿
+//
+//        if (taskWrk.getIoType() == 1) {
+//            taskWrk.setWrkSts(2);
+//            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+//                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+//            }
+//        }
+//        return taskWrk;
+//    }
 
     private TaskWrk createTask(GetWmsDto dto, String barcode) {
         String wcsLocNo = dto.getLocNo();

--
Gitblit v1.9.1