From 757f103f37d83dfb55bb49b3df0b805cb520d4f7 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 11 十月 2025 15:28:26 +0800
Subject: [PATCH] 第三版

---
 src/main/java/com/zy/asrs/entity/param/RCSTaskStatusParam.java                       |   19 +
 src/main/java/com/zy/asrs/service/WorkService.java                                   |    2 
 src/main/java/com/zy/asrs/entity/param/CombParam.java                                |   15 +
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java                          |    4 
 src/main/java/com/zy/asrs/controller/OpenController.java                             |  125 ++++++++++++
 src/main/resources/mapper/LocDetlMapper.xml                                          |    3 
 src/main/webapp/views/pakStore/locDetlQuery.html                                     |    7 
 src/main/java/com/zy/asrs/controller/MobileController.java                           |   40 ++-
 src/main/java/com/zy/common/web/WcsController.java                                   |    8 
 src/main/java/com/zy/asrs/controller/WorkController.java                             |    2 
 src/main/java/com/zy/asrs/controller/WaitPakinController.java                        |   13 +
 src/main/java/com/zy/asrs/task/NewWay/AutoEmptyOutTaskscheduler.java                 |   72 +++++++
 src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java  |   52 ++++
 src/main/java/com/zy/asrs/entity/WaitPakin.java                                      |   17 +
 src/main/webapp/static/js/waitPakin/waitPakin.js                                     |   13 +
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java                          |    5 
 src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java |   49 ++++
 src/main/webapp/views/waitPakin/waitPakin.html                                       |    7 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java                        |    7 
 src/main/webapp/static/js/common.js                                                  |    5 
 src/main/java/com/zy/asrs/entity/LocMast.java                                        |   10 
 src/main/java/com/zy/common/service/CommonService.java                               |  105 +++-------
 src/main/resources/application.yml                                                   |    2 
 23 files changed, 458 insertions(+), 124 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 7971216..c13b547 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -168,22 +168,25 @@
 
     /**
      * 鍑哄簱纭 - 鎵墭鐩樼爜
-     * 1.鍏ㄦ澘 杩斿洖 101
-     * 2.鎷f枡 杩斿洖 103
+     * 31.鍏ㄦ澘鍑哄簱绛夊緟涓嬫灦 -->32.绛夊緟AGV鎼繍绌烘澘鍥炲簱
      */
     @RequestMapping("/pakout/confirm/barcode/auth")
     @ManagerAuth
-    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){
-        if (Cools.isEmpty(barcode)) {
-            return R.ok();
+    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode,
+                                  @RequestParam(required = false) String staNo){
+        if (Cools.isEmpty(barcode)||Cools.isEmpty(staNo)) {
+            return R.error("鎵樼洏鐮佹垨鑰匒GV绔欑偣涓嶈兘涓虹┖");
         }
-        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
-        if (wrkMast != null) {
-            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            // 鍘婚櫎宸插嚭搴撶‘璁ょ殑鏄庣粏
-            wrkDetls.removeIf(wrkDetl -> wrkDetl.getInspect() != null && wrkDetl.getInspect() != 0);
-            return R.ok().add(Cools.add("wrkNo", wrkMast.getWrkNo()).add("ioType", wrkMast.getIoType()).add("list", wrkDetls));
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).eq("io_type", 101));
+        if (Cools.isEmpty(wrkMast)) {
+            return R.error("娌℃湁鎵惧埌璇ユ墭鐩�="+barcode+"瀵瑰簲鐨勫嚭搴撲换鍔�");
         }
+        wrkMast.setWrkSts(32L);//32.绛夊緟AGV鎼繍绌烘澘鍥炲簱
+        wrkMast.setMemo(staNo);//AGV鍙栫┖鎵樼洏绔欑偣
+        wrkMast.setOveMk("Y");
+        wrkMast.setModiTime(new Date());
+        wrkMastService.updateById(wrkMast);
+
         return R.ok();
     }
 
@@ -477,6 +480,19 @@
         rcsParam.put("priority",1);//浼樺厛绾ц秺灏忓厛鎵ц
         rcsParam.put("robot_type",1);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L
         rcsParam.put("MoverID","XCD");
+        String wait_location = "";
+        if(staNo.equals("5001") || staNo.equals("5002") ){
+            wait_location = "4";
+        }else if(staNo.equals("6001") ){
+            wait_location = "122";
+        }else if(staNo.equals("6002") ){
+            wait_location = "120";
+        }else if(staNo.equals("7001") ){
+            wait_location = "120";
+        }else if(staNo.equals("7002") ){
+            wait_location = "120";
+        }
+        rcsParam.put("wait_location",wait_location);//浠诲姟瀹屾垚浼戞伅绔欑偣鍚嶇О
 
         LinkedHashMap<String,Object> map=new LinkedHashMap<>();
         map.put("data",rcsParam);
