From 4775feb2a95cb339d3b65ddbbad25374e012b2aa Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 12 十二月 2024 12:52:35 +0800
Subject: [PATCH] #入库逻辑优化

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java                  |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyor.java           |   12 +
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/constant/DeviceRedisConstant.java  |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |  341 ++++++++++++++++++++++++++++++++---------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java        |   64 ++++----
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/StaDto.java            |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java         |    6 
 7 files changed, 313 insertions(+), 116 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
index bfdc8e9..6f0c851 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/MainProcess.java
@@ -47,6 +47,8 @@
 
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateInboundWrk(); // 缁勬墭
+                    mainService.palletInbound();//鍏ュ簱-鎵樼洏杩涘簱
+
                     // 瑙f瀽鍑哄簱宸ヤ綔妗�
                     mainService.analyzeOutBoundTask();
                     // 瑙f瀽鍏ュ簱宸ヤ綔妗�
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/StaDto.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/StaDto.java
index e4e2b82..0c7deb5 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/StaDto.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/StaDto.java
@@ -7,6 +7,8 @@
 
     private Integer staNo;
 
+    private Integer deviceStaNo;
+
     private Integer barcode;
 
     private Integer backSta;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyor.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyor.java
index a24e153..c2a8b9e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyor.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/entity/BasConveyor.java
@@ -130,6 +130,18 @@
     @ApiModelProperty(value= "鎷f枡鍑哄簱绔欑偣鍒楄〃")
     private String pickOutSta;
 
