From eadb3c4c77dd9008030ec029c4c55727084253ed Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 18 七月 2023 16:14:44 +0800
Subject: [PATCH] agv 入库接口调整

---
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |    3 
 src/main/webapp/views/mat/mat.html                                |    7 
 src/main/java/com/zy/asrs/service/AgvWrkMastService.java          |    8 +
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |    5 
 src/main/java/com/zy/asrs/controller/AgvOpenController.java       |   82 +++++++++-
 src/main/java/com/zy/asrs/controller/AgvWrkMastController.java    |   51 ++-----
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java  |   76 ++++++++++
 src/main/webapp/static/js/agvWrkMast/wrkMast.js                   |    2 
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java           |   55 +++++++
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java     |   86 ++++++++++++
 src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js             |   10 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |   19 +-
 src/main/webapp/static/js/agvLocMast/locMast.js                   |    2 
 src/main/webapp/static/js/common.js                               |    2 
 14 files changed, 333 insertions(+), 75 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index 08a651a..e825c78 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -1,14 +1,17 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.AppAuth;
+import com.core.common.Cools;
 import com.core.common.R;
-import com.zy.asrs.entity.AgvWaitPakin;
-import com.zy.asrs.entity.AgvWrkDetl;
 import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.entity.ApiLog;
 import com.zy.asrs.entity.param.AgvTaskCallBackParam;
 import com.zy.asrs.service.*;
 import com.zy.common.web.BaseController;
 import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -20,21 +23,49 @@
 import javax.annotation.PostConstruct;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Date;
 import java.util.EnumSet;
 
+/**
+ * 涓婃姤浜嬩欢绫诲瀷锛坋ventType锛夛細
+ * 飦� task锛氫笂鎶ヤ换鍔$姸鎬併��
+ * 飦� task_allocated: 涓婃姤浠诲姟鍒嗛厤缁欐満鍣ㄤ汉銆�
+ * 飦� tote_load锛氫笂鎶ュ彇绠辩姸鎬併��
+ * 飦� tote_unload锛氫笂鎶ユ斁绠辩姸鎬併��
+ * 飦� robot_reach锛氭満鍣ㄤ汉鍒拌揪宸ヤ綔绔欍��
+ * 飦� weight锛氱О閲嶄簨浠跺洖璋冦��
+ * 飦� rfid锛歊FID璇嗗埆浜嬩欢鍥炶皟銆�
+ *
+ * 浠诲姟鐘舵�侊紙status锛夛細
+ * 飦� success锛氭垚鍔熴��
+ * 飦� fail锛氬け璐ャ��
+ * 飦� cancel锛氬彇娑堛��
+ * 飦� suspend锛氭寕璧枫��
+ */
+@Slf4j
 @RestController
 @RequestMapping("/agv")
 public class AgvOpenController extends BaseController {
 
     @Autowired
     AgvWrkMastService agvWrkMastService;
+    @Autowired
+    ApiLogService apiLogService;
 
     @PostMapping("/task/event/status")
+    @AppAuth(memo = "ESS浠诲姟鍥炶皟")
     public R taskEventStaus(@RequestBody AgvTaskCallBackParam param){
 
-        int wrkMastCount = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
-        if(wrkMastCount < 1){
+        //淇濆瓨姣忔璋冪敤璇ユ帴鍙g殑鍙傛暟锛屼綔涓哄巻鍙插彲鏌ヨ
+        //saveApiLog(param);
+
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
+        if(Cools.isEmpty(agvWrkMast)){
             return R.error("浠诲姟缂栧彿閿欒");
+        }
+
+        if(!checkParam(param,agvWrkMast)){
+            return R.error("浠诲姟鍙傛暟涓庡伐浣滄。鍙傛暟涓嶇鍚�");
         }
 
         AgvTask agvTask = AgvTask.valueOf(param.getEventType());
@@ -45,13 +76,32 @@
         } catch (NoSuchMethodException e) {
             return R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎");
         } catch (InvocationTargetException e) {
-            e.printStackTrace();
+            log.error(e.getMessage());
             return R.error();
         } catch (IllegalAccessException e) {
-            e.printStackTrace();
+            log.error(e.getMessage());
             return R.error();
         }
         return R.ok();
+    }
+
+    private boolean checkParam(AgvTaskCallBackParam param, AgvWrkMast agvWrkMast){
+        if(!agvWrkMast.getLocNo().equals(param.getLocationCode())){
+            return false;
+        }
+        if(!agvWrkMast.getSourceLocNo().equals(param.getStationCode())){
+            return false;
+        }
+        return true;
+    }
+
+    private void saveApiLog(AgvTaskCallBackParam param){
+        ApiLog apiLog = new ApiLog();
+        apiLog.setNamespace("ESS浠诲姟鍥炶皟");
+        apiLog.setUrl("/agv/task/event/status");
+        apiLog.setRequest(JSONObject.toJSONString(param));
+        apiLog.setCreateTime(new Date());
+        apiLogService.insert(apiLog);
     }
 
 }