@@ -516,7 +532,7 @@
         if(bool){
             return R.ok(noww);
         }else {
-            return R.error("涓嬪彂浠诲姟澶辫触");
+            return R.error(msg);
         }
 
     }
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 4f09e0e..7c84355 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,15 +1,18 @@
 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.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.TestMast;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.OpenService;
 import com.zy.asrs.service.impl.LocMastServiceImpl;
+import com.zy.asrs.service.impl.WrkMastServiceImpl;
 import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
@@ -36,6 +39,8 @@
     private OpenService openService;
     @Autowired
     private LocMastServiceImpl locMastService;
+    @Autowired
+    private WrkMastServiceImpl wrkMastService;
 
     @PostMapping("/order/matSync/default/v1")
     @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
@@ -243,13 +248,127 @@
         if (Cools.isEmpty(param)) {
             return R.parse(BaseRes.PARAM);
         }
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel", param.getChannel()));
+        Integer channel = 0;
+        if(param.getGroup().equals("192.168.1.101")){
+            switch (param.getChannel()){
+                case 1: channel = 24;
+                break;
+                case 2: channel = 23;
+                break;
+                case 3: channel = 22;
+                break;
+                case 4: channel = 21;
+                break;
+            }
+        }else if(param.getGroup().equals("192.168.1.102")){
+            switch (param.getChannel()){
+                case 1: channel = 20;
+                break;
+                case 2: channel = 19;
+                break;
+                case 3: channel = 18;
+                break;
+                case 4: channel = 17;
+                break;
+            }
+        }else if(param.getGroup().equals("192.168.1.103")){
+            switch (param.getChannel()){
+                case 1: channel = 16;
+                    break;
+                case 2: channel = 15;
+                    break;
+                case 3: channel = 14;
+                    break;
+                case 4: channel = 13;
+                    break;
+            }
+        }else if(param.getGroup().equals("192.168.1.104")){
+            switch (param.getChannel()){
+                case 1: channel = 1;
+                    break;
+                case 2: channel = 2;
+                    break;
+                case 3: channel = 3;
+                    break;
+                case 4: channel = 4;
+                    break;
+            }
+        }else if(param.getGroup().equals("192.168.1.105")){
+            switch (param.getChannel()){
+                case 1: channel = 5;
+                    break;
+                case 2: channel = 6;
+                    break;
+                case 3: channel = 7;
+                    break;
+                case 4: channel = 8;
+                    break;
+            }
+        }else if(param.getGroup().equals("192.168.1.106")){
+            switch (param.getChannel()){
+                case 1: channel = 9;
+                    break;
+                case 2: channel = 10;
+                    break;
+                case 3: channel = 11;
+                    break;
+                case 4: channel = 12;
+                    break;
+            }
+        }
+        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+                .eq("channel", channel)
+                .eq("loc_sts","F"));
         if (Cools.isEmpty(locMast)) {
-            return R.error("娌℃湁鎵惧埌璇ラ�氶亾----"+param.getChannel());
+            return R.error("娌℃湁鎵惧埌璇ラ�氶亾----"+channel);
         }
 //        浜у搧鐘舵�亄0:鏃�,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触;5.闈欑疆涓�;6:闈欑疆瀹屾垚;7:鏆傚仠娴嬭瘯;8:绱ф�ュ嚭搴�;}
-        locMast.setPackStatus(param.getPackSts());
+        locMast.setPackStatus(param.getStatus());
         locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+        return R.ok();