+    /**
+     * 璁惧鍏ュ簱绔欑偣鍒楄〃
+     */
+    @ApiModelProperty(value= "璁惧鍏ュ簱绔欑偣鍒楄〃")
+    private String deviceInSta;
+
+    /**
+     * 璁惧鍑哄簱绔欑偣鍒楄〃
+     */
+    @ApiModelProperty(value= "璁惧鍑哄簱绔欑偣鍒楄〃")
+    private String deviceOutSta;
+
     public BasConveyor() {}
 
     public BasConveyor(Long deviceId,Integer conveyorNo,Long updateBy,Long createBy,Date createTime,Date updateTime,String memo,Integer deleted,Long hostId,String inSta,String emptyInSta,String pickInSta,String outSta,String emptyOutSta,String pickOutSta) {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
index 22a654f..e645221 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -101,8 +101,8 @@
 
             String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
 
-            //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑绌洪棽鍙崲灞傛彁鍗囨満
-            LiftThread liftThread = liftDispatcher.searchIdleLift(shuttleLocNo, task.getHostId(), true);
+            //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�)
+            LiftThread liftThread = liftDispatcher.searchLift(shuttleLocNo, task.getHostId(), true);
             if (liftThread == null) {
                 return motionList;
             }
@@ -158,21 +158,21 @@
             // 鍏ュ簱鐩爣灞傛湁绌挎杞�
             if (Utils.getLev(shuttleLocNo) == Utils.getLev(task.getDestLoc())) {
 
-                // 鎻愬崌鏈鸿浇璐хЩ鍔�
-                motionList.addAll(kernelService.liftMoveGoods(
-                        MotionDto.build((dto -> {
-                            dto.setLiftNo(transferLiftDevice.getId().intValue());
-                            dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
-                            dto.setStaNo(31004);//鍏ュ簱绔欑偣
-                        }))
-                        , MotionDto.build((dto -> {
-                            dto.setLiftNo(transferLiftDevice.getId().intValue());
-                            dto.setLev(Utils.getLev(task.getDestLoc()));
-                            dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc())));
-                            dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
-                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
-                        }))
-                ));
+//                // 鎻愬崌鏈鸿浇璐хЩ鍔�
+//                motionList.addAll(kernelService.liftMoveGoods(
+//                        MotionDto.build((dto -> {
+//                            dto.setLiftNo(transferLiftDevice.getId().intValue());
+//                            dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
+//                            dto.setStaNo(31004);//鍏ュ簱绔欑偣
+//                        }))
+//                        , MotionDto.build((dto -> {
+//                            dto.setLiftNo(transferLiftDevice.getId().intValue());
+//                            dto.setLev(Utils.getLev(task.getDestLoc()));
+//                            dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc())));
+//                            dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
+//                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
+//                        }))
+//                ));
 
                 // 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄簱浣嶅緟鏈轰綅
                 motionList.addAll(kernelService.shuttleMove(
@@ -227,21 +227,21 @@
              */
             } else {
 
-                // 鎻愬崌鏈鸿浇璐хЩ鍔�
-                motionList.addAll(kernelService.liftMoveGoods(
-                        MotionDto.build((dto -> {
-                            dto.setLiftNo(transferLiftDevice.getId().intValue());
-                            dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
-                            dto.setStaNo(31004);//鍏ュ簱绔欑偣
-                        }))
-                        , MotionDto.build((dto -> {
-                            dto.setLiftNo(transferLiftDevice.getId().intValue());
-                            dto.setLev(Utils.getLev(task.getDestLoc()));
-                            dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc())));
-                            dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
-                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
-                        }))
-                ));
+//                // 鎻愬崌鏈鸿浇璐хЩ鍔�
+//                motionList.addAll(kernelService.liftMoveGoods(
+//                        MotionDto.build((dto -> {
+//                            dto.setLiftNo(transferLiftDevice.getId().intValue());
+//                            dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞�
+//                            dto.setStaNo(31004);//鍏ュ簱绔欑偣
+//                        }))
+//                        , MotionDto.build((dto -> {
+//                            dto.setLiftNo(transferLiftDevice.getId().intValue());
+//                            dto.setLev(Utils.getLev(task.getDestLoc()));
+//                            dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc())));
+//                            dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue());
+//                            dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満
+//                        }))
+//                ));
 
                 // 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄簱浣嶅緟鏈轰綅
                 motionList.addAll(kernelService.shuttleMove(
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 87f2518..33e391f 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -10,6 +10,8 @@
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wcs.core.action.LiftAction;
 import com.zy.asrs.wcs.core.domain.dto.MatDto;
 import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
 import com.zy.asrs.wcs.core.domain.dto.StaDto;
@@ -17,6 +19,8 @@
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.kernel.AnalyzeService;
 import com.zy.asrs.wcs.core.model.MapNode;
+import com.zy.asrs.wcs.core.model.command.LiftAssignCommand;
+import com.zy.asrs.wcs.core.model.command.LiftCommand;
 import com.zy.asrs.wcs.core.model.enums.*;
 import com.zy.asrs.wcs.core.service.*;
 import com.zy.asrs.wcs.core.utils.OpenUtils;
@@ -30,13 +34,11 @@
 import com.zy.asrs.wcs.rcs.model.command.LedCommand;
 import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
+import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
 import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
-import com.zy.asrs.wcs.rcs.thread.BarcodeThread;
-import com.zy.asrs.wcs.rcs.thread.DevpThread;
-import com.zy.asrs.wcs.rcs.thread.LedThread;
-import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
+import com.zy.asrs.wcs.rcs.thread.*;
 import com.zy.asrs.wcs.system.entity.Dict;
 import com.zy.asrs.wcs.system.service.DictService;
 import lombok.extern.slf4j.Slf4j;
@@ -91,6 +93,8 @@
     private ShuttleChargeStaService shuttleChargeStaService;
     @Autowired
     private OpenUtils openUtils;
+    @Autowired
+    private LiftAction liftAction;
 
     /**
      * 缁勬墭
@@ -295,6 +299,109 @@
     }
 
     /**
+     * 鍏ュ簱-鎵樼洏杩涘簱
+     */
+    public synchronized void palletInbound() {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
+                    .eq(Device::getDeviceType, DeviceCtgType.CONVEYOR.val())
+                    .eq(Device::getStatus, 1));
+            for (Device devp : list) {
+                BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getDeviceId, devp.getId()).eq(BasConveyor::getHostId, devp.getHostId()));
+                // 閬嶅巻鍏ュ簱鍙�
+                for (StaDto inSta : JSON.parseArray(basConveyor.getInSta(), StaDto.class)) {
+                    BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getDeviceStaNo().toString());
+                    if(basConveyorSta == null) {
+                        continue;
+                    }
+
+                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, devp.getId().intValue());
+                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getDeviceStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    int workNo = staProtocol.getWorkNo().intValue();
+
+                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && (workNo >= 0)
+                            && staProtocol.isPakMk()
+                    ) {
+                        Object object = redisUtil.get(DeviceRedisConstant.LIFT_PALLET_INBOUND + workNo);
+                        if (object != null) {
+                            continue;
+                        }
+
+                        Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+                                .eq(Task::getDestSite, inSta.getDeviceStaNo())
+                                .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
+                                .eq(Task::getTaskNo, workNo));
+                        if (task != null) {
+                            int lev = Utils.getLev(task.getDestLoc());
+                            Integer targetSite = null;
+                            if (lev == 1) {
+                                targetSite = 31006;
+                            }else if (lev == 2) {
+                                targetSite = 31007;
+                            }else if (lev == 3) {
+                                targetSite = 31008;
+                            }
+                            if(targetSite == null) {
+                                throw new CoolException(lev + "灞傜珯鐐逛俊鎭笉瀛樺湪");
+                            }
+
+                            StaProtocol staProtocol1 = devpThread.getStation().get(targetSite);
+                            if (staProtocol1 == null) {
+                                break;
+                            }
+                            if (!staProtocol1.isAutoing()) {
+                                break;
+                            }
+                            if (staProtocol1.isLoading()) {
+                                break;
+                            }
+                            if (staProtocol1.getWorkNo().intValue() != 0) {
+                                break;
+                            }
+
+                            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, inSta.getLiftNo());
+                            if (liftThread == null) {
+                                break;
+                            }
+
+                            LiftProtocol liftProtocol = liftThread.getStatus();
+                            if (liftProtocol == null) {
+                                break;
+                            }
+
+                            List<LiftCommand> command = liftThread.getPalletInOutCommand(workNo, 1, lev, inSta.getDeviceStaNo(), targetSite, LiftCommandModeType.PALLET_INOUT);
+
+                            LiftAssignCommand assignCommand = new LiftAssignCommand();
+                            assignCommand.setLiftNo(liftProtocol.getLiftNo());
+                            assignCommand.setTaskNo(workNo);
+                            assignCommand.setDeviceTaskNo(liftThread.generateDeviceTaskNo(workNo, MotionCtgType.LIFT_WITH_GOODS));
+                            assignCommand.setCommands(command);
+                            liftAction.assignWork(liftThread.getDevice(), assignCommand);
+
+                            redisUtil.set(DeviceRedisConstant.LIFT_PALLET_INBOUND + workNo, "send", 60 * 60 * 6);
+                            break;
+                        }
+
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
      * 鍒濆鍖栧疄鏃跺湴鍥�
      */
     public synchronized void initRealtimeBasMap() {
@@ -471,86 +578,162 @@
 
     // 瑙f瀽鍏ュ簱宸ヤ綔妗�
     public synchronized void analyzeInBoundTask() {
-        for (Task task : taskService.selectWaitAnalyzeInBoundTask()) {
-            BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite()));
-            if (basConveyorSta == null) {
-                continue;
-            }
-            BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId());
-            if (basConveyor == null) {
-                continue;
-            }
-//            DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
-//            if (deviceBarcode == null) {
-//                continue;
-//            }
-//            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
-//            if (barcodeThread == null) {
-//                continue;
-//            }
-//            if (!barcodeThread.getBarcode().equals(task.getZpallet())) {
-//                continue;
-//            }
-            if (Cools.isEmpty(basConveyorSta.getTaskNo())){
-                continue;
-            }
-            if (!basConveyorSta.getTaskNo().toString().equals(task.getTaskNo())){
-                continue;
-            }
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
-            if (devpThread == null) {
-                continue;
-            }
-            StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo());
-            if (staProtocol == null) {
-                continue;
-            }
-            if (!(staProtocol.isAutoing()
-                    && staProtocol.isLoading()
-                    && staProtocol.isInEnable())) {
-                continue;
-            }
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
+                    .eq(Device::getDeviceType, DeviceCtgType.CONVEYOR.val())
+                    .eq(Device::getStatus, 1));
+            for (Device devp : list) {
+                BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getDeviceId, devp.getId()).eq(BasConveyor::getHostId, devp.getHostId()));
+                // 閬嶅巻鍏ュ簱鍙�
+                for (StaDto inSta : JSON.parseArray(basConveyor.getDeviceInSta(), StaDto.class)) {
+                    BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getStaNo().toString());
+                    if(basConveyorSta == null) {
+                        continue;
+                    }
 
