From 5d1aa071ca6f385a8ec9bb2b5135d259f0f225eb Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 04 十二月 2025 10:59:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/model/StartupDto.java              |    2 
 src/main/java/com/zy/core/enums/WrkStsType.java                |   28 ----
 src/main/java/com/zy/asrs/utils/Utils.java                     |   89 ++++++++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java       |   99 +++++++---------
 src/main/resources/docs/WCS外部HTTP API接口V1.0.docx               |    0 
 src/main/java/com/zy/core/enums/WrkIoType.java                 |    2 
 src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java |   10 -
 src/main/java/com/zy/core/enums/RedisKeyType.java              |    2 
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java           |   48 --------
 src/main/java/com/zy/common/service/CommonService.java         |   38 +++++-
 src/main/java/com/zy/core/plugin/FakeProcess.java              |   15 -
 11 files changed, 175 insertions(+), 158 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 0522ff4..09c9d10 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -5,15 +5,23 @@
 import com.core.common.R;
 import com.zy.asrs.domain.param.*;
 import com.zy.asrs.entity.ApiLog;
+import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.DeviceConfigService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.utils.NotifyUtils;
 import com.zy.common.annotations.OpenApiLog;
 import com.zy.common.service.CommonService;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.RgvThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 
@@ -46,6 +54,8 @@
     private WrkMastService wrkMastService;
     @Autowired
     private ConfigService configService;
+    @Autowired
+    private DeviceConfigService deviceConfigService;
 
     //绉诲簱浠诲姟
     @PostMapping("/createLocMoveTask")
@@ -199,61 +209,42 @@
 //    @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
     public R getDeviceStatus() {
         HashMap<String, Object> map = new HashMap<>();
-//        //鑾峰彇灏忚溅鏁版嵁
-//        ArrayList<ShuttleProtocol> shuttleProtocols = new ArrayList<>();
-//        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
-//                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
-//        for (DeviceConfig device : shuttleList) {
-//            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
-//            if (shuttleThread == null) {
-//                continue;
-//            }
-//
-//            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
-//            if (shuttleProtocol == null) {
-//                continue;
-//            }
-//            shuttleProtocols.add(shuttleProtocol);
-//        }
-//
-//        //鑾峰彇璐у弶鎻愬崌鏈烘暟鎹�
-//        ArrayList<ForkLiftProtocol> forkLiftProtocols = new ArrayList<>();
-//        List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
-//                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
-//        for (DeviceConfig device : forkLiftList) {
-//            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
-//            if (forkLiftThread == null) {
-//                continue;
-//            }
-//
-//            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
-//            if (forkLiftProtocol == null) {
-//                continue;
-//            }
-//            forkLiftProtocols.add(forkLiftProtocol);
-//        }
-//
-//        //鑾峰彇鎻愬崌鏈烘暟鎹�
-//        ArrayList<LiftProtocol> liftProtocols = new ArrayList<>();
-//        List<DeviceConfig> liftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
-//                .eq("device_type", String.valueOf(SlaveType.Lift)));
-//        for (DeviceConfig device : liftList) {
-//            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getDeviceNo());
-//            if (liftThread == null) {
-//                continue;
-//            }
-//
-//            LiftProtocol liftProtocol = liftThread.getStatus();
-//            if (liftProtocol == null) {
-//                continue;
-//            }
-//            liftProtocols.add(liftProtocol);
-//        }
-//
-//        map.put("shuttle", shuttleProtocols);
-//        map.put("forkLift", forkLiftProtocols);
-//        map.put("lift", liftProtocols);
+        //鑾峰彇鍫嗗灈鏈烘暟鎹�
+        ArrayList<CrnProtocol> crnProtocols = new ArrayList<>();
+        List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Crn)));
+        for (DeviceConfig device : crnList) {
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, device.getDeviceNo());
+            if (crnThread == null) {
+                continue;
+            }
 
+            CrnProtocol crnProtocol = crnThread.getStatus();
+            if (crnProtocol == null) {
+                continue;
+            }
+            crnProtocols.add(crnProtocol);
+        }
+
+        //鑾峰彇RGV鏁版嵁
+        ArrayList<RgvProtocol> rgvProtocols = new ArrayList<>();
+        List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Rgv)));
+        for (DeviceConfig device : rgvList) {
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, device.getDeviceNo());
+            if (rgvThread == null) {
+                continue;
+            }
+
+            RgvProtocol rgvProtocol = rgvThread.getStatus();
+            if (rgvProtocol == null) {
+                continue;
+            }
+            rgvProtocols.add(rgvProtocol);
+        }
+
+        map.put("crn", crnList);
+        map.put("rgv", rgvList);
         return R.ok().add(map);
     }
 