@@ -64,6 +114,11 @@
     task{
         @Transactional
         public void success(AgvTaskCallBackParam param) {
+
+            //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
+            agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),205);
+
+            /*
             int wrkNo = Integer.valueOf(param.getTaskCode());
             String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
             //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
@@ -78,6 +133,7 @@
             agvWaitPakinLogService.save(barcode);
             //鍒犻櫎鍏ュ簱閫氱煡妗�
             agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
+             */
 
         }
 
@@ -122,10 +178,10 @@
         public void success(AgvTaskCallBackParam param) {
             //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜
             agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getStationCode(),"O","");
-            //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級
-            agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),2);
+            //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓�
+            agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),203);
             //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬�
-            agvWaitPakinService.updateIoStatus(Integer.valueOf(param.getTaskCode()),"Y");
+            //agvWaitPakinService.updateIoStatus(Integer.valueOf(param.getTaskCode()),"Y");
 
         }
 
@@ -150,11 +206,11 @@
             int wrkNo = Integer.valueOf(param.getTaskCode());
             String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
             //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
-            agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
+            //agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
             //鏇存柊鐩爣搴撲綅鏄庣粏
-            agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
-            //淇敼宸ヤ綔妗g姸鎬佷负14锛堝叆搴撳畬鎴愶級
-            agvWrkMastService.updateWrkStsByWrkNo(wrkNo,14);
+            //agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
+            //淇敼宸ヤ綔妗g姸鎬佷负204.鏀捐揣瀹屾垚
+            agvWrkMastService.updateWrkStsByWrkNo(wrkNo,204);
         }
 
         public void fail(AgvTaskCallBackParam param) {
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
index 8726947..a6cc241 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -1,6 +1,5 @@
 package com.zy.asrs.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -12,18 +11,14 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.zy.asrs.entity.AgvWrkMast;
-import com.zy.asrs.entity.param.AgvTaskCreateParam;
-import com.zy.asrs.entity.param.AgvTaskParam;
-import com.zy.asrs.entity.param.AgvTaskkDescribeParam;
+import com.zy.asrs.service.AgvWaitPakinService;
 import com.zy.asrs.service.AgvWrkMastService;
-import com.zy.common.utils.HttpHandler;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/agv")
@@ -31,6 +26,8 @@
 
     @Autowired
     AgvWrkMastService agvWrkMastService;
+    @Autowired
+    AgvWaitPakinService agvWaitPakinService;
 
     @RequestMapping(value = "/wrkMast/{id}/auth")
     @ManagerAuth
@@ -168,43 +165,23 @@
         if (Cools.isEmpty(agvWrkMastList)){
             return R.error();
         }
+        Map<String, List<Map<String, String>>> containerMoveParam = agvWrkMastService.startWrk(agvWrkMastList);
 
-        AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
-        agvTaskCreateParam.setTaskType("putaway");
-
-        List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
-            AgvTaskParam agvTaskParam = new AgvTaskParam();
-            AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
-            agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
-            //AgvTaskParam
-            agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
-            agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
-            //AgvTaskkDescribeParam
-            agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
-            agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
-            agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
-            return agvTaskParam;
-        }).collect(Collectors.toList());
-
-        agvTaskCreateParam.setTasks(agvTaskParamList);
-
-        String response = new HttpHandler.Builder()
-                .setUri("localhost:8080")
-                .setPath("test/task/create")
-                .setJson(JSONObject.toJSONString(agvTaskCreateParam))
-                .build()
-                .doPost();
-
-        JSONObject jsonObject = JSON.parseObject(response);
-        int code = (int) jsonObject.get("code");
-
-        System.out.println(response);
+        int code = agvWrkMastService.containerMove(containerMoveParam);
 
         if(code == 0){
+            agvWrkMastList.forEach(agvWrkMast -> {
+                //202.RCS鍙栬揣涓�
+                agvWrkMast.setWrkSts((long)202);
+                //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
+                agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+            });
+            agvWrkMastService.updateBatchById(agvWrkMastList);
 
+            return R.ok("浠诲姟鍚姩鎴愬姛");
         }
 