+    }
+
+    /**
+     * 鑾峰彇agv鐘舵��
+     * @param param
+     * @return
+     * 0锛氬凡楠岃瘉 1锛氱瓑寰呭垎閰� 2锛氬凡鍒嗛厤 3锛氬彇璐т腑 4锛氬凡鍙�
+     * 璐� 5锛氭斁璐т腑 6锛氬凡鏀捐揣 7锛氬畬鎴� 8.浠诲姟澶辫触 9.浠诲姟鍙栨秷 10.浠诲姟寮傚父
+     * 鍙帴鍙�7.瀹屾垚鐨勪换鍔$姸鎬�
+     * 9.浠诲姟鍙栨秷閲嶆柊鍙戦�佺Щ鍔ㄤ换鍔�
+     */
+    @PostMapping("/rbrainrobot/post_task_state")
+//    @AppAuth(memo = "PACK淇℃伅涓嬪彂")
+    public synchronized R postTaskState(@RequestBody(required = false) RCSTaskStatusParam param) {
+        log.info("AGV浠诲姟鍙嶉={}",param);
+        if(Cools.isEmpty(param.getData().getTask_id())) {
+            return R.error("RCS浠诲姟鍙蜂笉鑳戒负绌�");
+        }
+        if(Cools.isEmpty(param.getData().getTask_state())) {
+            return R.error("RCS宸ヤ綔鐘舵�佷笉鑳戒负绌�");
+        }
+        //浠诲姟瀹屾垚鏇存柊琛ョ┖鏉垮畬鎴愪换鍔�
+        //浠诲姟瀹屾垚鏇存柊鍑哄簱瀹屾垚浠诲姟
+        if(param.getData().getTask_state()==7) {
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("packed", param.getData().getTask_id()));
+
+            if(Cools.isEmpty(wrkMast)) {
+                return R.ok();
+            }
+
+            if(wrkMast.getIoType()==110) {
+                wrkMast.setWrkSts(15L);//鍑哄簱浠诲姟杞巻鍙叉。
+                wrkMastService.updateById(wrkMast);
+            }else if(wrkMast.getIoType()==101) {
+                wrkMast.setWrkSts(34L);//AGV鎼繍绌烘墭鐩樺洖搴撳畬鎴�,绛夊緟绌烘澘鍏ュ簱鍚庤浆鍘嗗彶妗c��
+                wrkMastService.updateById(wrkMast);
+            }
+
+        }else if (param.getData().getTask_state()==9){
+
+        }
+
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/controller/WaitPakinController.java b/src/main/java/com/zy/asrs/controller/WaitPakinController.java
index 7d994d8..e679fbc 100644
--- a/src/main/java/com/zy/asrs/controller/WaitPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/WaitPakinController.java
@@ -113,6 +113,19 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/hand/control/complete1")
+    @ManagerAuth
+    @Transactional
+    public R complete(@RequestParam String zpallet){
+        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", zpallet));
+        if (Cools.isEmpty(waitPakin)){
+            return R.error("娌℃湁鎵惧埌璇ユ墭鐩樼爜="+zpallet+"瀵瑰簲鐨勭粍鎵樻。");
+        }
+        waitPakin.setBeBatch(0);//浠�1--銆�0閲嶆柊涓嬪彂agv鎼繍浠诲姟
+        waitPakinService.update(waitPakin,new  EntityWrapper<WaitPakin>().eq("zpallet", zpallet));
+        return R.ok();
+    }
+
     @RequestMapping(value = "/waitPakin/export/auth")
     @ManagerAuth
     public R export(@RequestBody JSONObject param){
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 3ba64de..cf23218 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -101,7 +101,7 @@
     @RequestMapping("/empty/plate/out/start")
     @ManagerAuth(memo = "绌烘澘鍑哄簱")
     public R emptyPlateOutStart(EmptyPlateOutParam param) {
-        workService.emptyPlateOut(param, getUserId());
+        workService.emptyPlateOut("",param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index 0716e43..5307edd 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -94,6 +94,11 @@
     @TableField("loc_type1")
     private Short locType1;
 
+    //    浜у搧鐘舵�亄0:绌洪棽,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触;}
+    @ApiModelProperty(value= "")
+    @TableField("pack_status")
+    private Integer packStatus;
+
     @ApiModelProperty(value= "閫氶亾锛�1銆�2銆�3銆�4銆�5銆�6")
     @TableField("loc_type2")
     private Short locType2;
@@ -185,11 +190,6 @@
     @ApiModelProperty(value= "")
     @TableField("fire_status")
     private Integer fireStatus;
-
-//    浜у搧鐘舵�亄0:绌洪棽,1:寰呮祴,2:娴嬭瘯涓�;3.娴嬭瘯瀹屾垚;4.娴嬭瘯澶辫触;}
-    @ApiModelProperty(value= "")
-    @TableField("pack_status")
-    private Integer packStatus;
 
     @ApiModelProperty(value= "閫氶亾")
     private Integer channel;
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index d3e7ed6..72aa8c1 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -27,6 +27,10 @@
     @ApiModelProperty(value= "鏁伴噺")
     private Double anfme;
 
+    @ApiModelProperty(value= "agv浠诲姟涓嬪彂 锛� 0锛氬緟涓嬪彂 1锛氫笅鍙戞垚鍔� 2锛氫换鍔″畬鎴�")
+    @TableField("be_batch")
+    private Integer beBatch;
+
     @ApiModelProperty(value= "搴撲綅鍙�")
     @TableField("loc_no")
     private String locNo;
@@ -105,10 +109,6 @@
     @TableField("supp_code")
     private String suppCode;
 
-    @ApiModelProperty(value= "agv浠诲姟涓嬪彂 锛� 0锛氬緟涓嬪彂 1锛氫笅鍙戞垚鍔� 2锛氫换鍔″畬鎴�")
-    @TableField("be_batch")
-    private Integer beBatch;
-
     @ApiModelProperty(value= "淇濊川鏈�")
     @TableField("dead_time")
     private String deadTime;
@@ -155,10 +155,13 @@
     public String getBeBatch$(){
         if (null == this.beBatch){ return null; }
         switch (this.beBatch){
-            case 1:
-                return "鏄�";
             case 0:
-                return "鍚�";
+                return "绛夊緟鍛煎彨agv";
+            case 1:
+                return "鍛煎彨agv鍏ュ簱鎼繍鎴愬姛";
+            case 2:
+                return "agv鍏ュ簱鎼繍鎴愬姛";
+
             default:
                 return String.valueOf(this.beBatch);
         }
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index f06b641..2eb16ab 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -9,6 +9,16 @@
  */
 @Data
 public class CombParam {
+    //缁�
+    private String group;
+
+    //閫氶亾
+    private Integer channel;
+
+    private Integer status;
+
+    private Integer groupId;
+
     //packNo	鏄�	瀛楃涓�	PACK鐮�
     private String packNo;
 
@@ -35,7 +45,10 @@
     // 搴撲綅缂栧彿
     private String locNo;
 
-    private Integer channel;
+    //缁勬墭agv婧愮珯鐐�
+    private String staNo;
+
+
 
     private List<CombMat> combMats;
 
diff --git a/src/main/java/com/zy/asrs/entity/param/RCSTaskStatusParam.java b/src/main/java/com/zy/asrs/entity/param/RCSTaskStatusParam.java
new file mode 100644
index 0000000..8a6140f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/RCSTaskStatusParam.java
@@ -0,0 +1,19 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class RCSTaskStatusParam {
+    private Ddata data;
+
+    @Data
+    public class Ddata {
+        private String task_id;
+        private Integer task_state;
+        private String state_name;
+        private String agv_ip;
+        private Integer start_command;
+        private Integer target_command;
+        private String agv_name;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 239535b..b57134b 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -45,7 +45,7 @@
     /**
      * 绌烘澘鍑哄簱
      */
-    void emptyPlateOut(EmptyPlateOutParam param, Long userId);
+    void emptyPlateOut(String agvSourceSite,EmptyPlateOutParam param, Long userId);
 
     /**
      * 鐩樼偣鍑哄簱
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 314f1f1..298e9fb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -161,7 +161,8 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
-                waitPakin.setMemo(param.getBarcode());//AGV婧愮珯
+                waitPakin.setZpallet(param.getBarcode());//鎵樼洏鐮�
+                waitPakin.setMemo(param.getStaNo());//AGV婧愮珯
                 waitPakin.setBeBatch(0);//AGV 浠诲姟绛夊緟涓嬪彂
                 waitPakin.setManu(now.getTime()+"");//鍞竴鐮�
                 if (!waitPakinService.insert(waitPakin)) {
@@ -214,6 +215,10 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setZpallet(param.getBarcode());//鎵樼洏鐮�
+                waitPakin.setMemo(param.getStaNo());//AGV婧愮珯
+                waitPakin.setBeBatch(0);//AGV 浠诲姟绛夊緟涓嬪彂
+                waitPakin.setManu(now.getTime()+"");//鍞竴鐮�
                 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 27bc55b..133e1ca 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -423,7 +423,7 @@
 
     @Override
     @Transactional
-    public void emptyPlateOut(EmptyPlateOutParam param, Long userId) {
+    public void emptyPlateOut(String agvSourceSite,EmptyPlateOutParam param, Long userId) {
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
         }
@@ -454,7 +454,7 @@
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(10D);
             wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
-            wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
+            wrkMast.setStaNo(102); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
             wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -466,6 +466,7 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
             wrkMast.setModiTime(now);
+            wrkMast.setMemo(Cools.isEmpty(agvSourceSite) ? "" : agvSourceSite);
             boolean res = wrkMastService.insert(wrkMast);
             if (!res) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutoEmptyOutTaskscheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutoEmptyOutTaskscheduler.java
new file mode 100644
index 0000000..f09126c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutoEmptyOutTaskscheduler.java
@@ -0,0 +1,72 @@
+package com.zy.asrs.task.NewWay;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.asrs.controller.MobileController;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/7/7
+ */
+@Component
+public class AutoEmptyOutTaskscheduler {
+
+    private static final Logger log = LoggerFactory.getLogger(AutoEmptyOutTaskscheduler.class);
+
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private MobileController mobileController;
+    @Autowired
+    private LocMastServiceImpl locMastService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private ConfigService configService;
+
+    /**
+     * 鑷姩鐢熸垚绌烘澘鍑哄簱浠诲姟缁橰CS
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private synchronized void execute(){
+        List<WrkMast> wrkMastsEmpty = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type",110));
+        if (!Cools.isEmpty(wrkMastsEmpty)){
+            return;
+        }
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 1).ge("wrk_sts", 3));
+        if (!Cools.isEmpty(wrkMast)){
+            //鐢熸垚绌烘澘鍑哄簱浠诲姟
+            EmptyPlateOutParam  emptyPlateOutParam = new EmptyPlateOutParam();
+            emptyPlateOutParam.setOutSite(102);
+            List<String> strings= new ArrayList<>();
+
+            //鏌ョ湅绌烘澘
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").orderBy("row1",true));
+            if (Cools.isEmpty(locMasts)){
+                log.error("涓浆搴撴病鏈夌┖鏉匡紒锛侊紒锛�");
+                return;
+            }
+            //鑾峰彇绌烘爤鏉垮簱浣�
+            strings.add(locMasts.get(0).getLocNo());
+            emptyPlateOutParam.setLocNos(strings);
+            emptyPlateOutParam.setOutSite(Integer.valueOf(wrkMast.getMemo()));
+            workService.emptyPlateOut(wrkMast.getMemo(),emptyPlateOutParam, 9955L);
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
index 9d8031e..5f57130 100644
--- a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignInTasksToRCSScheduler.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.task.NewWay;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.controller.MobileController;
 import com.zy.asrs.entity.WaitPakin;
@@ -9,6 +10,9 @@
 import com.zy.asrs.service.impl.WaitPakinServiceImpl;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.common.service.CommonService;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,15 +38,26 @@
     private WaitPakinServiceImpl waitPakinService;
     @Autowired
     private MobileController mobileController;
+    @Autowired
+    private ConfigService configService;
 
     /**
      * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
      */
     @Scheduled(cron = "0/3 * * * * ? ")
     private synchronized void execute(){
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "Instatus").eq("value", "Y"));
+        if(Cools.isEmpty(config)){
+            return;
+        }
         //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
-        WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("be_batch",1));
+        WaitPakin waitPakin1=waitPakinService.selectOne(new EntityWrapper<WaitPakin>().ge("be_batch",1));
         if(waitPakin1!=null){
+            return;
+        }
+        //鏌ョ湅鏄惁鏈夌┖鏉胯ˉ鍒颁骇绾跨殑浠诲姟
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110));
+        if (!Cools.isEmpty(wrkMast)){
             return;
         }
         //鎵惧埌姝e湪绛夊緟鐨勭粍鎵樻暟鎹�
@@ -51,13 +66,40 @@
         if(waitPakin!=null){
             R r=mobileController.AGVMove(waitPakin.getMemo(),6001+"",1);
             if (r.get("code").equals(200)){
-                R r1=mobileController.AGVMove(6001+"",waitPakin.getMemo(),2);
-                if (r1.get("code").equals(200)){
+//                R r1=mobileController.AGVMove(6001+"",waitPakin.getMemo(),2);
+//                if (r1.get("code").equals(200)){
                     waitPakin.setItemNum(r.get("msg")+"");
                     waitPakin.setBeBatch(1);//0杞�1
-                    waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("manu",waitPakin.getManu()));
-                }
+                    waitPakin.setModiTime(new Date());
+                    config.setValue("N");//N鏄叆搴撳悗鍒囨崲鎴愮┖鏉垮嚭搴�
+                    configService.updateById(config);
+                waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("zpallet",waitPakin.getZpallet()));
+//                }
             }
         }
     }
+
+    /**
+     * 鑷姩娲惧彂绌烘墭鐩樺洖搴撲换鍔�
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private synchronized void execute1(){
+        //wrk_sts 32.绛夊緟AGV鎼繍绌烘澘鍥炲簱
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 101).eq("wrk_sts", 32));
+        if (Cools.isEmpty(wrkMast)){
+            return;
+        }
+
+            R r=mobileController.AGVMove(wrkMast.getMemo(),6002+"",1);
+            if (r.get("code").equals(200)){
+//                R r1=mobileController.AGVMove(6001+"",waitPakin.getMemo(),2);
+//                if (r1.get("code").equals(200)){
+                wrkMast.setPacked(r.get("msg")+"");
+                wrkMast.setWrkSts(33L);//33.AGV鎼繍绌烘墭鐩樺洖搴撲笅鍙戞垚鍔�
+                wrkMast.setModiTime(new Date());
+                wrkMastService.updateById(wrkMast);
+//                }
+            }
+
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java
index e670647..da83863 100644
--- a/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java
+++ b/src/main/java/com/zy/asrs/task/NewWay/AutomaticallyAssignOutTasksToRCSScheduler.java
@@ -4,16 +4,23 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.controller.MobileController;
+import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.BasDevpServiceImpl;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
 import com.zy.asrs.service.impl.WaitPakinServiceImpl;
 import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+
+import java.util.Date;
 
 /**
  * Created by vincent on 2020/7/7
@@ -27,27 +34,55 @@
     private WrkMastService wrkMastService;
     @Autowired
     private MobileController mobileController;
+    @Autowired
+    private LocMastServiceImpl locMastService;
+    @Autowired
+    private BasDevpServiceImpl basDevpService;
+    @Autowired
+    private ConfigService configService;
 
     /**
-     * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橰CS
+     * 鑷姩娲惧彂鍑哄簱浠诲姟缁橰CS
      */
     @Scheduled(cron = "0/3 * * * * ? ")
     private synchronized void execute(){
+        Config config = configService.selectOne(new EntityWrapper<Config>()
+                .eq("code", "Instatus")
+                .eq("value", "N"));
+        if(Cools.isEmpty(config)){
+            return;
+        }
         //鏌ョ湅鏄惁鏈塧gv鍦ㄥ仛鐨勪换鍔�
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 15));
         if(!Cools.isEmpty(wrkMast)){
             return;
         }
