From b885f63a2990ece741fc6db5c55aeeae673062b3 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 24 十月 2023 17:22:31 +0800
Subject: [PATCH] 输送线到AGV流程

---
 src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java           |    3 
 src/main/java/com/zy/asrs/service/AgvWrkMastService.java         |    4 
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java   |   91 +++++++++++++++++-----
 src/main/java/com/zy/asrs/controller/AgvOpenController.java      |    6 +
 src/main/java/com/zy/asrs/controller/AgvWrkMastController.java   |    2 
 src/main/java/com/zy/asrs/controller/AgvWorkController.java      |    2 
 src/main/java/com/zy/asrs/controller/MobileController.java       |   13 +++
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java |   29 +++++-
 src/main/java/com/zy/common/web/WcsController.java               |    3 
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java    |   25 ++++-
 src/main/java/com/zy/asrs/controller/AgvMobileController.java    |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java   |   20 +++--
 src/main/java/com/zy/asrs/service/AgvWorkService.java            |    2 
 src/main/resources/application.yml                               |    5 
 14 files changed, 155 insertions(+), 52 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 4e751e0..d1bd0b8 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -79,7 +79,7 @@
             return agvBasDevpService.selectById(devNo);
         }).collect(Collectors.toList());
 
-        workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
+        workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId(),false);
         
         return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�");
     }
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 4c6a853..a02a99c 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -26,6 +26,7 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.EnumSet;
+import java.util.Map;
 
 /**
  * 涓婃姤浜嬩欢绫诲瀷锛坋ventType锛夛細
@@ -97,7 +98,12 @@
         return R.ok();
     }
 
+    @PostMapping("/conveyor/loadContainerFinish ")
+    @AppAuth(memo = "鍙栧鍣ㄥ畬鎴愰�氱煡")
+    public R loadContainerFinish(@RequestBody Map<String,Object> params){
 
+        return R.ok();
+    }
 }
 
 enum AgvTask{
diff --git a/src/main/java/com/zy/asrs/controller/AgvWorkController.java b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
index 8fe7e30..f7aca3d 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWorkController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
@@ -29,7 +29,7 @@
 
         List<AgvBasDevp> agvBasDevpList = JSONArray.parseArray(param, AgvBasDevp.class);
 
-        workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
+        workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId(),false);
         //return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
         return R.ok("鐢熸垚鍏ュ簱宸ヤ綔妗f垚鍔�");
     }
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
index b72a706..56c60df 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -167,7 +167,7 @@
         }
         int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway");
 
-        int code = agvWrkMastService.containerMove(agvWrkMastList);
+        int code = agvWrkMastService.containerMoveIn(agvWrkMastList);
 
         if(code == 0){
             agvWrkMastList.forEach(agvWrkMast -> {
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 441eef3..d23ef8b 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -425,10 +425,21 @@
     /*
     骞冲簱绉诲簱
      */
+    @RequestMapping("/node/move/start")
+    public R nodeMoveStart(@RequestParam String sourceLocNo, @RequestParam String targetLocNo){
 
+
+        return R.ok();
+    }
 
 
     /*
-    
+    骞冲簱搴撳尯鎷f枡淇℃伅
      */
+    @RequestMapping("/node/order/pakout")
+    public R nodeOrderPakout(@RequestParam String locType){
+
+
+        return R.ok();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
index b531382..70ffb2d 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
@@ -15,11 +15,12 @@
             "source_loc_no," +
             "loc_no," +
             "barcode," +
+            "mk," +
             "appe_user," +
             "appe_time," +
             "modi_user," +
             "modi_time) " +
-            "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{appeUser},#{appeTime},#{modiUser},#{modiTime})")
+            "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{mk},#{appeUser},#{appeTime},#{modiUser},#{modiTime})")
     public int insertByIncrease(AgvWrkMast agvWrkMast);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/AgvWorkService.java b/src/main/java/com/zy/asrs/service/AgvWorkService.java
