From f2c8334b9988edd7c8fa5d9c0da506060f85a16a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 27 六月 2024 13:33:55 +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/service/impl/MainServiceImpl.java    |   36 ++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java               |   59 +++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java           |   87 ++++++++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java               |    6 +
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/param/CreateWcsTaskParam.java |   28 ++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java             |    6 +
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java    |   15 ++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/TaskStsType.java         |    9 
 zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml                           |   19 +++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java                 |    1 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java       |   51 ++++++++
 12 files changed, 313 insertions(+), 6 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/param/CreateWcsTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/param/CreateWcsTaskParam.java
new file mode 100644
index 0000000..659d978
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/param/CreateWcsTaskParam.java
@@ -0,0 +1,28 @@
+package com.zy.asrs.wcs.asrs.entity.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CreateWcsTaskParam implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String requestPK; //璇锋眰缂栧彿
+    private String dvcNo; //鍒濆璁惧缂栧彿
+    private String contNo; //瀹瑰櫒鏉$爜
+    private String trkType; //浠诲姟绫诲瀷
+    private String trkSubType; //瀛愪换鍔$被鍨�
+    private String trkPrty; //浠诲姟浼樺厛绾�
+    private String frmPos; //璧峰浣嶇疆
+    private String toPos; //鐩爣浣嶇疆
+    private String isFull; //瀹瑰櫒绌烘弧鐘舵��
+    private String contType; //瀹瑰櫒绫诲瀷
+    private String operator; //涓婁綅绯荤粺鍚�
+    private String operationTime; //浠诲姟涓嬪彂鏃堕棿
+
+
+
+
+
+}
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 f4c1a03..c7745f4 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
@@ -53,6 +53,8 @@
                     mainService.analyzeInBoundTask();
                     // 瑙f瀽灏忚溅绉诲姩宸ヤ綔妗�
                     mainService.analyzeMoveTask();
+                    // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗�
+                    mainService.analyzeLadenMoveTask();
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
                     mainService.ledExecute();
                     // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
index 9a3d13a..3f358a2 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -366,6 +366,57 @@
         return R.ok();
     }
 
+    //鐢熸垚杞借揣绉诲姩浠诲姟
+    @PostMapping("/createLadenMoveTakeTask")
+    public R createLadenMoveTakeTask(@RequestBody CreateManualTakeTaskParam param) {
+        //鑾峰彇鎵嬪姩浠诲姟绫诲瀷
+        TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
+                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE))
+                .eq(TaskCtg::getStatus, 1));
+        if (taskCtg == null) {
+            return R.error("浠诲姟绫诲瀷寮傚父");
+        }
+
+        Task one = taskService.getOne(new LambdaQueryWrapper<Task>()
+                .eq(Task::getTaskCtg, taskCtg.getId())
+                .eq(Task::getOriginLoc, param.getOriginLoc())
+                .eq(Task::getDestLoc, param.getDestLoc()));
+        if (one != null) {
+            return R.error("浠诲姟宸插瓨鍦�");
+        }
+
+        //浼樺厛绾�
+        Integer priority = 10;
+        if (param.getPriority() != null) {
+            priority = param.getPriority();
+        }
+
+        Task task = new Task();
+        task.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+        task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT")));
+        task.setWmsTaskNo(param.getTaskNo());
+        task.setTaskSts(TaskStsType.NEW_LADEN_MOVE.sts);
+        task.setTaskCtg(taskCtg.getId());
+        task.setPriority(priority);
+        task.setOriginSite(null);
+        task.setOriginLoc(param.getOriginLoc());//婧愬簱浣�
+        task.setDestSite(null);
+        task.setDestLoc(param.getDestLoc());//鐩爣搴撲綅
+        task.setIoTime(new Date());
+        task.setStartTime(new Date());
+        task.setStatus(1);
+        task.setMemo("");
+        task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞�
+        task.setRecordLoc(param.getRecord() ? "Y" : "N");//璁板綍搴撳瓨淇℃伅
+        task.setHostId(1L);//涓存椂鎺у埗鍙厑璁竓ost涓�1
+
+        boolean result = taskService.save(task);
+        if (!result) {
+            return R.error("鐢熸垚鎵嬪姩鍙栨斁璐т换鍔″け璐ワ紒");
+        }
+        return R.ok();
+    }
+
     //鐢熸垚灏忚溅绉诲姩浠诲姟
     @PostMapping("/createMoveTask")
     public R createMoveTask(@RequestBody CreateMoveTaskParam param) {
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 46b9d35..d017869 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
@@ -1,8 +1,6 @@
 package com.zy.asrs.wcs.core.kernel;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zy.asrs.framework.common.Cools;
-import com.zy.asrs.framework.common.R;
 import com.zy.asrs.wcs.core.domain.dto.MotionDto;
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
@@ -1408,6 +1406,91 @@
         }
         return motionList;
     }