-        //鎵惧埌鍑哄簱浠诲姟
+        //鎵惧埌鍑哄簱浠诲姟---绌烘澘鍑哄簱鍜屽叏鏉垮嚭搴�
         //灏嗕换鍔℃。鐘舵�佷粠30杞�15
         WrkMast wrkMast1 =wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
         if(wrkMast1!=null){
-            R r=mobileController.AGVMove(wrkMast1.getMemo()+"","6002",3);
+            String sourceSite="6002";
+            if (wrkMast1.getStaNo()==102){
+                sourceSite="6001";
+            }
+            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("autoing","Y").eq("loading","Y").gt("wrk_no",0));
+            if(Cools.isEmpty(basDevp)){
+                return;
+            }
+            log.info("缁橝GV涓嬪彂ioType={}鍑哄簱浠诲姟锛屾簮绔欑偣={}锛岀洰鏍囩珯鐐�={}",wrkMast1.getIoType(),sourceSite,wrkMast1.getMemo());
+            R r=mobileController.AGVMove(sourceSite,wrkMast1.getMemo(),3);
             if (r.get("code").equals(200)){
-                R r1=mobileController.AGVMove("6002",wrkMast1.getMemo()+"",4);
-                if (r1.get("code").equals(200)){
-                    wrkMast1.setWrkSts(15L);
-                    wrkMast1.setPacked(r.get("msg")+"");//RCS 宸ヤ綔鍙�
+//                R r1=mobileController.AGVMove("6002",wrkMast1.getMemo(),4);
+                if (r.get("code").equals(200)){
+                    if(wrkMast1.getIoType()==110){
+                        wrkMast1.setWrkSts(41L);//涓嬪彂agv鎼繍浠诲姟瀹屾垚--銆嬩骇绾胯ˉ绌烘澘
+                        wrkMast1.setPacked(r.get("msg")+"");//RCS 宸ヤ綔鍙�
+                        config.setValue("Y");//Y鏄┖鏉垮嚭搴撳簱鍚庡垏鎹㈡垚缁勬墭鍏ュ簱
+                        configService.insert(config);
+                    }else{
+                        wrkMast1.setWrkSts(31L);//涓嬪彂缁檃gv鎼繍浠诲姟瀹屾垚-->鍑哄簱鍒板垎鎷e尯
+                    }
+                    wrkMast1.setModiTime(new Date());
                     wrkMastService.updateById(wrkMast1);
                 }
             }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 06f2801..e85e389 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -511,7 +511,7 @@
                             Config config=configService.selectOne(new EntityWrapper<Config>().eq("code","OutTask"));
                             if(config.getValue().equals("Y")){
                                 // 淇敼宸ヤ綔涓绘。鐘舵��
-                                wrkMast.setWrkSts(30L);//绛夊緟涓婃姤
+                                wrkMast.setWrkSts(30L);//绛夊緟缁檃gv涓嬪彂绌烘澘鎼繍浠诲姟
                             }else{
                                 wrkMast.setWrkSts(15L);
                             }
@@ -534,7 +534,7 @@
                             return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                         }else{
                             // 淇敼宸ヤ綔涓绘。鐘舵��
-                            wrkMast.setWrkSts(15L);
+                            wrkMast.setWrkSts(30L);//绛夊緟缁檃gv涓嬪彂绌烘澘鎼繍浠诲姟
                         }
                     }
                     break;
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 6437d04..c17d5c6 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -143,82 +143,47 @@
         // 鏇存柊搴撲綅鎺掑彿
         rowLastno.setCurrentRow(curRow);
         rowLastnoService.updateById(rowLastno);