+        return R.error("浠诲姟鍚姩澶辫触");
 
-        return R.ok();
     }
 }
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
index 8847a8d..2ead2e4 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -3,7 +3,15 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.asrs.entity.AgvWrkMast;
 
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
 public interface AgvWrkMastService extends IService<AgvWrkMast> {
 
     public void updateWrkStsByWrkNo(int wrkNo, long wrkSts);
+
+    public Map<String,List<Map<String,String>>> startWrk(List<AgvWrkMast> agvWrkMastList) throws IOException;
+
+    public int containerMove(Map<String, List<Map<String, String>>> containerMoveParam) throws IOException;
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index 6b637b0..61b924b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -26,10 +26,9 @@
             AgvLocDetl agvLocDetl = new AgvLocDetl();
             BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
             agvLocDetl.setLocNo(locNo);
+            this.insert(agvLocDetl);
             return agvLocDetl;
         }).collect(Collectors.toList());
-
-        this.insertBatch(agvLocDetlList);
 
     }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index beb08ff..60f20e7 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -72,8 +72,9 @@
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
                 AgvWaitPakin waitPakin = new AgvWaitPakin();
+                waitPakin.setBatch(detlDto.getBatch());//鎵瑰彿
+
                 waitPakin.sync(mat);
-                waitPakin.setBatch(detlDto.getBatch());
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
                 waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
@@ -179,7 +180,7 @@
 
     public List<AgvBasDevp> getAgvBasDevpByFloor(int floor) {
         EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
-        wrapper.eq("floor",floor).eq("cache_shelves","Y").eq("sts_loc","F");
+        wrapper.eq("floor",floor).eq("cache_shelves","Y").eq("loc_sts","F");
         return agvBasDevpService.selectList(wrapper);
     }
 
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 82751d4..059d889 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.AgvBasDevp;
+import com.zy.asrs.entity.AgvLocMast;
+import com.zy.asrs.entity.AgvWaitPakin;
+import com.zy.asrs.entity.AgvWrkMast;
 import com.zy.asrs.service.*;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.StartupDto;
@@ -13,7 +16,9 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * Created by vincent on 2020/6/11
@@ -66,6 +71,7 @@
             updateAgvBasDevp(agvBasDevp);
             //鏇存柊鐩爣搴撲綅鐘舵��
             updateAgvLocMast(agvLocMast);
+
         });
 
         return null;
@@ -115,7 +121,7 @@
         int workNo = agvCommonService.getWorkNo(0);
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(new Date());
-        wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setWrkSts(201L); // 宸ヤ綔鐘舵�侊細201.鐢熸垚鍏ュ簱浠诲姟ID
         wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         //鐢熸垚浼樺厛绾�
         wrkMast.setIoPri(300.0);
@@ -136,12 +142,5 @@
         }
         return wrkMast;
 
-    }
-
-    public static void main(String[] args) {
-        Set<AgvBasDevp> set = new HashSet<>();
-        set.add(null);
-        set.add(null);
-        System.out.println(set.size());
     }
 }
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 297e554..cb4be34 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -1,11 +1,25 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.entity.param.AgvTaskCreateParam;
+import com.zy.asrs.entity.param.AgvTaskParam;
+import com.zy.asrs.entity.param.AgvTaskkDescribeParam;
 import com.zy.asrs.mapper.AgvWrkMastMapper;
 import com.zy.asrs.service.AgvWrkMastService;
+import com.zy.common.utils.HttpHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class AgvWrkMastServiceImp extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService {
@@ -18,4 +32,66 @@
         agvWrkMast.setWrkSts(wrkSts);
         this.updateById(agvWrkMast);
     }
