From 1a1e3398d15027a65e56e0ed82e54f3a4feea0b6 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期五, 25 四月 2025 09:49:25 +0800
Subject: [PATCH] 123

---
 src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java |    4 
 src/main/java/com/zy/asrs/entity/param/TaskOverParam.java           |    5 
 src/main/java/com/zy/asrs/controller/OpenController.java            |  292 ++++++++++++++++----------------
 src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java            |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java         |  152 +++++++++++++++-
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java                 |    2 
 src/main/java/com/zy/core/MainProcess.java                          |    5 
 src/main/resources/mapper/TransferTaskMapper.xml                    |    8 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java         |    4 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java             |   34 ---
 src/main/resources/application.yml                                  |    6 
 11 files changed, 316 insertions(+), 198 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 1cdf7c3..3f21178 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.controller;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.AppAuth;
 import com.core.common.BaseRes;
@@ -15,12 +14,10 @@
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -105,25 +102,6 @@
         }
     }
 
-    //agv浠诲姟瀹屾垚
-    @PostMapping("/toAgvTaskOver")
-    @AppAuth(memo = "agv浠诲姟瀹屾垚鎺ュ彛")
-    public R getAgvTaskOver(@RequestHeader String appkey,
-                            @RequestBody TaskOverParam param,
-                            HttpServletRequest request) {
-        auth(appkey, param, request);
-        if (Cools.isEmpty(param)) {
-            return R.parse(BaseRes.PARAM);
-        }
-        if (Cools.isEmpty(param.getStartPoint())) {
-            return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖");
-        }
-        if (Cools.isEmpty(param.getStatus())) {
-            return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖");
-        }
-        openService.getAgvTaskOver(param);
-        return R.ok();
-    }
 
     //鍒涘缓浠诲姟
     @PostMapping("/taskCreate")
@@ -189,18 +167,6 @@
         return R.ok();
     }
 
-    //鏌ヨ浠诲姟璇︽儏
-    @GetMapping("/queryTask")
-    public R queryTask(@RequestHeader String appkey,
-                       @RequestParam String taskNo,
-                       HttpServletRequest request) {
-        auth(appkey, taskNo, request);
-        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
-        if (taskWrk == null) {
-            return R.error("浠诲姟涓嶅瓨鍦�");
-        }
-        return R.ok().add(taskWrk);
-    }
 
     //鍙栨斁璐х敵璇�
     @PostMapping("/pick/and/place/v1")
@@ -240,20 +206,6 @@
         return openService.getAgvPickAndPlaceV2(param);
     }
 
-    //鏌ヨ浠诲姟鎸囦护闆嗗悎
-    @GetMapping("/queryTaskCommand")
-    public R queryTaskCommand(@RequestHeader String appkey,
-                              @RequestParam String taskNo,
-                              HttpServletRequest request) {
-        auth(appkey, taskNo, request);
-        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
-        if (taskWrk == null) {
-            return R.error("浠诲姟涓嶅瓨鍦�");
-        }
-
-        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo);
-        return R.ok().add(commandInfos);
-    }
 
     private void auth(String appkey, Object obj, HttpServletRequest request) {
         log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getServletPath(), appkey, JSON.toJSONString(obj));
@@ -266,103 +218,6 @@
         }
     }
 