-
-        if (crnNo==1){
-            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
-                    .eq("loc_sts", "F")
-                    .eq("loc_type1", (short) 3));//寰呮祴搴撲綅
-            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+        if(staDescId==1){
+            List<LocMast> locMast1 = locMastService.selectList(new EntityWrapper<LocMast>()
                     .eq("loc_sts", "O")
-                    .eq("loc_type1", (short) 1));//娴嬭瘯搴撲綅
-            if (!Cools.isEmpty(locMast1)||Cools.isEmpty(locMast2)){
-                List<LocMast> locMasts=locMastService.selectList(new EntityWrapper<LocMast>()
-                        .eq("loc_sts", "O").eq("loc_type1", (short) 3)
-                        .orderBy("row1",false).orderBy("bay1",true));
-                if(!Cools.isEmpty(locMasts)){
-                    locMast = locMasts.get(0);
-                }else{
-                    throw new CoolException("娌℃湁寰呮祴搴撲綅鏃犳硶鍏ュ簱锛侊紒锛�");
-                }
+                    .eq("loc_type1", (short) 3)//寰呮祴搴撲綅
+                    .orderBy("row1",true)
+                    .orderBy("bay1",true));
+            List<LocMast> locMast2 = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("loc_sts", "O")
+                    .eq("loc_type1", (short) 1)//娴嬭瘯搴撲綅
+                    .orderBy("row1",true)
+                    .orderBy("bay1",true));
+            if (Cools.isEmpty(locMast1) || Cools.isEmpty(locMast2)) {
+                throw new CoolException("娌℃湁寰呮祴鍜屾祴璇曞簱浣嶆棤娉曞叆搴擄紒锛侊紒");
             }
