From 81808d6e407b8b5a8d3c4d6225a3148114733f90 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 06 六月 2025 10:17:59 +0800
Subject: [PATCH] #修改出库方式为按楼层东西区出,自动选择对应出库站点

---
 src/main/java/com/zy/asrs/service/WorkService.java             |   20 ++
 src/main/webapp/static/js/pakStore/locCheckOut.js              |    2 
 src/main/webapp/views/pakStore/locCheckOut.html                |   17 +
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    3 
 src/main/webapp/views/pakStore/stockOut.html                   |   17 +
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |  163 ++++++++++++++++++----
 src/main/java/com/zy/asrs/entity/param/StockOutFloorParam.java |   44 ++++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |   13 +
 src/main/java/com/zy/asrs/controller/WorkController.java       |  137 ++++++++++++++++++-
 src/main/webapp/static/js/pakStore/stockOut.js                 |    2 
 10 files changed, 354 insertions(+), 64 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 8b6a223..a0ac33a 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -4,10 +4,7 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WorkService;
 import com.zy.common.model.StartupDto;
@@ -18,10 +15,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 宸ヤ綔娴佹帴鍙f帶鍒跺櫒
@@ -86,9 +80,70 @@
         return R.ok("鍏ュ簱鍚姩鎴愬姛").add(workService.startupFullPutStore(fullStoreParam,getUserId()));
     }
 
+//    @RequestMapping("/plate/out/start")
+//    @ManagerAuth(memo = "鍑哄簱浣滀笟")
+//    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+//        workService.startupFullTakeStore(param, getUserId());
+//        return R.ok("鍑哄簱鍚姩鎴愬姛");
+//    }
+
     @RequestMapping("/plate/out/start")
     @ManagerAuth(memo = "鍑哄簱浣滀笟")