-    //AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛
-//    @PostMapping("/targetWharfApply")
-//    @AppAuth(memo = "AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛")
-//    public R targetWharfApply(@RequestHeader String appkey,
-//                              @RequestBody WMSAndAGVInterfaceParam param,
-//                              HttpServletRequest request) throws IOException {
-//        auth(appkey, param, request);
-//
-//        if (Cools.isEmpty(param)) {
-//            return R.error("鍙傛暟涓虹┖锛�");
-//        } else if (Cools.isEmpty(param.getTaskNo())) {
-//            return R.error("宸ヤ綔鍙蜂负绌猴紒");
-//        } else if (Cools.isEmpty(param.getContainerCode())) {
-//            return R.error("鎵樼洏缂栫爜涓虹┖锛�");
-//        } else if (Cools.isEmpty(param.getWharfSource())) {
-//            return R.error("婧愮爜澶翠负绌猴紒");
-//        } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) {
-//            return R.error("绌洪棽鐨勫叆搴撶爜澶达紙AGV锛変负绌猴紒");
-//        }
-//        R r = openService.AgvToWCSToWms(param);
-//        apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
-//                , request.getRemoteAddr() + request.getRequestURI()
-//                , appkey
-//                , request.getRemoteAddr()
-//                , JSON.toJSONString(param)
-//                , r.toString()
-//                , true
-//        );
-//        return r;
-//    }
-//
-//    //AGV璇锋眰鍔ㄤ綔鎺ュ彛
-//    @PostMapping("/agvTaskRequest")
-//    @AppAuth(memo = "AGV璇锋眰鍔ㄤ綔鎺ュ彛")
-//    public R agvTaskRequest(@RequestHeader String appkey,
-//                            @RequestBody WMSAndAGVInterfaceParam param,
-//                            HttpServletRequest request) {
-//        auth(appkey, param, request);
-//        if (Cools.isEmpty(param)) {
-//            return R.error("鍙傛暟涓虹┖锛�");
-//        } else if (Cools.isEmpty(param.getRequestType())) {
-//            return R.error("璇锋眰绫诲瀷涓虹┖锛�");
-//        } else if (Cools.isEmpty(param.getWharfCode())) {
-//            return R.error("鐮佸ご缂栧彿涓虹┖锛�");
-//        }
-//
-//        Map<String, Integer> map = new HashMap<>();
-//        map.put("J-1102", 102);
-//        map.put("J-1101", 101);
-//        map.put("J-1103", 105);
-//        map.put("J-1104", 106);
-//        map.put("J-1105", 109);
-//        map.put("J-1106", 110);
-//        map.put("J-1107", 113);
-//        map.put("J-1108", 114);
-//        map.put("J-1109", 117);
-//        map.put("J-1110", 118);
-//        map.put("J-1111", 121);
-//        map.put("J-1112", 122);
-//        map.put("H-1102", 300);
-//        map.put("H-1101", 305);
-//        map.put("G-1102", 400);
-//        map.put("G-1101", 405);
-////        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-////                .eq("stn_desc", param.getWharfCode()));
-////
-////        if (Cools.isEmpty(staDesc)){
-////            return R.error("绋嬪簭鎶ラ敊锛屾湭鏌ヨ鍒扮珯鐐�");
-////        }
-//        if (Cools.isEmpty(map.get(param.getWharfCode()))) {
-//            return R.error("鏈煡璇㈠埌绔欑偣");
-//        }
-//        BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
-//        if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) {
-//            apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
-//                    , request.getRemoteAddr() + request.getRequestURI()
-//                    , appkey
-//                    , request.getRemoteAddr()
-//                    , JSON.toJSONString(param)
-//                    , R.ok().toString()
-//                    , true
-//            );
-//            return R.ok("鍙叆");
-//        } else {
-//            apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
-//                    , request.getRemoteAddr() + request.getRequestURI()
-//                    , appkey
-//                    , request.getRemoteAddr()
-//                    , JSON.toJSONString(param)
-//                    , R.error("绔欑偣鐘舵�佷笉鍙叆").toString()
-//                    , true
-//            );
-//            return R.error("绔欑偣鐘舵�佷笉鍙叆");
-//        }
-//
-//
-//    }
 
     //浠诲姟涓嬪彂鎺ュ彛
     @PostMapping("/outboundTaskSend")
@@ -402,7 +257,7 @@
                         .eq("stn_no", param.getTerminalNo()));
                 if (Cools.isEmpty(staDesc)) {
                     map.put("Code", "0");
-                    map.put("Msg", "鍑哄簱璺姴涓嶅瓨鍦紒");
+                    map.put("Msg", "鍑哄簱璺緞涓嶅瓨鍦紒");
                     return map;
                 }
                 r = openService.taskCreate(new TaskCreateParam(param, staDesc.getCrnNo()));
@@ -509,4 +364,149 @@
         return R.ok(crnStatusParams);
     }
 