-        }
-        // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
-        if (staDescId == 10) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
-            if (locMasts.size() > 0) {
-                for (LocMast loc : locMasts) {
-                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
-                        continue;
-                    }
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo());
-                    // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                    if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
-                        if (shallowLoc.getLocType1()<locTypeDto.getLocType1()){
-                            continue;
-                        }
-                        if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
-                            locMast = shallowLoc;
-                            crnNo = locMast.getCrnNo();
-                            break;
-                        }
-                    }
-                }
+            if(!Cools.isEmpty(locMast2)){
+                locMast=locMast2.get(0);
+            }else if(!Cools.isEmpty(locMast1)){
+                locMast=locMast1.get(0);
             }
-            if (Cools.isEmpty(locMast)) {
-                List<LocMast> locMastList3 = locMastService.selectList(new EntityWrapper<LocMast>()
-                        .eq("loc_sts", "O")
-                        .eq("row1",3)
-                        .notIn("loc_type1",1));
-                if (!Cools.isEmpty(locMastList3)) {
-                    locMast = locMastList3.get(0);
-                }else {
-                    List<LocMast> locMastList1 = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("loc_sts", "O")
-                            .eq("row1",1)
-                            .notIn("loc_type1",1));
-                    if (!Cools.isEmpty(locMastList1)) {
-                        locMast = locMastList1.get(0);
-                    }
-                }
+        }else if(staDescId==10){
+            List<LocMast> locMast1 = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("loc_sts", "O")
+                    .eq("loc_type1", (short) 3)//寰呮祴搴撲綅
+                    .orderBy("row1",true)
+                    .orderBy("bay1",true));
+            List<LocMast> locMast2 = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("loc_sts", "O")
+                    .eq("loc_type1", (short) 1)//娴嬭瘯搴撲綅
+                    .orderBy("row1",true)
+                    .orderBy("bay1",true));
+            if (Cools.isEmpty(locMast1) || Cools.isEmpty(locMast2)) {
+                throw new CoolException("娌℃湁寰呮祴鍜屾祴璇曞簱浣嶆棤娉曞叆绌烘墭锛侊紒锛�");
+            }
+            if(!Cools.isEmpty(locMast1)){
+                locMast=locMast1.get(0);
+            }else if(!Cools.isEmpty(locMast2)){
+                locMast=locMast2.get(0);
             }
         }
 
