From 192ed29c87e221a3aa240e5f003d574fdfb9a9c8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 09 九月 2023 16:02:37 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |   35 +---
 src/main/java/com/zy/asrs/utils/Utils.java                     |    1 
 src/main/resources/mapper/LocMastMapper.xml                    |   90 ++----------
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |   15 +
 src/main/java/com/zy/common/web/WcsController.java             |   46 +++--
 src/main/java/com/zy/asrs/service/LocMastService.java          |   12 -
 src/main/java/com/zy/common/service/CommonService.java         |  186 +++++++++++--------------
 7 files changed, 148 insertions(+), 237 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index d153b29..8fc3b9a 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,17 +13,18 @@
 @Repository
 public interface LocMastMapper extends BaseMapper<LocMast> {
 
-    List<LocMast> queryFreeLocMast(@Param("rows") List<Integer> rows, @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1);
-
-    LocMast queryFreeLocMast0(@Param("row") Integer row, @Param("locType1") Short locType1);
-
     @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
     List<String> queryGroupEmptyStock(Integer crnNo);
 
-    @Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
-    Integer selectEmptyLocCount(@Param("crnNo") Integer crnNo);
+    @Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type3 = #{locType3} and lev1 = #{lev}")
+    Integer selectEmptyLocCount(@Param("locType3") Short locType3, @Param("lev") Integer lev);
 
     List<LocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd);
+
+    /**
+     * 鎼滅储鎸囧畾鍖哄煙鍙敤搴撲綅
+     */
+    List<LocMast> selectAreaEmpty(Short locType1, Integer locType3);
 
     LocMast selectAvailableNearLocDesc(@Param("groupLoc") List<String> groupOuterLoc);
 
@@ -37,6 +38,8 @@
 
     List<LocMast> selectEmptyByLocNos(@Param("locNos") List<String> locNos);
 
+    LocMast selectByLoc(String locNo);
+
     Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index caf4dc8..01e3905 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -11,13 +11,12 @@
     /**
      * 妫�绱㈠彲鐢ㄥ簱浣�
      */
-    List<LocMast> queryFreeLocMast(List<Integer> rows, Integer rowsLen, Short locType1);
     List<LocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd);
 
     /**
-     * 妫�绱㈠彲鐢ㄥ簱浣�0
+     * 鎼滅储鎸囧畾鍖哄煙鍙敤搴撲綅
      */
-    LocMast queryFreeLocMast0(Integer row, Short locType1);
+    List<LocMast> selectAreaEmpty(Short locType1, Integer locType3);
 
     /**
      * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
@@ -32,11 +31,6 @@
      * @return
      */
     Boolean checkEmptyCount(LocMast locMast, int quaOfBlank);