+
+    //鏌ヨ浠诲姟璇︽儏
+    @GetMapping("/queryTask")
+    public R queryTask(@RequestHeader String appkey,
+                       @RequestParam String taskNo,
+                       HttpServletRequest request) {
+        auth(appkey, taskNo, request);
+        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
+        if (taskWrk == null) {
+            return R.error("浠诲姟涓嶅瓨鍦�");
+        }
+        return R.ok().add(taskWrk);
+    }
+
+    //鏌ヨ浠诲姟鎸囦护闆嗗悎
+    @GetMapping("/queryTaskCommand")
+    public R queryTaskCommand(@RequestHeader String appkey,
+                              @RequestParam String taskNo,
+                              HttpServletRequest request) {
+        auth(appkey, taskNo, request);
+        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
+        if (taskWrk == null) {
+            return R.error("浠诲姟涓嶅瓨鍦�");
+        }
+
+        List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo);
+        return R.ok().add(commandInfos);
+    }
+
+
+    //AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛
+//    @PostMapping("/targetWharfApply")
+//    @AppAuth(memo = "AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛")
+//    public R targetWharfApply(@RequestHeader String appkey,
+//                              @RequestBody WMSAndAGVInterfaceParam param,
+//                              HttpServletRequest request) throws IOException {
+//        auth(appkey, param, request);
+//
+//        if (Cools.isEmpty(param)) {
+//            return R.error("鍙傛暟涓虹┖锛�");
+//        } else if (Cools.isEmpty(param.getTaskNo())) {
+//            return R.error("宸ヤ綔鍙蜂负绌猴紒");
+//        } else if (Cools.isEmpty(param.getContainerCode())) {
+//            return R.error("鎵樼洏缂栫爜涓虹┖锛�");
+//        } else if (Cools.isEmpty(param.getWharfSource())) {
+//            return R.error("婧愮爜澶翠负绌猴紒");
+//        } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size() == 0) {
+//            return R.error("绌洪棽鐨勫叆搴撶爜澶达紙AGV锛変负绌猴紒");
+//        }
+//        R r = openService.AgvToWCSToWms(param);
+//        apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
+//                , request.getRemoteAddr() + request.getRequestURI()
+//                , appkey
+//                , request.getRemoteAddr()
+//                , JSON.toJSONString(param)
+//                , r.toString()
+//                , true
+//        );
+//        return r;
+//    }
+//
+//    //AGV璇锋眰鍔ㄤ綔鎺ュ彛
+//    @PostMapping("/agvTaskRequest")
+//    @AppAuth(memo = "AGV璇锋眰鍔ㄤ綔鎺ュ彛")
+//    public R agvTaskRequest(@RequestHeader String appkey,
+//                            @RequestBody WMSAndAGVInterfaceParam param,
+//                            HttpServletRequest request) {
+//        auth(appkey, param, request);
+//        if (Cools.isEmpty(param)) {
+//            return R.error("鍙傛暟涓虹┖锛�");
+//        } else if (Cools.isEmpty(param.getRequestType())) {
+//            return R.error("璇锋眰绫诲瀷涓虹┖锛�");
+//        } else if (Cools.isEmpty(param.getWharfCode())) {
+//            return R.error("鐮佸ご缂栧彿涓虹┖锛�");
+//        }
+//
+//        Map<String, Integer> map = new HashMap<>();
+//        map.put("J-1102", 102);
+//        map.put("J-1101", 101);
+//        map.put("J-1103", 105);
+//        map.put("J-1104", 106);
+//        map.put("J-1105", 109);
+//        map.put("J-1106", 110);
+//        map.put("J-1107", 113);
+//        map.put("J-1108", 114);
+//        map.put("J-1109", 117);
+//        map.put("J-1110", 118);
+//        map.put("J-1111", 121);
+//        map.put("J-1112", 122);
+//        map.put("H-1102", 300);
+//        map.put("H-1101", 305);
+//        map.put("G-1102", 400);
+//        map.put("G-1101", 405);
+////        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+////                .eq("stn_desc", param.getWharfCode()));
+////
+////        if (Cools.isEmpty(staDesc)){
+////            return R.error("绋嬪簭鎶ラ敊锛屾湭鏌ヨ鍒扮珯鐐�");
+////        }
+//        if (Cools.isEmpty(map.get(param.getWharfCode()))) {
+//            return R.error("鏈煡璇㈠埌绔欑偣");
+//        }
+//        BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode()));
+//        if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))) {
+//            apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
+//                    , request.getRemoteAddr() + request.getRequestURI()
+//                    , appkey
+//                    , request.getRemoteAddr()
+//                    , JSON.toJSONString(param)
+//                    , R.ok().toString()
+//                    , true
+//            );
+//            return R.ok("鍙叆");
+//        } else {
+//            apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛"
+//                    , request.getRemoteAddr() + request.getRequestURI()
+//                    , appkey
+//                    , request.getRemoteAddr()
+//                    , JSON.toJSONString(param)
+//                    , R.error("绔欑偣鐘舵�佷笉鍙叆").toString()
+//                    , true
+//            );
+//            return R.error("绔欑偣鐘舵�佷笉鍙叆");
+//        }
+//
+//
+//    }
+//    @PostMapping("/toAgvTaskOver")
+//    @AppAuth(memo = "agv浠诲姟瀹屾垚鎺ュ彛")
+//    public R getAgvTaskOver(@RequestHeader String appkey,
+//                            @RequestBody TaskOverParam param,
+//                            HttpServletRequest request) {
+//        auth(appkey, param, request);
+//        if (Cools.isEmpty(param)) {
+//            return R.parse(BaseRes.PARAM);
+//        }
+//        if (Cools.isEmpty(param.getStartPoint())) {
+//            return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖");
+//        }
+//        if (Cools.isEmpty(param.getStatus())) {
+//            return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖");
+//        }
+//        openService.getAgvTaskOver(param);
+//        return R.ok();
+//    }
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
index 16e8931..f3aac37 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskOverParam.java
@@ -17,6 +17,11 @@
      */
     private Integer startPoint;
     /**
+     * 楂樺害
+     */
+    private Integer height;
+
+    /**
      * 1鏀俱��0鍙�
      */
     private int type;
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 643b890..75ce6ea 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -39,4 +39,6 @@
 
     List<LocMast> selectLocByLev(@Param("lev") Integer lev);
 