-        if (Cools.isEmpty(locMast)){
-            locMast = locMastService.queryFreeLocMast(1, locTypeDto.getLocType1());
-//            // 寮�濮嬫煡鎵惧簱浣� ==============================>
-//            int ruleId = Integer.parseInt(Parameter.get().getFindLocRule());
-//            if (whsType != 1) {
-//                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
-//            } else if (ruleId == 1) {  //鎸夋祴璇曡澶囨帓搴忥紝浼樺厛鎺掓弧鍗曞彴璁惧
-//                locMast = locMastService.queryFreeLocMast1(curRow, locTypeDto.getLocType1(), channelMax + 1);
-//            } else if (ruleId == 2) {  //鎸夐�氶亾鎺掑簭锛屽潎鍖�鍒嗛厤姣忓彴璁惧
-//                Short locType2 = getLocType2Small(curRow, locTypeDto.getLocType1());
-//                locMast = locMastService.queryFreeLocMast2(curRow, locTypeDto.getLocType1(), locType2);
-//            } else { //榛樿瑙勫垯
-//                locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
-//            }
-        }
+
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("娌℃湁绌哄簱浣�");
         }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index d1c0b90..60a333f 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -103,6 +103,13 @@
                 }
             }
 
+        }else if (param.getIoType() == 10 && !Cools.isEmpty(param.getBarcode())) {
+            WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+            if (wrkMast != null) {
+                wrkMast.setWrkSts(15L);
+                wrkMast.setModiTime(new Date());
+                wrkMastService.updateById(wrkMast);
+            }
         }
         if (Cools.isEmpty(param.getLocType1())){
             param.setLocType1((short)1);
@@ -162,6 +169,7 @@
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
+        wrkMast.setMemo(waitPakins.get(0).getMemo());//agv鍙栬揣鐐�
         boolean res = wrkMastService.insert(wrkMast);
         if (!res) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index f63be60..46aa72e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://178.18.1.200:1433;databasename=jxtlfasrs
+    url: jdbc:sqlserver://178.18.1.201:1433;databasename=jxtlfasrs
 #    url: jdbc:sqlserver://10.12.55.200:1433;databasename=zjfnasrs
     username: sa
     password: sa@123
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 3d1dedc..31afb95 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -91,6 +91,9 @@
         <if test="matnr!=null and matnr!='' ">
             and a.matnr like '%' + #{matnr} + '%'
         </if>
+        <if test="zpallet!=null and zpallet!='' ">
+            and a.zpallet like '%' + #{zpallet} + '%'
+        </if>
         <if test="maktx!=null and maktx!='' ">
             and a.maktx like '%' + #{maktx} + '%'
         </if>
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index aac7d07..182d927 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -232,7 +232,7 @@
     ,{field: 'specs', align: 'center',title: '閰嶇疆', hide: false}
     ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
     ,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
-    ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: false}
+    ,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
     ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
     ,{field: 'price', align: 'center',title: '鍗曚环', hide: true}
     ,{field: 'sku', align: 'center',title: 'sku', hide: true}