-
-    /**
-     * 褰撳墠搴撳瓨鏄庣粏鏄惁涓烘暣鎵�
-     */
-    Boolean checkWhole(List<LocDetl> locDetls);
 
     /**
      * 鍒ゆ柇鏄惁鏄渶澶栧眰鐨勫簱浣�
@@ -62,6 +56,8 @@
 
     List<LocMast> selectEmptyByLocNos(List<String> locNos);
 
+    LocMast selectByLoc(String locNo);
+
     Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index acd2d53..1c44970 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -30,18 +30,13 @@
     private WorkService workService;
 
     @Override
-    public List<LocMast> queryFreeLocMast(List<Integer> rows, Integer rowsLen, Short locType1) {
-        return this.baseMapper.queryFreeLocMast(rows, rowsLen, locType1);
-    }
-
-    @Override
     public List<LocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd) {
         return this.baseMapper.queryFreeLocMast2(locType1, rowBeg, rowEnd, bayBeg, bayEnd, levBeg, levEnd);
     }
 
     @Override
-    public LocMast queryFreeLocMast0(Integer row, Short locType1) {
-        return this.baseMapper.queryFreeLocMast0(row, locType1);
+    public List<LocMast> selectAreaEmpty(Short locType1, Integer locType3) {
+        return this.baseMapper.selectAreaEmpty(locType1, locType3);
     }
 
     @Override
@@ -61,12 +56,7 @@
         if (locMast == null) {
             return false;
         }
-        return this.baseMapper.selectEmptyLocCount(locMast.getCrnNo()) > quaOfBlank;
-    }
-
-    @Override
-    public Boolean checkWhole(List<LocDetl> locDetls) {
-        return null;
+        return this.baseMapper.selectEmptyLocCount(locMast.getLocType3(), locMast.getLev1()) > quaOfBlank;
     }
 
     @Override
@@ -149,17 +139,9 @@
     public LocMast findNearloc(String locNo) {
         int row = getRow(locNo);
         LocMast locMast = null;
-        if (row>19) {
-            List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
-            if (!Cools.isEmpty(groupOuterLoc)) {
-                locMast = this.baseMapper.selectAvailableNearLocDesc(groupOuterLoc);
-            }
-
-        }else {
-            List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
-            if (!Cools.isEmpty(groupOuterLoc)) {
-                locMast = this.baseMapper.selectAvailableNearLocAsc(groupOuterLoc);
-            }
+        List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+        if (!Cools.isEmpty(groupOuterLoc)) {
+            locMast = this.baseMapper.selectAvailableNearLocAsc(groupOuterLoc);
         }
         return locMast;
     }
@@ -196,6 +178,11 @@
     }
 
     @Override
+    public LocMast selectByLoc(String locNo) {
+        return this.baseMapper.selectByLoc(locNo);
+    }
+
+    @Override
     public Integer updateLocType2ByRBL(Integer locType2, Integer startRow, Integer endRow, Integer startBay, Integer endBay, Integer startLev, Integer endLev) {
         return this.baseMapper.updateLocType2ByRBL(locType2, startRow, endRow, startBay, endBay, startLev, endLev);
     }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 7ef96f8..0b6ae0d 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -207,6 +207,7 @@
             for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
                 result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
             }
+            Collections.reverse(result);
             return result;
         }
         if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 83b24d0..b84f6d6 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -129,15 +129,8 @@
         // 鐩爣搴撲綅
         LocMast locMast = null;
 
-        //娣疯浇鎵惧簱浣�
-        locMast = getLocNoStep1(matNos, locTypeDto);
-        if (locMast != null) {
-            //鎵惧埌搴撲綅锛岃繑鍥瀌to
-            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
-        }
-
         //搴撲綅瑙勫垯
-        locMast = getLocNoStep2(matNos, locTypeDto);
+        locMast = getLocNoStepRule(matNos, locTypeDto);
         if (locMast != null) {
             //鎵惧埌搴撲綅锛岃繑鍥瀌to
             return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
@@ -156,12 +149,16 @@
             //鎵惧埌搴撲綅锛岃繑鍥瀌to
             return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
         }
-        // 鏍规嵁鐗╂枡棰戠巼鏌ヨ搴撲綅
 
+        //鎼滅储鍗曞搧
+        locMast = getLocNoStepSingle(matNos, locTypeDto);
+        if (locMast != null) {
+            //鎵惧埌搴撲綅锛岃繑鍥瀌to
+            return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
+        }
 
-        // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
-        // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-        locMast = getLocNoStep5(locTypeDto, times);
+        //鎼滅储娣锋斁
+        locMast = getLocNoStepMixed(matNos, locTypeDto, times);
         if (locMast != null) {
             //鎵惧埌搴撲綅锛岃繑鍥瀌to
             return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
@@ -172,95 +169,38 @@
     }
 
     /**
-     * 娣疯浇鎵惧簱浣�
-     */
-    private LocMast getLocNoStep1(List<String> matNos, LocTypeDto locTypeDto) {
-        //鍒ゆ柇褰撳墠璐х墿鏄惁涓烘贩杞借揣鐗�
-        String firstMatNos = matNos.get(0);
-        boolean mixed = false;//榛樿涓嶆槸娣疯浇璐х墿
-        for (String matNo : matNos) {
-            if (!firstMatNos.equals(matNo)) {
-                mixed = true;//娣疯浇璐х墿
-                break;
-            }
-        }
-
-        if (!mixed) {
-            return null;//涓嶆槸娣疯浇璐х墿锛岀洿鎺ヨ烦鍑哄綋鍓嶄换鍔�
-        }
-
-        // 鎵炬贩杞藉簱浣嶈鍒�
-        List<LocRule> locRules = locRuleService.findMixed();
-        if (locRules == null || locRules.size() == 0) {
-            return null;//娌℃湁娣疯浇瑙勫垯锛岃烦鍑哄綋鍓嶄换鍔�
-        }
-
-        for (LocRule locRule : locRules) {
-            if (locRule == null) {
-                continue;
-            }
-
-            List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
-
-            for (LocMast one : locMasts) {
-                LocMast locMast0 = locMastService.findOutMost(one.getLocNo());
-                if (null != locMast0) {
-                    // 娴呭簱浣嶇鍚堝昂瀵告娴�
-                    if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
-                        // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                        if (locMastService.checkEmptyCount(locMast0, 10)) {
-                            return locMast0;//鎵惧埌绌轰綑鐨勬贩杞藉簱浣�
-                        }
-                    }
-                }
-            }
-
-        }
-
-        if (locRules.get(0).getKeepGo() == 0) {
-            //鎵句笉鍒扮┖搴撲綅锛屼笖绂佹缁х画瀵绘壘鍏朵粬闈炴贩杞藉尯鍩熷簱浣�
-            //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
-            throw new CoolException("娣疯浇鍖哄煙娌℃湁绌哄簱浣�");
-        }
-
-        return null;
-    }
-
-    /**
      * 搴撲綅瑙勫垯
      */