index 9056644..96c64c7 100644
--- a/src/main/java/com/zy/asrs/service/AgvWorkService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWorkService.java
@@ -15,7 +15,7 @@
     /*
      閫氱煡妗f墜鍔ㄧ敓鎴愪换鍔�
      */
-    StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId);
+    StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor);
 
     /*
     鐢熸垚鍑哄簱浠诲姟
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
index 9b827e3..b1bdda0 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -12,11 +12,13 @@
 
     public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException;
 
-    public int containerMove(List<AgvWrkMast> agvWrkMastList) throws IOException;
+    public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException;
 
     public int containerMoveOut(List<AgvWrkMast> agvWrkMastList) throws IOException;
 
     public boolean insertByIncrease(AgvWrkMast agvWrkMast);
 
     public boolean deleteByWrkNo(int wrkNo);
+
+    public int containerArrived(AgvWrkMast agvWrkMast);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 240f471..6ac573e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -69,7 +69,7 @@
     鍏ュ簱
      */
     @Transactional
-    public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId) {
+    public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
 
         Date now = new Date();
 
@@ -88,7 +88,9 @@
             AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor());
             //鐢熸垚宸ヤ綔妗�
             //AgvWrkMast wrkMast = createWrkMast(agvBasDevp, agvLocMast, now, userId);
-            AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId);
+            AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, isConveyor);
+            //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
+            wrkMast.setMk(isConveyor ? "Y" : "N");
             //鐢熸垚宸ヤ綔妗f槑缁�
             //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId);
             agvWaitPakinList.forEach(wp -> {
@@ -134,7 +136,7 @@
             //鍒ゆ柇鏄惁鍏ㄦ澘鍑哄簱
             int ioType = isPakOut(sourceLocNo,anfme) ?  101 : 103;
             //鐢熸垚宸ヤ綔妗�
-            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,barcode,now,userId);
+            AgvWrkMast wrkMast = createWrkMast(ioType,wrkSts,sourceLocNo,targetLocNo,barcode,now,userId,false);
             //鐢熸垚宸ヤ綔妗f槑缁�
             createWrkDetlReWrite(mantr,wrkMast.getWrkNo(),orderNo,batch,anfme,barcode,now,userId,csocode,isoseq);
             //淇敼璁㈠崟淇℃伅
@@ -212,7 +214,7 @@
             Date now = new Date();
 
             //鐢熸垚宸ヤ綔鍏�
-            AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId);
+            AgvWrkMast wrkMast = createWrkMast(107, 21L, locDetl.getLocNo(), agvBasDevp.getDevNo(), agvLocDetl.getSuppCode(), now, userId,false);
             //鐢熸垚宸ヤ綔鏄庣粏妗�
             createWrkDetlReWrite(locDetl.getMatnr(),wrkMast.getWrkNo(),null,locDetl.getBatch(),locDetl.getCount(),wrkMast.getBarcode(),now,userId,agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
             //淇敼搴撲綅淇℃伅
@@ -242,7 +244,7 @@
 
         Date now = new Date();
         //鐢熸垚绉诲簱宸ヤ綔妗�
-        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId);
+        AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,false);
         //鐢熸垚宸ヤ綔鍏氭槑缁�
         createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
         //淇敼鐩爣搴撲綅鐘舵��
@@ -265,7 +267,7 @@
         // 妫�绱㈠簱浣�
         AgvLocMast locMast = agvCommonService.getLocNo(null, agvBasDevp.getFloor());
         // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱
-        createWrkMast(10,201L,agvBasDevp.getDevNo(),locMast.getLocNo(),null,now,userId);
+        createWrkMast(10,201L,agvBasDevp.getDevNo(),locMast.getLocNo(),null,now,userId,false);
         //鏇存柊婧愮珯鐐圭姸鎬�
         updateAgvBasDevp(agvBasDevp,"R");
         //鏇存柊鐩爣搴撲綅鐘舵��
@@ -296,7 +298,7 @@
                     .eq("station_code", param.getStationCode())
                     .eq("loc_sts", "O"));
             //鐢熸垚宸ヤ綔妗�
-            createWrkMast(110,21L,locNo,agvBasDevp.getDevNo(),null,now,userId);
+            createWrkMast(110,21L,locNo,agvBasDevp.getDevNo(),null,now,userId,false);
             //淇敼婧愬簱浣嶇姸鎬�
             updateAgvLocMast(agvLocMast,"R");
             //淇敼鐩爣宸ヤ綔浣嶇姸鎬�
@@ -592,7 +594,7 @@
     /*
     鐢熸垚宸ヤ綔妗�
      */
-    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId){
+    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId, boolean isConveyor){
         AgvWrkMast wrkMast = new AgvWrkMast();
         //鐢熸垚宸ヤ綔鍙�
 //        int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
@@ -610,6 +612,8 @@
         wrkMast.setLocNo(locNo);
         //瀹瑰櫒缂栫爜
         wrkMast.setBarcode(barcode);
+        //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
+        wrkMast.setMk(isConveyor ? "Y" : "N");
         // 婊℃澘锛歒
         //wrkMast.setFullPlt("Y");
         // 鎷f枡
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index db9685d..2cf9450 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.AgvWrkMast;
 import com.zy.asrs.entity.param.AgvTaskCreateParam;
@@ -43,6 +44,9 @@
     @Value("${agv.containerMoveOutPath}")
     private String containerMoveOutPath;
 
+    @Value("${agv.containerArrivedPath}")
+    private String containerArrivedPath;
+
     @Autowired
     AgvWrkMastMapper agvWrkMastMapper;
     @Autowired
@@ -73,11 +77,6 @@
         AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
         agvTaskCreateParam.setTaskType(taskType);
 
-//        //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁�
-//        Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
-//        List<Map<String,String>> positionCodeMapList = new ArrayList<>();
-//        containerMoveParam.put("containerMoveIns",positionCodeMapList);
-
         getRequestParam(agvTaskCreateParam,agvWrkMastList);
 
         return doHttpRequest(agvTaskCreateParam,"鎼繍浠诲姟涓嬪彂",url, taskCreatePath,null,"127.0.0.1");
@@ -86,13 +85,17 @@
     }
 
     //瀹瑰櫒鍏ュ満