@@ -249,11 +249,12 @@
     ,{field: 'threeCode', align: 'center',title: '绠卞瓙灏哄', hide: true}
     ,{field: 'supp', align: 'center',title: '渚涘簲鍟�', hide: true}
     ,{field: 'suppCode', align: 'center',title: '渚涘簲鍟嗙紪鐮�', hide: true}
-    ,{field: 'beBatch$', align: 'center',title: '鏄惁鎵规', hide: true}
+    ,{field: 'beBatch$', align: 'center',title: 'agv鐘舵��', hide: false}
     ,{field: 'deadTime', align: 'center',title: '淇濊川鏈�', hide: true}
     ,{field: 'deadWarn', align: 'center',title: '闈欑疆鏃堕暱(鍒嗛挓)', hide: false}
     ,{field: 'source$', align: 'center',title: '鍒惰喘', hide: true}
     ,{field: 'check$', align: 'center',title: '瑕佹眰妫�楠�', hide: true}
     ,{field: 'danger$', align: 'center',title: '鍗遍櫓鍝�', hide: true}
+    ,{field: 'memo', align: 'center',title: 'agv婧愮珯鐐�', hide: false}
 ]
 
diff --git a/src/main/webapp/static/js/waitPakin/waitPakin.js b/src/main/webapp/static/js/waitPakin/waitPakin.js
index 8f30fad..09e7d29 100644
--- a/src/main/webapp/static/js/waitPakin/waitPakin.js
+++ b/src/main/webapp/static/js/waitPakin/waitPakin.js
@@ -16,7 +16,8 @@
                 return html;
             }}
         ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
-        ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true})
+        ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true}
+        ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:250})
     return cols;
 }
 
@@ -324,6 +325,16 @@
                    });
                 }
                 break;
+            case 'complete':
+                layer.confirm('纭閲嶆柊鍛煎彨agv杩涜鍏ュ簱鎼繍锛�', {title: '鎵樼洏鐮侊細'+data.zpallet, shadeClose: true}, function(){
+                    http.post(baseUrl+"/hand/control/complete1", {zpallet: data.zpallet, type:1}, function (res) {
+                        $(".layui-laypage-btn")[0].click();
+                        layer.msg(data.wrkNo + res.msg);
+                    })
+                    layer.closeAll();
+
+                });
+                break;
 
         }
     });
diff --git a/src/main/webapp/views/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index 4777250..52892d2 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -69,7 +69,12 @@
         </div>
         <div class="layui-inline">
             <div class="layui-input-inline">
-                <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鎻忚堪" autocomplete="off">
+                <input class="layui-input" type="text" name="maktx" placeholder="鐗╂枡鍚嶇О" autocomplete="off">
+            </div>
+        </div>
+        <div class="layui-inline">
+            <div class="layui-input-inline">
+                <input class="layui-input" type="text" name="zpallet" placeholder="鎵樼洏鐮�" autocomplete="off">
             </div>
         </div>
         <!-- 鏃ユ湡鑼冨洿 -->
diff --git a/src/main/webapp/views/waitPakin/waitPakin.html b/src/main/webapp/views/waitPakin/waitPakin.html
index 84d7817..ed93821 100644
--- a/src/main/webapp/views/waitPakin/waitPakin.html
+++ b/src/main/webapp/views/waitPakin/waitPakin.html
@@ -51,10 +51,13 @@
 </script>
 
 <script type="text/html" id="operate">
-    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
-    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+<!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>-->
+    {{#if (d.beBatch === 1 ) { }}
+    <a class="layui-btn layui-btn-danger layui-btn-xs btn-complete" lay-event="complete">閲嶅彂agv鎼繍</a>
+    {{# } }}
 </script>
 
+
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>

--
Gitblit v1.9.1