From f915165192845acd12aca37fecec6976eb1f870c Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 12 六月 2025 11:02:57 +0800
Subject: [PATCH] 转库出库初步完成,生成单据也成功了;显示需要添加菜单及其权限

---
 src/main/java/com/zy/asrs/service/WorkService.java                   |    2 
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java          |  174 ++++++++++-
 src/main/webapp/static/js/pakStore/stockOutZKCK.js                   |  183 ++++++++++++
 src/main/webapp/views/pakStore/stockOutZKCK.html                     |  145 +++++++++
 src/main/java/com/zy/asrs/controller/WorkController.java             |   30 +
 src/main/webapp/static/js/pakStore/stockOut.js                       |    1 
 src/main/webapp/views/order/order.html                               |    6 
 /dev/null                                                            |  160 ----------
 src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java |   24 
 src/main/java/com/zy/asrs/controller/StoreTypeController.java        |  130 +++++--
 src/main/webapp/views/pakStore/stockOut.html                         |    9 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |   10 
 src/main/java/com/zy/asrs/entity/param/StockOutParam.java            |    3 
 13 files changed, 625 insertions(+), 252 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/StoreController.java b/src/main/java/com/zy/asrs/controller/StoreController.java
deleted file mode 100644
index 6355af4..0000000
--- a/src/main/java/com/zy/asrs/controller/StoreController.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package com.zy.asrs.controller;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.baomidou.mybatisplus.plugins.Page;
-import com.core.annotations.ManagerAuth;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.R;
-import com.zy.asrs.entity.BasWrkIotype;
-import com.zy.asrs.entity.StoreType;
-import com.zy.asrs.service.StoreTypeService;
-import com.zy.common.web.BaseController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-
-@RestController
-public class StoreController extends BaseController {
-
-    @Autowired
-    private StoreTypeService storeTypeService;
-
-    @RequestMapping(value = "/store/{id}/auth")
-    @ManagerAuth
-    public R get(@PathVariable("id") Long id) {
-        return R.ok(storeTypeService.selectById(String.valueOf(id)));
-    }
-
-    @RequestMapping(value = "/store/list/auth")
-    @ManagerAuth
-    public R list(@RequestParam(defaultValue = "1") Integer curr,
-                  @RequestParam(defaultValue = "10") Integer limit,
-                  @RequestParam(required = false) String orderByField,
-                  @RequestParam(required = false) String orderByType,
-                  @RequestParam Map<String, Object> param) {
-        excludeTrash(param);
-        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
-        convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)) {
-            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
-        }
-        return R.ok(storeTypeService.selectPage(new Page<>(curr, limit), wrapper));
-    }
-
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
-        for (Map.Entry<String, Object> entry : map.entrySet()) {
-            String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)) {
-                String[] dates = val.split(RANGE_TIME_LINK);
-                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
-                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
-            } else {
-                wrapper.like(entry.getKey(), val);
-            }
-        }
-    }
-
-    @RequestMapping(value = "/store/edit/auth")
-    @ManagerAuth
-    public R edit(@RequestParam(required = false) String param) {
-        if (Cools.isEmpty(param)) {
-            return R.error();
-        }
-        StoreType storeType = storeTypeService.selectById(param);
-        storeType.setOwn(1);
-        storeTypeService.updateById(storeType);
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/store/edit2/auth")
-    @ManagerAuth
-    public R edit2(@RequestParam(required = false) String param) {
-        if (Cools.isEmpty(param)) {
-            return R.error();
-        }
-        StoreType storeType = storeTypeService.selectById(param);
-        storeType.setOwn(0);
-        storeTypeService.updateById(storeType);
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/store/add/auth")
-    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬫坊鍔�")
-    public R add(StoreType basWrkIotype) {
-        basWrkIotype.setUpdateBy(getUserId());
-        basWrkIotype.setUpdateTime(new Date());
-        basWrkIotype.setCreateBy(getUserId());
-        basWrkIotype.setCreateTime(new Date());
-        storeTypeService.insert(basWrkIotype);
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/store/update/auth")
-    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬩慨鏀�")
-    public R update(StoreType basWrkIotype) {
-        if (Cools.isEmpty(basWrkIotype) || null == basWrkIotype.getStoreId()) {
-            return R.error();
-        }
-        basWrkIotype.setUpdateBy(getUserId());
-        basWrkIotype.setUpdateTime(new Date());
-        storeTypeService.updateById(basWrkIotype);
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/store/delete/auth")
-    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪垹闄�")
-    public R delete(@RequestParam String param) {
-        List<StoreType> list = JSONArray.parseArray(param, StoreType.class);
-        if (Cools.isEmpty(list)) {
-            return R.error();
-        }
-        for (StoreType entity : list) {
-            storeTypeService.delete(new EntityWrapper<>(entity));
-        }
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/store/export/auth")
-    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪鍑�")
-    public R export(@RequestBody JSONObject param) {
-        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
-        Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkIotype"));
-        convert(map, wrapper);
-        List<StoreType> list = storeTypeService.selectList(wrapper);
-        return R.ok(exportSupport(list, fields));
-    }
-
-    @RequestMapping(value = "/store/auth")
-    @ManagerAuth
-    public R query(String condition) {
-        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
-        wrapper.like("io_desc", condition);
-        Page<StoreType> page = storeTypeService.selectPage(new Page<>(0, 20), wrapper);
-        List<Map<String, Object>> result = new ArrayList<>();
-        for (StoreType basWrkIotype : page.getRecords()) {
-            Map<String, Object> map = new HashMap<>();
-            map.put("id", basWrkIotype.getStoreId());
-            map.put("value", basWrkIotype.getStoreName());
-            result.add(map);
-        }
-        return R.ok(result);
-    }
-
-    @RequestMapping(value = "/store/check/column/auth")
-    @ManagerAuth
-    public R query(@RequestBody JSONObject param) {
-        Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != storeTypeService.selectOne(wrapper)) {
-            return R.parse(BaseRes.REPEAT).add(getComment(BasWrkIotype.class, String.valueOf(param.get("key"))));
-        }
-        return R.ok();
-    }
-
-}
diff --git a/src/main/java/com/zy/asrs/controller/StoreTypeController.java b/src/main/java/com/zy/asrs/controller/StoreTypeController.java
index ab36b61..bbea041 100644
--- a/src/main/java/com/zy/asrs/controller/StoreTypeController.java
+++ b/src/main/java/com/zy/asrs/controller/StoreTypeController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -9,7 +10,7 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
-import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.BasWrkIotype;
 import com.zy.asrs.entity.StoreType;
 import com.zy.asrs.service.StoreTypeService;
 import com.zy.common.web.BaseController;
@@ -24,21 +25,21 @@
     @Autowired
     private StoreTypeService storeTypeService;
 
-    @RequestMapping(value = "/storeType/{id}/auth")
+    @RequestMapping(value = "/store/{id}/auth")
     @ManagerAuth
-    public R get(@PathVariable("id") String id) {
+    public R get(@PathVariable("id") Long id) {
         return R.ok(storeTypeService.selectById(String.valueOf(id)));
     }
 
-    @RequestMapping(value = "/storeType/list/auth")
+    @RequestMapping(value = "/store/list/auth")
     @ManagerAuth
     public R list(@RequestParam(defaultValue = "1") Integer curr,
                   @RequestParam(defaultValue = "10") Integer limit,
                   @RequestParam(required = false) String orderByField,
                   @RequestParam(required = false) String orderByType,
                   @RequestParam Map<String, Object> param) {
-        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
         excludeTrash(param);
+        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
         convert(param, wrapper);
         if (!Cools.isEmpty(orderByField)) {
             wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
@@ -59,53 +60,107 @@
         }
     }
 
-    @RequestMapping(value = "/storeType/add/auth")
+    @RequestMapping(value = "/store/edit/auth")
     @ManagerAuth
-    public R add(StoreType docType) {
-        docType.setStatus(1);
-        docType.setCreateBy(getUserId());
-        docType.setCreateTime(new Date());
-        docType.setUpdateBy(getUserId());
-        docType.setUpdateTime(new Date());
-        storeTypeService.insert(docType);
-        return R.ok();
-    }
-
-    @RequestMapping(value = "/storeType/update/auth")
-    @ManagerAuth
-    public R update(StoreType docType) {
-        if (Cools.isEmpty(docType) || null == docType.getStoreId()) {
+    public R edit(@RequestParam(required = false) String param) {
+        if (Cools.isEmpty(param)) {
             return R.error();
         }
-        docType.setUpdateBy(getUserId());
-        docType.setUpdateTime(new Date());
-        storeTypeService.updateById(docType);
+        StoreType storeType = storeTypeService.selectById(param);
+        storeType.setOwn(1);
+        storeTypeService.updateById(storeType);
         return R.ok();
     }
 
-    @RequestMapping(value = "/storeType/delete/auth")
+    @RequestMapping(value = "/store/edit2/auth")
     @ManagerAuth
-    public R delete(@RequestParam(value = "ids[]") Long[] ids) {
-        for (Long id : ids) {
-            storeTypeService.deleteById(id);
+    public R edit2(@RequestParam(required = false) String param) {
+        if (Cools.isEmpty(param)) {
+            return R.error();
+        }
+        StoreType storeType = storeTypeService.selectById(param);
+        storeType.setOwn(0);
+        storeTypeService.updateById(storeType);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/store/add/auth")
+    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬫坊鍔�")
+    public R add(StoreType basWrkIotype) {
+        basWrkIotype.setUpdateBy(getUserId());
+        basWrkIotype.setUpdateTime(new Date());
+        basWrkIotype.setCreateBy(getUserId());
+        basWrkIotype.setCreateTime(new Date());
+        storeTypeService.insert(basWrkIotype);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/store/update/auth")
+    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬩慨鏀�")
+    public R update(StoreType basWrkIotype) {
+        if (Cools.isEmpty(basWrkIotype) || null == basWrkIotype.getStoreId()) {
+            return R.error();
+        }
+        basWrkIotype.setUpdateBy(getUserId());
+        basWrkIotype.setUpdateTime(new Date());
+        storeTypeService.updateById(basWrkIotype);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/store/delete/auth")
+    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪垹闄�")
+    public R delete(@RequestParam String param) {
+        List<StoreType> list = JSONArray.parseArray(param, StoreType.class);
+        if (Cools.isEmpty(list)) {
+            return R.error();
+        }
+        for (StoreType entity : list) {
+            storeTypeService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
     }
 
-    @RequestMapping(value = "/storeType/export/auth")
-    @ManagerAuth
+    @RequestMapping(value = "/store/export/auth")
+    @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪鍑�")
     public R export(@RequestBody JSONObject param) {
-        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-        Map<String, Object> map = excludeTrash(param.getJSONObject("docType"));
+        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
+        Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkIotype"));
         convert(map, wrapper);
         List<StoreType> list = storeTypeService.selectList(wrapper);
         return R.ok(exportSupport(list, fields));
     }
 
-    @RequestMapping(value = "/storeTypeQuery/auth")
+    @RequestMapping(value = "/store/auth")
     @ManagerAuth
     public R query(String condition) {
+        EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
+        wrapper.like("io_desc", condition);
+        Page<StoreType> page = storeTypeService.selectPage(new Page<>(0, 20), wrapper);
+        List<Map<String, Object>> result = new ArrayList<>();
+        for (StoreType basWrkIotype : page.getRecords()) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", basWrkIotype.getStoreId());
+            map.put("value", basWrkIotype.getStoreName());
+            result.add(map);
+        }
+        return R.ok(result);
+    }
+
+    @RequestMapping(value = "/store/check/column/auth")
+    @ManagerAuth
+    public R query(@RequestBody JSONObject param) {
+        Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+        if (null != storeTypeService.selectOne(wrapper)) {
+            return R.parse(BaseRes.REPEAT).add(getComment(BasWrkIotype.class, String.valueOf(param.get("key"))));
+        }
+        return R.ok();
+    }
+
+
+    @RequestMapping(value = "/storeTypeQuery/auth")
+    @ManagerAuth
+    public R query3(String condition) {
         EntityWrapper<StoreType> wrapper = new EntityWrapper<>();
         wrapper.like("store_name", condition);
         wrapper.eq("status", 1);
@@ -136,15 +191,4 @@
         }
         return R.ok(result);
     }
-
-    @RequestMapping(value = "/storeType/check/column/auth")
-    @ManagerAuth
-    public R query(@RequestBody JSONObject param) {
-        Wrapper<StoreType> wrapper = new EntityWrapper<StoreType>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != storeTypeService.selectOne(wrapper)) {
-            return R.parse(BaseRes.REPEAT).add(getComment(DocType.class, String.valueOf(param.get("key"))));
-        }
-        return R.ok();
-    }
-
 }
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 6de7c6e..e55cfd7 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -37,19 +37,19 @@
 
     @RequestMapping("/available/put/site")
     @ManagerAuth()
-    public R availablePutSite(){
+    public R availablePutSite() {
         return R.ok().add(basDevpService.getAvailableInSite());
     }
 
     @RequestMapping("/available/empty/put/site")
     @ManagerAuth()
-    public R availableEmptyPutSite(){
+    public R availableEmptyPutSite() {
         return R.ok().add(basDevpService.getAvailableEmptyInSite());
     }
 
     @RequestMapping("/available/take/site")
     @ManagerAuth()
-    public R availableTakeSite(){
+    public R availableTakeSite() {
         List<Map<String, Object>> result = new ArrayList<>();
         List<Integer> outSite = basDevpService.getAvailableOutSite(101);
         for (Integer siteId : outSite) {
@@ -77,13 +77,13 @@
 
     @RequestMapping("/available/take/check/site")
     @ManagerAuth()
-    public R availableTakeCheckSite(){
+    public R availableTakeCheckSite() {
         return R.ok().add(basDevpService.getAvailableOutSite(107));
     }
 
     @RequestMapping("/available/empty/take/site")
     @ManagerAuth()
-    public R availableEmptyTakeSite(){
+    public R availableEmptyTakeSite() {
         return R.ok().add(basDevpService.getAvailableEmptyOutSite());
     }
 
@@ -93,14 +93,24 @@
         try {
             String locNo = workService.startupFullPutStore(fullStoreParam, getUserId());
             return R.ok("鍏ュ簱鍚姩鎴愬姛").add(locNo);
-        } catch (Exception e){
-            return R.error("鍏ュ簱鍚姩澶辫触==>"+e.getMessage());
+        } catch (Exception e) {
+            return R.error("鍏ュ簱鍚姩澶辫触==>" + e.getMessage());
         }
     }
 
     @RequestMapping("/plate/out/start")
     @ManagerAuth(memo = "鍑哄簱浣滀笟")
     public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+        workService.startupFullTakeStore(param, getUserId());
+        return R.ok("鍑哄簱鍚姩鎴愬姛");
+    }
+
+    @RequestMapping("/plate/out/start/v2")
+    @ManagerAuth(memo = "鍑哄簱浣滀笟2")
+    public R fullStoreTakeStartV2(@RequestBody StockOutParam param) {
+        if (Cools.isEmpty(param.getItemId())) {
+            return R.error("杞叆浠撳簱涓嶈兘涓虹┖");
+        }
         workService.startupFullTakeStore(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
@@ -136,10 +146,10 @@
     @RequestMapping("/mat/turn/over/out/start")
     @ManagerAuth(memo = "鍝佸彿绉讳氦")
     public R turnMatLocDetl(@RequestBody EmptyPlateOutParam param) {
-        if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(),param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())){
+        if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(), param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())) {
             return R.error("鍙傛暟涓虹┖");
         }
-        if (param.getLocDetls().size()>1){
+        if (param.getLocDetls().size() > 1) {
             return R.error("璇峰崟鏉℃暟鎹慨鏀癸紝璋ㄦ厧鎿嶄綔锛�");
         }
         workService.turnMatLocDetl(param, getUserId());
@@ -156,7 +166,7 @@
     @RequestMapping("/hand/control/wrkMast")
     @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�")
     public R handControlWrkMast(@RequestParam String workNo,
-                                @RequestParam Integer type){
+                                @RequestParam Integer type) {
         if (type == 1) {
             workService.completeWrkMast(workNo, getUserId());
             return R.ok("宸ヤ綔妗e凡瀹屾垚");
diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
index baa0a71..2de9baa 100644
--- a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -16,6 +16,9 @@
     private Integer outSite;
 
     //
+    private String itemId;
+
+    //
     private String checkId;
 
     // 鐗╂枡缂栧彿闆嗗悎
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 0ebeebc..148b496 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -38,7 +38,7 @@
      * @param locDetls 寰呭嚭搴撶墿鏂�
      * @param ioType 鍏ュ嚭搴撶被鍨�
      */
-    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId,String checkOrderNo);
+    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId,String checkOrderNo,String itemId);
 
     void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
index 63e04d5..221dee2 100644
--- a/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -114,17 +114,19 @@
                     }
                     break;
                 case "閲囪喘鍒拌揣":
-                    process1 = processCGDH(orderDetls);
-                    List<Object> cg = new ArrayList<>();
-                    cg.add(process1);
-                    //鍙戦�佽姹�
-                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg));
-                    if (!Cools.isEmpty(response) && response.isSuccess()) {
-                        log.info("閲囪喘鍒拌揣response:{}", response);
-                        step = 10;
-                    } else {
-                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
-                    }
+                    //涓嶉渶瑕佷笂鎶ヤ簡
+                    step = 10;
+//                    process1 = processCGDH(orderDetls);
+//                    List<Object> cg = new ArrayList<>();
+//                    cg.add(process1);
+//                    //鍙戦�佽姹�
+//                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg));
+//                    if (!Cools.isEmpty(response) && response.isSuccess()) {
+//                        log.info("閲囪喘鍒拌揣response:{}", response);
+//                        step = 10;
+//                    } else {
+//                        remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
+//                    }
                     break;
                 case "杞簱-鍑哄簱":
                     if (step == 1) {
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 93c21e4..fb4a88e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -189,6 +189,9 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        if (Cools.isEmpty(param.getItemId())) {
+            throw new CoolException("鎵�鍏ヤ粨搴撲笉鑳戒负绌�");
+        }
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -208,7 +211,7 @@
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
-                stockOut(staNo, locDetlDtos, null, userId, null);
+                stockOut(staNo, locDetlDtos, null, userId, null, param.getItemId());
             } else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
@@ -297,7 +300,7 @@
 
     @Override
     @Transactional
-    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo) {
+    public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo, String itemId) {
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
@@ -369,6 +372,7 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
             wrkMast.setModiTime(now);
+            wrkMast.setPacked(itemId);
             if (!wrkMastService.insert(wrkMast)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
             }
@@ -740,7 +744,7 @@
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F")) {
                 // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
-                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId());
+                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null);
             } else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
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 6eaf9a2..aaa1f36 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 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.service.*;
 import com.zy.asrs.task.AbstractHandler;
@@ -42,6 +45,13 @@
     private OrderDetlPakoutService orderDetlPakoutService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private StoreTypeService storeTypeService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private DocTypeService docTypeService;
+
 
     public ReturnT<String> start(WrkMast wrkMast) {
         // 4.鍏ュ簱瀹屾垚
@@ -204,6 +214,66 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                     }
+
+
+
+                    // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴�
+                    StoreType storeType = null;
+                    Order order = null;
+                    if (!Cools.isEmpty(wrkMast.getPacked())) {
+                        storeType = storeTypeService.selectById(wrkMast.getPacked());
+                        if (null != storeType) {
+                            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱"));
+                            String convert = DateUtils.convert(now, DateUtils.yyyyMMdd);
+                            order = new Order(
+                                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                    convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(),    // 璁㈠崟缂栧彿
+                                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                                    docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                    storeType.getStoreId(),    // 椤圭洰缂栧彿
+                                    storeType.getStoreName(),    //
+                                    null,    // 璋冩嫧椤圭洰缂栧彿
+                                    null,    // 鍒濆绁ㄦ嵁鍙�
+                                    null,    // 绁ㄦ嵁鍙�
+                                    null,    // 瀹㈡埛缂栧彿
+                                    null,    // 瀹㈡埛
+                                    null,    // 鑱旂郴鏂瑰紡
+                                    wrkMast.getAppeUser$(),    // 鎿嶄綔浜哄憳
+                                    null,    // 鍚堣閲戦
+                                    null,    // 浼樻儬鐜�
+                                    null,    // 浼樻儬閲戦
+                                    null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                    null,    // 瀹炰粯閲戦
+                                    null,    // 浠樻绫诲瀷
+                                    null,    // 涓氬姟鍛�
+                                    null,    // 缁撶畻澶╂暟
+                                    null,    // 閭垂鏀粯绫诲瀷
+                                    null,    // 閭垂
+                                    null,    // 浠樻鏃堕棿
+                                    null,    // 鍙戣揣鏃堕棿
+                                    null,    // 鐗╂祦鍚嶇О
+                                    null,    // 鐗╂祦鍗曞彿
+                                    1L,    // 璁㈠崟鐘舵��
+                                    4,    // 鐘舵��
+                                    wrkMast.getAppeUser(),    // 娣诲姞浜哄憳
+                                    now,    // 娣诲姞鏃堕棿
+                                    wrkMast.getAppeUser(),    // 淇敼浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 澶囨敞
+                                    docType.getPakin() == 1 ? 1 : 2
+                            );
+                            if (!orderService.insert(order)) {
+                                throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
+                            }
+                        }
+
+                    }
+
+
+
+
+
+
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
                         LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
@@ -443,30 +513,98 @@
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                     }
-                    for (WrkDetl wrkDetl : wrkDetls101) {
-                        // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
-                        //addOrderDetlQty(wrkMast, wrkDetl);
-                        OrderDetlPakout orderDetlPakout;
-                        if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
-                            orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode()));
-                        } else {
-                            orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
-                            if (orderDetlPakout == null) {
-                                orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                    // 鍒ゆ柇鏄惁涓鸿浆搴撳嚭搴�
+                    StoreType storeType = null;
+                    Order order = null;
+                    if (!Cools.isEmpty(wrkMast.getPacked())) {
+                        storeType = storeTypeService.selectById(wrkMast.getPacked());
+                        if (null != storeType) {
+                            DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "杞簱-鍑哄簱"));
+                            String convert = DateUtils.convert(now, DateUtils.yyyyMMdd);
+                            order = new Order(
+                                    String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
+                                    convert + "_" + wrkMast.getPacked() + "_" + wrkMast.getWrkNo(),    // 璁㈠崟缂栧彿
+                                    DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                                    docType.getDocId(),    // 鍗曟嵁绫诲瀷
+                                    storeType.getStoreId(),    // 椤圭洰缂栧彿
+                                    storeType.getStoreName(),    //
+                                    null,    // 璋冩嫧椤圭洰缂栧彿
+                                    null,    // 鍒濆绁ㄦ嵁鍙�
+                                    null,    // 绁ㄦ嵁鍙�
+                                    null,    // 瀹㈡埛缂栧彿
+                                    null,    // 瀹㈡埛
+                                    null,    // 鑱旂郴鏂瑰紡
+                                    wrkMast.getAppeUser$(),    // 鎿嶄綔浜哄憳
+                                    null,    // 鍚堣閲戦
+                                    null,    // 浼樻儬鐜�
+                                    null,    // 浼樻儬閲戦
+                                    null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
+                                    null,    // 瀹炰粯閲戦
+                                    null,    // 浠樻绫诲瀷
+                                    null,    // 涓氬姟鍛�
+                                    null,    // 缁撶畻澶╂暟
+                                    null,    // 閭垂鏀粯绫诲瀷
+                                    null,    // 閭垂
+                                    null,    // 浠樻鏃堕棿
+                                    null,    // 鍙戣揣鏃堕棿
+                                    null,    // 鐗╂祦鍚嶇О
+                                    null,    // 鐗╂祦鍗曞彿
+                                    1L,    // 璁㈠崟鐘舵��
+                                    4,    // 鐘舵��
+                                    wrkMast.getAppeUser(),    // 娣诲姞浜哄憳
+                                    now,    // 娣诲姞鏃堕棿
+                                    wrkMast.getAppeUser(),    // 淇敼浜哄憳
+                                    now,    // 淇敼鏃堕棿
+                                    null,    // 澶囨敞
+                                    docType.getPakin() == 1 ? 1 : 2
+                            );
+                            if (!orderService.insert(order)) {
+                                throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
                             }
                         }
 
-                        try {
-                            if (!Cools.isEmpty(orderDetlPakout)) {
-                                if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) {
-//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                    }
+                    for (WrkDetl wrkDetl : wrkDetls101) {
+                        if (storeType != null) {
+                            OrderDetl orderDetl = new OrderDetl();
+                            orderDetl.sync(wrkDetl);
+                            orderDetl.setOrderId(order.getId());
+                            orderDetl.setOrderNo(order.getOrderNo());
+                            orderDetl.setCreateBy(order.getCreateBy());
+                            orderDetl.setCreateTime(now);
+                            orderDetl.setUpdateBy(order.getCreateBy());
+                            orderDetl.setUpdateTime(now);
+                            orderDetl.setStatus(1);
+                            orderDetl.setQty(wrkDetl.getAnfme());
+                            if (!orderDetlService.insert(orderDetl)) {
+                                throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                            }
+                        } else {
+                            // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+                            //addOrderDetlQty(wrkMast, wrkDetl);
+                            OrderDetlPakout orderDetlPakout;
+                            if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
+                                orderDetlPakout = orderDetlPakoutService.selectById(Long.parseLong(wrkDetl.getThreeCode()));
+                            } else {
+                                orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                                if (orderDetlPakout == null) {
+                                    orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null, wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                                 }
                             }
-                        } catch (Exception ignore) {
+
+                            try {
+                                if (!Cools.isEmpty(orderDetlPakout)) {
+                                    if (!orderDetlPakoutService.increaseQtyById(orderDetlPakout.getId(), wrkDetl.getAnfme())) {
+//                                    exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//                                            wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                        return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+                                    }
+                                }
+                            } catch (Exception ignore) {
+                            }
                         }
+
                     }
                     // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
                     if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index d9b2580..333e006 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -71,6 +71,7 @@
                     layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2});
                 } else {
                     var staNo = $("#staNoSelect").val();
+                    var itemId = $("#itemId").val();
                     if (staNo === "" || staNo === null){
                         layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2});
                         return;
diff --git a/src/main/webapp/static/js/pakStore/stockOutZKCK.js b/src/main/webapp/static/js/pakStore/stockOutZKCK.js
new file mode 100644
index 0000000..75fb7a1
--- /dev/null
+++ b/src/main/webapp/static/js/pakStore/stockOutZKCK.js
@@ -0,0 +1,183 @@
+var locDetlLayerIdx;
+var locDetlData = [];
+function getCol() {
+    var cols = [
+        {field: 'count', align: 'center',title: '鍑哄簱鏁伴噺', edit:'text', width: 130,  style:'color: blue;font-weight: bold'}
+        ,{field: 'anfme', align: 'center',title: '搴撳瓨鏁伴噺'}
+        ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+    ];
+    arrRemove(detlCols,  'field', 'anfme');
+    cols.push.apply(cols, detlCols);
+    cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80})
+    return cols;
+}
+
+layui.config({
+    base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function() {
+    var table = layui.table;
+    var $ = layui.jquery;
+    var layer = layui.layer;
+    var form = layui.form;
+    var admin = layui.admin;
+
+    tableIns = table.render({
+        elem: '#chooseData',
+        headers: {token: localStorage.getItem('token')},
+        data: [],
+        even: true,
+        toolbar: '#toolbar',
+        cellMinWidth: 50,
+        limit: 500,
+        cols: [getCol()],
+        done: function(res, curr, count) {
+            limit();
+            getOutBound();
+        }
+    });
+
+    // 椤甸潰淇敼
+    table.on('edit(chooseData)', function (obj) {
+        let index = obj.tr.attr("data-index");
+        let data = locDetlData[index];
+        let modify = true;
+        if (obj.field === 'count'){
+            let vle = Number(obj.value);
+            if (isNaN(vle)) {
+                layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
+                modify = false;
+            } else {
+                if (vle <= 0) {
+                    layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2});
+                    modify = false;
+                }
+                if (vle > Number(data.anfme)) {
+                    layer.msg("鍑哄簱鏁伴噺涓嶅緱澶т簬搴撳瓨鏁伴噺", {icon: 2});
+                    modify = false;
+                }
+            }
+        }
+        if (modify) {
+            data[obj.field] = obj.value;
+        }
+        tableIns.reload({data: locDetlData});
+    });
+
+    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+    table.on('toolbar(chooseData)', function (obj) {
+        switch (obj.event) {
+            case 'outbound':
+                if (locDetlData.length === 0){
+                    layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2});
+                } else {
+                    var staNo = $("#staNoSelect").val();
+                    var itemId = $("#itemId").val();
+                    if (staNo === "" || staNo === null){
+                        layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2});
+                        return;
+                    }
+                    if (itemId === "" || itemId === null){
+                        layer.msg("璇烽�夋嫨鍏ュ簱浠撳簱", {icon: 2});
+                        return;
+                    }
+                    let param = {
+                        outSite: staNo,
+                        itemId: itemId,
+                        locDetls: locDetlData
+                    }
+                    $.ajax({
+                        url: baseUrl+"/plate/out/start/v2",
+                        headers: {'token': localStorage.getItem('token')},
+                        data: JSON.stringify(param),
+                        contentType:'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            if (res.code === 200){
+                                locDetlData = [];
+                                tableIns.reload({data: locDetlData,done:function (res) {limit();getOutBound();}});
+                                layer.msg(res.msg, {icon: 1});
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg, {icon: 2})
+                            }
+                        }
+                    });
+                }
+                break;
+        }
+    });
+
+    // 鐩戝惉琛屽伐鍏蜂簨浠�
+    table.on('tool(chooseData)', function(obj){
+        switch (obj.event) {
+            case 'remove':
+                let index = obj.tr.attr("data-index");
+                locDetlData.splice(index, 1);
+                tableIns.reload({data: locDetlData});
+                break;
+        }
+    });
+
+    // 鑾峰彇鍑哄簱鍙�
+    function getOutBound(){
+        $.ajax({
+            url: baseUrl+"/available/take/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            async: false,
+            success: function (res) {
+                if (res.code === 200){
+                    var tpl = $("#takeSiteSelectTemplate").html();
+                    var template = Handlebars.compile(tpl);
+                    var html = template(res);
+                    $('#staNoSelect').append(html);
+                    form.render('select');
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                }else {
+                    layer.msg(res.msg)
+                }
+            }
+        })
+    }
+
+
+    $(document).on('click','#mat-query', function () {
+        let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+        locDetlLayerIdx = layer.open({
+            type: 2,
+            title: false,
+            closeBtn: false,
+            maxmin: false,
+            area: ['90%', '85%'],
+            shadeClose: true,
+            content: 'locDetlQuery.html',
+            success: function(layero, index){
+                layer.close(loadIndex);
+            }
+        });
+    })
+
+})
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+function addTableData(data) {
+    for (var i=0;i<data.length;i++){
+        let pass = false;
+        for (var j=0;j<locDetlData.length;j++){
+            if (data[i].matnr === locDetlData[j].matnr && data[i].batch === locDetlData[j].batch && data[i].locNo$ === locDetlData[j].locNo$) {
+                pass = true;
+                break;
+            }
+        }
+        if (pass) {
+            data.splice(i--, 1);
+        } else {
+            data[i]["count"] = data[i]["anfme"];
+        }
+    }
+    locDetlData.push.apply(locDetlData, data);
+    tableIns.reload({data: locDetlData});
+    layer.close(locDetlLayerIdx);
+}
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index 88ea115..aaa9ffe 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -163,8 +163,8 @@
         <div class="layui-form-item">
             <label class="layui-form-label">鍑哄簱浠撳簱锛�</label>
             <div class="layui-input-block cool-auto-complete">