-    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+    public R fullStoreTakeStart(@RequestBody StockOutFloorParam param) {
+        if (param.getFloor() != null) {
+            List<Integer> siteIdList = new ArrayList<>();
+
+            // 绗竴姝ワ細鏍规嵁妤煎眰閫夋嫨绔欑偣闆嗗悎
+            switch (param.getFloor()) {
+                case 1: // 涓�妤硷紙涓滃尯锛�
+                    siteIdList = Arrays.asList(121, 124, 125, 126);
+                    break;
+                case 2: // 浜屾ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(221, 224, 226, 229);
+                    break;
+                case 3: // 鍥涙ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(411, 412, 413, 414);
+                    break;
+                case 4: // 涓�妤硷紙瑗垮尯锛�
+                    siteIdList = Arrays.asList(103); // 鍙湁涓�涓珯鐐�
+                    break;
+                case 5: // 浜屾ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(201, 204, 206, 209);
+                    break;
+                case 6: // 鍥涙ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(401, 402, 403, 404);
+                    break;
+                default:
+                    break;
+            }
+
+            // 绗簩姝ワ細鏍规嵁 locNo 鐨勬帓鍙凤紝缁欐瘡涓� locDetl 璁剧疆 siteId
+            if (param.getLocDetls() != null) {
+                for (StockOutFloorParam.LocDetl locDetl : param.getLocDetls()) {
+                    String locNo = locDetl.getLocNo(); // 濡傦細0312001
+                    if (locNo != null && locNo.length() >= 2) {
+                        String rowStr = locNo.substring(0, 2); // 鍓嶄袱浣嶄负鎺掑彿
+                        int row = Integer.parseInt(rowStr);
+
+                        Integer siteId = null;
+
+                        // 绔欑偣鍒嗗竷瑙勫垯
+                        if (row == 1 || row == 2) {
+                            siteId = siteIdList.size() > 0 ? siteIdList.get(0) : null;
+                        } else if (row == 3 || row == 4) {
+                            siteId = siteIdList.size() > 1 ? siteIdList.get(1) : null;
+                        } else if (row == 5 || row == 6) {
+                            siteId = siteIdList.size() > 2 ? siteIdList.get(2) : null;
+                        } else if (row == 7 || row == 8) {
+                            siteId = siteIdList.size() > 3 ? siteIdList.get(3) : null;
+                        }
+
+                        // 璁剧疆 siteId
+                        locDetl.setSiteId(siteId);
+                    }
+                }
+            }
+        }
         workService.startupFullTakeStore(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
@@ -106,9 +161,71 @@
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
 
+//    @RequestMapping("/locCheck/out/start")
+//    @ManagerAuth(memo = "鐩樼偣鍑哄簱")
+//    public R locCheckOutStart(@RequestBody StockOutParam param) {
+//
+//        workService.locCheckOut(param, getUserId());
+//        return R.ok("鍑哄簱鍚姩鎴愬姛");
+//    }
+
     @RequestMapping("/locCheck/out/start")
     @ManagerAuth(memo = "鐩樼偣鍑哄簱")
-    public R locCheckOutStart(@RequestBody StockOutParam param) {
+    public R locCheckOutStart(@RequestBody StockOutFloorParam param) {
+        if (param.getFloor() != null) {
+            List<Integer> siteIdList = new ArrayList<>();
+
+            // 绗竴姝ワ細鏍规嵁妤煎眰閫夋嫨绔欑偣闆嗗悎
+            switch (param.getFloor()) {
+                case 1: // 涓�妤硷紙涓滃尯锛�
+                    siteIdList = Arrays.asList(121, 124, 125, 126);
+                    break;
+                case 2: // 浜屾ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(221, 224, 226, 229);
+                    break;
+                case 3: // 鍥涙ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(411, 412, 413, 414);
+                    break;
+                case 4: // 涓�妤硷紙瑗垮尯锛�
+                    siteIdList = Arrays.asList(103); // 鍙湁涓�涓珯鐐�
+                    break;
+                case 5: // 浜屾ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(201, 204, 206, 209);
+                    break;
+                case 6: // 鍥涙ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(401, 402, 403, 404);
+                    break;
+                default:
+                    break;
+            }
+
+            // 绗簩姝ワ細鏍规嵁 locNo 鐨勬帓鍙凤紝缁欐瘡涓� locDetl 璁剧疆 siteId
+            if (param.getLocDetls() != null) {
+                for (StockOutFloorParam.LocDetl locDetl : param.getLocDetls()) {
+                    String locNo = locDetl.getLocNo(); // 濡傦細0312001
+                    if (locNo != null && locNo.length() >= 2) {
+                        String rowStr = locNo.substring(0, 2); // 鍓嶄袱浣嶄负鎺掑彿
+                        int row = Integer.parseInt(rowStr);
+
+                        Integer siteId = null;
+
+                        // 绔欑偣鍒嗗竷瑙勫垯
+                        if (row == 1 || row == 2) {
+                            siteId = siteIdList.size() > 0 ? siteIdList.get(0) : null;
+                        } else if (row == 3 || row == 4) {
+                            siteId = siteIdList.size() > 1 ? siteIdList.get(1) : null;
+                        } else if (row == 5 || row == 6) {
+                            siteId = siteIdList.size() > 2 ? siteIdList.get(2) : null;
+                        } else if (row == 7 || row == 8) {
+                            siteId = siteIdList.size() > 3 ? siteIdList.get(3) : null;
+                        }
+
+                        // 璁剧疆 siteId
+                        locDetl.setSiteId(siteId);
+                    }
+                }
+            }
+        }
         workService.locCheckOut(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutFloorParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutFloorParam.java
new file mode 100644
index 0000000..850655a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/StockOutFloorParam.java
@@ -0,0 +1,44 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class StockOutFloorParam {
+    // 鍑虹珯鍙�
+    private Integer floor;
+
+    // 鐗╂枡缂栧彿闆嗗悎
+    private List<LocDetl> locDetls;
+
+    @Data
+    public static class LocDetl {
+        private Integer siteId;
+
+        // 搴撲綅鍙�
+        private String locNo;
+
+        // 鍟嗗搧缂栧彿
+        private String matnr;
+
+        // 搴忓垪鐮�
+        private String batch;
+
+        // 鏁伴噺
+        private Double count;
+
+        private String sPgNO;
+
+        private String outOrderNo;
+
+        private String luHao;
+        private Double weight;
+
+        private String packing;
+
+        private String proType;
+
+
+        private String color;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 756610e..05a0914 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.entity.StockStatisDTO;
 import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.param.StockOutFloorParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.entity.result.StockVo;
 
@@ -23,7 +24,7 @@
     LocDetl selectItem(String locNo, WrkDetl wrkDetl);
 
     LocDetl selectItem(String locNo, StockOutParam.LocDetl locDetl);
-
+    LocDetl selectItem(String locNo, StockOutFloorParam.LocDetl locDetl);
     Page<LocDetl> getStockOut(Page<LocDetl> page);
 
     /**
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 61750ed..d83ec6a 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -3,10 +3,7 @@
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.TaskDto;
@@ -22,10 +19,16 @@
      */
     String startupFullPutStore(FullStoreParam param, Long userId);
 
+//    /**
+//     * 鍑哄簱浣滀笟
+//     */
+//    void startupFullTakeStore(StockOutParam param, Long userId);
+
     /**
      * 鍑哄簱浣滀笟
      */
-    void startupFullTakeStore(StockOutParam param, Long userId);
+    void startupFullTakeStore(StockOutFloorParam param, Long userId);
+
 
     /**
      * 鍑哄簱浣滀笟
@@ -61,10 +64,15 @@
      */
     public WrkMast emptyPlateOut(EmptyPlateOutParam param);
 
+//    /**
+//     * 鐩樼偣鍑哄簱
+//     */
+//    void locCheckOut(StockOutParam param, Long userId);
+
     /**
      * 鐩樼偣鍑哄簱
      */
-    void locCheckOut(StockOutParam param, Long userId);
+    void locCheckOut(StockOutFloorParam param, Long userId);
 
     /**
      * 搴撲綅绉昏浆
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index 71fae50..62d2529 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.entity.StockStatisDTO;
 import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.param.StockOutFloorParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.entity.result.StockVo;
 import com.zy.asrs.mapper.LocDetlMapper;
@@ -235,5 +236,17 @@
         }
         return null;
     }
+    @Override
+    public LocDetl selectItem(String locNo, StockOutFloorParam.LocDetl locDetl) {
+        List<LocDetl> locDetls = this.baseMapper.selectItem3(locNo, locDetl.getMatnr());
+        if (locDetls != null) {
+            for (LocDetl detl : locDetls) {
+                if (MatCompareUtils.compare(locDetl, detl)) {
+                    return detl;
+                }
+            }
+        }
+        return null;
+    }
 
 }
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 395bd6a..adae54a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -7,10 +7,7 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
@@ -155,31 +152,81 @@
         return null;
     }
 
+//    @Override
+//    @Transactional
+//    public void startupFullTakeStore(StockOutFloorParam param, Long userId) {
+//        // 鐩爣绔欑偣鐘舵�佹娴�
+//        BasDevp staNo = null;
+//        // 鑾峰彇搴撲綅鏄庣粏
+//        List<LocDetlDto> locDetlDtos = new ArrayList<>();
+//        for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
+//             staNo = basDevpService.checkSiteStatus(paramLocDetl.getSiteId());
+//
+//            if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+//                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
+//                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+//            }
+//        }
+//        if (!locDetlDtos.isEmpty()) {
+//            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);
+//            } else {
+//                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+//            }
+//        } else {
+//            throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+//        }
+//    }
+
     @Override
     @Transactional
-    public void startupFullTakeStore(StockOutParam param, Long userId) {
-        // 鐩爣绔欑偣鐘舵�佹娴�
-        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
-        // 鑾峰彇搴撲綅鏄庣粏
-        List<LocDetlDto> locDetlDtos = new ArrayList<>();
-        for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+    public void startupFullTakeStore(StockOutFloorParam param, Long userId) {
+        // 鎸� siteId 鍒嗙粍
+        Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>();
+
+        for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                 LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
-                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+                if (one != null) {
+                    LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount());
+                    Integer siteId = paramLocDetl.getSiteId();
+
+                    if (siteId != null) {
+                        siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto);
+                    }
+                }
             }
         }
-        if (!locDetlDtos.isEmpty()) {
-            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);
-            } else {
-                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
-            }
-        } else {
+
+        if (siteIdToLocDetlsMap.isEmpty()) {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");
         }
+
+        // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱
+        for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) {
+            Integer siteId = entry.getKey();
+            List<LocDetlDto> locDetlDtos = entry.getValue();
+
+            // 鏍¢獙搴撲綅鐘舵��
+            LocMast locMast = locMastService.selectOne(
+                    new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())
+            );
+
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+                // 鏍¢獙鐩爣绔欑偣
+                BasDevp staNo = basDevpService.checkSiteStatus(siteId);
+
+                // 鎵ц鍑哄簱
+                stockOut(staNo, locDetlDtos, null, userId);
+            } else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" +
+                        locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+            }
+        }
     }
+
 
     @Override
     @Transactional
@@ -653,29 +700,77 @@
         return wrkMast;
     }
 
+//    @Override
+//    @Transactional
+//    public void locCheckOut(StockOutParam param, Long userId) {
+//        // 鐩爣绔欑偣鐘舵�佹娴�
+//        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+//        // 鑾峰彇搴撲綅鏄庣粏
+//        List<LocDetlDto> locDetlDtos = new ArrayList<>();
+//        for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+//            if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+//                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
+//                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+//            }
+//        }
+//        if (!locDetlDtos.isEmpty()) {
+//            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);
+//            } else {
+//                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+//            }
+//        } else {
+//            throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+//        }
+//    }
+
     @Override
     @Transactional
-    public void locCheckOut(StockOutParam param, Long userId) {
-        // 鐩爣绔欑偣鐘舵�佹娴�
-        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
-        // 鑾峰彇搴撲綅鏄庣粏
-        List<LocDetlDto> locDetlDtos = new ArrayList<>();
-        for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+    public void locCheckOut(StockOutFloorParam param, Long userId) {
+
+        // 鎸� siteId 鍒嗙粍
+        Map<Integer, List<LocDetlDto>> siteIdToLocDetlsMap = new HashMap<>();
+
+        for (StockOutFloorParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                 LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl);
-                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+                if (one != null) {
+                    LocDetlDto dto = new LocDetlDto(one, paramLocDetl.getCount());
+                    Integer siteId = paramLocDetl.getSiteId();
+
+                    if (siteId != null) {
+                        siteIdToLocDetlsMap.computeIfAbsent(siteId, k -> new ArrayList<>()).add(dto);
+                    }
+                }
             }
         }
-        if (!locDetlDtos.isEmpty()) {
-            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
-            if (locMast.getLocSts().equals("F")) {
-                // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+
+        if (siteIdToLocDetlsMap.isEmpty()) {
+            throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+        }
+
+        // 閬嶅巻鍒嗙粍鍚庣殑姣忎釜 siteId锛岄�愪釜鍑哄簱
+        for (Map.Entry<Integer, List<LocDetlDto>> entry : siteIdToLocDetlsMap.entrySet()) {
+            Integer siteId = entry.getKey();
+            List<LocDetlDto> locDetlDtos = entry.getValue();
+
+            // 鏍¢獙搴撲綅鐘舵��
+            LocMast locMast = locMastService.selectOne(
+                    new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())
+            );
+
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+                // 鏍¢獙鐩爣绔欑偣
+                BasDevp staNo = basDevpService.checkSiteStatus(siteId);
+
+                // 鎵ц鍑哄簱
                 stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
             } else {
-                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" +
+                        locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
-        } else {
-            throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
         }
     }
 
diff --git a/src/main/webapp/static/js/pakStore/locCheckOut.js b/src/main/webapp/static/js/pakStore/locCheckOut.js
index d2e5b58..7b0acf3 100644
--- a/src/main/webapp/static/js/pakStore/locCheckOut.js
+++ b/src/main/webapp/static/js/pakStore/locCheckOut.js
@@ -48,7 +48,7 @@
                         return;
                     }
                     let param = {
-                        outSite: staNo,
+                        floor: staNo,
                         locDetls: locDetlData
                     }
                     $.ajax({
diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index de516ce..cd0de96 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -79,7 +79,7 @@
                         return;
                     }
                     let param = {
-                        outSite: staNo,
+                        floor: staNo,
                         locDetls: locDetlData
                     }
                     $.ajax({
diff --git a/src/main/webapp/views/pakStore/locCheckOut.html b/src/main/webapp/views/pakStore/locCheckOut.html
index 393dfba..0fa40aa 100644
--- a/src/main/webapp/views/pakStore/locCheckOut.html
+++ b/src/main/webapp/views/pakStore/locCheckOut.html
@@ -99,7 +99,12 @@
                 <span id="staNoSpan">鐩樼偣绔欙細</span>
                 <select id="staNoSelect" lay-verify="required">
                     <option value="">璇烽�夋嫨绔欑偣</option>
-                </select>
+<!--                    <option value="1">涓�妤硷紙涓滃尯锛�</option>-->
+<!--                    <option value="2">浜屾ゼ锛堜笢鍖猴級</option>-->
+                                        <option value="3">鍥涙ゼ锛堜笢鍖猴級</option>
+<!--                    <option value="4">涓�妤硷紙瑗垮尯锛�</option>-->
+<!--                    <option value="5">浜屾ゼ锛堣タ鍖猴級</option>-->
+                    <option value="6">鍥涙ゼ锛堣タ鍖猴級</option>               </select>
                 <!-- 2.鍚姩鍑哄簱 -->
                 <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鐩樼偣鍑哄簱</button>
             </div>
@@ -114,11 +119,11 @@
     <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
 </div>
 
-<script type="text/template" id="takeSiteSelectTemplate">
-    {{#each data}}
-    <option value="{{this}}">{{this}}</option>
-    {{/each}}
-</script>
+<!--<script type="text/template" id="takeSiteSelectTemplate">-->
+<!--    {{#each data}}-->
+<!--    <option value="{{this}}">{{this}}</option>-->
+<!--    {{/each}}-->
+<!--</script>-->
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html
index 3e02f19..e857642 100644
--- a/src/main/webapp/views/pakStore/stockOut.html
+++ b/src/main/webapp/views/pakStore/stockOut.html
@@ -99,7 +99,14 @@
                 <span id="staNoSpan">鍑哄簱鍙o細</span>
                 <select id="staNoSelect" lay-verify="required">
                     <option value="">璇烽�夋嫨绔欑偣</option>
+                    <option value="1">涓�妤硷紙涓滃尯锛�</option>
+                    <option value="2">浜屾ゼ锛堜笢鍖猴級</option>
+<!--                    <option value="3">鍥涙ゼ锛堜笢鍖猴級</option>-->
+                    <option value="4">涓�妤硷紙瑗垮尯锛�</option>
+                    <option value="5">浜屾ゼ锛堣タ鍖猴級</option>
+<!--                    <option value="6">鍥涙ゼ锛堣タ鍖猴級</option>-->
                 </select>
+
                 <!-- 2.鍚姩鍑哄簱 -->
                 <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
             </div>
@@ -121,11 +128,11 @@
 <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/pakStore/stockOut.js" charset="utf-8"></script>
 
-<script type="text/template" id="takeSiteSelectTemplate">
-    {{#each data}}
-    <option value="{{siteId}}">{{desc}}</option>
-    {{/each}}
-</script>
+<!--<script type="text/template" id="takeSiteSelectTemplate">-->
+<!--    {{#each data}}-->
+<!--    <option value="{{siteId}}">{{desc}}</option>-->
+<!--    {{/each}}-->
+<!--</script>-->
 </body>
 </html>
 

--
Gitblit v1.9.1