From 2b078ab36f409a22c1c32b71173106136eda6c53 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 13 十月 2022 15:55:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/CodeRes.java                       |    3 +++
 src/main/java/com/zy/asrs/service/WrkMastService.java          |    2 ++
 src/main/java/com/zy/common/web/param/SearchLocParam.java      |    2 ++
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |    5 +++++
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java            |    2 ++
 src/main/resources/mapper/WrkMastMapper.xml                    |    4 ++++
 src/main/java/com/zy/common/web/WcsController.java             |   33 +++++++++++++++++++--------------
 7 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index b8147d7..5766e11 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -25,4 +25,6 @@
     @Update("update asr_wrk_mast set ste_no = null where wrk_no = #{wrkNo}")
     int setSteEmpty(Integer wrkNo);
 
+    WrkMast selectOfPick(@Param("wrkNo") Integer wrkNo, @Param("ioType") Integer ioType);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastService.java b/src/main/java/com/zy/asrs/service/WrkMastService.java
index f1a080c..de22e00 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -25,4 +25,6 @@
     int getStoreCount(Integer crnNo);
 
     Boolean setSteEmpty(Integer wrkNo);
+
+    WrkMast selectOfPick(Integer wrkNo, Integer ioType);
 }
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 56a4450..12559a5 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -106,4 +106,9 @@
         return this.baseMapper.setSteEmpty(wrkNo) > 0;
     }
 
+    @Override
+    public WrkMast selectOfPick(Integer wrkNo, Integer ioType) {
+        return this.baseMapper.selectOfPick(wrkNo, ioType);
+    }
+
 }
diff --git a/src/main/java/com/zy/common/CodeRes.java b/src/main/java/com/zy/common/CodeRes.java
index df8f7ce..a69fd59 100644
--- a/src/main/java/com/zy/common/CodeRes.java
+++ b/src/main/java/com/zy/common/CodeRes.java
@@ -12,4 +12,7 @@
     String PICK_600 = "600-鎷f枡浠诲姟";
     String NO_COMB_700 = "700-璇峰厛缁勬墭";
 
+    String NONE_MAST_800 = "800-浠诲姟涓㈠け";
+    String NONE_DETL_900 = "900-浠诲姟鏄庣粏涓㈠け";
+
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 65d3253..77a1587 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -90,6 +90,11 @@
             case 10://绌烘墭鐩樺叆搴�
                 dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
                 break;
+            case 103:// 鎷f枡鍏ュ簱
+                break;
+            case 107:// 鐩樼偣鍏ュ簱
+                dto = pickWrkPlateIn(param.getWrkNo(), param.getIoType(), param.getSourceStaNo(), locTypeDto);
+                break;
             default:
                 break;
         }
@@ -233,21 +238,21 @@
         return dto;
     }
 
-    /**
-     * 闈為�氱敤鎬т唬鐮�,鍙�傜敤浜庤竟閿嬮」鐩�
-     * @param locNo
-     * @return
-     */
-    private Integer findSte(String locNo) {
-        int i = Integer.parseInt(locNo.substring(0, 2));
-        if (i >= 1 && i <= 7){
-            return 1;
-        } else if (i >= 8 && i <= 14) {
-            return 2;
-        }else {
-            return 3;
+    @Transactional
+    public StartupDto pickWrkPlateIn(Integer wrkNo, Integer ioType, Integer devpNo, LocTypeDto locTypeDto) {
+        WrkMast wrkMast = wrkMastService.selectOfPick(wrkNo, ioType);
+        if (Cools.isEmpty(wrkMast)) {
+            log.error("{}浠诲姟銆恑oType = {}銆戝凡杩囨湡!!!", wrkNo, ioType);
+            throw new CoolException(CodeRes.NONE_MAST_800);
         }
-
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (Cools.isEmpty(wrkDetls)) {
+            throw new CoolException(CodeRes.NONE_DETL_900);
+        }
+        // 妫�绱㈠簱浣�
+        List<String> matnrList = wrkDetls.stream().map(WrkDetl::getMatnr).distinct().collect(Collectors.toList());
+        StartupDto dto = commonService.getLocNo(1, ioType, devpNo, matnrList, locTypeDto,0);
+        return dto; // 搴撲綅鍙凤紝 鍫嗗灈鏈�
     }
 
 }
diff --git a/src/main/java/com/zy/common/web/param/SearchLocParam.java b/src/main/java/com/zy/common/web/param/SearchLocParam.java
index 1a170ce..df746f0 100644
--- a/src/main/java/com/zy/common/web/param/SearchLocParam.java
+++ b/src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -8,6 +8,8 @@
 @Data
 public class SearchLocParam {
 
+    private Integer wrkNo;
+
     private Integer ioType;
 
     private Integer sourceStaNo;
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index ea1dfe0..70dd04c 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -96,4 +96,8 @@
         and wrk_sts &lt; 17
     </select>
 
+    <select id="selectOfPick" resultMap="BaseResultMap">
+        select top 1 * from asr_wrk_mast where wrk_no=#{wrkNo} and wrk_sts=17 and io_type = #{ioType}
+    </select>
+
 </mapper>

--
Gitblit v1.9.1