From ab41622d30946f83b34e5a5d881741237628f6f1 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 23 十月 2025 14:26:39 +0800
Subject: [PATCH] 13

---
 src/main/resources/mapper/AgvWrkMastMapper.xml                       |  117 ++
 src/main/java/com/zy/asrs/service/OrderReportService.java            |    4 
 src/main/resources/mapper/AgvWrkMastLogMapper.xml                    |   66 +
 src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java          |   10 
 src/main/java/com/zy/asrs/entity/AgvWrkDetl.java                     |  382 +++++++
 src/main/java/com/zy/asrs/service/AgvWrkMastService.java             |   36 
 src/main/java/com/zy/asrs/controller/AgvWrkDetlController.java       |   40 
 src/main/java/com/zy/asrs/controller/WaitPakinController.java        |    1 
 src/main/java/com/zy/asrs/mapper/OrderReportMapper.java              |    4 
 src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java    |   44 
 src/main/java/com/zy/asrs/mapper/AgvWrkDetlMapper.java               |   35 
 src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java    |  102 ++
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImpl.java    |   74 +
 src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java  |    2 
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastLogServiceImpl.java |   17 
 src/main/java/com/zy/system/timer/LoadingConfigTimer.java            |    1 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java        |   10 
 src/main/java/com/zy/asrs/controller/OutController.java              |    8 
 src/main/java/com/zy/asrs/service/impl/OrderReportServiceImpl.java   |   20 
 src/main/java/com/zy/asrs/entity/OrderDetlPakout.java                |    2 
 src/main/java/com/zy/asrs/entity/param/OrderPakinDomainParam.java    |    1 
 src/main/java/com/zy/asrs/service/impl/AgvWrkDetlLogServiceImpl.java |   29 
 src/main/java/com/zy/asrs/entity/AgvWrkMastLog.java                  |  515 ++++++++++
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java          |    1 
 src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java             |    6 
 src/main/java/com/zy/asrs/service/AgvWrkDetlLogService.java          |   17 
 src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java               |   35 
 src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java              |    1 
 src/main/java/com/zy/asrs/task/OrderSyncScheduler.java               |   10 
 src/main/java/com/zy/asrs/controller/AgvWrkDetlLogController.java    |   49 
 src/main/java/com/zy/asrs/controller/AgvWrkMastController.java       |   56 
 src/main/java/com/zy/asrs/service/AgvWrkDetlService.java             |   31 
 src/main/java/com/zy/asrs/controller/MobileController.java           |    8 
 src/main/java/com/zy/asrs/mapper/AgvWrkDetlLogMapper.java            |   43 
 src/main/java/com/zy/asrs/mapper/AgvWrkMastLogMapper.java            |   16 
 src/main/java/com/zy/asrs/service/OrderPakinService.java             |    5 
 src/main/java/com/zy/asrs/entity/AgvWrkMast.java                     |  516 ++++++++++
 src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java                  |  382 +++++++
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java         |    1 
 src/main/resources/mapper/AgvWrkDetlMapper.xml                       |  147 ++
 src/main/resources/mapper/AgvWrkDetlLogMapper.xml                    |  108 ++
 src/main/java/com/zy/asrs/service/OrderPakoutService.java            |    5 
 42 files changed, 2,797 insertions(+), 160 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkDetlController.java b/src/main/java/com/zy/asrs/controller/AgvWrkDetlController.java