+
+
 }
diff --git a/src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java b/src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
index 2a68e9f..afce76f 100644
--- a/src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TransferTaskMapper.java
@@ -9,6 +9,8 @@
 @Repository
 public interface TransferTaskMapper extends BaseMapper<TransferTask> {
 
+    TransferTask selectByStartPoint(Integer startPoint);
 
+    TransferTask selectByEndPoint(Integer endPoint);
 
 }
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 aa40e13..74d742c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,12 +7,18 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.controller.CrnController;
 import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
 import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.wms.StorageEscalationParam;
-import com.zy.asrs.mapper.*;
+import com.zy.asrs.mapper.BasCrnErrorMapper;
+import com.zy.asrs.mapper.StaDescMapper;
+import com.zy.asrs.mapper.TaskWrkMapper;
+import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -29,6 +35,7 @@
 import com.zy.core.thread.SiemensDevpThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -36,6 +43,7 @@
 import java.io.IOException;
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
@@ -55,6 +63,8 @@
     @Autowired
     private LocMastService locMastService;
     @Autowired
+    private LocDetlService locDetlService;
+    @Autowired
     private BasCrnpService basCrnpService;
     @Autowired
     private BasDevpService basDevpService;
@@ -66,10 +76,9 @@
     private TaskWrkMapper taskWrkMapper;
 
     @Autowired
-    private DevpTaskMapper devpTaskMapper;
-    @Autowired
     private TaskWrkService taskWrkService;
-
+    @Autowired
+    private CommonService commonService;
     @Autowired
     private StaDescMapper staDescMapper;
 
@@ -87,6 +96,22 @@
 
     @Autowired
     private TransferTaskService transferTaskService;
