From ccaf80f21ea0a8375324df6bb2250b9ad11c5cdd Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 27 九月 2022 15:01:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    2 
 src/main/java/com/zy/asrs/utils/Utils.java                     |   88 +++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |   56 ++++++++++++++++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    5 +
 src/main/resources/mapper/WrkMastMapper.xml                    |   18 ++++++
 5 files changed, 169 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index dd349bd..692d1b9 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.WrkMast;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -16,4 +17,8 @@
 
     List<WrkMast> selectToBeHistoryData();
 
+    WrkMast selectByLocNoOfPakin(@Param("locNo") String locNo);
+
+    WrkMast selectBySourceLocNoOfPakout(@Param("sourceLocNo") String sourceLocNo);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index ff9c2ba..99bedd0 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -15,6 +15,8 @@
 
     WrkMast selectByBarcode(String barcode);
 
+    Double getIoPri(Integer ioType, String locNo);
+
     /**
      * 浠庡伐浣滄。寰楀埌绔欑偣鍏ュ簱鏆傚瓨鏁�
      * @param crnNo
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index ab394ec..b5bd119 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.Utils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -40,6 +41,61 @@
     }
 
     @Override
+    public synchronized Double getIoPri(Integer ioType, String locNo) {
+        Double defaultIoPri = null;
+        if (Cools.isEmpty(ioType, locNo)) {
+            return 15.0D;
+        }
+        if (ioType != 11) {
+            // 鍏ュ簱
+            if (ioType < 100) {
+                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+                if (!Cools.isEmpty(groupOuterLoc)) {
+                    for (String outerLoc : groupOuterLoc) {
+                        WrkMast wrkMast = this.baseMapper.selectByLocNoOfPakin(outerLoc);
+                        if (wrkMast != null) {
+                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() + 2 : defaultIoPri + 2;
+                        }
+                    }
+                }
+                List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
+                if (!Cools.isEmpty(groupInsideLoc)) {
+                    for (String insideLoc : groupInsideLoc) {
+                        WrkMast wrkMast = this.baseMapper.selectByLocNoOfPakin(insideLoc);
+                        if (wrkMast != null) {
+                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() - 2 : defaultIoPri - 2;
+                        }
+                    }
+                }
+            // 鍑哄簱
+            } else {
+                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+                if (!Cools.isEmpty(groupOuterLoc)) {
+                    for (String outerLoc : groupOuterLoc) {
+                        WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(outerLoc);
+                        if (wrkMast != null) {
+                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() - 2 : defaultIoPri - 2;
+                        }
+                    }
+                }
+                List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
+                if (!Cools.isEmpty(groupInsideLoc)) {
+                    for (String insideLoc : groupInsideLoc) {
+                        WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(insideLoc);
+                        if (wrkMast != null) {
+                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() + 2 : defaultIoPri + 2;
+                        }
+                    }
+                }
+            }
+        // 绉诲簱
+        } else {
+//            @Deprecated
+        }
+        return defaultIoPri == null ? 15.0D : defaultIoPri;
+    }
+
+    @Override
     public int getStoreCount(Integer crnNo) {
         return selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo)
                 .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))"));
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index d8fe9d2..89cef79 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -443,4 +443,92 @@
         }
     }
 
+    // 娉ㄦ剰椤哄簭
+    public static List<String> getGroupInsideLoc(String locNo){
+        int row = getRow(locNo);
+        switch (row) {
+            case 1:
+            case 21:
+            case 14:
+            case 15:
+            case 7:
+            case 8:
+                return new ArrayList<>();
+            case 2:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
+                }};
+            case 3:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(2), 2) + locNo.substring(2));
+                }};
+            case 4:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
+                }};
+            case 5:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
+                }};
+            case 6:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
+                }};
+            case 9:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
+                }};
+            case 10:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
+                }};
+            case 11:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
+                }};
+            case 12:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(13), 2) + locNo.substring(2));
+                }};
+            case 13:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
+                }};
+            case 16:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
+                }};
+            case 17:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
+                }};
+            case 18:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
+                }};
+            case 19:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(20), 2) + locNo.substring(2));
+                }};
+            case 20:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
+                }};
+            default:
+                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+        }
+    }
+
 }
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 89f73ec..ea1dfe0 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -78,4 +78,22 @@
         order by io_time,wrk_no asc
     </select>
 
+    <select id="selectByLocNoOfPakin" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_wrk_mast
+        where 1=1
+        and io_type &lt; 100 and io_type != 11
+        and loc_no = #{locNo}
+        and wrk_sts &lt; 9
+    </select>
+
+    <select id="selectBySourceLocNoOfPakout" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_wrk_mast
+        where 1=1
+        and io_type > 100
+        and source_loc_no = #{sourceLocNo}
+        and wrk_sts &lt; 17
+    </select>
+
 </mapper>

--
Gitblit v1.9.1