-                <input class="layui-input" name="defNumber" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none">
-                <input id="cstmr" name="cstmr" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
+                <input class="layui-input" name="defNumber" placeholder="璇疯緭鍏ュ嚭搴撲粨搴�" style="display: none">
+                <input id="cstmr" name="cstmr" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ嚭搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
                 <div class="cool-auto-complete-window">
                     <input class="cool-auto-complete-window-input" data-key="storeTypeQuery2BystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))">
                     <select class="cool-auto-complete-window-select" data-key="storeTypeQuery2BystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
@@ -176,7 +176,7 @@
             <label class="layui-form-label">鍏ュ簱浠撳簱锛�</label>
             <div class="layui-input-block cool-auto-complete">
                 <input class="layui-input" name="itemId" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none">
-                <input id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
+                <input id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
                 <div class="cool-auto-complete-window">
                     <input class="cool-auto-complete-window-input" data-key="storeTypeQueryBystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))">
                     <select class="cool-auto-complete-window-select" data-key="storeTypeQueryBystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html
index 3e02f19..1906e66 100644
--- a/src/main/webapp/views/pakStore/stockOut.html
+++ b/src/main/webapp/views/pakStore/stockOut.html
@@ -30,6 +30,7 @@
             width: 100px;
             font-size: 13px;
         }