diff --git a/src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java b/src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java
index 80c8ff1..84e6be3 100644
--- a/src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/CreateOutTaskParam.java
@@ -8,17 +8,11 @@
     //wms浠诲姟鍙�
     private String taskNo;
 
-    //婧愮珯
-    private Integer sourceStaNo;
-
     //鐩爣绔�
     private Integer staNo;
 
-    //婧愬簱浣�
-    private String sourceLocNo;
-
-    //鏉$爜
-    private String barcode;
+    //鍑哄簱搴撲綅
+    private String locNo;
 
     //浠诲姟浼樺厛绾�
     private Integer taskPri;
diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index b4df723..649b2f4 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.task;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.domain.enums.NotifyMsgType;
 import com.zy.asrs.entity.LocMast;
@@ -10,13 +9,9 @@
 import com.zy.asrs.service.WrkMastLogService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.utils.NotifyUtils;
-import com.zy.common.utils.HttpHandler;
 import com.zy.core.enums.LocStsType;
-import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -188,49 +183,6 @@
 
             //涓婃姤
             notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
-        }
-    }
-
-    @Scheduled(cron = "0/1 * * * * ? ")
-    @Transactional
-    public void executeMove(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_MOVE.sts));
-        if (wrkMasts.isEmpty()) {
-            return;
-        }
-
-        for (WrkMast wrkMast : wrkMasts) {
-            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
-                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
-            }
-            // 鍒犻櫎宸ヤ綔涓绘。
-            if (!wrkMastService.deleteById(wrkMast)) {
-                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
-            }
-        }
-    }
-
-    @Scheduled(cron = "0/1 * * * * ? ")
-    @Transactional
-    public void executeCharge(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts));
-        if (wrkMasts.isEmpty()) {
-            return;
-        }
-
-        for (WrkMast wrkMast : wrkMasts) {
-            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
-                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
-            }
-            // 鍒犻櫎宸ヤ綔涓绘。
-            if (!wrkMastService.deleteById(wrkMast)) {
-                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
-            }
-
-            //涓婃姤
-            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_CHARGE_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index f78bac3..b474b9e 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -2,14 +2,31 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Arith;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.utils.RedisUtil;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.CrnModeType;
 import com.zy.core.enums.RedisKeyType;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.thread.CrnThread;
 
 import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Set;
 
 public class Utils {
 
@@ -112,4 +129,76 @@
         }
         return defaultTime;
     }
