From a49cdaa669f18d92e8fef5d84da536c0465670db Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 17 十二月 2025 21:21:07 +0800
Subject: [PATCH] 1.新增组托入库生成AGV搬运任务,执行AGV搬运任务时判断堆垛机接驳站点是否有空料架,有的话需要进行搬离(没有出库任务的情况下) 2.完善配盘出库单agv目标地点,可能是区域也可能是站点 Q为区域;Z为站点 3.完善立库入库找规则方法

---
 src/main/java/com/zy/asrs/service/WorkService.java            |    2 
 src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java    |  170 ++++++++++++++++++++--------
 src/main/java/com/zy/asrs/entity/BasDevp.java                 |    4 
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java        |    2 
 src/main/java/com/zy/asrs/entity/OrderPakout.java             |   13 +-
 src/main/java/com/zy/common/web/WcsController.java            |    8 
 pom.xml                                                       |    2 
 src/main/java/com/zy/common/model/LocTypeDto.java             |   12 +
 src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java    |    1 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java   |   47 ++++++-
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   10 +
 src/main/resources/application-dev.yml                        |    6 
 src/main/webapp/static/js/common.js                           |    2 
 src/main/java/com/zy/asrs/controller/OutController.java       |   27 +++-
 src/main/java/com/zy/common/service/CommonService.java        |   13 +
 15 files changed, 226 insertions(+), 93 deletions(-)

diff --git a/pom.xml b/pom.xml
index ef5393c..d887d0f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,7 +124,7 @@
     </dependencies>
 
     <build>
-        <finalName>ljqwms</finalName>
+        <finalName>hkwms</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index e222a56..5a603ab 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -232,12 +232,13 @@
             i++;
             //閰嶇洏鍑哄簱鍗曚娇鐢紝涓嬪彂闇�瑕佸嚭鐨勭┖鏉夸换鍔�
             if (orderPakout.getDocType() == 11) {
-                if (size<5&&i==size){
+                if (i==size){
                     for (;j<=orderPakout.getPayType();j++){
                         String bar="";
-                        if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
-                            bar = "A01";
-                        }
+                        //鍏蜂綋寰呭畾
+//                        if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
+//                            bar = "A01";
+//                        }
                         LocMast locMast = new  LocMast();
                         if(Cools.isEmpty(bar)){
                             locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
@@ -254,11 +255,17 @@
                         EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
                         emptyPlateOutParam.setOutSite(303);
                         emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
-                        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
+                        String agvSta = "";
+                        if(locMast.getLocType3()==2){
+
+                        }else {
+                            agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+                        }
+                        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri,agvSta);
                         ioPri--;
 
                     }
-                }else if(i == 5){
+                }else if(i == 4){
                     String bar="";
                     if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
                         bar = "A01";
@@ -279,7 +286,13 @@
                     EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
                     emptyPlateOutParam.setOutSite(303);
                     emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locNo);}});
-                    WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri);
+                    String agvSta = "";
+                    if(locMast.getLocType3()==2){
+
+                    }else {
+                        agvSta = orderPakout.getCstmrName();//agv鐩爣绔欑偣浣嶇疆
+                    }
+                    WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,ioPri,agvSta);
                     ioPri--;
                 }
             }
diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java
index 78ca14c..ea6dc42 100644
--- a/src/main/java/com/zy/asrs/entity/BasDevp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -94,9 +94,9 @@
     private String downing;
 
     /**
-     * 闇�姹�1
+     * 鏂欐灦
      */
-    @ApiModelProperty(value= "闇�姹�1")
+    @ApiModelProperty(value= "鏂欐灦")
     private String inreq1;
 
     /**
diff --git a/src/main/java/com/zy/asrs/entity/OrderPakout.java b/src/main/java/com/zy/asrs/entity/OrderPakout.java
index 08ffcc2..07317fb 100644
--- a/src/main/java/com/zy/asrs/entity/OrderPakout.java
+++ b/src/main/java/com/zy/asrs/entity/OrderPakout.java
@@ -74,6 +74,13 @@
     private String shipCode;
 
     /**
+     * AGV鐩爣绔欑偣
+     */
+    @ApiModelProperty(value= "AGV鐩爣绔欑偣")
+    @TableField("cstmr_name")
+    private String cstmrName;
+
+    /**
      * 椤圭洰缂栧彿
      */
     @ApiModelProperty(value= "椤圭洰缂栧彿")