-    private LocMast getLocNoStep2(List<String> matNos, LocTypeDto locTypeDto) {
+    private LocMast getLocNoStepRule(List<String> matNos, LocTypeDto locTypeDto) {
         LocMast locMast = null;
-        // 搴撳尯閿佸畾
-        List<LocRule> locRules = locRuleService.find(Cools.isEmpty(matNos) ? null : matNos.get(0));
-        if (locRules == null || locRules.size() == 0) {
-            return null;//娌℃湁搴撲綅瑙勫垯锛岃烦鍑哄綋鍓嶄换鍔�
-        }
 
-        for (LocRule locRule : locRules) {
-            if (locRule == null) {
-                continue;
+        //搴撲綅瑙勫垯鍙兘鍦ㄥ崟鍝佽揣鐗╀腑鐢熸晥
+        if (matNos.size() == 1) {
+            // 搴撳尯閿佸畾
+            List<LocRule> locRules = locRuleService.find(Cools.isEmpty(matNos) ? null : matNos.get(0));
+            if (locRules == null || locRules.isEmpty()) {
+                return null;//娌℃湁搴撲綅瑙勫垯锛岃烦鍑哄綋鍓嶄换鍔�
             }
 
-            List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
-            for (LocMast one : locMasts) {
-                LocMast locMast0 = locMastService.findOutMost(one.getLocNo());
-                if (null != locMast0) {
-                    // 娴呭簱浣嶇鍚堝昂瀵告娴�
-                    if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
-                        // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                        if (locMastService.checkEmptyCount(locMast0, 10)) {
-                            return locMast0;
-                        }
+            for (LocRule locRule : locRules) {
+                if (locRule == null) {
+                    continue;
+                }
+
+                List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
+                for (LocMast locMast0 : locMasts) {
+                    //棰勭暀绌哄簱浣�
+                    if (locMastService.checkEmptyCount(locMast0, 10)) {
+                        return locMast0;
                     }
                 }
             }
-        }
 
-        if (locRules.get(0).getKeepGo() == 0) {
-            //鎵句笉鍒扮┖搴撲綅锛屼笖绂佹缁х画瀵绘壘鍏朵粬闈炴贩杞藉尯鍩熷簱浣�
-            //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
-            throw new CoolException("瑙勫垯鍖哄煙娌℃湁绌哄簱浣�");
+            if (locRules.get(0).getKeepGo() == 0) {
+                //鎵句笉鍒扮┖搴撲綅锛屼笖绂佹缁х画瀵绘壘鍏朵粬闈炴贩杞藉尯鍩熷簱浣�
+                //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
+                throw new CoolException("瑙勫垯鍖哄煙娌℃湁绌哄簱浣�");
+            }
         }
 
         return locMast;
@@ -338,20 +278,19 @@
         return locMast;
     }
 
-    // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
-    private LocMast getLocNoStep5(LocTypeDto locTypeDto, int times) {
+    // 鎼滅储娣锋斁
+    private LocMast getLocNoStepMixed(List<String> matNos, LocTypeDto locTypeDto, int times) {
         LocMast locMast = null;
-        // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
-        List<LocMast> peakLocs = locMastService.selectAllPeakLoc();
-        for (LocMast peakLoc : peakLocs) {
-            List<String> groupInnerLoc = Utils.getGroupInnerLoc(peakLoc.getLocNo());
-            if (!Cools.isEmpty(groupInnerLoc)) {
-                if (!locMastService.checkAllLocEmpty(groupInnerLoc)) continue;
-                locMast = peakLoc;
-                break;
-            } else {
-                locMast = peakLoc;
-                break;
+
+        if (matNos.size() > 1) {
+            List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 1);//鎼滅储娣锋斁搴撲綅
+            //娣锋斁鍖哄煙鐩存帴鍙栫涓�涓嵆鍙�
+            for (LocMast mast : locMasts) {
+                //棰勭暀绌哄簱浣�
+                if (locMastService.checkEmptyCount(mast, 10)) {
+                    locMast = mast;
+                    break;
+                }
             }
         }
 
@@ -363,6 +302,45 @@
         return locMast;
     }
 
+    // 鎼滅储鍗曞搧
+    private LocMast getLocNoStepSingle(List<String> matNos, LocTypeDto locTypeDto) {
+        LocMast locMast = null;
+        // 1.鍏堟悳绱㈠崟鍝�
+        if (matNos.size() == 1) {
+            //鍗曞搧
+            List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 2);//鎼滅储鍗曞搧搴撲綅
+            for (LocMast mast : locMasts) {
+                List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo());
+                if (!locMastService.checkAllLocEmpty(groupLoc)) {
+                    continue;
+                }
+
+                LocMast tmp = null;
+                for (String loc : groupLoc) {
+                    LocMast locMast1 = locMastService.selectByLoc(loc);
+                    if (locMast1 == null) {
+                        continue;
+                    }
+
+                    if (!locMast1.getLocSts().equals("O")) {
+                        continue;
+                    }
+
+                    tmp = locMast1;
+                    break;
+                }
+
+                //棰勭暀绌哄簱浣�
+                if (tmp != null && locMastService.checkEmptyCount(mast, 10)) {
+                    locMast = tmp;
+                    break;
+                }
+            }
+        }
+
+        return locMast;
+    }
+
     //杩斿洖dto
     private StartupDto getLocNoStep6(Integer staDescId, Integer sourceStaNo, LocMast locMast) {
         StartupDto startupDto = new StartupDto();
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 825c507..c14495a 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -18,6 +18,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -60,7 +61,7 @@
             return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
         }
         List<WaitPakin> waitPakins = null;
-        Mat mat = null;
+        ArrayList<Mat> mats = new ArrayList<>();
         if (param.getIoType() == 1) {
             if (Cools.isEmpty(param.getBarcode())) {
                 return R.error("鏉$爜涓嶈兘涓虹┖");
@@ -77,15 +78,20 @@
 //            }
             waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
 
-            if (Cools.isEmpty(waitPakins) || waitPakins.size()!=1) {
+            if (Cools.isEmpty(waitPakins)) {
                 WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
                 if (wrkMast != null && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 104 || wrkMast.getIoType() == 107)) {
                     return R.parse(CodeRes.PICK_600);
                 }
                 return R.parse(CodeRes.NO_COMB_700);
             }
-            mat = matService.selectByMatnr(waitPakins.get(0).getMatnr());
-            mat.setWeight(waitPakins.get(0).getAnfme());
+
+            for (WaitPakin waitPakin : waitPakins) {
+                Mat mat = matService.selectByMatnr(waitPakin.getMatnr());
+                mat.setWeight(waitPakin.getAnfme());
+                mats.add(mat);
+            }
+
             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
             if (countLoc > 0 || countWrk > 0) {
@@ -103,8 +109,7 @@
         StartupDto dto = null;
         switch (param.getIoType()) {
             case 1://婊℃墭鐩樺叆搴�
-                assert mat != null;
-                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, mat);
+                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, mats);
                 break;
             case 10://绌烘墭鐩樺叆搴�
                 dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, null);
@@ -126,11 +131,10 @@
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional
-    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, Mat mat) {
+    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<Mat> mats) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-        List<Mat> mats = Collections.singletonList(mat);
         List<String> matnrList = mats.stream().map(Mat::getMatnr).distinct().collect(Collectors.toList());
         StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrList, locTypeDto,0);
         int workNo = dto.getWorkNo();
@@ -162,19 +166,21 @@
         if (!res) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
-        // 鐢熸垚宸ヤ綔妗f槑缁�
-        WrkDetl wrkDetl = new WrkDetl();
-        wrkDetl.sync(mat);
-        wrkDetl.setAnfme(mat.getWeight());
-        wrkDetl.setZpallet(barcode);
-//        wrkDetl.setAnfme(1.0D);
-        wrkDetl.setWrkNo(wrkMast.getWrkNo());
-        wrkDetl.setIoTime(wrkMast.getIoTime());
-        wrkDetl.setAppeTime(now);
-        wrkDetl.setModiTime(now);
-        if (!wrkDetlService.insert(wrkDetl)) {
-            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+        for (Mat mat : mats) {
+            // 鐢熸垚宸ヤ綔妗f槑缁�
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setAnfme(mat.getWeight());
+            wrkDetl.setZpallet(barcode);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
         }
+
 //        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
 //        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
 //                .eq("zpallet", barcode);
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 552b136..5d6b2cc 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -33,86 +33,11 @@
         <result column="inv_wh" property="invWh" />
         <result column="mk" property="mk" />
         <result column="barcode" property="barcode" />
-        <result column="Pdc_type" property="PdcType" />
         <result column="ctn_no" property="ctnNo" />
         <result column="qr_code_value" property="qrCodeValue" />
         <result column="status" property="status" />
 
     </resultMap>
-
-    <select id="queryFreeLocMast" resultMap="BaseResultMap">
-        select
-        *
-        from asr_loc_mast
-        where 1=1
-        and row1 in
-        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
-            #{item}
-        </foreach>
-        and ctn_no =
-        (
-            select
-            top 1
-            ctn_no
-            from (
-                select
-                ctn_no,
-                count(1) as count
-                from asr_loc_mast
-                where 1=1
-                and row1 in
-                <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
-                    #{item}
-                </foreach>
-                and loc_no not in ('0100101', '0200101', '0300101', '0400101')
-                and loc_sts = 'O'
-                group by ctn_no
-            ) a
-            where count = #{rowsLen}
-            order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
-        )
-    </select>
-    <select id="queryFreeLocMast" resultMap="BaseResultMap">
-        select
-        *
-        from asr_loc_mast
-        where 1=1
-        and row1 in
-        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
-            #{item}
-        </foreach>
-        and ctn_no =
-        (
-        select
-        top 1
-        ctn_no
-        from (
-        select
-        ctn_no,
-        count(1) as count
-        from asr_loc_mast
-        where 1=1
-        and row1 in
-        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
-            #{item}
-        </foreach>
-        and loc_no not in ('0100101', '0200101', '0300101', '0400101')
-        and (bay1 = 3 or bay1 = 11 or (bay1 = 7 and row1 = 10))
-        and loc_sts = 'O'
-        group by ctn_no
-        ) a
-        where count = #{rowsLen}
-        order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
-        )
-    </select>
-
-    <select id="queryFreeLocMast0" resultMap="BaseResultMap">
-        select top 1 *
-        from asr_loc_mast
-        where row1=#{row}
-        and loc_sts='O'
-        order by loc_sts desc ,lev1 asc,bay1 asc
-    </select>
 
     <select id="selectAvailableNearLocDesc" resultMap="BaseResultMap">
         SELECT TOP 1 * FROM asr_loc_mast WHERE loc_sts IN ('O')
@@ -187,6 +112,16 @@
         order by loc_sts desc ,lev1 asc,bay1 asc
     </select>
 
+    <select id="selectAreaEmpty" resultMap="BaseResultMap">
+        select * from asr_loc_mast
+        where loc_sts in ('O')
+        and loc_type3 = #{locType3}
+        <if test="locType1 != null">
+            and loc_type1 = #{locType1}
+        </if>
+        ORDER BY lev1,bay1,row1
+    </select>
+
     <select id="selectEmptyByLocNos" resultMap="BaseResultMap">
         SELECT * FROM asr_loc_mast
         WHERE loc_sts IN ('O')
@@ -198,6 +133,11 @@
         row1 ASC
     </select>
 
+    <select id="selectByLoc" resultMap="BaseResultMap">
+        select * from asr_loc_mast
+        where loc_no = #{locNo}
+    </select>
+
     <select id="updateLocType2ByRBL" resultMap="BaseResultMap">
         update asr_loc_mast set loc_type2 = #{locType2}
         where (row1 &gt;= #{startRow} and row1 &lt;= #{endRow})

--
Gitblit v1.9.1