+
+    //鑾峰彇鍏ュ簱浠诲姟鍙敤鎺�
+    public static List<Integer> getInTaskEnableRow() {
+        List<Integer> list = new ArrayList<>();
+        try {
+            RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
+            WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+            BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+
+            Integer currentCircleTaskCrnNo = null;
+            Object object = redisUtil.get(RedisKeyType.CURRENT_CIRCLE_TASK_CRN_NO.key);
+            if (object != null) {
+                currentCircleTaskCrnNo = Integer.parseInt(String.valueOf(object));
+            }
+
+            Wrapper<BasCrnp> wrapper = new EntityWrapper<BasCrnp>()
+                    .eq("in_enable", "Y")
+                    .eq("status", 1);
+
+            if (currentCircleTaskCrnNo != null) {
+                currentCircleTaskCrnNo = currentCircleTaskCrnNo + 1;
+                BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", currentCircleTaskCrnNo));
+                List<WrkMast> currentCrnTask = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", currentCircleTaskCrnNo));
+                if (currentCrnTask.size() <= 1) {
+                    if (basCrnp != null) {
+                        String controlRowsStr = basCrnp.getControlRows();
+                        if(!Cools.isEmpty(controlRowsStr)){
+                            List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
+                            list.addAll(rows);
+                            wrapper.ne("crn_no", currentCircleTaskCrnNo);
+                        }
+                    }
+                }
+            }
+
+            HashMap<Integer, Integer> map = new HashMap<>();
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
+            List<BasCrnp> basCrnps = basCrnpService.selectList(wrapper);
+
+            for (WrkMast wrkMast : wrkMasts) {
+                Integer crnNo = wrkMast.getCrnNo();
+                map.put(crnNo, map.getOrDefault(crnNo, 0) + 1);
+            }
+
+            List<BasCrnp> enabledCrnps = new ArrayList<>();
+            for (BasCrnp basCrnp : basCrnps) {
+                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+                if (crnThread == null) {
+                    continue;
+                }
+                CrnProtocol crnProtocol = crnThread.getStatus();
+                if (crnProtocol.getMode() != CrnModeType.AUTO.id) {
+                    continue;
+                }
+                enabledCrnps.add(basCrnp);
+            }
+
+            enabledCrnps.sort(Comparator.comparingInt(o -> map.getOrDefault(o.getCrnNo(), 0)));
+
+            for (BasCrnp basCrnp : enabledCrnps) {
+                String controlRowsStr = basCrnp.getControlRows();
+                if (Cools.isEmpty(controlRowsStr)) {
+                    continue;
+                }
+                List<Integer> rows = JSON.parseArray(controlRowsStr, Integer.class);
+                list.addAll(rows);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return list;
+    }
 }
diff --git a/src/main/java/com/zy/common/model/StartupDto.java b/src/main/java/com/zy/common/model/StartupDto.java
index 9a47096..f78dddc 100644
--- a/src/main/java/com/zy/common/model/StartupDto.java
+++ b/src/main/java/com/zy/common/model/StartupDto.java
@@ -7,7 +7,7 @@
 
     private String locNo;
 
-    private Integer workNo;
+    private Integer taskNo;
 
     private Integer taskPri;
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index dc6ca52..f9c3670 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -10,7 +10,9 @@
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.utils.NavigateUtils;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
+import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
 import com.zy.core.model.StationObjModel;
@@ -37,6 +39,8 @@
     private NavigateUtils navigateUtils;
     @Autowired
     private CommonService commonService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
@@ -87,10 +91,6 @@
             wrkMast.setWrkSts(WrkStsType.COMPLETE_INBOUND.sts);
         }else if (wrkMast.getIoType() == WrkIoType.OUT.id) {
             wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
-        } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_MOVE.id) {
-            wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
-        } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_CHARGE.id) {
-            wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
         } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) {
             wrkMast.setWrkSts(WrkStsType.COMPLETE_LOC_MOVE.sts);
         }
@@ -139,6 +139,20 @@
             ioPri = param.getTaskPri().doubleValue();
         }
 
+        Integer sourceCrnNo = commonService.findCrnNoByLocNo(sourceLocMast.getLocNo());
+        if (sourceCrnNo == null) {
+            throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
+        }
+
+        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
+        if (crnNo == null) {
+            throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
+        }
+
+        if (!sourceCrnNo.equals(crnNo)) {
+            throw new CoolException("婧愬簱浣嶅拰鐩爣搴撲綅涓嶅湪鍚屼竴宸烽亾");
+        }
+
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
         // 淇濆瓨宸ヤ綔妗�
@@ -150,6 +164,7 @@
         wrkMast.setIoPri(ioPri);
         wrkMast.setSourceLocNo(param.getSourceLocNo());
         wrkMast.setLocNo(param.getLocNo()); // 鐩爣搴撲綅
+        wrkMast.setCrnNo(crnNo);
         wrkMast.setWmsWrkNo(param.getTaskNo());
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -219,13 +234,15 @@
         locMast.setModiTime(new Date());
         locMastService.updateById(locMast);
 
+        //缂撳瓨璁板綍褰撳墠鍛戒护鍫嗗灈鏈虹紪鍙�
+        redisUtil.set(RedisKeyType.CURRENT_CIRCLE_TASK_CRN_NO.key, crnNo, 60 * 60 * 24);
         return true;
     }
 
     //鍑哄簱浠诲姟
     public boolean createOutTask(CreateOutTaskParam param) {
         Date now = new Date();
-        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
+        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
         if (null == locMast) {
             throw new CoolException("婧愬簱浣嶄笉瀛樺湪");
         }
@@ -244,6 +261,11 @@
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
 
+        Integer sourceStationId = commonService.findOutStationId(crnNo, param.getStaNo());
+        if (sourceStationId == null) {
+            throw new CoolException("鏈壘鍒拌緭閫佺洰鏍囩珯鐐瑰彲璧拌璺緞");
+        }
+
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.OUT.id);
         // 淇濆瓨宸ヤ綔妗�
@@ -253,11 +275,11 @@
         wrkMast.setWrkSts(WrkStsType.NEW_OUTBOUND.sts); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱浠诲姟
         wrkMast.setIoType(WrkIoType.OUT.id); // 鍏ュ嚭搴撶姸鎬侊細 101.鍑哄簱
         wrkMast.setIoPri(ioPri);
-        wrkMast.setSourceLocNo(param.getSourceLocNo()); // 婧愬簱浣�
-        wrkMast.setSourceStaNo(param.getSourceStaNo());//婧愮珯
+        wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
+        wrkMast.setSourceStaNo(sourceStationId);//婧愮珯
         wrkMast.setStaNo(param.getStaNo());//鐩爣绔�
         wrkMast.setWmsWrkNo(param.getTaskNo());
-        wrkMast.setBarcode(param.getBarcode());
+        wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setCrnNo(crnNo);
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java
index c4d4d28..fa7402b 100644
--- a/src/main/java/com/zy/core/enums/RedisKeyType.java
+++ b/src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -27,6 +27,8 @@
     GENERATE_FAKE_IN_STATION_DATA_LIMIT("generate_fake_in_station_data_limit_"),
     CHECK_OUT_STATION_STAY_TIME_OUT_LIMIT("check_out_station_stay_time_out_limit_"),
     CHECK_IN_STATION_STAY_TIME_OUT_LIMIT("check_in_station_stay_time_out_limit_"),
+
+    CURRENT_CIRCLE_TASK_CRN_NO("current_circle_task_crn_no_")
     ;
 
     public String key;
diff --git a/src/main/java/com/zy/core/enums/WrkIoType.java b/src/main/java/com/zy/core/enums/WrkIoType.java
index 70dfeb2..a346a00 100644
--- a/src/main/java/com/zy/core/enums/WrkIoType.java
+++ b/src/main/java/com/zy/core/enums/WrkIoType.java
@@ -6,9 +6,7 @@
 
     IN(1, "鍏ュ簱"),
     OUT(101, "鍑哄簱"),
-    SHUTTLE_MOVE(200, "灏忚溅绉诲姩"),
     LOC_MOVE(201, "绉诲簱浠诲姟"),
-    SHUTTLE_CHARGE(300, "灏忚溅鍏呯數"),
     PREVIEW_LIFT_MOVE(98, "鎻愬崌鏈洪璋冨害绉诲姩浠诲姟"),
     MANUAL(99, "鎵嬪姩浠诲姟"),
     ;
diff --git a/src/main/java/com/zy/core/enums/WrkStsType.java b/src/main/java/com/zy/core/enums/WrkStsType.java
index 0d1e544..59b4665 100644
--- a/src/main/java/com/zy/core/enums/WrkStsType.java
+++ b/src/main/java/com/zy/core/enums/WrkStsType.java
@@ -18,33 +18,9 @@
     COMPLETE_OUTBOUND(109, "鍑哄簱瀹屾垚"),
     SETTLE_OUTBOUND(110, "鍑哄簱搴撳瓨鏇存柊"),
 
-    NEW_CHARGE(201, "鐢熸垚鍏呯數浠诲姟"),
-    CHARGE_SHUTTLE_RUN(202, "灏忚溅鍓嶅線鍏呯數妗�"),
-    CHARGE_SHUTTLE_RUN_COMPLETE(203, "灏忚溅鍒拌揪鍏呯數妗�"),
-    CHARGE_SHUTTLE_START_CHARGING(204, "灏忚溅寮�鍚厖鐢典腑"),
-    CHARGE_SHUTTLE_CHARGING(205, "灏忚溅鍏呯數涓�"),
-    CHARGE_SHUTTLE_CHARGING_COMPLETE(206, "灏忚溅鍏呯數瀹屾垚"),
-    COMPLETE_CHARGE(210, "鍏呯數浠诲姟瀹屾垚"),
-
-    NEW_MOVE(301, "鐢熸垚杩佺Щ浠诲姟"),
-    MOVE_NEARBY(302, "灏忚溅绉诲姩鑷宠繎鐐逛腑"),
-    MOVE_NEARBY_COMPLETE(303, "灏忚溅绉诲姩鑷宠繎鐐瑰畬鎴�"),
-    MOVE_IN_LIFT(304, "灏忚溅杩佸叆鎻愬崌鏈轰腑"),
-    MOVE_IN_LIFT_COMPLETE(305, "灏忚溅杩佸叆鎻愬崌鏈哄畬鎴�"),
-    MOVE_LIFT_RUN(306, "鎻愬崌鏈烘惉杩愪腑"),
-    MOVE_LIFT_RUN_COMPLETE(307, "鎻愬崌鏈烘惉杩愬畬鎴�"),
-    MOVE_OUT_LIFT(308, "灏忚溅杩佸嚭鎻愬崌鏈轰腑"),
-    MOVE_OUT_LIFT_COMPLETE(309, "灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴�"),
-    MOVE_SHUTTLE(310, "灏忚溅绉诲姩涓�"),
-    COMPLETE_MOVE(311, "灏忚溅绉诲姩瀹屾垚"),
-
-    NEW_MANUAL(401, "鐢熸垚鎵嬪姩浠诲姟"),
-    ANALYZE_MANUAL(402, "鎵嬪姩浠诲姟瑙f瀽"),
-    EXECUTE_MANUAL(403, "鎵ц鎵嬪姩浠诲姟"),
-    COMPLETE_MANUAL(410, "鎵嬪姩浠诲姟瀹屾垚"),
-
     NEW_LOC_MOVE(501, "鐢熸垚绉诲簱浠诲姟"),