@@ -110,12 +117,6 @@
     @ApiModelProperty(value= "瀹㈡埛缂栧彿")
     private Long cstmr;
 
-    /**
-     * 瀹㈡埛
-     */
-    @ApiModelProperty(value= "瀹㈡埛")
-    @TableField("cstmr_name")
-    private String cstmrName;
 
     /**
      * 鑱旂郴鏂瑰紡
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 835461b4..351548d 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -58,7 +58,7 @@
      * @param param
      * @return
      */
-    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri);
+    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri,String agvSta);
 
     /**
      * 鐩樼偣鍑哄簱
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index 9e42536..4ca46f5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -967,6 +967,7 @@
             orderPakout.setUpdateTime(now);
             orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
             orderPakout.setPakinPakoutStatus(2);
+            orderPakout.setCstmrName(mesCallOutApply.getStationId());//agv鐩爣绔欑偣
             if (!orderPakoutService.insert(orderPakout)) {
                 log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
                 throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index b48d5d9..9b1f3f4 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -606,9 +606,9 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
-                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
-                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
-                }
+//                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
+//                }
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
                 waitPakin.setBatch(detlDto.getBatch());
@@ -704,6 +704,9 @@
 //                if (suplus < 0) {
 //                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + ", 瓒呭嚭褰撳墠鎵樼洏瑁呰浇涓婇檺锛侊紒");
 //                }
+                OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", param.getOrderNo())
+                        .eq("matnr", detlDto.getMatnr()));
 
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
@@ -719,6 +722,7 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setStandby1(detls.getStandby1());//閰嶇洏鍙�
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0e276ff..1cf5a2f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -105,7 +105,7 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
         // 妫�绱㈠簱浣�
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
 //        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
@@ -411,9 +411,22 @@
         String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
         OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
         int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
-        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+//        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+        //鍑哄簱浠诲姟鍫嗗灈鏈哄嚭搴撶珯鐐规寚瀹�
+        String SourceStaNo = "";
+        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
+            SourceStaNo = "303";
+        }else if (locMast.getLocType3()==2&&!Cools.isEmpty(orderPakout.getCstmrName())){
+            SourceStaNo = "307";
+        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
+            SourceStaNo = "402";
+        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
+            SourceStaNo = "401";
+        }
+
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -422,8 +435,8 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(ioPri+0.0); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+        wrkMast.setSourceStaNo(SourceStaNo); // 婧愮珯
+        wrkMast.setStaNo(SourceStaNo); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -435,6 +448,11 @@
         wrkMast.setAppeTime(now);
         wrkMast.setModiUser(userId);
         wrkMast.setModiTime(now);
+        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
+        }else {
+            wrkMast.setMemo(orderPakout.getCstmrName());//agv鐩爣绔欑偣
+        }
+
         if (!wrkMastService.insert(wrkMast)) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
         }
@@ -502,7 +520,7 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
         StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
@@ -629,7 +647,7 @@
 
     @Override
     @Transactional
-    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri) {
+    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri,String agvSta) {
         WrkMast wrkMast = new WrkMast();
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
@@ -642,10 +660,21 @@
             if (Cools.isEmpty(locMast)) {
                 throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�");
             }
+
+            //鍑哄簱浠诲姟鍫嗗灈鏈哄嚭搴撶珯鐐规寚瀹�
+            String SourceStaNo = "";
+            if(locMast.getLocType3()==2){
+                SourceStaNo = "303";
+            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
+                SourceStaNo = "402";
+            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
+                SourceStaNo = "401";
+            }
+
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
-                    .eq("stn_no", param.getOutSite())
+                    .eq("stn_no", SourceStaNo)
                     .eq("crn_no", locMast.getCrnNo());
             StaDesc staDesc = staDescService.selectOne(wrapper);
             Integer sourceStaNo = staDesc.getCrnStn();
@@ -661,7 +690,7 @@
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(ioPri+0.0);
             wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
-            wrkMast.setStaNo(param.getOutSite() + ""); // 鐩爣绔�
+            wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
             wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -673,7 +702,7 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(1L);
             wrkMast.setModiTime(now);
-            wrkMast.setMemo("鐢熸垚鑷姩绌烘澘鍑哄簱");
+            wrkMast.setMemo(agvSta);//agv鐩爣绔欑偣
             boolean res = wrkMastService.insert(wrkMast);
             if (!res) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
diff --git a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
index fbd0213..2c0a156 100644
--- a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -3,10 +3,12 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.Task;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.TaskService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.BasDevpServiceImpl;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AGVTaskReportHandler;
 import org.slf4j.Logger;
@@ -31,58 +33,67 @@
     private Boolean switchErpReportOld;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private BasDevpServiceImpl basDevpService;
 
     /**
      * 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈GV鎼繍浠诲姟
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void createAGVTask(){
-        if (!switchErpReportOld){
+    private void createAGVTask() {
+        if (!switchErpReportOld) {
             return;
         }
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 300));
-        if (wrkMasts.isEmpty()){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
+        if (wrkMasts.isEmpty()) {
             return;
         }
-        for (WrkMast wrkMast : wrkMasts){
+        for (WrkMast wrkMast : wrkMasts) {
             //鏌ヨ鏄惁鏈夋簮绔欏拰鐩爣绔欐湁涓�鏍风殑agv鎼繍浠诲姟
             //濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
+
+            //mes缁欑殑agv鐩爣绔欑偣闇�瑕佽В鏋� Q锛氬尯鍩� 锛� Z锛� 绔欑偣
+            String[] split = wrkMast.getMemo().split("-");
+            //鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�  4.绔欏埌鍖哄煙
+            Integer ioType = split[0].equals("Q") ? 4 : 3;
+            //agv鐩爣绔欑偣
+            String stnNo = split[1];
             Task task1 = taskService.selectOne(new EntityWrapper<Task>()
                     .in("source_sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo())
                     .in("sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo()));
             if (Cools.isEmpty(task1)) {
 
-            //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
-            // 淇濆瓨宸ヤ綔妗�
-            Task task = new Task();
-            Date date = new Date();
-            String TaskNo = wrkMast.getWrkNo()+"-"+date.getTime();
-            task.setWrkNo(wrkMast.getWrkNo())
-                    .setTaskNo(TaskNo)
-                    .setIoTime(date)
-                    .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
-                    .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�
-                    .setTaskType("agv")
-                    .setIoPri(10D)
-                    .setFullPlt("Y") // 婊℃澘锛歒
-                    .setPicking("N") // 鎷f枡
-                    .setExitMk("N")// 閫�鍑�
-                    .setStaNo(wrkMast.getMemo())
-                    .setSourceStaNo(wrkMast.getSourceStaNo())//绌烘枡鏋剁紦瀛樺尯E1
-                    .setEmptyMk("N")// 绌烘澘
-                    .setBarcode(wrkMast.getBarcode())// 鎵樼洏鐮�
-                    .setLinkMis("N")
-                    .setAppeUser(9945L)
-                    .setAppeTime(date)
-                    .setModiUser(9945L)
-                    .setModiTime(date);
-            if (!taskService.insert(task)) {
-                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-            }else {
-                wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
-                wrkMast.setModiTime(date);
-                wrkMastService.updateById(wrkMast);
-            }
+                //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+                // 淇濆瓨宸ヤ綔妗�
+                Task task = new Task();
+                Date date = new Date();
+                String TaskNo = wrkMast.getWrkNo() + "-" + date.getTime();
+                task.setWrkNo(wrkMast.getWrkNo())
+                        .setTaskNo(TaskNo)
+                        .setIoTime(date)
+                        .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+                        .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�  4.绔欏埌鍖哄煙
+                        .setTaskType("agv")
+                        .setIoPri(10D)
+                        .setFullPlt("Y") // 婊℃澘锛歒
+                        .setPicking("N") // 鎷f枡
+                        .setExitMk("N")// 閫�鍑�
+                        .setStaNo(stnNo)
+                        .setSourceStaNo(wrkMast.getSourceStaNo())//绌烘枡鏋剁紦瀛樺尯E1
+                        .setEmptyMk("N")// 绌烘澘
+                        .setBarcode(wrkMast.getBarcode())// 鎵樼洏鐮�
+                        .setLinkMis("N")
+                        .setAppeUser(9945L)
+                        .setAppeTime(date)
+                        .setModiUser(9945L)
+                        .setModiTime(date);
+                if (!taskService.insert(task)) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                } else {
+                    wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
+                    wrkMast.setModiTime(date);
+                    wrkMastService.updateById(wrkMast);
+                }
             }
         }
     }
@@ -91,14 +102,14 @@
      * AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
-        if (!switchErpReportOld){
+    private void execute() {
+        if (!switchErpReportOld) {
             return;
         }
         //鏌ヨ鎵�鏈塧gv寰呬笅鍙戜换鍔�
         List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301));
-        if (wrkSts!=null&& !wrkSts.isEmpty()){
-            for (Task task:wrkSts){
+        if (wrkSts != null && !wrkSts.isEmpty()) {
+            for (Task task : wrkSts) {
                 //鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑agv鎼繍浠诲姟
                 //濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
                 Task task1 = taskService.selectOne(new EntityWrapper<Task>()
@@ -106,17 +117,80 @@
                         .andNew()
                         .in("source_sta_no", task.getSourceStaNo(), task.getStaNo())
                         .in("sta_no", task.getStaNo(), task.getSourceStaNo()));
+                Boolean flag = true;
                 if (Cools.isEmpty(task1)) {
-                    //AGV浠诲姟涓嬪彂
-                    ReturnT<String> start = AGVTaskReportHandler.start(task);
-                    if (!start.isSuccess()){
-                        task.setUpdMk("X");
-                        task.setErrorMemo(start.getMsg());
-                        task.setModiTime(new Date());
-                        if (!taskService.updateById(task)) {
-                            log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+                    //agv鎼繍绉诲姩浠诲姟涓嬪彂鏃讹紝鎼繍鐩爣鐐规槸鍚︽槸绔嬪簱AGV鍜屽爢鍨涙満鎺ラ┏绔欑偣
+                    //濡傛灉鏄帴椹崇珯鐐瑰垯闇�瑕佸垽鏂帴椹崇珯鐐规槸鍚︽湁绌烘枡鏋�
+                    //濡傛灉鏈夌┖鏂欐灦闇�瑕佸垽鏂槸鍚︽湁鍑哄簱浠诲姟
+                    //鏈夊嚭搴撲换鍔″垯绂佹涓嬪彂鏈鎼繍浠诲姟
+                    if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
+                        BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
+                        if (basDevp != null && !Cools.isEmpty(basDevp.getInreq1()) && basDevp.getInreq1().equals("Y")) {
+                            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                                    .in("io_type", 101, 110)
+                                    .eq("sta_no", task1.getStaNo()));
+                            flag = false;
+                            if (Cools.isEmpty(wrkMasts)) {
+                                //鍒ゆ柇鏄惁宸茬粡鐢熸垚绌烘枡鏋舵惉杩愬洖绌烘枡鏋惰ˉ搴撳尯
+                                //濡傛灉鏈夌殑璇濓紝涓嶅湪鐢熸垚浠诲姟
+                                Task task2 = taskService.selectOne(new EntityWrapper<Task>().eq("sta_no", task1.getStaNo()).eq("source_sta_no", task1.getSourceStaNo()));
+                                //鏈夊叆搴撲换鍔℃惉杩愶紝闇�瑕佺敓鎴愮┖鏂欐灦鎼繍鍒扮┖鏂欐灦缂撳啿鍖篈GV浠诲姟
+                                if (Cools.isEmpty(task2)) {
+                                    //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+                                    // 淇濆瓨宸ヤ綔妗�
+                                    String SourceStaNo = "";
+                                    if (task.getStaNo().equals("401")) {
+                                        //澶ф枡鏋剁紦鍐插尯
+                                        SourceStaNo = "E3";
+                                    }else if (task.getStaNo().equals("402")) {
+                                        SourceStaNo = "E2";
+                                    }else if (task.getStaNo().equals("307")) {
+                                        SourceStaNo = "E1";
+                                    }
+                                    Task task3 = new Task();
+                                    Date date = new Date();
+                                    String TaskNo = task.getTaskNo() + "-" + date.getTime();
+                                    task3.setWrkNo(999999)
+                                            .setTaskNo(TaskNo)
+                                            .setIoTime(date)
+                                            .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+                                            .setIoType(4) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�  4.绔欏埌鍖哄煙
+                                            .setTaskType("agv")
+                                            .setIoPri(10D)
+                                            .setFullPlt("Y") // 婊℃澘锛歒
+                                            .setPicking("N") // 鎷f枡
+                                            .setExitMk("N")// 閫�鍑�
+                                            .setStaNo(task.getStaNo())
+                                            .setSourceStaNo(SourceStaNo)//绌烘枡鏋剁紦瀛樺尯E1
+                                            .setEmptyMk("N")// 绌烘澘
+                                            .setBarcode("")// 鎵樼洏鐮�
+                                            .setLinkMis("N")
+                                            .setAppeUser(9945L)
+                                            .setAppeTime(date)
+                                            .setModiUser(9945L)
+                                            .setModiTime(date);
+                                    if (!taskService.insert(task)) {
+                                        throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                                    }
+                                }
+                            }
+                        }
+
+                    }
+                    if (flag) {
+                        //AGV浠诲姟涓嬪彂
+                        ReturnT<String> start = AGVTaskReportHandler.start(task);
+                        if (!start.isSuccess()) {
+                            task.setUpdMk("X");
+                            task.setErrorMemo(start.getMsg());
+                            task.setModiTime(new Date());
+                            if (!taskService.updateById(task)) {
+                                log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+                            }
                         }
                     }
+
+
                 }
             }
         }
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 3e27a83..69cab94 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -228,7 +228,7 @@
                     }
                 }
 
-                String url = MES_URL + "loadComplete";
+                String url = MES_URL + "issueCompleteFit";
                 String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(result));
                 if (!StringUtils.isEmpty(response) && response.contains("Success")) {
                     MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index e8ac917..f0dff62 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -1,6 +1,7 @@
 package com.zy.common.model;
 
 import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasDevp;
 import lombok.Data;
@@ -25,15 +26,20 @@
     public LocTypeDto() {
     }
 
-    public LocTypeDto(BasDevp basDevp) {
-        if (basDevp.getLocType2() == null || basDevp.getLocType2() == 0) {
+    public LocTypeDto(BasDevp basDevp,String barcode) {
+        if (basDevp.getLocType1() == null || basDevp.getLocType1() == 0) {
             throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
         }
-        if (basDevp.getLocType2() == 1) {
+        if (basDevp.getLocType1() == 1) {
             this.locType1 = 1; // 浣庡簱浣�
         } else {
             this.locType1 = 2; // 楂樺簱浣�
         }
+        if (!Cools.isEmpty(barcode)&&barcode.substring(0,1).equals("4")){
+            this.locType2 = 1;
+        }else if (!Cools.isEmpty(barcode)&&barcode.substring(0,1).equals("5")){
+            this.locType2 = 2;
+        }
         log.info(JSON.toJSONString(this));
     }
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index baf4f20..f01b610 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -170,11 +170,16 @@
             throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氳矾寰勪笉瀛樺湪" + staDescId +"," + sourceStaNo);
         }
 
-        Short locType1 = 1;
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_type1", locType1).orderBy("lev1").orderBy("bay1").orderBy("row1"));
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                .eq("loc_sts", "O")
+                .eq("loc_type1", locTypeDto.getLocType1())
+                .eq("loc_type2", locTypeDto.getLocType2())
+                .orderBy("lev1")
+                .orderBy("bay1")
+                .orderBy("row1"));
         if (locMast == null) {
-            log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
-            throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
+            log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locTypeDto.getLocType1());
+            throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locTypeDto.getLocType1());
         }
 
         StartupDto startupDto = new StartupDto();
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index bcad0a9..9196aa2 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -90,9 +90,9 @@
         }
 
         // 婧愮珯鐐圭姸鎬佹娴�
-//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
-//        sourceStaNo.setLocType2(param.getLocType1());
-        LocTypeDto locTypeDto = new LocTypeDto();
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+        sourceStaNo.setLocType1(param.getLocType1());
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,param.getBarcode());
 
         StartupDto dto = null;
         switch (param.getIoType()) {
@@ -156,7 +156,7 @@
         EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
         emptyPlateOutParam.setOutSite(12);
         emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
-        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50);
+        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50,"");
         return R.ok(!Cools.isEmpty(wrkMast)? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
     }
 
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index c807524..1e70885 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -1,5 +1,5 @@
 server:
-  port: 8083
+  port: 8084
   servlet:
     context-path: /@pom.build.finalName@
 
@@ -12,7 +12,7 @@
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
     username: sa
     password: sa@123
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-ljqwms
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-hkwms
 #    username: sa
 #    password: Skyouc#23
 #    url: jdbc:sqlserver://192.168.4.24:1433;databasename=jsxswms
@@ -138,7 +138,7 @@
 
 #娴峰悍瀵规帴
 hik:
-  switch: false
+  switch: true
   url: http://172.26.11.98:80/
 
 #鍗庢檽瀵规帴
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index ca66c3c..7b34545 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/ljqwms";
+var baseUrl = "/hkwms";
 
 // 璇︽儏绐楀彛-楂樺害
 var detailHeight = '80%';

--
Gitblit v1.9.1