+    /**
+     * 鐢熸垚灏忚溅杞借揣杩佺Щ鍔ㄤ綔
+     */
+    public List<Motion> generateShuttleLadenMoveMotion(Task task) {
+        List<Motion> motionList = new ArrayList<>();
+        if (task.getTaskSts() != TaskStsType.NEW_LADEN_MOVE.sts) {
+            return motionList;
+        }
+        //originLoc 婧愬簱浣�
+        String originLoc =  task.getOriginLoc();
+        // locNo 鐩爣搴撲綅
+        String locNo = task.getDestLoc();
+
+        Device shuttleDevice = deviceService.getOne(new LambdaQueryWrapper<Device>()
+                .eq(Device::getDeviceNo, task.getShuttleNo())
+                .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
+                .eq(Device::getHostId, task.getHostId())
+                .eq(Device::getStatus, 1));
+        if (shuttleDevice == null) {
+            return motionList;
+        }
+
+        ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleDevice.getId().intValue());
+        if (shuttleThread == null) {
+            return motionList;
+        }
+
+        ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+        if (shuttleProtocol == null || shuttleProtocol.getShuttleNo() == null) {
+            return motionList;
+        }
+
+        String shuttleLocNo = shuttleProtocol.getCurrentLocNo();
+
+        // 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞�
+        if (Utils.getLev(shuttleLocNo) == Utils.getLev(locNo)) {
+
+            if (!shuttleLocNo.equals(locNo)) {//灏忚溅涓嶅湪鐩爣搴撲綅
+                // 绌挎杞﹁蛋琛岃嚦婧愬簱浣�
+                motionList.addAll(kernelService.shuttleMove(
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(shuttleDevice.getId().intValue());
+                            dto.setLocNo(shuttleLocNo);
+                        })),
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(shuttleDevice.getId().intValue());
+                            dto.setLocNo(originLoc);
+                        })),
+                        MotionCtgType.SHUTTLE_MOVE
+                ));
+
+                // 绌挎杞﹂《鍗�
+                motionList.add(Motion.build(motion -> {
+                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+                    motion.setDevice(String.valueOf(shuttleDevice.getId()));
+                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_LIFT.val());
+                }));
+
+                // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅
+                motionList.addAll(kernelService.shuttleMove(
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(shuttleDevice.getId().intValue());
+                            dto.setLocNo(originLoc);
+                        })),
+                        MotionDto.build((dto -> {
+                            dto.setShuttleNo(shuttleDevice.getId().intValue());
+                            dto.setLocNo(locNo);
+                        })),
+                        MotionCtgType.SHUTTLE_MOVE
+                ));
+
+                //绌挎杞︽墭鐩樹笅闄�
+                motionList.add(Motion.build(motion -> {
+                    motion.setDeviceCtg(DeviceCtgType.SHUTTLE.val());
+                    motion.setDevice(String.valueOf(shuttleDevice.getId()));
+                    motion.setMotionCtg(MotionCtgType.SHUTTLE_PALLET_DOWN.val());
+                }));
+
+            }
+
+        } else {
+            //灏忚溅璺ㄥ眰
+        }
+        return motionList;
+    }
 
     /**
      * 鐢熸垚灏忚溅鎵嬪姩鍔ㄤ綔
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
index ec0fd46..af9aabf 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
@@ -36,6 +36,12 @@
 
     List<Task> selectWaitAnalyzeMoveTask();
 
+    List<Task> selectWaitAnalyzeLadenMoveTask();
+
+    List<Task> selectLadenMoveByAnalyzeSts();
+
+    List<Task> selectLadenMoveByExecuteSts();
+
     List<Task> hasChargeInLoc(String locNo);
 
     Task selectMoveWorking(Integer shuttleNo);
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/TaskStsType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/TaskStsType.java
index 43d5aa1..697ba67 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/TaskStsType.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/TaskStsType.java
@@ -1,10 +1,6 @@
 package com.zy.asrs.wcs.core.model.enums;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wcs.core.entity.TaskSts;
-import com.zy.asrs.wcs.core.service.TaskStsService;
 
 public enum TaskStsType {
 
@@ -35,6 +31,11 @@
     ANALYZE_MANUAL(402, "鎵嬪姩浠诲姟瑙f瀽"),
     EXECUTE_MANUAL(403, "鎵ц鎵嬪姩浠诲姟"),
     COMPLETE_MANUAL(410, "鎵嬪姩浠诲姟瀹屾垚"),
+
+    NEW_LADEN_MOVE(501,"鐢熸垚绉诲簱浠诲姟"),
+    ANALYZE_LADEN_MOVE(502, "绉诲簱浠诲姟瑙f瀽"),
+    EXECUTE_LADEN_MOVE(503, "鎵ц绉诲簱浠诲姟"),
+    COMPLETE_LADEN_MOVE(504, "绉诲簱浠诲姟瀹屾垚"),
     ;
 
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
index fbdde05..0ceddbd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
@@ -34,6 +34,12 @@
 
     List<Task> selectWaitAnalyzeMoveTask();
 
+    List<Task> selectWaitAnalyzeLadenMoveTask();
+
+    List<Task> selectLadenMoveByAnalyzeSts();
+
+    List<Task> selectLadenMoveByExecuteSts();
+
     List<Task> hasChargeInLoc(String locNo);
 
     Task selectMoveWorking(Integer shuttleNo);
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 c2592f2..38df235 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
@@ -603,6 +603,42 @@
         }
     }
 
+    // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗�
+    public synchronized void analyzeLadenMoveTask() {
+        for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) {
+            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.generateShuttleLadenMoveMotion(task);
+            if (motionList.isEmpty()) {
+                continue;
+            }
+            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+
+            // 鏇存柊宸ヤ綔涓绘。
+            task.setTaskSts(TaskStsType.ANALYZE_LADEN_MOVE.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/service/impl/TaskServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
index 89b2b24..5704d9a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
@@ -112,6 +112,21 @@
     }
 
     @Override
+    public List<Task> selectWaitAnalyzeLadenMoveTask() {
+        return this.baseMapper.selectWaitAnalyzeLadenMoveTask();
+    }
+
+    @Override
+    public List<Task> selectLadenMoveByAnalyzeSts() {
+        return this.baseMapper.selectLadenMoveByAnalyzeSts();
+    }
+
+    @Override
+    public List<Task> selectLadenMoveByExecuteSts() {
+        return this.baseMapper.selectLadenMoveByExecuteSts();
+    }
+
+    @Override
     public List<Task> hasChargeInLoc(String locNo) {
         return this.baseMapper.hasChargeInLoc(locNo);
     }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
index 52193e6..782d0e6 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
@@ -173,6 +173,65 @@
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
+    public synchronized void executeLadenMoveTask() {
+        Date now = new Date();
+        // ANALYZE_CHARGE
+        for (Task taskCharge : taskService.selectLadenMoveByAnalyzeSts()) {
+            Motion executingMotion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId());
+            if (executingMotion != null) {//瀛樺湪姝e湪鎵ц鐨刴otion
+                if (executingMotion.getSync() == 1) {//褰撳墠鎵ц涓殑鍔ㄤ綔鏄悓姝ュ姩浣滐紝绛夊緟鎵ц瀹屾垚鍚庡啀鎵ц涓嬩竴涓姩浣�
+                    continue;
+                }
+            }
+
+            Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.INIT.val(), taskCharge.getHostId());
+            if (null != motion) {
+                boolean result = this.executeMotion(motion);
+                if (!result) {
+                    continue;
+                }
+                // 鏇存柊Task
+                switch (TaskStsType.query(taskCharge.getTaskSts())) {
+                    case ANALYZE_LADEN_MOVE:
+                        taskCharge.setTaskSts(TaskStsType.EXECUTE_LADEN_MOVE.sts);
+                        break;
+                }
+                taskCharge.setUpdateTime(now);
+                if (!taskService.updateById(taskCharge)) {
+                    log.error("{}鍏朵粬宸ヤ綔妗f洿鏂扮姸鎬佸け璐ワ紒", taskCharge.getTaskNo());
+                }
+            }
+        }
+        // EXECUTE_CHARGE
+        for (Task taskCharge : taskService.selectLadenMoveByExecuteSts()) {
+            if (!motionService.hasRunningMotion(taskCharge.getUuid(), taskCharge.getHostId())) {
+                Motion motion = motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.WAITING.val(), taskCharge.getHostId());
+                if (null != motion) {
+                    boolean result = this.executeMotion(motion);
+                    if (!result) {
+                        continue;
+                    }
+                } else {
+                    if (motionService.selectOfTop1(taskCharge.getUuid(), MotionStsType.EXECUTING.val(), taskCharge.getHostId()) != null) {
+                        continue;
+                    }
+
+                    // 鏇存柊Task
+                    switch (TaskStsType.query(taskCharge.getTaskSts())) {
+                        case EXECUTE_LADEN_MOVE:
+                            taskCharge.setTaskSts(TaskStsType.COMPLETE_LADEN_MOVE.sts);
+                            break;
+                    }
+                    taskCharge.setUpdateTime(now);
+                    if (!taskService.updateById(taskCharge)) {
+                        log.error("{}浠栧伐浣滄。鏇存柊鐘舵�佸け璐ワ紒", taskCharge.getTaskNo());
+                    }
+                }
+            }
+        }
+    }
+
+    @Scheduled(cron = "0/1 * * * * ? ")
     public synchronized void executeManualTask() {
         Date now = new Date();
         // ANALYZE_MANUAL
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
index 19c3150..88b3a52 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
@@ -40,6 +40,7 @@
         taskSts.add(TaskStsType.COMPLETE_CHARGE.sts);
         taskSts.add(TaskStsType.COMPLETE_MOVE.sts);
         taskSts.add(TaskStsType.COMPLETE_MANUAL.sts);
+        taskSts.add(TaskStsType.COMPLETE_LADEN_MOVE.sts);
 
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                 .eq(Task::getStatus, 1)
diff --git a/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml b/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
index 33b6eef..ec41fd9 100644
--- a/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
+++ b/zy-asrs-wcs/src/main/resources/mapper/core/TaskMapper.xml
@@ -82,6 +82,25 @@
         order by priority desc,start_time,task_no asc
     </select>
 
+    <select id="selectWaitAnalyzeLadenMoveTask" resultType="com.zy.asrs.wcs.core.entity.Task">
+        select * from wcs_task where task_sts = 501
+        order by priority desc,start_time,task_no asc
+    </select>
+
+    <select id="selectLadenMoveByAnalyzeSts" resultType="com.zy.asrs.wcs.core.entity.Task">
+        select * from wcs_task
+        where 1=1
+          and task_sts in (502)
+        order by priority desc,start_time,task_no asc
+    </select>
+
+    <select id="selectLadenMoveByExecuteSts" resultType="com.zy.asrs.wcs.core.entity.Task">
+        select * from wcs_task
+        where 1=1
+          and task_sts in (503)
+        order by priority desc,start_time,task_no asc
+    </select>
+
     <select id="hasChargeInLoc" resultType="com.zy.asrs.wcs.core.entity.Task">
         select * from wcs_task
         where task_sts in (201,202,203,204)

--
Gitblit v1.9.1