index 6015d46..cd79ad5 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkDetlController.java
@@ -10,8 +10,8 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.service.WrkDetlService;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.service.AgvWrkDetlService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -25,12 +25,12 @@
 public class AgvWrkDetlController extends BaseController {
 
     @Autowired
-    private WrkDetlService wrkDetlService;
+    private AgvWrkDetlService agvWrkDetlService;
 
     @RequestMapping(value = "/agvWrkDetl/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(wrkDetlService.selectById(String.valueOf(id)));
+        return R.ok(agvWrkDetlService.selectById(String.valueOf(id)));
     }
 
     @RequestMapping(value = "/agvWrkDetl/list/auth")
@@ -42,15 +42,15 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam Map<String, Object> param) {
         excludeTrash(param);
-        EntityWrapper<WrkDetl> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetl> wrapper = new EntityWrapper<>();
         convert(param, wrapper);
-        allLike(WrkDetl.class, param.keySet(), wrapper, condition);
+        allLike(AgvWrkDetl.class, param.keySet(), wrapper, condition);
         if (!Cools.isEmpty(orderByField)) {
             wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
         } else {
             wrapper.orderBy("appe_time", false);
         }
-        return R.ok(wrkDetlService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(agvWrkDetlService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
@@ -68,20 +68,20 @@
 
     @RequestMapping(value = "/agvWrkDetl/add/auth")
     @ManagerAuth(memo = "宸ヤ綔妗f槑缁嗘坊鍔�")
-    public R add(WrkDetl wrkDetl) {
-        wrkDetlService.insert(wrkDetl);
+    public R add(AgvWrkDetl wrkDetl) {
+        agvWrkDetlService.insert(wrkDetl);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkDetl/delete/auth")
     @ManagerAuth(memo = "宸ヤ綔妗f槑缁嗗垹闄�")
     public R delete(@RequestParam String param) {
-        List<WrkDetl> list = JSONArray.parseArray(param, WrkDetl.class);
+        List<AgvWrkDetl> list = JSONArray.parseArray(param, AgvWrkDetl.class);
         if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (WrkDetl entity : list) {
-            wrkDetlService.delete(new EntityWrapper<>(entity));
+        for (AgvWrkDetl entity : list) {
+            agvWrkDetlService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
     }
@@ -90,21 +90,21 @@
     @ManagerAuth(memo = "宸ヤ綔妗f槑缁嗗鍑�")
     public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-        EntityWrapper<WrkDetl> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetl> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("wrkDetl"));
         convert(map, wrapper);
-        List<WrkDetl> list = wrkDetlService.selectList(wrapper);
+        List<AgvWrkDetl> list = agvWrkDetlService.selectList(wrapper);
         return R.ok(exportSupport(list, fields));
     }
 
     @RequestMapping(value = "/agvWrkDetlQuery/auth")
     @ManagerAuth
     public R query(String condition) {
-        EntityWrapper<WrkDetl> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetl> wrapper = new EntityWrapper<>();
         wrapper.like("id", condition);
-        Page<WrkDetl> page = wrkDetlService.selectPage(new Page<>(0, 10), wrapper);
+        Page<AgvWrkDetl> page = agvWrkDetlService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (WrkDetl wrkDetl : page.getRecords()) {
+        for (AgvWrkDetl wrkDetl : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", wrkDetl.getWrkNo());
             map.put("value", wrkDetl.getWrkNo());
@@ -116,9 +116,9 @@
     @RequestMapping(value = "/agvWrkDetl/check/column/auth")
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
-        Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != wrkDetlService.selectOne(wrapper)) {
-            return R.parse(BaseRes.REPEAT).add(getComment(WrkDetl.class, String.valueOf(param.get("key"))));
+        Wrapper<AgvWrkDetl> wrapper = new EntityWrapper<AgvWrkDetl>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != agvWrkDetlService.selectOne(wrapper)) {
+            return R.parse(BaseRes.REPEAT).add(getComment(AgvWrkDetl.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
     }
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkDetlLogController.java b/src/main/java/com/zy/asrs/controller/AgvWrkDetlLogController.java
index 131b34b..27bee63 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkDetlLogController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkDetlLogController.java
@@ -10,8 +10,9 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.zy.asrs.entity.AgvWrkDetlLog;
 import com.zy.asrs.entity.WrkDetlLog;
-import com.zy.asrs.service.WrkDetlLogService;
+import com.zy.asrs.service.AgvWrkDetlLogService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -25,12 +26,12 @@
 public class AgvWrkDetlLogController extends BaseController {
 
     @Autowired
-    private WrkDetlLogService wrkDetlLogService;
+    private AgvWrkDetlLogService agvWrkDetlLogService;
 
     @RequestMapping(value = "/agvWrkDetlLog/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(wrkDetlLogService.selectById(String.valueOf(id)));
+        return R.ok(agvWrkDetlLogService.selectById(String.valueOf(id)));
     }
 
     /**
@@ -42,14 +43,14 @@
                    @RequestParam(defaultValue = "10") Integer limit,
                    @RequestParam Integer wrk_no,
                    @RequestParam String ioTime) {
-        EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<>();
         if (!Cools.isEmpty(wrk_no) && wrk_no != 0) {
             wrapper.eq("wrk_no", wrk_no);
         }
         if (!Cools.isEmpty(ioTime)) {
             wrapper.eq("io_time", DateUtils.convert(ioTime, DateUtils.yyyyMMddHHmmsssss_F));
         }
-        return R.ok(wrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(agvWrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     @RequestMapping(value = "/agvWrkDetlLog/list/auth")
@@ -59,7 +60,7 @@
                   @RequestParam(required = false) String orderByField,
                   @RequestParam(required = false) String orderByType,
                   @RequestParam Map<String, Object> param) {
-        EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
         if (!Cools.isEmpty(orderByField)) {
@@ -67,7 +68,7 @@
         } else {
             wrapper.orderBy("modi_time", false);
         }
-        return R.ok(wrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(agvWrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     //    12.12鏂板锛屽伐浣滄槑缁嗗巻鍙叉。杩囨护鎵嬪姩鍙栨秷鐨勫伐浣滄槑缁�
@@ -81,15 +82,15 @@
                              @RequestParam Map<String, Object> param) {
         try {
             excludeTrash(param);
-            EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
+            EntityWrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<>();
             convert(param, wrapper);
-            allLike(WrkDetlLog.class, param.keySet(), wrapper, condition);
+            allLike(AgvWrkDetlLog.class, param.keySet(), wrapper, condition);
             if (!Cools.isEmpty(orderByField)) {
                 wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
             } else {
                 wrapper.orderBy("appe_time", false);
             }
-            return R.ok(wrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
+            return R.ok(agvWrkDetlLogService.selectPage(new Page<>(curr, limit), wrapper));
         } catch (Exception e) {
             return R.error("寮傚父" + e);
         }
@@ -110,30 +111,30 @@
 
     @RequestMapping(value = "/agvWrkDetlLog/add/auth")
     @ManagerAuth
-    public R add(WrkDetlLog wrkDetlLog) {
-        wrkDetlLogService.insert(wrkDetlLog);
+    public R add(AgvWrkDetlLog wrkDetlLog) {
+        agvWrkDetlLogService.insert(wrkDetlLog);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkDetlLog/update/auth")
     @ManagerAuth
-    public R update(WrkDetlLog wrkDetlLog) {
+    public R update(AgvWrkDetlLog wrkDetlLog) {
         if (Cools.isEmpty(wrkDetlLog) || null == wrkDetlLog.getWrkNo()) {
             return R.error();
         }
-        wrkDetlLogService.updateById(wrkDetlLog);
+        agvWrkDetlLogService.updateById(wrkDetlLog);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkDetlLog/delete/auth")
     @ManagerAuth
     public R delete(@RequestParam String param) {
-        List<WrkDetlLog> list = JSONArray.parseArray(param, WrkDetlLog.class);
+        List<AgvWrkDetlLog> list = JSONArray.parseArray(param, AgvWrkDetlLog.class);
         if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (WrkDetlLog entity : list) {
-            wrkDetlLogService.delete(new EntityWrapper<>(entity));
+        for (AgvWrkDetlLog entity : list) {
+            agvWrkDetlLogService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
     }
@@ -141,22 +142,22 @@
     @RequestMapping(value = "/agvWrkDetlLog/export/auth")
     @ManagerAuth
     public R export(@RequestBody JSONObject param) {
-        EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         Map<String, Object> map = excludeTrash(param.getJSONObject("wrkDetlLog"));
         convert(map, wrapper);
-        List<WrkDetlLog> list = wrkDetlLogService.selectList(wrapper);
+        List<AgvWrkDetlLog> list = agvWrkDetlLogService.selectList(wrapper);
         return R.ok(exportSupport(list, fields));
     }
 
     @RequestMapping(value = "/agvWrkDetlLogQuery/auth")
     @ManagerAuth
     public R query(String condition) {
-        EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<>();
         wrapper.like("id", condition);
-        Page<WrkDetlLog> page = wrkDetlLogService.selectPage(new Page<>(0, 10), wrapper);
+        Page<AgvWrkDetlLog> page = agvWrkDetlLogService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (WrkDetlLog wrkDetlLog : page.getRecords()) {
+        for (AgvWrkDetlLog wrkDetlLog : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", wrkDetlLog.getWrkNo());
             map.put("value", wrkDetlLog.getWrkNo());
@@ -168,8 +169,8 @@
     @RequestMapping(value = "/agvWrkDetlLog/check/column/auth")
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
-        Wrapper<WrkDetlLog> wrapper = new EntityWrapper<WrkDetlLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != wrkDetlLogService.selectOne(wrapper)) {
+        Wrapper<AgvWrkDetlLog> wrapper = new EntityWrapper<AgvWrkDetlLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != agvWrkDetlLogService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(WrkDetlLog.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
index b181520..c2050c5 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -10,8 +10,8 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -22,12 +22,12 @@
 public class AgvWrkMastController extends BaseController {
 
     @Autowired
-    private WrkMastService wrkMastService;
+    private AgvWrkMastService agvWrkMastService;
 
     @RequestMapping(value = "/agvWrkMast/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(wrkMastService.selectById(String.valueOf(id)));
+        return R.ok(agvWrkMastService.selectById(String.valueOf(id)));
     }
 
     @RequestMapping(value = "/agvWrkMast/list/auth")
@@ -39,9 +39,9 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam Map<String, Object> param) {
         excludeTrash(param);
-        EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
         convert(param, wrapper);
-        allLike(WrkMast.class, param.keySet(), wrapper, condition);
+        allLike(AgvWrkMast.class, param.keySet(), wrapper, condition);
         if (!Cools.isEmpty(orderByField)) {
             if (orderByField.endsWith("$")) {
                 orderByField = orderByField.substring(0, orderByField.length() - 1);
@@ -50,7 +50,7 @@
         } else {
             wrapper.orderBy("io_time", false);
         }
-        return R.ok(wrkMastService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(agvWrkMastService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
@@ -68,36 +68,36 @@
 
     @RequestMapping(value = "/agvWrkMast/add/auth")
     @ManagerAuth(memo = "宸ヤ綔妗f坊鍔�")
-    public R add(WrkMast wrkMast) {
+    public R add(AgvWrkMast wrkMast) {
         wrkMast.setModiUser(getUserId());
         wrkMast.setModiTime(new Date());
         wrkMast.setAppeUser(getUserId());
         wrkMast.setAppeTime(new Date());
-        wrkMastService.insert(wrkMast);
+        agvWrkMastService.insert(wrkMast);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMast/update/auth")
     @ManagerAuth(memo = "宸ヤ綔妗d慨鏀�")
-    public R update(WrkMast wrkMast) {
+    public R update(AgvWrkMast wrkMast) {
         if (Cools.isEmpty(wrkMast) || null == wrkMast.getWrkNo()) {
             return R.error();
         }
         wrkMast.setModiUser(getUserId());
         wrkMast.setModiTime(new Date());
-        wrkMastService.updateById(wrkMast);
+        agvWrkMastService.updateById(wrkMast);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMast/delete/auth")
     @ManagerAuth(memo = "宸ヤ綔妗e垹闄�")
     public R delete(@RequestParam String param) {
-        List<WrkMast> list = JSONArray.parseArray(param, WrkMast.class);
+        List<AgvWrkMast> list = JSONArray.parseArray(param, AgvWrkMast.class);
         if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (WrkMast entity : list) {
-            wrkMastService.delete(new EntityWrapper<>(entity));
+        for (AgvWrkMast entity : list) {
+            agvWrkMastService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
     }
@@ -106,21 +106,21 @@
     @ManagerAuth(memo = "宸ヤ綔妗e鍑�")
     public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-        EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMast"));
         convert(map, wrapper);
-        List<WrkMast> list = wrkMastService.selectList(wrapper);
+        List<AgvWrkMast> list = agvWrkMastService.selectList(wrapper);
         return R.ok(exportSupport(list, fields));
     }
 
     @RequestMapping(value = "/agvWrkMastQuery/auth")
     @ManagerAuth
     public R query(String condition) {
-        EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMast> wrapper = new EntityWrapper<>();
         wrapper.like("wrk_no", condition);
-        Page<WrkMast> page = wrkMastService.selectPage(new Page<>(0, 10), wrapper);
+        Page<AgvWrkMast> page = agvWrkMastService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (WrkMast wrkMast : page.getRecords()) {
+        for (AgvWrkMast wrkMast : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", wrkMast.getWrkNo());
             map.put("value", wrkMast.getWrkNo());
@@ -132,36 +132,36 @@
     @RequestMapping(value = "/agvWrkMast/check/column/auth")
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
-        Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != wrkMastService.selectOne(wrapper)) {
-            return R.parse(BaseRes.REPEAT).add(getComment(WrkMast.class, String.valueOf(param.get("key"))));
+        Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != agvWrkMastService.selectOne(wrapper)) {
+            return R.parse(BaseRes.REPEAT).add(getComment(AgvWrkMast.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMast/add/pri/auth")
     @ManagerAuth(memo = "宸ヤ綔妗e鍔犱紭鍏堢骇")
-    public R addPri(@RequestBody List<WrkMast> list) {
+    public R addPri(@RequestBody List<AgvWrkMast> list) {
         if (list.isEmpty()) {
             return R.error("璇疯嚦灏戦�夋嫨涓�琛屾暟鎹�");
         }
-        for (WrkMast entity : list) {
+        for (AgvWrkMast entity : list) {
             entity.setIoPri(entity.getIoPri() + 1);
         }
-        wrkMastService.updateBatchById(list);
+        agvWrkMastService.updateBatchById(list);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMast/red/pri/auth")
     @ManagerAuth(memo = "宸ヤ綔妗i檷浣庝紭鍏堢骇")
-    public R redPri(@RequestBody List<WrkMast> list) {
+    public R redPri(@RequestBody List<AgvWrkMast> list) {
         if (list.isEmpty()) {
             return R.error("璇疯嚦灏戦�夋嫨涓�琛屾暟鎹�");
         }
-        for (WrkMast entity : list) {
+        for (AgvWrkMast entity : list) {
             entity.setIoPri(entity.getIoPri() - 1);
         }
-        wrkMastService.updateBatchById(list);
+        agvWrkMastService.updateBatchById(list);
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java b/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java
index 23a93a4..bf7fdd0 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWrkMastLogController.java
@@ -10,8 +10,8 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.WrkMastLog;
-import com.zy.asrs.service.WrkMastLogService;
+import com.zy.asrs.entity.AgvWrkMastLog;
+import com.zy.asrs.service.AgvWrkMastLogService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -25,12 +25,12 @@
 public class AgvWrkMastLogController extends BaseController {
 
     @Autowired
-    private WrkMastLogService wrkMastLogService;
+    private AgvWrkMastLogService agvWrkMastLogService;
 
     @RequestMapping(value = "/agvWrkMastLog/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(wrkMastLogService.selectById(String.valueOf(id)));
+        return R.ok(agvWrkMastLogService.selectById(String.valueOf(id)));
     }
 
     @RequestMapping(value = "/agvWrkMastLog/list/auth")
@@ -42,9 +42,9 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam Map<String, Object> param) {
         excludeTrash(param);
-        EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
         convert(param, wrapper);
-        allLike(WrkMastLog.class, param.keySet(), wrapper, condition);
+        allLike(AgvWrkMastLog.class, param.keySet(), wrapper, condition);
         if (!Cools.isEmpty(orderByField)) {
             if (orderByField.endsWith("$")) {
                 orderByField = orderByField.substring(0, orderByField.length() - 1);
@@ -53,7 +53,7 @@
         } else {
             wrapper.orderBy("modi_time", false);
         }
-        return R.ok(wrkMastLogService.selectPage(new Page<>(curr, limit), wrapper));
+        return R.ok(agvWrkMastLogService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
@@ -75,30 +75,30 @@
 
     @RequestMapping(value = "/agvWrkMastLog/add/auth")
     @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗f坊鍔�")
-    public R add(WrkMastLog wrkMastLog) {
-        wrkMastLogService.insert(wrkMastLog);
+    public R add(AgvWrkMastLog wrkMastLog) {
+        agvWrkMastLogService.insert(wrkMastLog);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMastLog/update/auth")
     @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗d慨鏀�")
-    public R update(WrkMastLog wrkMastLog) {
+    public R update(AgvWrkMastLog wrkMastLog) {
         if (Cools.isEmpty(wrkMastLog) || null == wrkMastLog.getId()) {
             return R.error();
         }
-        wrkMastLogService.updateById(wrkMastLog);
+        agvWrkMastLogService.updateById(wrkMastLog);
         return R.ok();
     }
 
     @RequestMapping(value = "/agvWrkMastLog/delete/auth")
     @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗e垹闄�")
     public R delete(@RequestParam String param) {
-        List<WrkMastLog> list = JSONArray.parseArray(param, WrkMastLog.class);
+        List<AgvWrkMastLog> list = JSONArray.parseArray(param, AgvWrkMastLog.class);
         if (Cools.isEmpty(list)) {
             return R.error();
         }
-        for (WrkMastLog entity : list) {
-            wrkMastLogService.delete(new EntityWrapper<>(entity));
+        for (AgvWrkMastLog entity : list) {
+            agvWrkMastLogService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
     }
@@ -107,21 +107,21 @@
     @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗e鍑�")
     public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-        EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMastLog"));
         convert(map, wrapper);
-        List<WrkMastLog> list = wrkMastLogService.selectList(wrapper);
+        List<AgvWrkMastLog> list = agvWrkMastLogService.selectList(wrapper);
         return R.ok(exportSupport(list, fields));
     }
 
     @RequestMapping(value = "/agvWrkMastLogQuery/auth")
     @ManagerAuth
     public R query(String condition) {
-        EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+        EntityWrapper<AgvWrkMastLog> wrapper = new EntityWrapper<>();
         wrapper.like("id", condition);
-        Page<WrkMastLog> page = wrkMastLogService.selectPage(new Page<>(0, 10), wrapper);
+        Page<AgvWrkMastLog> page = agvWrkMastLogService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (WrkMastLog wrkMastLog : page.getRecords()) {
+        for (AgvWrkMastLog wrkMastLog : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", wrkMastLog.getId());
             map.put("value", wrkMastLog.getId());
@@ -133,9 +133,9 @@
     @RequestMapping(value = "/agvWrkMastLog/check/column/auth")
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
-        Wrapper<WrkMastLog> wrapper = new EntityWrapper<WrkMastLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != wrkMastLogService.selectOne(wrapper)) {
-            return R.parse(BaseRes.REPEAT).add(getComment(WrkMastLog.class, String.valueOf(param.get("key"))));
+        Wrapper<AgvWrkMastLog> wrapper = new EntityWrapper<AgvWrkMastLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != agvWrkMastLogService.selectOne(wrapper)) {
+            return R.parse(BaseRes.REPEAT).add(getComment(AgvWrkMastLog.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
     }
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index f3a4615..30df6f5 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -66,9 +66,6 @@
     private CommonService commonService;
 
 
-
-
-
     @PostMapping("/agv/start")
     @ManagerAuth
     public R pdaAgvStart(@RequestBody Map<String, Object> map) {
@@ -176,7 +173,6 @@
     }
 
 
-
     @RequestMapping("/order/search/orderNo/auth")
     @ManagerAuth
     public R orderSearchByBarcode(@RequestParam String orderNo) {
@@ -243,10 +239,6 @@
 
 
     }
-
-
-
-
 
 
     // 鍑哄簱 ---------------------------------------------------------------------------------------------------
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 595e31b..85a3884 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -109,10 +109,10 @@
     /**
      * 澶勭悊鍗曚釜璁㈠崟鏄庣粏鐨勮揣浣嶅垎閰�
      *
-     * @param orderDetlPakout      璁㈠崟鏄庣粏
-     * @param requiredAmount 闇�姹傚嚭搴撻噺
-     * @param processedLocs  宸插鐞嗙殑璐т綅闆嗗悎锛堢敤浜庡幓閲嶏級
-     * @param processedStock 宸插鐞嗙殑搴撳瓨璁板綍闆嗗悎锛堢敤浜庡幓閲嶏級
+     * @param orderDetlPakout 璁㈠崟鏄庣粏
+     * @param requiredAmount  闇�姹傚嚭搴撻噺
+     * @param processedLocs   宸插鐞嗙殑璐т綅闆嗗悎锛堢敤浜庡幓閲嶏級
+     * @param processedStock  宸插鐞嗙殑搴撳瓨璁板綍闆嗗悎锛堢敤浜庡幓閲嶏級
      */
     private List<LocDto> processOrderDetl(OrderDetlPakout orderDetlPakout, Double requiredAmount,
                                           Set<String> processedLocs, Set<ExistDto> processedStock) {
diff --git a/src/main/java/com/zy/asrs/controller/WaitPakinController.java b/src/main/java/com/zy/asrs/controller/WaitPakinController.java
index e7bf999..f4fada8 100644
--- a/src/main/java/com/zy/asrs/controller/WaitPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/WaitPakinController.java
@@ -10,7 +10,6 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.OrderDetlPakin;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.OrderDetlPakinService;
diff --git a/src/main/java/com/zy/asrs/entity/AgvWrkDetl.java b/src/main/java/com/zy/asrs/entity/AgvWrkDetl.java
new file mode 100644
index 0000000..793791c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AgvWrkDetl.java
@@ -0,0 +1,382 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_wrk_detl")
+public class AgvWrkDetl implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value = "宸ヤ綔鍙�")
+    @TableField("wrk_no")
+    private Integer wrkNo;
+
+    /**
+     * 宸ヤ綔鏃堕棿
+     */
+    @ApiModelProperty(value = "宸ヤ綔鏃堕棿")
+    @TableField("io_time")
+    private Date ioTime;
+
+    /**
+     * 鏁伴噺
+     */
+    @ApiModelProperty(value = "鏁伴噺")
+    private Double anfme;
+
+    /**
+     * 鎵樼洏鏉$爜
+     */
+    @ApiModelProperty(value = "鎵樼洏鏉$爜")
+    private String zpallet;
+
+    /**
+     * 鐗╂枡
+     */
+    @ApiModelProperty(value = "鍟嗗搧缂栧彿")
+    private String matnr;
+
+    /**
+     * 鐗╂枡鎻忚堪
+     */
+    @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+    private String maktx;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value = "鎵瑰彿")
+    private String batch;
+
+    /**
+     * 鍗曟嵁缂栧彿
+     */
+    @ApiModelProperty(value = "鍗曟嵁缂栧彿")
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 瑙勬牸
+     */
+    @ApiModelProperty(value = "瑙勬牸")
+    private String specs;
+
+    /**
+     * 鍨嬪彿
+     */
+    @ApiModelProperty(value = "鍨嬪彿")
+    private String model;
+
+    /**
+     * 棰滆壊
+     */
+    @ApiModelProperty(value = "棰滆壊")
+    private String color;
+
+    /**
+     * 鍝佺墝
+     */
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    /**
+     * 鍗曚綅
+     */
+    @ApiModelProperty(value = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鍗曚环
+     */
+    @ApiModelProperty(value = "鍗曚环")
+    private Double price;
+
+    /**
+     * sku
+     */
+    @ApiModelProperty(value = "sku")
+    private String sku;
+
+    /**
+     * 鍗曚綅閲�
+     */
+    @ApiModelProperty(value = "鍗曚綅閲�")
+    private Double units;
+
+    /**
+     * 鏉$爜
+     */
+    @ApiModelProperty(value = "鏉$爜")
+    private String barcode;
+
+    /**
+     * 浜у湴
+     */
+    @ApiModelProperty(value = "浜у湴")
+    private String origin;
+
+    /**
+     * 鍘傚
+     */
+    @ApiModelProperty(value = "鍘傚")
+    private String manu;
+
+    /**
+     * 鐢熶骇鏃ユ湡
+     */
+    @ApiModelProperty(value = "鐢熶骇鏃ユ湡")
+    @TableField("manu_date")
+    private String manuDate;
+
+    /**
+     * 鍝侀」鏁�
+     */
+    @ApiModelProperty(value = "鍝侀」鏁�")
+    @TableField("item_num")
+    private String itemNum;
+
+    /**
+     * 瀹夊叏搴撳瓨閲�
+     */
+    @ApiModelProperty(value = "瀹夊叏搴撳瓨閲�")
+    @TableField("safe_qty")
+    private Double safeQty;
+
+    /**
+     * 閲嶉噺
+     */
+    @ApiModelProperty(value = "閲嶉噺")
+    private Double weight;
+
+    /**
+     * 闀垮害
+     */
+    @ApiModelProperty(value = "闀垮害")
+    private Double length;
+
+    /**
+     * 浣撶Н
+     */
+    @ApiModelProperty(value = "浣撶Н")
+    private Double volume;
+
+    /**
+     * 涓夋柟缂栫爜
+     */
+    @ApiModelProperty(value = "涓夋柟缂栫爜")
+    @TableField("three_code")
+    private String threeCode;
+
+    /**
+     * 渚涘簲鍟�
+     */
+    @ApiModelProperty(value = "渚涘簲鍟�")
+    private String supp;
+
+    /**
+     * 渚涘簲鍟嗙紪鐮�
+     */
+    @ApiModelProperty(value = "渚涘簲鍟嗙紪鐮�")
+    @TableField("supp_code")
+    private String suppCode;
+
+    /**
+     * 鏄惁鎵规 1: 鏄�  0: 鍚�
+     */
+    @ApiModelProperty(value = "鏄惁鎵规 1: 鏄�  0: 鍚�  ")
+    @TableField("be_batch")
+    private Integer beBatch;
+
+    /**
+     * 淇濊川鏈�
+     */
+    @ApiModelProperty(value = "淇濊川鏈�")
+    @TableField("dead_time")
+    private String deadTime;
+
+    /**
+     * 棰勮澶╂暟
+     */
+    @ApiModelProperty(value = "棰勮澶╂暟")
+    @TableField("dead_warn")
+    private Integer deadWarn;
+
+    /**
+     * 鍒惰喘 1: 鍒堕��  2: 閲囪喘  3: 澶栧崗
+     */
+    @ApiModelProperty(value = "鍒惰喘 1: 鍒堕��  2: 閲囪喘  3: 澶栧崗  ")
+    private Integer source;
+
+    /**
+     * 瑕佹眰妫�楠� 1: 鏄�  0: 鍚�
+     */
+    @ApiModelProperty(value = "瑕佹眰妫�楠� 1: 鏄�  0: 鍚�  ")
+    private Integer inspect;
+
+    /**
+     * 1姝e父锛�2鎶ュ簾锛�3闇�杩斿伐
+     */
+    @ApiModelProperty(value = "鍗遍櫓鍝� 1: 鏄�  0: 鍚�  ")
+    private Integer danger;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value = "淇敼浜哄憳")
+    @TableField("modi_user")
+    private Long modiUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField("modi_time")
+    private Date modiTime;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @ApiModelProperty(value = "鍒涘缓鑰�")
+    @TableField("appe_user")
+    private Long appeUser;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value = "娣诲姞鏃堕棿")
+    @TableField("appe_time")
+    private Date appeTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String memo;
+
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp1;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp2;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp3;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp4;
+
+    public String getIoTime$() {
+        if (Cools.isEmpty(this.ioTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+    }
+
+    public String getBeBatch$() {
+        if (null == this.beBatch) {
+            return null;
+        }
+        switch (this.beBatch) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.beBatch);
+        }
+    }
+
+    public String getSource$() {
+        if (null == this.source) {
+            return null;
+        }
+        switch (this.source) {
+            case 1:
+                return "鍒堕��";
+            case 2:
+                return "閲囪喘";
+            case 3:
+                return "澶栧崗";
+            default:
+                return String.valueOf(this.source);
+        }
+    }
+
+    public String getInspect$() {
+        if (null == this.inspect) {
+            return null;
+        }
+        switch (this.inspect) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.inspect);
+        }
+    }
+
+    public String getDanger$() {
+        if (null == this.danger) {
+            return null;
+        }
+        switch (this.danger) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.danger);
+        }
+    }
+
+    public String getModiUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.modiUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getModiTime$() {
+        if (Cools.isEmpty(this.modiTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+    }
+
+    public String getAppeUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.appeUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getAppeTime$() {
+        if (Cools.isEmpty(this.appeTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+    }
+
+    public void sync(Object source) {
+        Synchro.Copy(source, this);
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java b/src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java
new file mode 100644
index 0000000..aa81b34
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AgvWrkDetlLog.java
@@ -0,0 +1,382 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_wrk_detl_log")
+public class AgvWrkDetlLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value = "宸ヤ綔鍙�")
+    @TableField("wrk_no")
+    private Integer wrkNo;
+
+    /**
+     * 宸ヤ綔鏃堕棿
+     */
+    @ApiModelProperty(value = "宸ヤ綔鏃堕棿")
+    @TableField("io_time")
+    private Date ioTime;
+
+    /**
+     * 鏁伴噺
+     */
+    @ApiModelProperty(value = "鏁伴噺")
+    private Double anfme;
+
+    /**
+     * 鎵樼洏鏉$爜
+     */
+    @ApiModelProperty(value = "鎵樼洏鏉$爜")
+    private String zpallet;
+
+    /**
+     * 鐗╂枡
+     */
+    @ApiModelProperty(value = "鍟嗗搧缂栧彿")
+    private String matnr;
+
+    /**
+     * 鐗╂枡鎻忚堪
+     */
+    @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+    private String maktx;
+
+    /**
+     * 鎵瑰彿
+     */
+    @ApiModelProperty(value = "鎵瑰彿")
+    private String batch;
+
+    /**
+     * 鍗曟嵁缂栧彿
+     */
+    @ApiModelProperty(value = "鍗曟嵁缂栧彿")
+    @TableField("order_no")
+    private String orderNo;
+
+    /**
+     * 瑙勬牸
+     */
+    @ApiModelProperty(value = "瑙勬牸")
+    private String specs;
+
+    /**
+     * 鍨嬪彿
+     */
+    @ApiModelProperty(value = "鍨嬪彿")
+    private String model;
+
+    /**
+     * 棰滆壊
+     */
+    @ApiModelProperty(value = "棰滆壊")
+    private String color;
+
+    /**
+     * 鍝佺墝
+     */
+    @ApiModelProperty(value = "鍝佺墝")
+    private String brand;
+
+    /**
+     * 鍗曚綅
+     */
+    @ApiModelProperty(value = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鍗曚环
+     */
+    @ApiModelProperty(value = "鍗曚环")
+    private Double price;
+
+    /**
+     * sku
+     */
+    @ApiModelProperty(value = "sku")
+    private String sku;
+
+    /**
+     * 鍗曚綅閲�
+     */
+    @ApiModelProperty(value = "鍗曚綅閲�")
+    private Double units;
+
+    /**
+     * 鏉$爜
+     */
+    @ApiModelProperty(value = "鏉$爜")
+    private String barcode;
+
+    /**
+     * 浜у湴
+     */
+    @ApiModelProperty(value = "浜у湴")
+    private String origin;
+
+    /**
+     * 鍘傚
+     */
+    @ApiModelProperty(value = "鍘傚")
+    private String manu;
+
+    /**
+     * 鐢熶骇鏃ユ湡
+     */
+    @ApiModelProperty(value = "鐢熶骇鏃ユ湡")
+    @TableField("manu_date")
+    private String manuDate;
+
+    /**
+     * 鍝侀」鏁�
+     */
+    @ApiModelProperty(value = "鍝侀」鏁�")
+    @TableField("item_num")
+    private String itemNum;
+
+    /**
+     * 瀹夊叏搴撳瓨閲�
+     */
+    @ApiModelProperty(value = "瀹夊叏搴撳瓨閲�")
+    @TableField("safe_qty")
+    private Double safeQty;
+
+    /**
+     * 閲嶉噺
+     */
+    @ApiModelProperty(value = "閲嶉噺")
+    private Double weight;
+
+    /**
+     * 闀垮害
+     */
+    @ApiModelProperty(value = "闀垮害")
+    private Double length;
+
+    /**
+     * 浣撶Н
+     */
+    @ApiModelProperty(value = "浣撶Н")
+    private Double volume;
+
+    /**
+     * 涓夋柟缂栫爜
+     */
+    @ApiModelProperty(value = "涓夋柟缂栫爜")
+    @TableField("three_code")
+    private String threeCode;
+
+    /**
+     * 渚涘簲鍟�
+     */
+    @ApiModelProperty(value = "渚涘簲鍟�")
+    private String supp;
+
+    /**
+     * 渚涘簲鍟嗙紪鐮�
+     */
+    @ApiModelProperty(value = "渚涘簲鍟嗙紪鐮�")
+    @TableField("supp_code")
+    private String suppCode;
+
+    /**
+     * 鏄惁鎵规 1: 鏄�  0: 鍚�
+     */
+    @ApiModelProperty(value = "鏄惁鎵规 1: 鏄�  0: 鍚�  ")
+    @TableField("be_batch")
+    private Integer beBatch;
+
+    /**
+     * 淇濊川鏈�
+     */
+    @ApiModelProperty(value = "淇濊川鏈�")
+    @TableField("dead_time")
+    private String deadTime;
+
+    /**
+     * 棰勮澶╂暟
+     */
+    @ApiModelProperty(value = "棰勮澶╂暟")
+    @TableField("dead_warn")
+    private Integer deadWarn;
+
+    /**
+     * 鍒惰喘 1: 鍒堕��  2: 閲囪喘  3: 澶栧崗
+     */
+    @ApiModelProperty(value = "鍒惰喘 1: 鍒堕��  2: 閲囪喘  3: 澶栧崗  ")
+    private Integer source;
+
+    /**
+     * 瑕佹眰妫�楠� 1: 鏄�  0: 鍚�
+     */
+    @ApiModelProperty(value = "瑕佹眰妫�楠� 1: 鏄�  0: 鍚�  ")
+    private Integer inspect;
+
+    /**
+     * 鍗遍櫓鍝� 1: 鏄�  0: 鍚�
+     */
+    @ApiModelProperty(value = "鍗遍櫓鍝� 1: 鏄�  0: 鍚�  ")
+    private Integer danger;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value = "淇敼浜哄憳")
+    @TableField("modi_user")
+    private Long modiUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField("modi_time")
+    private Date modiTime;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @ApiModelProperty(value = "鍒涘缓鑰�")
+    @TableField("appe_user")
+    private Long appeUser;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value = "娣诲姞鏃堕棿")
+    @TableField("appe_time")
+    private Date appeTime;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String memo;
+
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp1;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp2;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp3;
+    @ApiModelProperty(value = "棰勭暀1")
+    private String temp4;
+
+    public String getIoTime$() {
+        if (Cools.isEmpty(this.ioTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+    }
+
+    public String getBeBatch$() {
+        if (null == this.beBatch) {
+            return null;
+        }
+        switch (this.beBatch) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.beBatch);
+        }
+    }
+
+    public String getSource$() {
+        if (null == this.source) {
+            return null;
+        }
+        switch (this.source) {
+            case 1:
+                return "鍒堕��";
+            case 2:
+                return "閲囪喘";
+            case 3:
+                return "澶栧崗";
+            default:
+                return String.valueOf(this.source);
+        }
+    }
+
+    public String getInspect$() {
+        if (null == this.inspect) {
+            return null;
+        }
+        switch (this.inspect) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.inspect);
+        }
+    }
+
+    public String getDanger$() {
+        if (null == this.danger) {
+            return null;
+        }
+        switch (this.danger) {
+            case 1:
+                return "鏄�";
+            case 0:
+                return "鍚�";
+            default:
+                return String.valueOf(this.danger);
+        }
+    }
+
+    public String getModiUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.modiUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getModiTime$() {
+        if (Cools.isEmpty(this.modiTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+    }
+
+    public String getAppeUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.appeUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getAppeTime$() {
+        if (Cools.isEmpty(this.appeTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+    }
+
+    public void sync(Object source) {
+        Synchro.Copy(source, this);
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/AgvWrkMast.java b/src/main/java/com/zy/asrs/entity/AgvWrkMast.java
new file mode 100644
index 0000000..93e7097
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AgvWrkMast.java
@@ -0,0 +1,516 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.service.*;
+import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_wrk_mast")
+public class AgvWrkMast implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "wrk_id", type = IdType.AUTO)
+    private Long wrkId;
+    /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value = "宸ヤ綔鍙�")
+    @TableField("wrk_no")
+    private Integer wrkNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("inv_wh")
+    private String invWh;
+
+    @ApiModelProperty(value = "")
+    private Date ymd;
+
+    @ApiModelProperty(value = "")
+    private String mk;
+
+    @ApiModelProperty(value = "")
+    @TableField("whs_type")
+    private Integer whsType;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty(value = "宸ヤ綔鐘舵��")
+    @TableField("wrk_sts")
+    private Long wrkSts;
+
+    /**
+     * 鍏ュ嚭搴撶被鍨�
+     */
+    @ApiModelProperty(value = "鍏ュ嚭搴撶被鍨�")
+    @TableField("io_type")
+    private Integer ioType;
+
+    /**
+     * 鍫嗗灈鏈�
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈�")
+    @TableField("crn_no")
+    private Integer crnNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("sheet_no")
+    private String sheetNo;
+
+    /**
+     * 浼樺厛绾�
+     */
+    @ApiModelProperty(value = "浼樺厛绾�")
+    @TableField("io_pri")
+    private Double ioPri;
+
+    @ApiModelProperty(value = "")
+    @TableField("wrk_date")
+    private Date wrkDate;
+
+    /**
+     * 鐩爣搴撲綅
+     */
+    @ApiModelProperty(value = "鐩爣搴撲綅")
+    @TableField("loc_no")
+    private String locNo;
+
+    /**
+     * 鐩爣绔�
+     */
+    @ApiModelProperty(value = "鐩爣绔�")
+    @TableField("sta_no")
+    private Integer staNo;
+
+    /**
+     * 婧愮珯
+     */
+    @ApiModelProperty(value = "婧愮珯")
+    @TableField("source_sta_no")
+    private Integer sourceStaNo;
+
+    /**
+     * 婧愬簱浣�
+     */
+    @ApiModelProperty(value = "婧愬簱浣�")
+    @TableField("source_loc_no")
+    private String sourceLocNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("loc_sts")
+    private String locSts;
+
+    /**
+     * 鎷f枡
+     */
+    @ApiModelProperty(value = "鎷f枡")
+    private String picking;
+
+    @ApiModelProperty(value = "")
+    @TableField("link_mis")
+    private String linkMis;
+
+    @ApiModelProperty(value = "")
+    @TableField("online_yn")
+    private String onlineYn;
+
+    @ApiModelProperty(value = "")
+    @TableField("upd_mk")
+    private String updMk;
+
+    /**
+     * 閫�鍑�
+     */
+    @ApiModelProperty(value = "閫�鍑�")
+    @TableField("exit_mk")
+    private String exitMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("plt_type")
+    private Integer pltType;
+
+    /**
+     * 绌烘澘
+     */
+    @ApiModelProperty(value = "绌烘澘")
+    @TableField("empty_mk")
+    private String emptyMk;
+
+    /**
+     * 宸ヤ綔鏃堕棿
+     */
+    @ApiModelProperty(value = "宸ヤ綔鏃堕棿")
+    @TableField("io_time")
+    private Date ioTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_type")
+    private Integer ctnType;
+
+    @ApiModelProperty(value = "鐢ㄤ簬鏍囪瘑璺ㄥ簱鎿嶄綔锛�1锛屽爢鍨涙満寰�鍥涘悜搴擄紝2鍥涘悜搴撳線鍫嗗灈鏈�")
+    private String packed;
+
+    @ApiModelProperty(value = "")
+    @TableField("ove_mk")
+    private String oveMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("mtn_type")
+    private Double mtnType;
+
+    @ApiModelProperty(value = "")
+    @TableField("user_no")
+    private String userNo;
+
+    /**
+     * 鍫嗗灈鏈哄惎鍔ㄦ椂闂�
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈哄惎鍔ㄦ椂闂�")
+    @TableField("crn_str_time")
+    private Date crnStrTime;
+
+    /**
+     * 鍫嗗灈鏈哄仠姝㈡椂闂�
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈哄仠姝㈡椂闂�")
+    @TableField("crn_end_time")
+    private Date crnEndTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("plc_str_time")
+    private Date plcStrTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("crn_pos_time")
+    private Date crnPosTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("load_time")
+    private Double loadTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("exp_time")
+    private Double expTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("ref_wrkno")
+    private Double refWrkno;
+
+    /**
+     * 鎷f枡鏃堕棿
+     */
+    @ApiModelProperty(value = "鎷f枡鏃堕棿")
+    @TableField("ref_iotime")
+    private Date refIotime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value = "淇敼浜哄憳")
+    @TableField("modi_user")
+    private Long modiUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField("modi_time")
+    private Date modiTime;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @ApiModelProperty(value = "鍒涘缓鑰�")
+    @TableField("appe_user")
+    private Long appeUser;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value = "娣诲姞鏃堕棿")
+    @TableField("appe_time")
+    private Date appeTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("pause_mk")
+    private String pauseMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("error_time")
+    private Date errorTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("error_memo")
+    private String errorMemo;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_kind")
+    private Integer ctnKind;
+
+    @ApiModelProperty(value = "")
+    @TableField("manu_type")
+    private String manuType;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String memo;
+
+    @ApiModelProperty(value = "")
+    @TableField("sc_weight")
+    private Double scWeight;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_mk")
+    private String logMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_err_time")
+    private Date logErrTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_err_memo")
+    private String logErrMemo;
+
+    /**
+     * 鏉$爜
+     */
+    @ApiModelProperty(value = "鏉$爜")
+    private String barcode;
+
+    // Y:閿�鍞鍗曞嚭搴撲换鍔�
+    @ApiModelProperty(value = "")
+    @TableField("Pdc_type")
+    private String PdcType;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_no")
+    private String ctnNo;
+
+    /**
+     * 婊℃澘
+     */
+    @ApiModelProperty(value = "婊℃澘")
+    @TableField("full_plt")
+    private String fullPlt;
+
+    /**
+     * 鍏堝叆鍝� / 鍙岄噸鍏ュ簱
+     */
+    @ApiModelProperty(value = "鍏堝叆鍝�")
+    @TableField("pre_have")
+    private String preHave;
+
+    /**
+     * 绌烘搷浣� / 鍙栬揣鏃犵
+     */
+    @ApiModelProperty(value = "绌烘搷浣�")
+    @TableField("take_none")
+    private String takeNone;
+
+    public AgvWrkMast() {
+    }
+
+    public String getYmd$() {
+        if (Cools.isEmpty(this.ymd)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ymd);
+    }
+
+    public String getWrkSts$() {
+        BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
+        BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
+        if (!Cools.isEmpty(basWrkStatus)) {
+            return String.valueOf(basWrkStatus.getWrkDesc());
+        }
+        return null;
+    }
+
+    public String getIoType$() {
+        BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
+        BasWrkIotype basWrkIotype = service.selectById(this.ioType);
+        if (!Cools.isEmpty(basWrkIotype)) {
+            return String.valueOf(basWrkIotype.getIoDesc());
+        }
+        return null;
+    }
+
+    public String getCrnNo$() {
+        BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
+        BasCrnp basCrnp = service.selectById(this.crnNo);
+        if (!Cools.isEmpty(basCrnp)) {
+            return String.valueOf(basCrnp.getCrnNo());
+        }
+        return null;
+    }
+
+    public String getWrkDate$() {
+        if (Cools.isEmpty(this.wrkDate)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.wrkDate);
+    }
+
+    public String getLocNo$() {
+        LocMastService service = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = service.selectById(this.locNo);
+        if (!Cools.isEmpty(locMast)) {
+            return String.valueOf(locMast.getLocNo());
+        }
+        return this.locNo;
+    }
+
+    public String getStaNo$() {
+        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
+        BasDevp basDevp = service.selectById(this.staNo);
+        if (!Cools.isEmpty(basDevp)) {
+            return String.valueOf(basDevp.getDevNo());
+        }
+        return null;
+    }
+
+    public String getSourceStaNo$() {
+        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
+        BasDevp basDevp = service.selectById(this.sourceStaNo);
+        if (!Cools.isEmpty(basDevp)) {
+            return String.valueOf(basDevp.getDevNo());
+        }
+        return null;
+    }
+
+    public String getSourceLocNo$() {
+        LocMastService service = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = service.selectById(this.sourceLocNo);
+        if (!Cools.isEmpty(locMast)) {
+            return String.valueOf(locMast.getLocNo());
+        }
+        return this.sourceLocNo;
+    }
+
+    public String getIoTime$() {
+        if (Cools.isEmpty(this.ioTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+    }
+
+    public String getCrnStrTime$() {
+        if (Cools.isEmpty(this.crnStrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnStrTime);
+    }
+
+    public String getCrnEndTime$() {
+        if (Cools.isEmpty(this.crnEndTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnEndTime);
+    }
+
+    public String getPlcStrTime$() {
+        if (Cools.isEmpty(this.plcStrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.plcStrTime);
+    }
+
+    public String getCrnPosTime$() {
+        if (Cools.isEmpty(this.crnPosTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnPosTime);
+    }
+
+    public String getRefIotime$() {
+        if (Cools.isEmpty(this.refIotime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.refIotime);
+    }
+
+    public String getModiUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.modiUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getModiTime$() {
+        if (Cools.isEmpty(this.modiTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+    }
+
+    public String getAppeUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.appeUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getAppeTime$() {
+        if (Cools.isEmpty(this.appeTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+    }
+
+    public String getErrorTime$() {
+        if (Cools.isEmpty(this.errorTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
+    }
+
+//    public void setErrorMemo(String errorMemo) {
+//        if (errorMemo.length() > 255) {
+//            errorMemo = errorMemo.substring(0, 150);
+//        }
+//        this.errorMemo = errorMemo;
+//    }
+
+    public String getLogErrTime$() {
+        if (Cools.isEmpty(this.logErrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
+    }
+
+    public Long getWrkStsComplete() {
+        if (Cools.isEmpty(this.wrkSts)) {
+            return this.wrkSts;
+        }
+        if (this.ioType > 10) {
+            return this.wrkSts + 2;
+        } else {
+            return this.wrkSts + 2;
+        }
+    }
+
+    public void sync(Object source) {
+        Synchro.Copy(source, this);
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/AgvWrkMastLog.java b/src/main/java/com/zy/asrs/entity/AgvWrkMastLog.java
new file mode 100644
index 0000000..6176c68
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AgvWrkMastLog.java
@@ -0,0 +1,515 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.service.*;
+import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("agv_wrk_mast_log")
+public class AgvWrkMastLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value = "缂栧彿")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Long wrkId;
+    /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value = "宸ヤ綔鍙�")
+    @TableField("wrk_no")
+    private Integer wrkNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("inv_wh")
+    private String invWh;
+
+    @ApiModelProperty(value = "")
+    private Date ymd;
+
+    @ApiModelProperty(value = "")
+    private String mk;
+
+    @ApiModelProperty(value = "")
+    @TableField("whs_type")
+    private Integer whsType;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    @ApiModelProperty(value = "宸ヤ綔鐘舵��")
+    @TableField("wrk_sts")
+    private Integer wrkSts;
+
+    /**
+     * 鍏ュ嚭搴撶被鍨�
+     */
+    @ApiModelProperty(value = "鍏ュ嚭搴撶被鍨�")
+    @TableField("io_type")
+    private Integer ioType;
+
+    /**
+     * 鍫嗗灈鏈哄彿
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈哄彿")
+    @TableField("crn_no")
+    private Integer crnNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("sheet_no")
+    private String sheetNo;
+
+    /**
+     * 浼樺厛绾�
+     */
+    @ApiModelProperty(value = "浼樺厛绾�")
+    @TableField("io_pri")
+    private Double ioPri;
+
+    @ApiModelProperty(value = "")
+    @TableField("wrk_date")
+    private Date wrkDate;
+
+    /**
+     * 鐩爣搴撲綅
+     */
+    @ApiModelProperty(value = "鐩爣搴撲綅")
+    @TableField("loc_no")
+    private String locNo;
+
+    /**
+     * 鐩爣绔�
+     */
+    @ApiModelProperty(value = "鐩爣绔�")
+    @TableField("sta_no")
+    private Integer staNo;
+
+    /**
+     * 婧愮珯
+     */
+    @ApiModelProperty(value = "婧愮珯")
+    @TableField("source_sta_no")
+    private Integer sourceStaNo;
+
+    /**
+     * 婧愬簱浣�
+     */
+    @ApiModelProperty(value = "婧愬簱浣�")
+    @TableField("source_loc_no")
+    private String sourceLocNo;
+
+    @ApiModelProperty(value = "")
+    @TableField("loc_sts")
+    private String locSts;
+
+    /**
+     * 鎷f枡
+     */
+    @ApiModelProperty(value = "鎷f枡")
+    private String picking;
+
+    @ApiModelProperty(value = "")
+    @TableField("link_mis")
+    private String linkMis;
+
+    @ApiModelProperty(value = "")
+    @TableField("online_yn")
+    private String onlineYn;
+
+    @ApiModelProperty(value = "")
+    @TableField("upd_mk")
+    private String updMk;
+
+    /**
+     * 閫�鍑�
+     */
+    @ApiModelProperty(value = "閫�鍑�")
+    @TableField("exit_mk")
+    private String exitMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("plt_type")
+    private Integer pltType;
+
+    /**
+     * 绌烘澘
+     */
+    @ApiModelProperty(value = "绌烘澘")
+    @TableField("empty_mk")
+    private String emptyMk;
+
+    /**
+     * 宸ヤ綔鏃堕棿
+     */
+    @ApiModelProperty(value = "宸ヤ綔鏃堕棿")
+    @TableField("io_time")
+    private Date ioTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_type")
+    private Integer ctnType;
+
+    @ApiModelProperty(value = "")
+    private String packed;
+
+    @ApiModelProperty(value = "")
+    @TableField("ove_mk")
+    private String oveMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("mtn_type")
+    private Double mtnType;
+
+    @ApiModelProperty(value = "")
+    @TableField("user_no")
+    private String userNo;
+
+    /**
+     * 鍫嗗灈鏈哄惎鍔ㄦ椂闂�
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈哄惎鍔ㄦ椂闂�")
+    @TableField("crn_str_time")
+    private Date crnStrTime;
+
+    /**
+     * 鍫嗗灈鏈哄仠姝㈡椂闂�
+     */
+    @ApiModelProperty(value = "鍫嗗灈鏈哄仠姝㈡椂闂�")
+    @TableField("crn_end_time")
+    private Date crnEndTime;
+
+    /**
+     * 鎷f枡鏃堕棿
+     */
+    @ApiModelProperty(value = "鎷f枡鏃堕棿")
+    @TableField("plc_str_time")
+    private Date plcStrTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("crn_pos_time")
+    private Date crnPosTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("load_time")
+    private Double loadTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("exp_time")
+    private Double expTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("ref_wrkno")
+    private Double refWrkno;
+
+    @ApiModelProperty(value = "")
+    @TableField("ref_iotime")
+    private Date refIotime;
+
+    /**
+     * 淇敼浜哄憳
+     */
+    @ApiModelProperty(value = "淇敼浜哄憳")
+    @TableField("modi_user")
+    private Long modiUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField("modi_time")
+    private Date modiTime;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @ApiModelProperty(value = "鍒涘缓鑰�")
+    @TableField("appe_user")
+    private Long appeUser;
+
+    /**
+     * 娣诲姞鏃堕棿
+     */
+    @ApiModelProperty(value = "娣诲姞鏃堕棿")
+    @TableField("appe_time")
+    private Date appeTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("pause_mk")
+    private String pauseMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("error_time")
+    private Date errorTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("error_memo")
+    private String errorMemo;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_kind")
+    private Integer ctnKind;
+
+    @ApiModelProperty(value = "")
+    @TableField("manu_type")
+    private String manuType;
+
+    @ApiModelProperty(value = "")
+    @TableField("memo_m")
+    private String memoM;
+
+    @ApiModelProperty(value = "")
+    @TableField("sc_weight")
+    private Double scWeight;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_mk")
+    private String logMk;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_err_time")
+    private Date logErrTime;
+
+    @ApiModelProperty(value = "")
+    @TableField("log_err_memo")
+    private String logErrMemo;
+
+    /**
+     * 鏉$爜
+     */
+    @ApiModelProperty(value = "鏉$爜")
+    private String barcode;
+
+    @ApiModelProperty(value = "")
+    @TableField("Pdc_type")
+    private String PdcType;
+
+    @ApiModelProperty(value = "")
+    @TableField("ctn_no")
+    private String ctnNo;
+
+    /**
+     * 婊℃澘
+     */
+    @ApiModelProperty(value = "婊℃澘")
+    @TableField("full_plt")
+    private String fullPlt;
+
+    /**
+     * 鍏堝叆鍝� / 鍙岄噸鍏ュ簱
+     */
+    @ApiModelProperty(value = "鍏堝叆鍝�")
+    @TableField("pre_have")
+    private String preHave;
+
+    /**
+     * 绌烘搷浣� / 鍙栬揣鏃犵
+     */
+    @ApiModelProperty(value = "绌烘搷浣�")
+    @TableField("take_none")
+    private String takeNone;
+
+    public AgvWrkMastLog() {
+    }
+
+    public String getWrkNo$() {
+        WrkMastService service = SpringUtils.getBean(WrkMastService.class);
+        WrkMast wrkMast = service.selectById(this.wrkNo);
+        if (!Cools.isEmpty(wrkMast)) {
+            return String.valueOf(wrkMast.getWrkNo());
+        }
+        return null;
+    }
+
+    public String getYmd$() {
+        if (Cools.isEmpty(this.ymd)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ymd);
+    }
+
+    public String getWrkSts$() {
+        BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
+        BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
+        if (!Cools.isEmpty(basWrkStatus)) {
+            return String.valueOf(basWrkStatus.getWrkDesc());
+        }
+        return null;
+    }
+
+    public long getWrkSts() {
+        return (long) this.wrkSts;
+    }
+
+    public String getIoType$() {
+        BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
+        BasWrkIotype basWrkIotype = service.selectById(this.ioType);
+        if (!Cools.isEmpty(basWrkIotype)) {
+            return String.valueOf(basWrkIotype.getIoDesc());
+        }
+        return null;
+    }
+
+    public String getCrnNo$() {
+        BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
+        BasCrnp basCrnp = service.selectById(this.crnNo);
+        if (!Cools.isEmpty(basCrnp)) {
+            return String.valueOf(basCrnp.getCrnNo());
+        }
+        return null;
+    }
+
+    public String getWrkDate$() {
+        if (Cools.isEmpty(this.wrkDate)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.wrkDate);
+    }
+
+    public String getLocNo$() {
+        LocMastService service = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = service.selectById(this.locNo);
+        if (!Cools.isEmpty(locMast)) {
+            return String.valueOf(locMast.getLocNo());
+        }
+        return null;
+    }
+
+    public String getStaNo$() {
+        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
+        BasDevp basDevp = service.selectById(this.staNo);
+        if (!Cools.isEmpty(basDevp)) {
+            return String.valueOf(basDevp.getDevNo());
+        }
+        return null;
+    }
+
+    public String getSourceStaNo$() {
+        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
+        BasDevp basDevp = service.selectById(this.sourceStaNo);
+        if (!Cools.isEmpty(basDevp)) {
+            return String.valueOf(basDevp.getDevNo());
+        }
+        return null;
+    }
+
+    public String getSourceLocNo$() {
+        LocMastService service = SpringUtils.getBean(LocMastService.class);
+        LocMast locMast = service.selectById(this.sourceLocNo);
+        if (!Cools.isEmpty(locMast)) {
+            return String.valueOf(locMast.getLocNo());
+        }
+        return null;
+    }
+
+    public String getIoTime$() {
+        if (Cools.isEmpty(this.ioTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+    }
+
+    public String getCrnStrTime$() {
+        if (Cools.isEmpty(this.crnStrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnStrTime);
+    }
+
+    public String getCrnEndTime$() {
+        if (Cools.isEmpty(this.crnEndTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnEndTime);
+    }
+
+    public String getPlcStrTime$() {
+        if (Cools.isEmpty(this.plcStrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.plcStrTime);
+    }
+
+    public String getCrnPosTime$() {
+        if (Cools.isEmpty(this.crnPosTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnPosTime);
+    }
+
+
+    public String getRefIotime$() {
+        if (Cools.isEmpty(this.refIotime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.refIotime);
+    }
+
+    public String getModiUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.modiUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getModiTime$() {
+        if (Cools.isEmpty(this.modiTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+    }
+
+    public String getAppeUser$() {
+        UserService service = SpringUtils.getBean(UserService.class);
+        User user = service.selectById(this.appeUser);
+        if (!Cools.isEmpty(user)) {
+            return String.valueOf(user.getUsername());
+        }
+        return null;
+    }
+
+    public String getAppeTime$() {
+        if (Cools.isEmpty(this.appeTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+    }
+
+    public String getErrorTime$() {
+        if (Cools.isEmpty(this.errorTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
+    }
+
+    public String getLogErrTime$() {
+        if (Cools.isEmpty(this.logErrTime)) {
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
+    }
+
+    public void sync(Object source) {
+        Synchro.Copy(source, this);
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
index a919f96..0131136 100644
--- a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
+++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java
@@ -348,7 +348,7 @@
         this.memo = memo;
     }
 
-    
+
     public String getBeBatch$() {
         if (null == this.beBatch) {
             return null;
diff --git a/src/main/java/com/zy/asrs/entity/param/OrderPakinDomainParam.java b/src/main/java/com/zy/asrs/entity/param/OrderPakinDomainParam.java
index 028a0c3..4ab0ce7 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderPakinDomainParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderPakinDomainParam.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.entity.param;
 
 import com.zy.asrs.entity.OrderDetlPakin;
-import com.zy.asrs.entity.OrderDetlPakout;
 import lombok.Data;
 
 import java.util.List;
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkDetlLogMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkDetlLogMapper.java
new file mode 100644
index 0000000..623fabf
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkDetlLogMapper.java
@@ -0,0 +1,43 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.AgvWrkDetlLog;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+@Repository
+public interface AgvWrkDetlLogMapper extends BaseMapper<AgvWrkDetlLog> {
+
+    @Insert("insert into agv_wrk_detl_log select * from agv_wrk_detl where wrk_no=#{workNo}")
+    int save(Integer workNo);
+
+    List<AgvWrkDetlLog> selectWrkDetlLogs(@Param("wrkNo") Integer wrkNo,
+                                          @Param("orderNo") String orderNo,
+                                          @Param("matnr") String matnr,
+                                          @Param("specs") String specs,
+                                          @Param("zpallet") String zpallet,
+                                          @Param("batch") String batch,
+                                          @Param("anfme") Double anfme,
+                                          @Param("modiTimeStart") Date modiTimeStart,
+                                          @Param("modiTimeEnd") Date modiTimeEnd,
+                                          @Param("pageNumber") Integer curr,
+                                          @Param("pageSize") Integer limit);
+
+    Long selectWrkDetlLogsTotal(@Param("wrkNo") Integer wrkNo,
+                                @Param("orderNo") String orderNo,
+                                @Param("matnr") String matnr,
+                                @Param("specs") String specs,
+                                @Param("zpallet") String zpallet,
+                                @Param("batch") String batch,
+                                @Param("anfme") Double anfme,
+                                @Param("modiTimeStart") Date modiTimeStart,
+                                @Param("modiTimeEnd") Date modiTimeEnd);
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkDetlMapper.java
new file mode 100644
index 0000000..4a937c2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkDetlMapper.java
@@ -0,0 +1,35 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.AgvWrkDetl;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+@Repository
+public interface AgvWrkDetlMapper extends BaseMapper<AgvWrkDetl> {
+
+    List<AgvWrkDetl> selectByWrkNo(Integer wrkNo);
+
+    int deleteItem(@Param("wrkNo") Integer wrkNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
+    int updateAnfme(@Param("anfme") Double anfme, @Param("wrkNo") Integer wrkNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
+    List<AgvWrkDetl> selectAndLogByOrderNo(String orderNo);
+
+    int updateInspect(@Param("wrkNo") Integer wrkNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
+    List<AgvWrkDetl> selectPakoutQuery(@Param("staNo") Integer staNo, @Param("matnr") String matnr);
+
+    List<AgvWrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+
+    int updateIoTimeWms(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
+
+    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
+
+    List<AgvWrkDetl> findByWorkNo(Integer workNo);
+}
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkMastLogMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkMastLogMapper.java
new file mode 100644
index 0000000..d1cc7e5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkMastLogMapper.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.AgvWrkMastLog;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface AgvWrkMastLogMapper extends BaseMapper<AgvWrkMastLog> {
+
+    @Insert("insert into agv_wrk_mast_log select * from agv_wrk_mast where wrk_no=#{workNo}")
+    int save(Integer workNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
new file mode 100644
index 0000000..1eed30a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
@@ -0,0 +1,35 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.AgvWrkMast;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface AgvWrkMastMapper extends BaseMapper<AgvWrkMast> {
+
+    List<AgvWrkMast> selectToBeCompleteData();
+
+    List<AgvWrkMast> selectToBeHistoryData();
+
+    @Select("select count(1) from agv_wrk_mast where 1=1 and io_type = #{ioType} and sta_no = #{staNo}")
+    int selectWrkMastBareBoardStaNo(Integer ioType, Integer staNo);
+
+    List<AgvWrkMast> selectWrkMastWrkDetlMatnrBatch(@Param("ioType") Integer ioType, @Param("matnr") String matnr, @Param("batch") String batch, @Param("grade") String grade, @Param("crnNo") Integer crnNo);
+
+    @Insert("insert into agv_wrk_mast_log select * from agv_wrk_mast where wrk_no=#{workNo}")
+    int saveWrkMastLog(Integer workNo);
+
+    List<AgvWrkMast> selectToShuttleTask();
+
+    List<AgvWrkMast> selectToShuttleOutTask();
+
+    @Insert("insert into agv_wrk_detl_log select * from agv_wrk_detl where wrk_no=#{workNo}")
+    int saveWrkDetlLog(Integer workNo);
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java b/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java
index 736e2b6..8a49a44 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.OrderPakout;
-import com.zy.asrs.entity.OrderPakout;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/zy/asrs/mapper/OrderReportMapper.java b/src/main/java/com/zy/asrs/mapper/OrderReportMapper.java
index 875383c..54bc4f1 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderReportMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderReportMapper.java
@@ -1,13 +1,9 @@
 package com.zy.asrs.mapper;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
-import com.zy.asrs.entity.OrderPakin;
 import com.zy.asrs.entity.OrderReport;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
-
-import java.util.List;
 
 @Mapper
 @Repository
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkDetlLogService.java b/src/main/java/com/zy/asrs/service/AgvWrkDetlLogService.java
new file mode 100644
index 0000000..b428de0
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/AgvWrkDetlLogService.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.AgvWrkDetlLog;
+
+import java.util.Date;
+import java.util.List;
+
+public interface AgvWrkDetlLogService extends IService<AgvWrkDetlLog> {
+
+    boolean save(Integer workNo);
+
+    List<AgvWrkDetlLog> selectWrkDetlLogs(Integer wrkNo, String orderNo, String matnr, String specs, String zpallet, String batch, Double anfme, Date modiTimeStart, Date modiTimeEnd, Integer curr, Integer limit);
+
+    Long selectWrkDetlLogsTotal(Integer wrkNo, String orderNo, String matnr, String specs, String zpallet, String batch, Double anfme, Date modiTimeStart, Date modiTimeEnd);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
new file mode 100644
index 0000000..cc2d69b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
@@ -0,0 +1,31 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.common.model.DetlDto;
+
+import java.util.Date;
+import java.util.List;
+
+public interface AgvWrkDetlService extends IService<AgvWrkDetl> {
+
+    void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId, Date now);
+
+    List<AgvWrkDetl> selectByWrkNo(Integer wrkNo);
+
+    boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch);
+
+    List<AgvWrkDetl> selectAndLogByOrderNo(String orderNo);
+
+    boolean updateInspect(Integer wrkNo, String matnr, String batch);
+
+    List<AgvWrkDetl> selectPakoutQuery(Integer staNo, String matnr);
+
+    List<AgvWrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+
+    boolean updateIoTimeWms(Integer workNo, Date ioTime);
+
+    boolean updateIoTime(Integer workNo, Date ioTime);
+
+    List<AgvWrkDetl> findByWorkNo(Integer wrkNo);
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java
new file mode 100644
index 0000000..f55763c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastLogService.java
@@ -0,0 +1,10 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.AgvWrkMastLog;
+
+public interface AgvWrkMastLogService extends IService<AgvWrkMastLog> {
+
+    boolean save(Integer workNo);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkMastService.java b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
new file mode 100644
index 0000000..648837e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -0,0 +1,36 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.AgvWrkMast;
+
+import java.util.List;
+
+public interface AgvWrkMastService extends IService<AgvWrkMast> {
+
+    int getWorkingMast(Integer devpNo);
+
+    List<AgvWrkMast> selectToBeCompleteData();
+
+    List<AgvWrkMast> selectToBeHistoryData();
+
+    AgvWrkMast selectByBarcode(String barcode);
+
+    /**
+     * 浠庡伐浣滄。寰楀埌绔欑偣鍏ュ簱鏆傚瓨鏁�
+     *
+     * @param crnNo
+     * @return
+     */
+    int getStoreCount(Integer crnNo);
+
+    int selectWrkMastBareBoardStaNo(Integer ioType, Integer staNo);
+
+    List<AgvWrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType, String matnr, String batch, String grade, Integer crnNo);
+
+    int saveWrkMastLog(Integer wrkNo);
+
+    List<AgvWrkMast> selectToShuttleTask();
+
+    List<AgvWrkMast> selectToShuttleOutTask();
+
+}
diff --git a/src/main/java/com/zy/asrs/service/OrderPakinService.java b/src/main/java/com/zy/asrs/service/OrderPakinService.java
index f486e60..6e83649 100644
--- a/src/main/java/com/zy/asrs/service/OrderPakinService.java
+++ b/src/main/java/com/zy/asrs/service/OrderPakinService.java
@@ -1,7 +1,10 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.OrderDetlPakin;
+import com.zy.asrs.entity.OrderPakin;
+import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkMast;
 
 import java.util.List;
 
diff --git a/src/main/java/com/zy/asrs/service/OrderPakoutService.java b/src/main/java/com/zy/asrs/service/OrderPakoutService.java
index d95143a..37f5c8e 100644
--- a/src/main/java/com/zy/asrs/service/OrderPakoutService.java
+++ b/src/main/java/com/zy/asrs/service/OrderPakoutService.java
@@ -1,7 +1,10 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.OrderDetlPakout;
+import com.zy.asrs.entity.OrderPakout;
+import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkMast;
 
 import java.util.List;
 
diff --git a/src/main/java/com/zy/asrs/service/OrderReportService.java b/src/main/java/com/zy/asrs/service/OrderReportService.java
index 3aa1aa0..2170bbf 100644
--- a/src/main/java/com/zy/asrs/service/OrderReportService.java
+++ b/src/main/java/com/zy/asrs/service/OrderReportService.java
@@ -1,9 +1,7 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
-import com.zy.asrs.entity.*;
-
-import java.util.List;
+import com.zy.asrs.entity.OrderReport;
 
 public interface OrderReportService extends IService<OrderReport> {
 
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlLogServiceImpl.java
new file mode 100644
index 0000000..41de62e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlLogServiceImpl.java
@@ -0,0 +1,29 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.AgvWrkDetlLog;
+import com.zy.asrs.mapper.AgvWrkDetlLogMapper;
+import com.zy.asrs.service.AgvWrkDetlLogService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service("agvWrkDetlLogService")
+public class AgvWrkDetlLogServiceImpl extends ServiceImpl<AgvWrkDetlLogMapper, AgvWrkDetlLog> implements AgvWrkDetlLogService {
+
+    @Override
+    public boolean save(Integer workNo) {
+        return this.baseMapper.save(workNo) > 0;
+    }
+
+    @Override
+    public List<AgvWrkDetlLog> selectWrkDetlLogs(Integer wrkNo, String orderNo, String matnr, String specs, String zpallet, String batch, Double anfme, Date modiTimeStart, Date modiTimeEnd, Integer curr, Integer limit) {
+        return this.baseMapper.selectWrkDetlLogs(wrkNo, orderNo, matnr, specs, zpallet, batch, anfme, modiTimeStart, modiTimeEnd, curr, limit);
+    }
+
+    @Override
+    public Long selectWrkDetlLogsTotal(Integer wrkNo, String orderNo, String matnr, String specs, String zpallet, String batch, Double anfme, Date modiTimeStart, Date modiTimeEnd) {
+        return this.baseMapper.selectWrkDetlLogsTotal(wrkNo, orderNo, matnr, specs, zpallet, batch, anfme, modiTimeStart, modiTimeEnd);
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
new file mode 100644
index 0000000..485678c
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
@@ -0,0 +1,102 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.AgvWrkDetl;
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.mapper.AgvWrkDetlMapper;
+import com.zy.asrs.service.AgvWrkDetlService;
+import com.zy.asrs.service.MatService;
+import com.zy.common.model.DetlDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service("agvWrkDetlService")
+public class AgvWrkDetlServiceImpl extends ServiceImpl<AgvWrkDetlMapper, AgvWrkDetl> implements AgvWrkDetlService {
+
+    @Autowired
+    private MatService matService;
+
+    @Override
+    @Transactional
+    public void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId, Date now) {
+        if (detlDtos.isEmpty()) {
+            return;
+        }
+        for (DetlDto dto : detlDtos) {
+            Mat mat = matService.selectByMatnr(dto.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(dto.getMatnr() + "鍟嗗搧缁存姢澶辫触");
+            }
+            // 淇濇寔宸ヤ綔妗f槑缁�
+            AgvWrkDetl wrkDetl = new AgvWrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(now);
+            wrkDetl.setBatch(dto.getBatch());
+            wrkDetl.setAnfme(dto.getAnfme()); // 鏁伴噺
+            wrkDetl.setZpallet(barcode); // 鎵樼洏鏉$爜
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiUser(userId);
+            wrkDetl.setModiTime(now);
+            if (!this.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        }
+    }
+
+    @Override
+    public List<AgvWrkDetl> selectByWrkNo(Integer wrkNo) {
+        return this.baseMapper.selectByWrkNo(wrkNo);
+    }
+
+    @Override
+    public boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch) {
+        if (anfme <= 0) {
+            return this.baseMapper.deleteItem(wrkNo, matnr, batch) > 0;
+        } else {
+            return baseMapper.updateAnfme(anfme, wrkNo, matnr, batch) > 0;
+        }
+    }
+
+    @Override
+    public List<AgvWrkDetl> selectAndLogByOrderNo(String orderNo) {
+        return this.baseMapper.selectAndLogByOrderNo(orderNo);
+    }
+
+    @Override
+    public boolean updateInspect(Integer wrkNo, String matnr, String batch) {
+        return this.baseMapper.updateInspect(wrkNo, matnr, batch) > 0;
+    }
+
+    @Override
+    public List<AgvWrkDetl> selectPakoutQuery(Integer staNo, String matnr) {
+        return this.baseMapper.selectPakoutQuery(staNo, matnr);
+    }
+
+    @Override
+    public List<AgvWrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo) {
+        return this.baseMapper.selectAndLogByOrderNoGroupByMatnrOfSum(orderNo);
+    }
+
+    @Override
+    public boolean updateIoTimeWms(Integer workNo, Date ioTime) {
+        return this.baseMapper.updateIoTimeWms(workNo, ioTime) > 0;
+    }
+
+    @Override
+    public boolean updateIoTime(Integer workNo, Date ioTime) {
+        return this.baseMapper.updateIoTime(workNo, ioTime) > 0;
+    }
+
+    @Override
+    public List<AgvWrkDetl> findByWorkNo(Integer workNo) {
+        return this.baseMapper.findByWorkNo(workNo);
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastLogServiceImpl.java
new file mode 100644
index 0000000..b07f343
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastLogServiceImpl.java
@@ -0,0 +1,17 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.AgvWrkMastLog;
+import com.zy.asrs.mapper.AgvWrkMastLogMapper;
+import com.zy.asrs.service.AgvWrkMastLogService;
+import org.springframework.stereotype.Service;
+
+@Service("agvWrkMastLogService")
+public class AgvWrkMastLogServiceImpl extends ServiceImpl<AgvWrkMastLogMapper, AgvWrkMastLog> implements AgvWrkMastLogService {
+
+    @Override
+    public boolean save(Integer workNo) {
+        return this.baseMapper.save(workNo) > 0;
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImpl.java
new file mode 100644
index 0000000..eb293bd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImpl.java
@@ -0,0 +1,74 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.mapper.AgvWrkMastMapper;
+import com.zy.asrs.service.AgvWrkMastService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service("agvWrkMastService")
+public class AgvWrkMastServiceImpl extends ServiceImpl<AgvWrkMastMapper, AgvWrkMast> implements AgvWrkMastService {
+
+    @Override
+    public int getWorkingMast(Integer devpNo) {
+        return selectCount(new EntityWrapper<AgvWrkMast>().eq("source_sta_no", devpNo).in("wrk_sts", 1, 6));
+    }
+
+    @Override
+    public List<AgvWrkMast> selectToBeCompleteData() {
+        return this.baseMapper.selectToBeCompleteData();
+    }
+
+    @Override
+    public List<AgvWrkMast> selectToBeHistoryData() {
+        return this.baseMapper.selectToBeHistoryData();
+    }
+
+    @Override
+    public AgvWrkMast selectByBarcode(String barcode) {
+        List<AgvWrkMast> wrkMasts = this.selectList(new EntityWrapper<AgvWrkMast>().eq("barcode", barcode));
+        if (Cools.isEmpty(wrkMasts)) {
+            return null;
+        }
+        return wrkMasts.get(0);
+    }
+
+    @Override
+    public int getStoreCount(Integer crnNo) {
+        return selectCount(new EntityWrapper<AgvWrkMast>().eq("crn_no", crnNo)
+                .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))"));
+    }
+
+    @Override
+    public int selectWrkMastBareBoardStaNo(Integer ioType, Integer staNo) {
+        return this.baseMapper.selectWrkMastBareBoardStaNo(ioType, staNo);
+    }
+
+    @Override
+    public List<AgvWrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType, String matnr, String batch, String grade, Integer crnNo) {
+        return this.baseMapper.selectWrkMastWrkDetlMatnrBatch(ioType, matnr, batch, grade, crnNo);
+    }
+
+    @Override
+    public int saveWrkMastLog(Integer workNo) {
+        return this.baseMapper.saveWrkMastLog(workNo);
+    }
+
+    @Override
+    public List<AgvWrkMast> selectToShuttleTask() {
+        return this.baseMapper.selectToShuttleTask();
+    }
+
+    @Override
+    public List<AgvWrkMast> selectToShuttleOutTask() {
+        return this.baseMapper.selectToShuttleOutTask();
+    }
+
+
+}
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 c35c027..0d1de5f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -4,21 +4,20 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.*;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.entity.param.ForwardAGVTaskParam;
 import com.zy.asrs.entity.param.MobileAdjustParam;
-import com.zy.asrs.entity.param.OpenOrderPakinParam;
 import com.zy.asrs.mapper.BasDevpMapper;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.MatUtils;
 import com.zy.common.constant.AgvSiteConstant;
 import com.zy.common.constant.ApiInterfaceConstant;
-import com.zy.common.entity.Parameter;
 import com.zy.common.model.DetlDto;
-import com.zy.common.model.MesCombParam;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
@@ -508,7 +507,6 @@
         }
 
     }
-
 
 
     @Override
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderReportServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderReportServiceImpl.java
index ea22dfb..399bef3 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderReportServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderReportServiceImpl.java
@@ -1,31 +1,15 @@
 package com.zy.asrs.service.impl;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.OpenOrderPakoutParam;
-import com.zy.asrs.mapper.OrderDetlPakoutMapper;
-import com.zy.asrs.mapper.OrderPakoutMapper;
+import com.zy.asrs.entity.OrderReport;
 import com.zy.asrs.mapper.OrderReportMapper;
-import com.zy.asrs.service.*;
-import com.zy.common.model.DetlDto;
+import com.zy.asrs.service.OrderReportService;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
 
 @Slf4j
 @Service("orderReportService")
 public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, OrderReport> implements OrderReportService {
-
-
-
 
 
 }
diff --git a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
index 692032b..fd83954 100644
--- a/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoLocMoveScheduler.java
@@ -3,9 +3,11 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.OrderPakin;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.*;
+import com.zy.asrs.service.AutoMoveService;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.task.handler.AutoLocMoveHandler;
 import com.zy.common.properties.SlaveWmsParameterProperties;
 import com.zy.system.entity.Config;
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 0e4033d..0765a21 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,21 +1,11 @@
 package com.zy.asrs.task;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.Cools;
-import com.zy.asrs.entity.OrderPakin;
-import com.zy.asrs.entity.OrderDetlReport;
-import com.zy.asrs.entity.OrderDetlReportLog;
 import com.zy.asrs.service.*;
-import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.OrderSyncHandler;
-import com.zy.common.entity.Parameter;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-
-import java.util.List;
 
 /**
  * Created by vincent on 2020/7/7
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
index ac57b6e..9734f40 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -32,8 +32,6 @@
     private OrderDetlReportLogService orderDetlReportLogService;
 
 
-
-
     public ReturnT<String> startPakin() {
         List<OrderPakin> settleEqual6 = orderPakinService.selectList(new EntityWrapper<OrderPakin>()
                 .eq("settle", 6));
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index a6dc007..fdbbce2 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -6,7 +6,6 @@
 import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
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 25a38b5..c60379e 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -480,5 +480,4 @@
     }
 
 
-
 }
diff --git a/src/main/java/com/zy/system/timer/LoadingConfigTimer.java b/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
index c5f5a02..32d5ac0 100644
--- a/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
+++ b/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
@@ -25,7 +25,6 @@
     private Integer tokenNumber = 1;
 
 
-
     @Autowired
     private ConfigService configService;
 
diff --git a/src/main/resources/mapper/AgvWrkDetlLogMapper.xml b/src/main/resources/mapper/AgvWrkDetlLogMapper.xml
new file mode 100644
index 0000000..f051a28
--- /dev/null
+++ b/src/main/resources/mapper/AgvWrkDetlLogMapper.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.AgvWrkDetlLogMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvWrkDetlLog">
+        <result column="wrk_no" property="wrkNo"/>
+        <result column="io_time" property="ioTime"/>
+        <result column="anfme" property="anfme"/>
+        <result column="zpallet" property="zpallet"/>
+        <result column="matnr" property="matnr"/>
+        <result column="maktx" property="maktx"/>
+        <result column="batch" property="batch"/>
+        <result column="order_no" property="orderNo"/>
+
+        <result column="specs" property="specs"/>
+        <result column="model" property="model"/>
+        <result column="color" property="color"/>
+        <result column="brand" property="brand"/>
+        <result column="unit" property="unit"/>
+        <result column="price" property="price"/>
+        <result column="sku" property="sku"/>
+        <result column="units" property="units"/>
+        <result column="barcode" property="barcode"/>
+        <result column="origin" property="origin"/>
+        <result column="manu" property="manu"/>
+        <result column="manu_date" property="manuDate"/>
+        <result column="item_num" property="itemNum"/>
+        <result column="safe_qty" property="safeQty"/>
+        <result column="weight" property="weight"/>
+        <result column="length" property="length"/>
+        <result column="volume" property="volume"/>
+        <result column="three_code" property="threeCode"/>
+        <result column="supp" property="supp"/>
+        <result column="supp_code" property="suppCode"/>
+        <result column="be_batch" property="beBatch"/>
+        <result column="dead_time" property="deadTime"/>
+        <result column="dead_warn" property="deadWarn"/>
+        <result column="source" property="source"/>
+        <result column="inspect" property="inspect"/>
+        <result column="danger" property="danger"/>
+
+        <result column="modi_user" property="modiUser"/>
+        <result column="modi_time" property="modiTime"/>
+        <result column="appe_user" property="appeUser"/>
+        <result column="appe_time" property="appeTime"/>
+        <result column="memo" property="memo"/>
+        <result column="temp1" property="temp1" />
+        <result column="temp2" property="temp2" />
+        <result column="temp3" property="temp3" />
+        <result column="temp4" property="temp4" />
+    </resultMap>
+
+    <sql id="batchSeq">
+        <if test="wrkNo != null and wrkNo != ''">
+            and a.wrk_no = #{wrkNo}
+        </if>
+        <if test="anfme != null and anfme != ''">
+            and a.anfme = #{anfme}
+        </if>
+        <if test="modiTimeStart != null ">
+            <if test="modiTimeEnd != null ">
+                and a.modi_time between #{modiTimeStart} and #{modiTimeEnd}
+            </if>
+        </if>
+        <if test="orderNo != null and orderNo != ''">
+            and a.order_no like concat('%',#{orderNo},'%')
+        </if>
+        <if test="batch != null and batch != ''">
+            and a.batch like concat('%',#{batch},'%')
+        </if>
+        <if test="matnr != null and matnr != ''">
+            and a.matnr like concat('%',#{matnr},'%')
+        </if>
+        <if test="zpallet != null and zpallet != ''">
+            and a.zpallet like concat('%',#{zpallet},'%')
+        </if>
+        <if test="specs != null and specs != ''">
+            and a.specs like concat('%',#{specs},'%')
+        </if>
+    </sql>
+
+    <select id="selectWrkDetlLogs" resultMap="BaseResultMap">
+        select d.* from (
+        select
+        ROW_NUMBER() over (order by c.modi_time desc) as row,
+        c.* from (
+        select a.* from asr_wrk_detl_log as a ,asr_wrk_mast_log as b
+        where 1=1
+        and a.io_time=b.io_time
+        and a.wrk_no=b.wrk_no
+        and (b.manu_type is NULL or b.manu_type='鎵嬪姩瀹屾垚')
+        <include refid="batchSeq"></include>
+        ) as c
+        ) as d
+        where d.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) order by d.modi_time desc
+    </select>
+
+    <select id="selectWrkDetlLogsTotal" resultType="Long">
+        select count(1) from asr_wrk_detl_log as a ,asr_wrk_mast_log as b
+        where 1=1
+        and a.io_time=b.io_time
+        and a.wrk_no=b.wrk_no
+        and (b.manu_type is NULL or b.manu_type='鎵嬪姩瀹屾垚')
+        <include refid="batchSeq"></include>
+    </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/AgvWrkDetlMapper.xml b/src/main/resources/mapper/AgvWrkDetlMapper.xml
new file mode 100644
index 0000000..e1587d7
--- /dev/null
+++ b/src/main/resources/mapper/AgvWrkDetlMapper.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.AgvWrkDetlMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvWrkDetl">
+        <result column="wrk_no" property="wrkNo" />
+        <result column="io_time" property="ioTime" />
+        <result column="anfme" property="anfme" />
+        <result column="zpallet" property="zpallet" />
+        <result column="matnr" property="matnr" />
+        <result column="maktx" property="maktx" />
+        <result column="batch" property="batch" />
+        <result column="order_no" property="orderNo" />
+
+        <result column="specs" property="specs" />
+        <result column="model" property="model" />
+        <result column="color" property="color" />
+        <result column="brand" property="brand" />
+        <result column="unit" property="unit" />
+        <result column="price" property="price" />
+        <result column="sku" property="sku" />
+        <result column="units" property="units" />
+        <result column="barcode" property="barcode" />
+        <result column="origin" property="origin" />
+        <result column="manu" property="manu" />
+        <result column="manu_date" property="manuDate" />
+        <result column="item_num" property="itemNum" />
+        <result column="safe_qty" property="safeQty" />
+        <result column="weight" property="weight" />
+        <result column="length" property="length" />
+        <result column="volume" property="volume" />
+        <result column="three_code" property="threeCode" />
+        <result column="supp" property="supp" />
+        <result column="supp_code" property="suppCode" />
+        <result column="be_batch" property="beBatch" />
+        <result column="dead_time" property="deadTime" />
+        <result column="dead_warn" property="deadWarn" />
+        <result column="source" property="source" />
+        <result column="inspect" property="inspect" />
+        <result column="danger" property="danger" />
+
+        <result column="modi_user" property="modiUser" />
+        <result column="modi_time" property="modiTime" />
+        <result column="appe_user" property="appeUser" />
+        <result column="appe_time" property="appeTime" />
+        <result column="memo" property="memo" />
+        <result column="temp1" property="temp1" />
+        <result column="temp2" property="temp2" />
+        <result column="temp3" property="temp3" />
+        <result column="temp4" property="temp4" />
+    </resultMap>
+
+    <sql id="batchSeq">
+        <choose>
+            <when test="batch != null and batch != ''">
+                and sku = #{batch}
+            </when>
+            <otherwise>
+                and (sku IS NULL OR sku = '')
+            </otherwise>
+        </choose>
+    </sql>
+
+
+    <select id="selectByWrkNo" resultMap="BaseResultMap">
+        select * from asr_wrk_detl where 1=1 and wrk_no = #{wrkNo}
+    </select>
+
+    <delete id="deleteItem">
+        delete from asr_wrk_detl
+        where 1=1
+        and wrk_no = #{wrkNo}
+        and matnr = #{matnr}
+        <include refid="batchSeq"></include>
+    </delete>
+
+    <update id="updateAnfme">
+        update asr_wrk_detl
+        set anfme = #{anfme}
+        , modi_time = getdate()
+        where 1=1
+        and wrk_no = #{wrkNo}
+        and matnr = #{matnr}
+        <include refid="batchSeq"></include>
+    </update>
+
+    <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
+        select * from asr_wrk_detl where order_no = #{orderNo}
+        union
+        select * from asr_wrk_detl_log where order_no = #{orderNo}
+    </select>
+
+    <update id="updateInspect">
+        update asr_wrk_detl
+        set inspect = 1
+        where 1=1
+        and wrk_no = #{wrkNo}
+        and matnr = #{matnr}
+        <include refid="batchSeq"></include>
+    </update>
+    <update id="updateIoTimeWms">
+        update asr_wrk_detl
+        set io_time = #{ioTime}
+        where 1=1
+          and wrk_no = #{workNo}
+    </update>
+    <update id="updateIoTime">
+        update asr_wrk_detl
+        set io_time = #{ioTime}
+        where 1=1
+          and wrk_no = #{workNo}
+    </update>
+
+    <select id="findByWorkNo" resultMap="BaseResultMap">
+        select wrk_no, matnr, maktx, anfme ,specs,batch from asr_wrk_detl where 1=1 and wrk_no = #{workNo}
+    </select>
+
+    <select id="selectPakoutQuery" resultMap="BaseResultMap">
+        select
+        awd.*
+        from asr_wrk_detl awd
+        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no
+        where 1=1
+        and awm.wrk_sts = 14
+        and (awd.inspect is null or awd.inspect = 0)
+        and awm.sta_no = #{staNo}
+        and awd.matnr + '-' + awd.batch = #{matnr}
+    </select>
+
+    <select id="selectAndLogByOrderNoGroupByMatnrOfSum" resultMap="BaseResultMap">
+        select awd.wrk_no, awd.io_time, awd.matnr,awd.zpallet,awd.specs,awd.maktx, sum(awd.anfme) as anfme
+        from asr_wrk_detl awd
+        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
+        where order_no = #{orderNo}
+        group by awd.wrk_no, awd.io_time, awd.matnr ,awd.zpallet,awd.specs,awd.maktx
+        union
+        select distinct awdl.wrk_no, awdl.io_time, awdl.matnr,awdl.zpallet,awdl.specs,awdl.maktx, sum(awdl.anfme) as anfme
+        from asr_wrk_detl_log awdl
+        left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
+        where awdl.order_no = #{orderNo}
+        and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
+        and awml.io_type != 103
+        group by awdl.wrk_no, awdl.io_time, awdl.matnr ,awdl.zpallet,awdl.specs,awdl.maktx
+    </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/AgvWrkMastLogMapper.xml b/src/main/resources/mapper/AgvWrkMastLogMapper.xml
new file mode 100644
index 0000000..e13d76e
--- /dev/null
+++ b/src/main/resources/mapper/AgvWrkMastLogMapper.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.AgvWrkMastLogMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvWrkMastLog">
+        <id column="id" property="id" />
+        <result column="wrk_no" property="wrkNo" />
+        <result column="inv_wh" property="invWh" />
+        <result column="ymd" property="ymd" />
+        <result column="mk" property="mk" />
+        <result column="whs_type" property="whsType" />
+        <result column="wrk_sts" property="wrkSts" />
+        <result column="io_type" property="ioType" />
+        <result column="crn_no" property="crnNo" />
+        <result column="sheet_no" property="sheetNo" />
+        <result column="io_pri" property="ioPri" />
+        <result column="wrk_date" property="wrkDate" />
+        <result column="loc_no" property="locNo" />
+        <result column="sta_no" property="staNo" />
+        <result column="source_sta_no" property="sourceStaNo" />
+        <result column="source_loc_no" property="sourceLocNo" />
+        <result column="loc_sts" property="locSts" />
+        <result column="picking" property="picking" />
+        <result column="link_mis" property="linkMis" />
+        <result column="online_yn" property="onlineYn" />
+        <result column="upd_mk" property="updMk" />
+        <result column="exit_mk" property="exitMk" />
+        <result column="plt_type" property="pltType" />
+        <result column="empty_mk" property="emptyMk" />
+        <result column="io_time" property="ioTime" />
+        <result column="ctn_type" property="ctnType" />
+        <result column="packed" property="packed" />
+        <result column="ove_mk" property="oveMk" />
+        <result column="mtn_type" property="mtnType" />
+        <result column="user_no" property="userNo" />
+        <result column="crn_str_time" property="crnStrTime" />
+        <result column="crn_end_time" property="crnEndTime" />
+        <result column="plc_str_time" property="plcStrTime" />
+        <result column="crn_pos_time" property="crnPosTime" />
+        <result column="load_time" property="loadTime" />
+        <result column="exp_time" property="expTime" />
+        <result column="ref_wrkno" property="refWrkno" />
+        <result column="ref_iotime" property="refIotime" />
+        <result column="modi_user" property="modiUser" />
+        <result column="modi_time" property="modiTime" />
+        <result column="appe_user" property="appeUser" />
+        <result column="appe_time" property="appeTime" />
+        <result column="pause_mk" property="pauseMk" />
+        <result column="error_time" property="errorTime" />
+        <result column="error_memo" property="errorMemo" />
+        <result column="ctn_kind" property="ctnKind" />
+        <result column="manu_type" property="manuType" />
+        <result column="memo_m" property="memoM" />
+        <result column="sc_weight" property="scWeight" />
+        <result column="log_mk" property="logMk" />
+        <result column="log_err_time" property="logErrTime" />
+        <result column="log_err_memo" property="logErrMemo" />
+        <result column="barcode" property="barcode" />
+        <result column="ctn_no" property="ctnNo" />
+        <result column="full_plt" property="fullPlt" />
+        <result column="pre_have" property="preHave" />
+        <result column="take_none" property="takeNone" />
+    </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/AgvWrkMastMapper.xml b/src/main/resources/mapper/AgvWrkMastMapper.xml
new file mode 100644
index 0000000..fc61848
--- /dev/null
+++ b/src/main/resources/mapper/AgvWrkMastMapper.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.AgvWrkMastMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvWrkMast">
+        <id column="wrk_no" property="wrkNo" />
+        <result column="inv_wh" property="invWh" />
+        <result column="ymd" property="ymd" />
+        <result column="mk" property="mk" />
+        <result column="whs_type" property="whsType" />
+        <result column="wrk_sts" property="wrkSts" />
+        <result column="io_type" property="ioType" />
+        <result column="crn_no" property="crnNo" />
+        <result column="sheet_no" property="sheetNo" />
+        <result column="io_pri" property="ioPri" />
+        <result column="wrk_date" property="wrkDate" />
+        <result column="loc_no" property="locNo" />
+        <result column="sta_no" property="staNo" />
+        <result column="source_sta_no" property="sourceStaNo" />
+        <result column="source_loc_no" property="sourceLocNo" />
+        <result column="loc_sts" property="locSts" />
+        <result column="picking" property="picking" />
+        <result column="link_mis" property="linkMis" />
+        <result column="online_yn" property="onlineYn" />
+        <result column="upd_mk" property="updMk" />
+        <result column="exit_mk" property="exitMk" />
+        <result column="plt_type" property="pltType" />
+        <result column="empty_mk" property="emptyMk" />
+        <result column="io_time" property="ioTime" />
+        <result column="ctn_type" property="ctnType" />
+        <result column="packed" property="packed" />
+        <result column="ove_mk" property="oveMk" />
+        <result column="mtn_type" property="mtnType" />
+        <result column="user_no" property="userNo" />
+        <result column="crn_str_time" property="crnStrTime" />
+        <result column="crn_end_time" property="crnEndTime" />
+        <result column="plc_str_time" property="plcStrTime" />
+        <result column="crn_pos_time" property="crnPosTime" />
+        <result column="load_time" property="loadTime" />
+        <result column="exp_time" property="expTime" />
+        <result column="ref_wrkno" property="refWrkno" />
+        <result column="ref_iotime" property="refIotime" />
+        <result column="modi_user" property="modiUser" />
+        <result column="modi_time" property="modiTime" />
+        <result column="appe_user" property="appeUser" />
+        <result column="appe_time" property="appeTime" />
+        <result column="pause_mk" property="pauseMk" />
+        <result column="error_time" property="errorTime" />
+        <result column="error_memo" property="errorMemo" />
+        <result column="ctn_kind" property="ctnKind" />
+        <result column="manu_type" property="manuType" />
+        <result column="memo" property="memo" />
+        <result column="sc_weight" property="scWeight" />
+        <result column="log_mk" property="logMk" />
+        <result column="log_err_time" property="logErrTime" />
+        <result column="log_err_memo" property="logErrMemo" />
+        <result column="barcode" property="barcode" />
+        <result column="ctn_no" property="ctnNo" />
+        <result column="full_plt" property="fullPlt" />
+        <result column="pre_have" property="preHave" />
+        <result column="take_none" property="takeNone" />
+    </resultMap>
+
+    <select id="selectToBeCompleteData" resultMap="BaseResultMap">
+        select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 Or wrk_sts = 108 Or wrk_sts = 106 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
+    </select>
+
+    <select id="selectToBeHistoryData" resultMap="BaseResultMap">
+        select * from asr_wrk_mast
+        where wrk_sts=5
+           or (wrk_sts=15 and io_type= 301)
+           or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp))
+           or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) &lt;= getdate() or dateadd(mi,1,modi_time) &lt;= getdate()) and wrk_no not in (select wrk_no from asr_bas_devp))
+           or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) &lt;= getdate() or dateadd(mi,1,modi_time) &lt;= getdate()) and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))
+        order by io_time,wrk_no asc
+    </select>
+
+    <select id="selectWrkMastWrkDetlMatnrBatch" resultMap="BaseResultMap">
+        select m.* from asr_wrk_mast m,asr_wrk_detl d
+        where 1=1
+        and m.wrk_no = d.wrk_no
+        and m.io_type = #{ioType}
+        and m.crn_no = #{crnNo}
+        and d.matnr = #{matnr}
+        <choose>
+            <when test="batch != null and batch != ''">
+                and d.batch = #{batch}
+            </when>
+            <otherwise>
+                and (d.batch IS NULL OR d.batch = '')
+            </otherwise>
+        </choose>
+        <choose>
+            <when test="grade != null and grade != ''">
+                and d.brand = #{grade}
+            </when>
+            <otherwise>
+                and (d.brand IS NULL OR d.brand = '')
+            </otherwise>
+        </choose>
+    </select>
+    <select id="selectToShuttleTask" resultMap="BaseResultMap">
+        select * from asr_wrk_mast
+        where wrk_sts=2
+           and crn_no = 7
+        order by io_time,wrk_no asc
+    </select>
+    <select id="selectToShuttleOutTask" resultMap="BaseResultMap">
+        select * from asr_wrk_mast
+        where wrk_sts=11
+          and crn_no = 7
+          and io_type != 11
+        order by io_time,wrk_no asc
+    </select>
+
+</mapper>

--
Gitblit v1.9.1