+
         .layui-btn-container .layui-form-select {
             display: inline-block;
             width: 150px;
@@ -94,15 +95,17 @@
     <!-- 澶撮儴 -->
     <script type="text/html" id="toolbar">
         <div class="layui-form">
-            <div class="layui-btn-container">
+            <div class=" layui-inline layui-btn-container">
                 <!-- 1.閫夋嫨鍑哄簱鍙� -->
                 <span id="staNoSpan">鍑哄簱鍙o細</span>
                 <select id="staNoSelect" lay-verify="required">
                     <option value="">璇烽�夋嫨绔欑偣</option>
                 </select>
-                <!-- 2.鍚姩鍑哄簱 -->
-                <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
             </div>
+
+
+            <!-- 2.鍚姩鍑哄簱 -->
+            <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
         </div>
     </script>
 
diff --git a/src/main/webapp/views/pakStore/stockOutZKCK.html b/src/main/webapp/views/pakStore/stockOutZKCK.html
new file mode 100644
index 0000000..8a0231b
--- /dev/null
+++ b/src/main/webapp/views/pakStore/stockOutZKCK.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/css/common.css" media="all">
+    <style>
+        html {
+            height: 100%;
+            padding: 10px;
+            background-color: #f1f1f1;
+            box-sizing: border-box;
+        }
+        body {
+            background-color: #fff;
+            border-radius: 5px;
+            box-shadow: 0 0 3px rgba(0,0,0,.3);
+            padding-bottom: 20px;
+        }
+
+        #staNoSpan {
+            text-align: center;
+            display: inline-block;
+            width: 100px;
+            font-size: 13px;
+        }
+
+        .layui-btn-container .layui-form-select {
+            display: inline-block;
+            width: 150px;
+            height: 30px;
+        }
+        .layui-btn-container .layui-form-select.layui-form-selected {
+            display: inline-block;
+            width: 150px;
+        }
+        .layui-btn-container .layui-select-title input {
+            font-size: 13px;
+        }
+        .layui-btn-container .layui-anim.layui-anim-upbit dd {
+            font-size: 13px;
+        }
+
+        #btn-outbound {
+            margin-left: 60px;
+            display: none;
+        }
+
+        /*----------------------------------*/
+        .function-area {
+            padding: 20px 50px;
+        }
+        .function-btn {
+            font-size: 16px;
+            padding: 1px 2px;
+            width: 100px;
+            height: 50px;
+            border-color: #2b425b;
+            border-radius: 4px;
+            border-width: 2px;
+            background: none;
+            border-style: solid;
+            transition: 0.4s;
+            cursor: pointer;
+            letter-spacing: 1.5px;
+        }
+        .function-btn:hover {
+            background-color: #2b425b;
+            color: #fff;
+        }
+
+        #mat-query {
+            display: none;
+        }
+    </style>
+</head>
+<body>
+
+<!-- 鍔熻兘鍖� -->
+<div class="function-area">
+    <button id="mat-query" class="function-btn">鎻愬彇搴撳瓨</button>
+</div>
+
+<hr>
+
+<!-- 琛ㄦ牸 -->
+<div style="padding-bottom: 5px; margin-bottom: 45px">
+
+    <!-- 澶撮儴 -->
+    <script type="text/html" id="toolbar">
+        <div class="layui-form">
+            <div class=" layui-inline layui-btn-container">
+                <!-- 1.閫夋嫨鍑哄簱鍙� -->
+                <span id="staNoSpan">鍑哄簱鍙o細</span>
+                <select id="staNoSelect" lay-verify="required">
+                    <option value="">璇烽�夋嫨绔欑偣</option>
+                </select>
+            </div>
+
+            <div class="layui-inline">
+                <label style="width: 100px" class="layui-form-label">鍏ュ簱浠撳簱锛�</label>
+                <div class="layui-input-block cool-auto-complete">
+                    <input class="layui-input" name="itemId" id="itemId" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" style="display: none">
+                    <input style="width: 200px" id="itemName" name="itemName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆搴撲粨搴�" onfocus=this.blur() lay-verType="tips" lay-verify="required">
+                    <div class="cool-auto-complete-window">
+                        <input class="cool-auto-complete-window-input" data-key="storeTypeQueryBystoreType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+                        <select class="cool-auto-complete-window-select" data-key="storeTypeQueryBystoreTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <!-- 2.鍚姩鍑哄簱 -->
+            <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
+        </div>
+    </script>
+
+    <!-- 琛� -->
+    <script type="text/html" id="operate">
+        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+    </script>
+
+    <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/stockOutZKCK.js" charset="utf-8"></script>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+    {{#each data}}
+    <option value="{{siteId}}">{{desc}}</option>
+    {{/each}}
+</script>
+</body>
+</html>
+

--
Gitblit v1.9.1