-    LOC_MOVE_SHUTTLE_RUN(502, "灏忚溅鎼繍涓�"),
+    LOC_MOVE_RUN(502, "璁惧鎼繍涓�"),
+    LOC_MOVE_RUN_COMPLETE(503, "璁惧鎼繍瀹屾垚"),
     COMPLETE_LOC_MOVE(509, "绉诲簱瀹屾垚"),
     ;
 
diff --git a/src/main/java/com/zy/core/plugin/FakeProcess.java b/src/main/java/com/zy/core/plugin/FakeProcess.java
index c6c7532..181f5f2 100644
--- a/src/main/java/com/zy/core/plugin/FakeProcess.java
+++ b/src/main/java/com/zy/core/plugin/FakeProcess.java
@@ -3,7 +3,6 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
 import com.zy.asrs.domain.param.CreateInTaskParam;
 import com.zy.asrs.domain.param.CreateOutTaskParam;
 import com.zy.asrs.entity.BasCrnp;
@@ -14,6 +13,7 @@
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
@@ -269,17 +269,10 @@
                         continue;
                     }
 
-                    Integer sourceStationId = commonService.findOutStationId(crnNo, stationId);
-                    if (sourceStationId == null) {
-                        continue;
-                    }
-
                     CreateOutTaskParam taskParam = new CreateOutTaskParam();
                     taskParam.setTaskNo(String.valueOf(commonService.getWorkNo(WrkIoType.OUT.id)));
-                    taskParam.setSourceStaNo(sourceStationId);
                     taskParam.setStaNo(stationId);
-                    taskParam.setSourceLocNo(locMast.getLocNo());
-                    taskParam.setBarcode(locMast.getBarcode());
+                    taskParam.setLocNo(locMast.getLocNo());
                     boolean result = commonService.createOutTask(taskParam);
                     redisUtil.set(RedisKeyType.GENERATE_FAKE_OUT_TASK_LIMIT.key + stationId, "lock", 15);
                 }
@@ -349,9 +342,9 @@
                     try {
                         HashMap<String, Object> param = new HashMap<>();
                         param.put("barcode", stationProtocol.getBarcode());
-                        param.put("ioType", 1);
                         param.put("sourceStaNo", stationProtocol.getStationId());
                         param.put("locType1", stationProtocol.getPalletHeight());
+                        param.put("row", Utils.getInTaskEnableRow());
 
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
@@ -364,7 +357,7 @@
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
                             CreateInTaskParam taskParam = new CreateInTaskParam();
-                            taskParam.setTaskNo(String.valueOf(dto.getWorkNo()));
+                            taskParam.setTaskNo(String.valueOf(dto.getTaskNo()));
                             taskParam.setLocNo(dto.getLocNo());
                             taskParam.setTaskPri(dto.getTaskPri());
                             boolean result = commonService.createInTask(taskParam);
diff --git "a/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.0.docx" "b/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.0.docx"
index a1234f2..5760a1c 100644
--- "a/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.0.docx"
+++ "b/src/main/resources/docs/WCS\345\244\226\351\203\250HTTP API\346\216\245\345\217\243V1.0.docx"
Binary files differ

--
Gitblit v1.9.1