+
+    public Map<String,List<Map<String,String>>> startWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
+
+        AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+        agvTaskCreateParam.setTaskType("putaway");
+
+        //璋冪敤瀹瑰櫒鍏ュ満鏃舵墍闇�瑕佸弬鏁�
+        Map<String,List<Map<String,String>>> containerMoveParam = new HashMap<>();
+        List<Map<String,String>> positionCodeMapList = new ArrayList<>();
+        containerMoveParam.put("containerMoveIns",positionCodeMapList);
+
+        List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> {
+            AgvTaskParam agvTaskParam = new AgvTaskParam();
+            AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam();
+            agvTaskParam.setTaskDescribe(agvTaskkDescribeParam);
+            //AgvTaskParam
+            agvTaskParam.setTaskCode(agvWrkMast.getWrkNo().toString());
+            agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue());
+
+            //寰�瀹瑰櫒鍏ュ満鍙傛暟涓斁鍏ユ簮绔欑偣浣嶇疆
+            Map<String,String> positionCodeMap = new HashMap<>();
+            positionCodeMap.put("positionCode",agvWrkMast.getSourceLocNo());
+            positionCodeMapList.add(positionCodeMap);
+
+            //AgvTaskkDescribeParam
+            agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo());
+            agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo());
+            agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode());
+            return agvTaskParam;
+        }).collect(Collectors.toList());
+
+        agvTaskCreateParam.setTasks(agvTaskParamList);
+
+        String response = new HttpHandler.Builder()
+                .setUri("localhost:8080")
+                .setPath("test/task/create")
+                .setJson(JSONObject.toJSONString(agvTaskCreateParam))
+                .build()
+                .doPost();
+
+        JSONObject jsonObject = JSON.parseObject(response);
+        //save log api
+        int code = (int) jsonObject.get("code");
+        if(code != 0){
+            throw new CoolException("璋冪敤AGV鎺ュ彛澶辫触");
+        }
+
+        return containerMoveParam;
+    }
+
+    public int containerMove(Map<String, List<Map<String, String>>> containerMoveParam) throws IOException {
+        String response = new HttpHandler.Builder()
+                .setUri("localhost:8080")
+                .setPath("test/container/moveIn")
+                .setJson(JSONObject.toJSONString(containerMoveParam))
+                .build()
+                .doPost();
+
+        JSONObject jsonObject = JSON.parseObject(response);
+        return (int) jsonObject.get("code");
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
new file mode 100644
index 0000000..c59778d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -0,0 +1,55 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.AgvWrkMastService;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.AgvWrkMastHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚鐨勬暟鎹�
+ */
+@Slf4j
+@Component
+public class AgvWrkMastScheduler {
+
+    @Autowired
+    AgvWrkMastHandler agvWrkMastHandler;
+    @Autowired
+    AgvWrkMastService agvWrkMastService;
+
+    @Scheduled(cron = "0/5 * * * * ? ")
+    public void excutePutwayWrk(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 205)
+                .eq("io_type",1));
+        if(!Cools.isEmpty(agvWrkMastList)){
+            agvWrkMastList.stream().forEach(agvWrkMast -> {
+                ReturnT<String> returnT = agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
+            });
+        }
+    }
+
+    @Scheduled(cron = "0/5 * * * * ? ")
+    public void startPutwayWrk(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 201)
+                .eq("io_type",1)
+                .last("limit 0,50"));
+        if(!Cools.isEmpty(agvWrkMastList)){
+            try {
+                ReturnT<String> returnT = agvWrkMastHandler.startPutWayWrk(agvWrkMastList);
+            } catch (IOException e) {
+                log.error(e.getMessage());
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
new file mode 100644
index 0000000..1be3b40
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -0,0 +1,86 @@
+package com.zy.asrs.task.handler;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.AgvWaitPakin;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.*;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class AgvWrkMastHandler extends AbstractHandler<String> {
+
+    @Autowired
+    AgvWrkMastService agvWrkMastService;
+    @Autowired
+    AgvLocMastService agvLocMastService;
+    @Autowired
+    AgvLocDetlService agvLocDetlService;
+    @Autowired
+    AgvWrkMastLogService agvWrkMastLogService;
+    @Autowired
+    AgvWrkDetlService agvWrkDetlService;
+    @Autowired
+    AgvWrkDetlLogService agvWrkDetlLogService;
+    @Autowired
+    AgvWaitPakinService agvWaitPakinService;
+    @Autowired
+    AgvWaitPakinLogService agvWaitPakinLogService;
+
+    @Transactional
+    public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
+        int wrkNo = agvWrkMast.getWrkNo();
+        String barcode = agvWrkMast.getBarcode();
+
+        //淇敼宸ヤ綔妗g姸鎬佷负206.搴撳瓨鏇存柊瀹屾垚
+        agvWrkMast.setWrkSts(206L);
+        agvWrkMastService.updateById(agvWrkMast);
+        //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
+        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F");
+        //鏇存柊鐩爣搴撲綅鏄庣粏
+        agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
+        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
+        agvWrkMastLogService.save(wrkNo);
+        //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+        agvWrkDetlLogService.save(wrkNo);
+        //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
+        agvWaitPakinLogService.save(barcode);
+        //鍒犻櫎AGV宸ヤ綔妗�
+        agvWrkMastService.deleteById(wrkNo);
+        //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+        agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+        //鍒犻櫎鍏ュ簱閫氱煡妗�
+        agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
+
+        return SUCCESS;
+    }
+
+    @Transactional
+    public ReturnT<String> startPutWayWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
+        Map<String, List<Map<String, String>>> containerMoveParam = agvWrkMastService.startWrk(agvWrkMastList);
+
+        int code = agvWrkMastService.containerMove(containerMoveParam);
+
+        if(code == 0){
+            agvWrkMastList.forEach(agvWrkMast -> {
+                //202.RCS鍙栬揣涓�
+                agvWrkMast.setWrkSts((long)202);
+                //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
+                agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+            });
+            agvWrkMastService.updateBatchById(agvWrkMastList);
+
+            return SUCCESS;
+        }
+
+        return FAIL;
+    }
+}
diff --git a/src/main/webapp/static/js/agvLocMast/locMast.js b/src/main/webapp/static/js/agvLocMast/locMast.js
index fc9c00b..0de37a1 100644
--- a/src/main/webapp/static/js/agvLocMast/locMast.js
+++ b/src/main/webapp/static/js/agvLocMast/locMast.js
@@ -226,7 +226,7 @@
                             $.ajax({
                                 url: baseUrl+"/agv/locMast/init/auth",
                                 headers: {'token': localStorage.getItem('token')},
-                                data: JSON.stringify(param),
+                                data: JSON.stringify("param"),
                                 dataType:'json',
                                 contentType:'application/json;charset=UTF-8',
                                 method: 'POST',
diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
index a9384ca..ccd559c 100644
--- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -193,7 +193,7 @@
                 if (data.length === 0){
                     layer.msg('璇烽�夋嫨鏁版嵁');
                 } else {
-                    layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+                    layer.confirm('纭畾鍚姩'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
                         $.ajax({
                             url: baseUrl+"/agv/wrkMast/startWrk/auth",
                             headers: {'token': localStorage.getItem('token')},
diff --git a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
index 7cafe4f..148dcfc 100644
--- a/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
@@ -28,11 +28,11 @@
             ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
             ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
             ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
-            ,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈哄彿'}
-            ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
-            ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
-            ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
-            ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+            //,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈哄彿'}
+            //,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
+            //,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
+            ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+            ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
             // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
             //         var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
             //         if(row.picking === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 151832e..5639590 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -173,7 +173,7 @@
 /*************************************************************************************************************/
 
 function arrRemove(arr, key, val) {
-    for(var i=arr.length-1; i>=0; i--){
+    for(var i=arr.length-1; i>=1; i--){
         if(arr[i][key] === val){
             arr.splice(i,1);
         }
diff --git a/src/main/webapp/views/mat/mat.html b/src/main/webapp/views/mat/mat.html
index bc49782..4b9a401 100644
--- a/src/main/webapp/views/mat/mat.html
+++ b/src/main/webapp/views/mat/mat.html
@@ -88,13 +88,13 @@
                         <div class="layui-inline">
                             <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍙�:</label>
                             <div class="layui-input-inline">
-                                <input name="matnr" class="layui-input" placeholder="杈撳叆鍟嗗搧缂栧彿"/>
+                                <input name="matnr" class="layui-input" placeholder="杈撳叆鐗╂枡鍙�"/>
                             </div>
                         </div>
                         <div class="layui-inline">
-                            <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍙�:</label>
+                            <label class="layui-form-label" style="padding: 8px 15px 8px 15px">鐗╂枡鍚嶇О:</label>
                             <div class="layui-input-inline">
-                                <input name="maktx" class="layui-input" placeholder="杈撳叆鍟嗗搧鍚嶇О"/>
+                                <input name="maktx" class="layui-input" placeholder="杈撳叆鐗╂枡鍚嶇О"/>
                             </div>
                         </div>
                         <div class="layui-inline">
@@ -419,6 +419,7 @@
                 text-overflow:ellipsis;
                 -webkit-line-clamp: 3;
                 -webkit-box-orient: vertical;
+                word-break: break-all;
             ">{{this.specs}}</td>
         </tr>
     </table>

--
Gitblit v1.9.1