+
+    @Autowired
+    private WrkMastService wrkMastService;
+
+    @Autowired
+    private WrkDetlService wrkDetlService;
+
+    @Value("${loc-move.enable}")
+    private boolean enable;
+    @Value("${loc-move.crn1}")
+    private boolean crn1;
+    @Value("${loc-move.crn2}")
+    private boolean crn2;
+    @Value("${loc-move.crn3}")
+    private boolean crn3;
+
 
     public void generateStoreWrkFile() throws IOException, InterruptedException {
         try {
@@ -838,7 +863,7 @@
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
-                if (devp.getId() == 2){
+                if (devp.getId() == 2) {
                     continue;
                 }
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -1003,23 +1028,120 @@
     /**
      * 璺戝簱绋嬪簭
      */
-    public void debug() {
-        //棣栧厛搴撲綅鏈変竴涓湪搴撶殑搴撲綅
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F"));
-        if (locMast != null) {
-            // 鍐嶇敓鎴愪竴涓Щ搴撲换鍔�
-            LocMast mk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").ne("mk", 1));
-
+    public void debug(String sts, Long modiUser, Integer loc_type1) {
+        if (!enable) {
+            return;
         }
-
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+        if (basCrnps.isEmpty()) {
+            return;
+        }
+        for (BasCrnp basCrnp : basCrnps) {
+            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) {
+                continue;
+            }
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11));
+            if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) {
+                int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
+                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
+                if (locMastStart == null || i > 1) {
+                    continue;
+                }
+                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("loc_sts", "O")
+                        .eq("crn_no", basCrnp.getCrnNo())
+                        .eq("loc_type1", locMastStart.getLocType1())
+                        .ne("modi_user", 77));
+                if (Cools.isEmpty(locMasts)) {
+                    continue;
+                }
+                Random random = new Random();
+                LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size()));
+                ReturnT<String> result = locMove(locMastStart, locMastEnd, basCrnp.getCrnNo());
+                if (!result.isSuccess()) {
+                    log.error("澶勭悊澶辫触");
+                }
+            }
+        }
     }
 
+
+    public void locMove(LocMast sourceLoc, LocMast locNo, Long userId) {
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc.getLocNo()));
+        LocMast loc = locMastService.selectById(locNo);
+        if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
+            throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
+        }
+        Date now = new Date();
+        // 鑾峰彇宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+        // 淇濆瓨宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+        wrkMast.setIoPri(10D);
+        wrkMast.setCrnNo(sourceLoc.getCrnNo());
+        wrkMast.setSourceLocNo(sourceLoc.getLocNo()); // 婧愬簱浣�
+        wrkMast.setLocNo(locNo.getLocNo()); // 鐩爣搴撲綅
+        wrkMast.setFullPlt(Cools.isEmpty(locDetls) ? "N" : "Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+        wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setLinkMis("N");
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 宸ヤ綔妗f槑缁嗕繚瀛�
+        for (LocDetl locDetl : locDetls) {
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(locDetl);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAnfme(locDetl.getAnfme());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(userId);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+        }
+        // 淇敼婧愬簱浣嶇姸鎬�
+        if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+            sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+            sourceLoc.setModiUser(userId);
+            sourceLoc.setModiTime(now);
+            if (!locMastService.updateById(sourceLoc)) {
+                throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+            }
+        } else {
+            throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細" + sourceLoc.getLocSts$());
+        }
+        // 淇敼鐩爣搴撲綅鐘舵��
+        if (loc.getLocSts().equals("O")) {
+            loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+            loc.setModiTime(now);
+            loc.setModiUser(userId);
+            if (!locMastService.updateById(loc)) {
+                throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + loc.getLocSts$());
+        }
+    }
 
     /**
      * 杞Щ浠诲姟涓嬪彂
      */
     public void transferTaskStart() {
-
         for (DevpSlave.Sta sta : slaveProperties.getDevp().get(1).getInSta()) {
             try {
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
@@ -1082,7 +1204,7 @@
                         continue;
                     }
                     log.info("杞Щ浠诲姟瀹屾垚锛歵ransferTask:" + JSON.toJSONString(transferTask));
-                    transferTask.setStatus(5);
+                    transferTask.setStatus(3);
                     transferTaskService.updateById(transferTask);
                 }
             } catch (Exception e) {
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8983bdf..a304dd6 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -270,7 +270,11 @@
         if (Cools.isEmpty(basDevp)) {
             return R.error("绔欑偣鍙锋湁璇�" + param.getStartPoint());
         }
+        if (Cools.isEmpty(param.getHeight())) {
+            return R.error("楂樺害涓嶈兘涓虹┖" + param.getStartPoint());
+        }
         if (param.getType() == 0 && basDevp.getAgvStartPick() == 1) {
+            basDevp.setInreq2(param.getHeight().toString());
             return R.ok();
         } else if (param.getType() == 1 && basDevp.getAgvStartPlace() == 1) {
             return R.ok();
diff --git a/src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
index 6fcbf16..261e7ea 100644
--- a/src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TransferTaskServiceImpl.java
@@ -14,11 +14,11 @@
 
     @Override
     public TransferTask selectByStartPoint(Integer startPoint) {
-        return null;
+        return this.baseMapper.selectByStartPoint(startPoint);
     }
 
     @Override
     public TransferTask selectByEndPoint(Integer endPoint) {
-        return null;
+        return this.baseMapper.selectByEndPoint(endPoint);
     }
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index decaf4d..5234ba5 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -40,7 +40,10 @@
                         continue;
                     }
                     // 璺戝簱绋嬪簭
-                    //mainService.debug();
+                    //mainService.debug("F");
+
+                    mainService.transferTaskStart();
+                    mainService.transferTaskEnd();
 
 
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index a245b82..77c318a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,20 +121,6 @@
         this.slave = slave;
     }
 
