From 1fe4313bb3326afa12c827e2d620fa735b8e37fb Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 24 十二月 2020 14:15:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/model/StartupDto.java           |   34 +----------
 src/main/java/com/zy/common/model/enums/WorkNoType.java     |   48 ++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   14 ++--
 src/main/java/com/zy/common/service/CommonService.java      |   82 +++++++++++----------------
 4 files changed, 93 insertions(+), 85 deletions(-)

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 4c0b9af..0026fc6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -16,6 +16,7 @@
 import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.OutLocDto;
 import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -68,11 +69,11 @@
         }
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
-        // 鐢熸垚宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
         // 妫�绱㈠簱浣�
         List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList());
         StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos);
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -189,7 +190,7 @@
                 throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
             }
             // 鐢熸垚宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
@@ -251,10 +252,9 @@
     public String emptyPlateIn(Integer devpNo, Long userId) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
-        // 鐢熸垚宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
         // 妫�绱㈠簱浣�
         StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null);
+        int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -311,7 +311,7 @@
         }
         for (String locNo : param.getLocNos()) {
             // 鑾峰彇宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.selectById(locNo);
             if (Cools.isEmpty(locMast)) {
@@ -403,7 +403,7 @@
             throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
         }
         // 鑾峰彇宸ヤ綔鍙�
-        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
         // 淇濆瓨宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
diff --git a/src/main/java/com/zy/common/model/StartupDto.java b/src/main/java/com/zy/common/model/StartupDto.java
index dacec79..b0ecc3e 100644
--- a/src/main/java/com/zy/common/model/StartupDto.java
+++ b/src/main/java/com/zy/common/model/StartupDto.java
@@ -1,8 +1,11 @@
 package com.zy.common.model;
 
+import lombok.Data;
+
 /**
  * Created by vincent on 2020/6/11
  */
+@Data
 public class StartupDto {
 
     private Integer sourceStaNo;
@@ -13,35 +16,6 @@
 
     private String locNo;
 
-    public Integer getSourceStaNo() {
-        return sourceStaNo;
-    }
+    private Integer workNo;
 
-    public void setSourceStaNo(Integer sourceStaNo) {
-        this.sourceStaNo = sourceStaNo;
-    }
-
-    public Integer getStaNo() {
-        return staNo;
-    }
-
-    public void setStaNo(Integer staNo) {
-        this.staNo = staNo;
-    }
-
-    public Integer getCrnNo() {
-        return crnNo;
-    }
-
-    public void setCrnNo(Integer crnNo) {
-        this.crnNo = crnNo;
-    }
-
-    public String getLocNo() {
-        return locNo;
-    }
-
-    public void setLocNo(String locNo) {
-        this.locNo = locNo;
-    }
 }
diff --git a/src/main/java/com/zy/common/model/enums/WorkNoType.java b/src/main/java/com/zy/common/model/enums/WorkNoType.java
new file mode 100644
index 0000000..ff1768c
--- /dev/null
+++ b/src/main/java/com/zy/common/model/enums/WorkNoType.java
@@ -0,0 +1,48 @@
+package com.zy.common.model.enums;
+
+import com.core.exception.CoolException;
+
+/**
+ * 宸ヤ綔鍙锋帓搴忚鍒�
+ */
+public enum WorkNoType {
+
+    PAKIN(0),
+    PICK(1),
+    PAKOUT(2),
+    OTHER(3),
+    ;
+
+    public Integer type;
+
+    WorkNoType(Integer type) {
+        this.type = type;
+    }
+
+    public static Integer getWorkNoType(Integer ioType) {
+        switch (ioType) {
+            case 1:
+                return PAKIN.type;
+            case 10:
+                return PAKIN.type;
+            case 11:
+                return PICK.type;
+            case 53:
+            case 54:
+            case 57:
+                return PICK.type;
+            case 101:
+                return PAKOUT.type;
+            case 103:
+            case 104:
+            case 107:
+                return PICK.type;
+            case 110:
+                return PAKOUT.type;
+            default:
+                break;
+        }
+        throw new CoolException(ioType + "鐨勪换鍔$被鍨嬫棤娉曠敓鎴愬伐浣滃彿");
+    }
+
+}
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 0de4133..1986fe9 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -39,7 +40,7 @@
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
-     * @param wrkMk 0:鍏ュ嚭搴� ; 1:鍏朵粬
+     * @param wrkMk 0:鍏ュ簱 1 - 3000 ; 1:鎷f枡/骞舵澘/鐩樼偣 3001 - 6000 ; 2: 鍑哄簱 6001 -9000 ; 3:鍏朵粬 9001 -9999
      * @return workNo(宸ヤ綔鍙�)
      */
     public int getWorkNo(Integer wrkMk) {
@@ -47,28 +48,39 @@
         if (Cools.isEmpty(wrkLastno)) {
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
-        int workNo = 0;
-        // 鍏ュ嚭搴撶被鍨�
-        if (wrkLastno.getWrkMk() == 0) {
-            workNo = wrkLastno.getWrkNo();
-            int sNo = wrkLastno.getSNo();
-            int eNo = wrkLastno.getENo();
 
-            workNo = workNo>=eNo ? sNo : workNo+1;
+        // 绫诲瀷
+        switch (wrkMk) {
+            case 0:     // 鍏ュ簱 1 - 3000
+                break;
+            case 1:     // 鎷f枡/骞舵澘/鐩樼偣 3001 - 6000
+                break;
+            case 2:     // 鍑哄簱 6001 -9000
+                break;
+            case 3:     // 鍏朵粬 9001 -9999
+                break;
+            default:
+                break;
+        }
 
-            while (true) {
-                WrkMast wrkMast = wrkMastService.selectById(workNo);
-                if (null != wrkMast) {
-                    workNo = workNo>=eNo ? sNo : workNo+1;
-                } else {
-                    break;
-                }
-            }
-            if (workNo > 0){
-                wrkLastno.setWrkNo(workNo);
-                wrkLastnoService.updateById(wrkLastno);
+        int workNo = wrkLastno.getWrkNo();
+        int sNo = wrkLastno.getSNo();
+        int eNo = wrkLastno.getENo();
+        workNo = workNo>=eNo ? sNo : workNo+1;
+        while (true) {
+            WrkMast wrkMast = wrkMastService.selectById(workNo);
+            if (null != wrkMast) {
+                workNo = workNo>=eNo ? sNo : workNo+1;
+            } else {
+                break;
             }
         }
+        // 淇敼搴忓彿璁板綍
+        if (workNo > 0){
+            wrkLastno.setWrkNo(workNo);
+            wrkLastnoService.updateById(wrkLastno);
+        }
+        // 妫�楠�
         if (workNo == 0) {
             throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
         } else {
@@ -89,6 +101,9 @@
      */
     public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos) {
         StartupDto startupDto = new StartupDto();
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = getWorkNo(WorkNoType.getWorkNoType(staDescId));
+        startupDto.setWorkNo(workNo);
         RowLastno rowLastno = rowLastnoService.selectById(whsType);
         if (Cools.isEmpty(rowLastno)) {
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
@@ -103,35 +118,6 @@
             int crnNo = 0;
             // 鐩爣搴撲綅
             LocMast locMast = null;
-
-            // 鍚屼竴澶╁悓瑙勬牸璐х墿闈犺繎鎽嗘硶瑙勫垯 todo:luxiaotao
-//            if (!Cools.isEmpty(matNos)) {
-//                List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0));
-//                for (String locNo : locNos) {
-//                    // 鑾峰彇鎺�
-//                    int row = Integer.parseInt(locNo.substring(0, 2));
-//                    // 鍒ゆ柇鏄惁涓烘繁搴撲綅
-//                    double remainder = Arith.remainder(row, rowCount / crn_qty);
-//                    int targetRow;
-//                    if (remainder == 1) {
-//                        // 寰楀埌褰撳墠搴撲綅鐨勫鍥村簱浣�
-//                        targetRow =  row + 1;
-//                    } else if (remainder == 0) {
-//                        // 寰楀埌褰撳墠搴撲綅鐨勫唴鍥村簱浣�
-//                        targetRow =  row - 1;
-//                    } else {
-//                        continue;
-//                    }
-//                    String targetLocNo = zerofill(String.valueOf(targetRow), 2)+locNo.substring(2);
-//                    // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-//                    LocMast targetLocMast = locMastService.selectById(targetLocNo);
-//                    if (targetLocMast != null && targetLocMast.getLocSts().equals("O")) {
-//                        locMast = targetLocMast;
-//                        crnNo = locMast.getCrnNo();
-//                        break;
-//                    }
-//                }
-//            }
 
             // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
             if (null == locMast) {

--
Gitblit v1.9.1