-            //瑙f瀽鍓嶅垽鏂唴閮ㄧ洰鏍囧�兼槸鍚︽湁鐗� 鏈夊伐浣滃彿
-            StaProtocol staProtocolInside = devpThread.getStation().get(Utils.getStaByLev(Utils.getLev(task.getDestLoc())));
-            if (staProtocolInside == null) {
-                continue;
-            }
-            if (staProtocolInside.isLoading() || staProtocolInside.getWorkNo() !=0) {
-                continue;
-            }
+                    // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, devp.getId().intValue());
+                    StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    int workNo = staProtocol.getWorkNo().intValue();
 
-            if (Cools.isEmpty(task.getShuttleNo())) {
-                //鍒嗛厤灏忚溅
-                //鎼滅储绌洪棽杞�
-                ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
-                if (shuttleThread == null) {
-                    News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
-                    continue;
+                    // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isInEnable()
+                            && (workNo >= 0)
+                            && staProtocol.isPakMk()
+                    ) {
+
+                        Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+                                .eq(Task::getDestSite, inSta.getDeviceStaNo())
+                                .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
+                                .eq(Task::getTaskNo, workNo));
+                        if (task != null) {
+                            if (Cools.isEmpty(task.getShuttleNo())) {
+                                //鍒嗛厤灏忚溅
+                                //鎼滅储绌洪棽杞�
+                                ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
+                                if (shuttleThread == null) {
+                                    News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+                                    continue;
+                                }
+
+                                task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+                                task.setUpdateTime(new Date());
+                                if (!taskService.updateById(task)) {
+                                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                                }
+                                continue;
+                            }
+
+                            // generate motion list
+                            List<Motion> motionList = analyzeService.generateMotion(task);
+                            if (motionList.isEmpty()) {
+                                continue;
+                            }
+                            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+
+                            // 鏇存柊宸ヤ綔涓绘。
+                            task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
+                            task.setUpdateTime(new Date());
+                            if (!taskService.updateById(task)) {
+                                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+                            }
+                            break;
+                        }
+
+                    }
                 }