-    public int containerMove(List<AgvWrkMast> agvWrkMastList) throws IOException {
+    public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException {
         //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁�
         Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
         List<Map<String,String>> positionCodeMapList = new ArrayList<>();
         containerMoveParam.put("containerMoveIns",positionCodeMapList);
 
         getContainerMoveParam(agvWrkMastList,positionCodeMapList);
+
+        if(Cools.isEmpty(positionCodeMapList)){
+            return 0;
+        }
         return doHttpRequest(containerMoveParam,"瀹瑰櫒鍏ュ満浠诲姟涓嬪彂",url, containerMoveInPath,null,"127.0.0.1");
 
     }
@@ -121,9 +124,23 @@
         return this.delete(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
     }
 
+    //瀹瑰櫒鍒拌揪閫氱煡
+    public int containerArrived(AgvWrkMast agvWrkMast) {
+
+        Map<String,String> containerArrivedParam = new HashMap<>();
+        containerArrivedParam.put("slotCode",agvWrkMast.getSourceLocNo());
+        containerArrivedParam.put("containerCode",agvWrkMast.getBarcode());
+
+        return doHttpRequest(containerArrivedParam,"瀹瑰櫒杈惧埌閫氱煡",url, containerArrivedPath,null,"127.0.0.1");
+    }
+
     private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){
         //寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
         for(AgvWrkMast agvWrkMast : agvWrkMastList){
+            //鍒ゆ柇鏄惁涓鸿緭閫佺嚎鍏ュ簱锛屾槸鍒欎笉闇�瑕佸鍣ㄨ繘鍦鸿姹�
+            if("Y".equals(agvWrkMast.getMk())){
+                continue;
+            }
             Map<String,String> positionCodeMap = new HashMap<>();
             positionCodeMap.put("positionCode",agvWrkMast.getSourceLocNo());
             positionCodeMapList.add(positionCodeMap);
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index ee8b387..ac4939c 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -19,10 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 @Service("locDetlService")
 public class LocDetlServiceImpl extends ServiceImpl<LocDetlMapper, LocDetl> implements LocDetlService {
@@ -110,25 +107,19 @@
         wapperSetCondition(wrapper,"batch",batch);
         wapperSetCondition(wrapper,"three_code",csocode);
         wapperSetCondition(wrapper,"dead_time",isoseq);
-//        if(Cools.isEmpty(batch)){
-//            wrapper.isNull("batch");
-//        }else {
-//            wrapper.eq("batch",batch);
-//        }
 
         List<LocDetl> locDetlList = this.selectList(wrapper);
-        for (LocDetl locDetl : locDetlList) {
-            //鍒ゆ柇褰撳墠搴撲綅璐х墿鏄惁F鍦ㄥ簱
-            LocMast locMast = locMastService.selectById(locDetl.getLocNo());
-            if(!"F".equals(locMast.getLocSts())){
-                continue;
-            }
+
+        Set<LocDetl> resort = resort(locDetlList);
+
+        for (LocDetl locDetl : resort) {
+
             if (issued > 0) {
                 double anfme = locDetl.getAnfme();
                 int ioType = anfme > issued ? 103 : 101;
                 anfme = anfme > issued ? issued : anfme;
                 LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
-                //List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
+
                 List<Integer> outSite = basDevpService.getAvailableOutSite(101);
 
                 locDto.setStaNos(outSite);
@@ -149,14 +140,10 @@
         wapperSetCondition(wrapper,"batch",batch);
         wapperSetCondition(wrapper,"three_code",csocode);
         wapperSetCondition(wrapper,"dead_time",isoseq);
-//        if(Cools.isEmpty(batch)){
-//            wrapper.isNull("batch");
-//        }else {
-//            wrapper.eq("batch",batch);
-//        }
 
         List<LocDetl> locDetlList = this.selectList(wrapper);
-        for (LocDetl locDetl : locDetlList) {
+        Set<LocDetl> resort = resort(locDetlList);
+        for (LocDetl locDetl : resort) {
             //鍒ゆ柇褰撳墠搴撲綅璐х墿鏄惁F鍦ㄥ簱
             LocMast locMast = locMastService.selectById(locDetl.getLocNo());
             if(!"F".equals(locMast.getLocSts())){
@@ -258,4 +245,64 @@
             wrapper.eq(column,condition);
         }
     }
+
+    //鏍规嵁娣辨祬搴撲綅杩涜閲嶆柊鎺掑簭
+    private Set<LocDetl> resort(List<LocDetl> locDetls){
+        Set<LocDetl> locDetlsResort = new LinkedHashSet<>();
+
+        for(LocDetl locDetl : locDetls){
+            LocMast locMast = locMastService.selectById(locDetl.getLocNo());
+            if(!"F".equals(locMast.getLocSts())){
+                continue;
+            }
+
+            List<String> groupOuterLoc = Utils.getGroupOuterLoc(locDetl.getLocNo());
+
+            if(Cools.isEmpty(groupOuterLoc)){
+                locDetlsResort.add(locDetl);
+            }else {
+                groupOuterLoc.add(locDetl.getLocNo());
+                //濡傛灉鏄繁搴撲綅锛屽垯鍏堟壘澶栦晶鐨勫簱浣�
+                for (String locNo : groupOuterLoc){
+                    LocMast locMastOuter = locMastService.selectById(locNo);
+                    //澶栦晶濡傛灉鏄嫞鏂欙紝鍒欏唴娴嬩笉鍏佽鍑�
+                    if("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())){
+                        break;
+                    }
+
+                    if(!"F".equals(locMastOuter.getLocSts())){
+                        continue;
+                    }
+                    locDetlsResort.addAll(this.selectByLocNo(locNo));
+
+                }
+            }
+        }
+        return locDetlsResort;
+    }
+
+    public static void main(String[] args) {
+
+        List<LocDetl> locDetls = new ArrayList<>();
+        LocDetl locDetl2 = new LocDetl();
+        locDetl2.setLocNo("aaa1");
+        LocDetl locDetl3 = new LocDetl();
+        locDetl3.setLocNo("aaa2");
+        locDetls.add(locDetl2);
+        locDetls.add(locDetl3);
+        System.out.println(locDetls.size());
+
+        Set<LocDetl> set = new LinkedHashSet<>();
+        LocDetl locDetl = new LocDetl();
+        LocDetl locDetl1 = new LocDetl();
+        locDetl.setLocNo("aaa");
+        locDetl1.setLocNo("aaa");
+
+        set.add(locDetl);
+        set.add(locDetl1);
+        set.addAll(locDetls);
+
+        System.out.println(set);
+        System.out.println(set.size());
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 3a59dba..a616b3d 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.AgvLocDetl;
 import com.zy.asrs.entity.AgvWaitPakin;
 import com.zy.asrs.entity.AgvWrkDetl;
@@ -139,12 +140,26 @@
     @Transactional
     public ReturnT<String> startPutWayWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
 
-        int startWwrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway");
+        //涓嬪彂浠诲姟
+        int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway");
+        if(startWrkCode != 0){
+            throw new CoolException("浠诲姟涓嬪彂澶辫触");
+        }
 
-        int code = agvWrkMastService.containerMove(agvWrkMastList);
+        //涓嬪彂瀹瑰櫒鍏ュ満鎸囦护 锛堢紦瀛樿揣鏋讹級
+        int code = agvWrkMastService.containerMoveIn(agvWrkMastList);
 
         if(code == 0){
-            agvWrkMastList.forEach(agvWrkMast -> {
+            for(AgvWrkMast agvWrkMast : agvWrkMastList){
+                //涓嬪彂瀹瑰櫒杈惧埌閫氱煡 锛堣緭閫佺嚎锛�
+                if("Y".equals(agvWrkMast.getMk())){
+                    int containerArrivedCode = agvWrkMastService.containerArrived(agvWrkMast);
+                    if(containerArrivedCode != 0){
+                        log.error("瀹瑰櫒鍒拌揪鎸囦护涓嬪彂澶辫触");
+                        continue;
+                    }
+                }
+
                 //202.RCS鍙栬揣涓�
                 agvWrkMast.setWrkSts(202L);
                 agvWrkMastService.updateById(agvWrkMast);
@@ -152,9 +167,7 @@
                     //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
                     agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
                 }
-
-            });
-            //agvWrkMastService.updateBatchById(agvWrkMastList);
+            }
 
             return SUCCESS;
         }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index a0081aa..76cd9f5 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -345,6 +345,7 @@
         AgvBasDevp agvBasDevp = agvBasDevpService.getByDevNo(param.getDevNo());
 
         if(Cools.isEmpty(agvBasDevp) || !"O".equals(agvBasDevp.getLocSts())){
+            //鍘绘壘agv宸ヤ綔妗d换鍔�
             throw new CoolException("褰撳墠绔欑偣涓嶅瓨鍦ㄦ垨鑰呯珯鐐逛笉涓虹┖");
         }
         //缁戝畾绔欑偣
@@ -352,7 +353,7 @@
 
         //鐢熸垚宸ヤ綔妗�
         List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("dev_no", param.getDevNo()));
-        agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, null);
+        agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, null, true);
 
 
         return R.ok();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 39c2117..029db91 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,9 +10,9 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    #url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
+    url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
     #url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
-    url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs
+    #url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs
     username: sa
     password: sa@123
   mvc:
@@ -80,6 +80,7 @@
   taskCreatePath: /task/create
   containerMoveInPath: /expand/api/moveIn/container
   containerMoveOutPath: /expand/api/moveOut/container
+  containerArrivedPath: /conveyor/containerArrived
 
 u8:
   url: http://192.168.1.55:8010

--
Gitblit v1.9.1