-    public static void main(String[] args) {
-        ArrayList<Integer> staNos = staNos1;
-        System.out.println(staNos.indexOf(129));
-        System.out.println(staNos.size());
-        for (int i = 0; i < staNos.size(); i++) {
-//            System.out.println(i*2);
-//            System.out.println(i*2 + 200);
-//            System.out.println(i);
-        }
-        int index = staNos.indexOf(128);
-        System.out.println(index * 2);
-        System.out.println(index * 2 + 200);
-    }
-
 
     private ArrayList<Integer> getStaNo() {
         switch (slave.getId()) {
@@ -586,25 +572,5 @@
         siemensS7Net.ConnectClose();
     }
 
-//    public static void main(String[] args) throws Exception {
-//        DevpSlave slave = new DevpSlave();
-//        slave.setIp("192.168.2.125");
-//        SiemensDevpThread devpThread = new SiemensDevpThread(slave);
-//        devpThread.connect();
-//        devpThread.read();
-//        // 鍐�
-//        StaProtocol staProtocol = devpThread.getStation().get(1);
-//        staProtocol.setWorkNo((short) 232);
-//        staProtocol.setStaNo((short) 6);
-//        staProtocol.setAutoing(true);
-//        staProtocol.setEmptyMk(true);
-//        staProtocol.setInEnable(true);
-//        devpThread.write(staProtocol);
-//        System.out.println("----------------------------------------");
-//        // 璇�
-//        devpThread.read();
-//        System.out.println(JSON.toJSONString(devpThread.station));
-//
-//    }
 
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index efb5d3b..a592115 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -60,3 +60,9 @@
   successCode: 200
   msg: msg
   data: data
+loc-move:
+  enable: false
+  crn1: false
+  crn2: false
+  crn3: false
+  crn4: false
diff --git a/src/main/resources/mapper/TransferTaskMapper.xml b/src/main/resources/mapper/TransferTaskMapper.xml
index a591d23..23f14b1 100644
--- a/src/main/resources/mapper/TransferTaskMapper.xml
+++ b/src/main/resources/mapper/TransferTaskMapper.xml
@@ -4,4 +4,12 @@
 
 
 
+    <select id="selectByStartPoint" resultType="com.zy.asrs.entity.TransferTask">
+        select top 1 * from wcs_transfer_task where start_point = #{startPoint} and  status = 1
+    </select>
+
+    <select id="selectByEndPoint" resultType="com.zy.asrs.entity.TransferTask">
+        select top 1 * from wcs_transfer_task where targetPoint = #{endPoint} and  status = 2
+    </select>
+
 </mapper>

--
Gitblit v1.9.1