-
-                task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
-                task.setUpdateTime(new Date());
-                if (!taskService.updateById(task)) {
-                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
-                }
-                continue;
             }
-
-            // generate motion list
-            List<Motion> motionList = analyzeService.generateMotion(task);
-            if (motionList.isEmpty()) {
-                continue;
-            }
-            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
-
-            // 鏇存柊宸ヤ綔涓绘。
-            task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
-            task.setUpdateTime(new Date());
-            if (!taskService.updateById(task)) {
-                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
-            }
+        } catch (Exception e) {
+            e.printStackTrace();
         }
+
+//        for (Task task : taskService.selectWaitAnalyzeInBoundTask()) {
+//            BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite()));
+//            if (basConveyorSta == null) {
+//                continue;
+//            }
+//            BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId());
+//            if (basConveyor == null) {
+//                continue;
+//            }
+////            DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
+////            if (deviceBarcode == null) {
+////                continue;
+////            }
+////            BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
+////            if (barcodeThread == null) {
+////                continue;
+////            }
+////            if (!barcodeThread.getBarcode().equals(task.getZpallet())) {
+////                continue;
+////            }
+//            if (Cools.isEmpty(basConveyorSta.getTaskNo())){
+//                continue;
+//            }
+//            if (!basConveyorSta.getTaskNo().toString().equals(task.getTaskNo())){
+//                continue;
+//            }
+//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue());
+//            if (devpThread == null) {
+//                continue;
+//            }
+//            StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo());
+//            if (staProtocol == null) {
+//                continue;
+//            }
+//            if (!(staProtocol.isAutoing()
+//                    && staProtocol.isLoading()
+//                    && staProtocol.isInEnable())) {
+//                continue;
+//            }
+//
+//            //瑙f瀽鍓嶅垽鏂唴閮ㄧ洰鏍囧�兼槸鍚︽湁鐗� 鏈夊伐浣滃彿
+//            StaProtocol staProtocolInside = devpThread.getStation().get(Utils.getStaByLev(Utils.getLev(task.getDestLoc())));
+//            if (staProtocolInside == null) {
+//                continue;
+//            }
+//            if (staProtocolInside.isLoading() || staProtocolInside.getWorkNo() !=0) {
+//                continue;
+//            }
+//
+//            if (Cools.isEmpty(task.getShuttleNo())) {
+//                //鍒嗛厤灏忚溅
+//                //鎼滅储绌洪棽杞�
+//                ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
+//                if (shuttleThread == null) {
+//                    News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+//                    continue;
+//                }
+//
+//                task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+//                task.setUpdateTime(new Date());
+//                if (!taskService.updateById(task)) {
+//                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+//                }
+//                continue;
+//            }
+//
+//            // generate motion list
+//            List<Motion> motionList = analyzeService.generateMotion(task);
+//            if (motionList.isEmpty()) {
+//                continue;
+//            }
+//            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+//
+//            // 鏇存柊宸ヤ綔涓绘。
+//            task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
+//            task.setUpdateTime(new Date());
+//            if (!taskService.updateById(task)) {
+//                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+//            }
+//        }
     }
 
     /**
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
index af6aa85..377f800 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/LiftDispatcher.java
@@ -38,7 +38,7 @@
     private NavigateUtils navigateUtils;
 
     /**
-     * 鏍规嵁鐩爣浣嶇疆鎼滅储绌洪棽鎻愬崌鏈�
+     * 鏍规嵁鐩爣浣嶇疆鎼滅储鎻愬崌鏈�
      * transfer: 鏄惁鍙崲灞�
      */
     public LiftThread searchLift(String locNo, Long hostId, Boolean transfer) {
@@ -56,10 +56,6 @@
 
             LiftProtocol liftProtocol = liftThread.getStatus();
             if (liftProtocol == null) {
-                continue;
-            }
-
-            if (!liftThread.isIdle()) {
                 continue;
             }
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/constant/DeviceRedisConstant.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/constant/DeviceRedisConstant.java
index 37648ed..13c6f65 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/constant/DeviceRedisConstant.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/constant/DeviceRedisConstant.java
@@ -23,4 +23,6 @@
 
     public static final String SIMILARITY_TIMES = "similarity_times_";
 
+    public static final String LIFT_PALLET_INBOUND = "lift_pallet_inbound_";
+
 }

--
Gitblit v1.9.1