From ef28fc12367f1be5f80682d4300c1e3891bfe5c8 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 09 六月 2025 19:43:58 +0800
Subject: [PATCH] 完成部署服务器

---
 src/main/java/com/zy/common/web/WcsController.java |  372 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 262 insertions(+), 110 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 7026987..bbe9aa6 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -16,6 +16,7 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.web.param.CanningLineInLocParam;
 import com.zy.common.web.param.SearchLocParam;
+import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +25,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Created by vincent on 2020/10/30
@@ -80,22 +78,6 @@
         if (param.getIoType() == 1) {
             // 鍏堝垱寤哄叆搴撻�氱煡妗�
             waitPakin = comb(param.getBarcode(),param.getBucketType(),param.getBucketCount());
-//            if (Cools.isEmpty(param.getBarcode())) {
-//                return R.error("鏉$爜涓嶈兘涓虹┖");
-//            }
-//            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
-//            if (Cools.isEmpty(waitPakins)) {
-//                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
-//                if (wrkMast != null && wrkMast.getIoType() == 103) {
-//                    return R.parse(CodeRes.PICK_600);
-//                }
-//                return R.parse(CodeRes.NO_COMB_700);
-//            }
-//            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) {
-//                return R.error(CodeRes.EXIST_500);
-//            }
         }
         if (Cools.isEmpty(param.getLocType1())){
             return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
@@ -109,12 +91,13 @@
         StartupDto dto = null;
 
         if(param.getIoType() == 1) {
-            Map<Integer, String> wantBucketFlag = param.getWantBucketFlag();
-            if(!wantBucketFlag.isEmpty()) {
+            List<SearchLocParam.WantBucket> wantBucketFlag = param.getWantBucketFlag();
+            Optional<SearchLocParam.WantBucket> first = wantBucketFlag.stream().filter(wantBucket -> wantBucket.getBucketType() == param.getBucketType()).findFirst();
+            if (first.isPresent()) {
                 if(waitPakin == null) {
                     return R.error("鍏ュ簱閫氱煡妗d负绌�");
                 } else {
-                    dto = startupFullPutStore(param,waitPakin); // 鐩翠緵缃愯绾夸换鍔�
+                    dto = startupFullPutStore(param,waitPakin,first.get()); // 鐩翠緵缃愯绾夸换鍔�
                     if (dto != null) {
                         log.info("WCS鍏ュ簱鐩翠緵缃愯绾挎帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
                         return R.ok().add(dto);
@@ -126,7 +109,7 @@
         switch (param.getIoType()) {
             case 1://婊℃墭鐩樺叆搴�
                 assert waitPakin != null;
-                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakin, param.getLocArea(),param.isTailSupportFlag());
+                dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakin, param.isTailSupportFlag());
                 break;
             case 10://绌烘墭鐩樺叆搴�
                 dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode(), 1);
@@ -142,7 +125,7 @@
     @PostMapping("/pakin/CanningLine/loc/v1")
     @ResponseBody
     @Transactional
-    public synchronized R getLocNo(@RequestBody CanningLineInLocParam param) {
+    public synchronized R inCanningLine(@RequestBody CanningLineInLocParam param) {
         log.info("鏀跺埌WCS缃愯鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
         if (Cools.isEmpty(param.getWrkNo())) {
             return R.error("宸ヤ綔鍙蜂笉鑳戒负绌�");
@@ -155,71 +138,248 @@
         WrkMast wrkMast1 = wrkMastService.selectById(param.getWrkNo());
         // 鏍规嵁浠诲姟鍙锋煡璇换鍔℃槑缁�
         WrkDetl wrkDetl1 = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast1.getWrkNo()));
-        // 鍒嗛厤搴撲綅
-        StartupDto dto = commonService.getLocNoNew(1, param.getSourceStaNo(), null, 1);
 
-        // 鍒涘缓鏂颁换鍔�
-        int workNo = dto.getWorkNo();
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (mat == null) {
+            log.error("缃愯瀹屾垚鍏ュ簱锛屽弽棣堢粰wcs鎴愬搧鏍囪瘑涓嶅瓨鍦細{}",param.getMatnr());
+            return R.error("缃愯瀹屾垚鍏ュ簱锛屽弽棣堢粰wcs鎴愬搧鏍囪瘑涓嶅瓨鍦細" + param.getMatnr());
+        }
+
+        // 鑾峰彇绯荤粺閰嶇疆锛岀湅鎴愬搧缃愯瀹屾垚鏄惁鐩存帴鍑哄埌鍙戣揣鍙�
+        Config config = configService.selectConfigByCode("gzwcfh");
+        String fhFlag = "";
+        if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) {
+            fhFlag = config.getValue();
+        }
+
         Date now = new Date();
-        // 鐢熸垚宸ヤ綔妗�
-        WrkMast wrkMast = new WrkMast();
-        wrkMast.setWrkNo(workNo);
-        wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
-        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
-        wrkMast.setIoPri(13D); // 浼樺厛绾�
-        wrkMast.setCrnNo(dto.getCrnNo());
-        wrkMast.setSourceStaNo(dto.getSourceStaNo());
-        wrkMast.setStaNo(dto.getStaNo());
-        wrkMast.setLocNo(dto.getLocNo());
-        wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮�
-        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
-        wrkMast.setPicking("N"); // 鎷f枡
-        wrkMast.setExitMk("N"); // 閫�鍑�
-        wrkMast.setEmptyMk("N"); // 绌烘澘
-        wrkMast.setLinkMis("Y");
-        wrkMast.setCtnType(wrkMast1.getCtnType()); // 灏炬墭鏍囪瘑
-        wrkMast.setPdcType(wrkMast1.getPdcType()); // 绌烘《绫诲瀷
-        wrkMast.setAppeTime(now);
-        boolean res = wrkMastService.insert(wrkMast);
-        if (!res) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-        }
+        StartupDto dto;
 
-        // 鐢熸垚宸ヤ綔妗f槑缁�
-        // todo 鍏ユ垚鍝佹《搴撶殑鐗╂枡 杩欓噷鍏堟牴鎹┖妗剁被鍨嬫寚瀹氭垚鍝佹《鐗╂枡
-        String matnr;
-        if(wrkMast1.getPdcType().equals("208L")) {
-            matnr = "YJ2025011814414206";
-        } else {
-            matnr = "YJ2025011814412359";
-        }
-        Mat mat = matService.selectByMatnr(matnr);
-        WrkDetl wrkDetl = new WrkDetl();
-        wrkDetl.sync(mat);
-        wrkDetl.setWrkNo(workNo);
-        wrkDetl.setAnfme(wrkDetl1.getAnfme());
-        wrkDetl.setZpallet(wrkMast1.getBarcode());
-        wrkDetl.setIoTime(now);
-        wrkDetl.setAppeTime(now);
-        if (!wrkDetlService.insert(wrkDetl)) {
-            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
-        }
+        // 鍒ゆ柇璐存爣寮傚父锛屽妫�閲嶉噺寮傚父鐨勶紝涓嶅垎閰嶅簱浣嶏紝鍘诲線寮傚父鍙�1090
+//        if ( !param.isTbFlag() || param.getGrossWeight() < param.getWeight()) {
+//
+//            // 鐢熸垚宸ヤ綔妗� ------------------------------------------------------
+//            WrkMast wrkMast = new WrkMast();
+//            wrkMast.setWrkNo(commonService.getWorkNo(0));
+//            wrkMast.setIoTime(now);
+//            wrkMast.setIoType(3); // 鍏ュ嚭搴撶被鍨�3.绔欏埌绔�
+//            wrkMast.setWrkSts(2L);
+//            wrkMast.setIoPri(13D); // 浼樺厛绾�
+////            wrkMast.setCrnNo(dto.getCrnNo());
+//            wrkMast.setSourceStaNo(param.getSourceStaNo());
+//            wrkMast.setStaNo(1090);
+////            wrkMast.setLocNo(dto.getLocNo());
+//            wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮�
+//            wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+////            wrkMast.setPicking("N"); // 鎷f枡
+////            wrkMast.setExitMk("N"); // 閫�鍑�
+////            wrkMast.setEmptyMk("N"); // 绌烘澘
+////            wrkMast.setLinkMis("Y");
+////            wrkMast.setCtnType(wrkMast1.getCtnType()); // 灏炬墭鏍囪瘑
+//            wrkMast.setPdcType(wrkMast1.getPdcType()); // 绌烘《绫诲瀷
+//            wrkMast.setAppeTime(now);
+//            wrkMastService.insert(wrkMast);
+//
+//            // 鐢熸垚宸ヤ綔妗f槑缁�----------------------------------------------------
+//            WrkDetl wrkDetl = new WrkDetl();
+//            wrkDetl.sync(mat);
+//            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+//            wrkDetl.setAnfme(wrkDetl1.getAnfme());
+//            wrkDetl.setZpallet(wrkMast1.getBarcode());
+//            wrkDetl.setBatch(param.getBatch());
+//            wrkDetl.setManuDate(param.getManuDate());
+//            wrkDetl.setWeight(param.getWeight());
+//            wrkDetl.setManLength(param.getGrossWeight());
+//            wrkDetl.setInspect(1); // 璐存爣鎴愬姛
+//            wrkDetl.setIoTime(now);
+//            wrkDetl.setAppeTime(now);
+//            wrkDetlService.insert(wrkDetl);
+//
+//            dto = new StartupDto();
+//            dto.setWorkNo(wrkMast.getWrkNo());
+//            dto.setSourceStaNo(wrkMast.getSourceStaNo());
+//            dto.setStaNo(wrkMast.getStaNo());
+//        } else
+        if(param.getMatnr().equals(fhFlag)) { // 鐩存帴鍙戣揣
+            // 鐢熸垚宸ヤ綔妗� ------------------------------------------------------
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(commonService.getWorkNo(0));
+            wrkMast.setIoTime(now);
+            wrkMast.setIoType(3); // 鍏ュ嚭搴撶被鍨�3.绔欏埌绔�
+            wrkMast.setWrkSts(2L);
+            wrkMast.setIoPri(13D); // 浼樺厛绾�
+//            wrkMast.setCrnNo(dto.getCrnNo());
+            wrkMast.setSourceStaNo(param.getSourceStaNo());
+            wrkMast.setStaNo(1016);
+//            wrkMast.setLocNo(dto.getLocNo());
+            wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮�
+            wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+//            wrkMast.setPicking("N"); // 鎷f枡
+//            wrkMast.setExitMk("N"); // 閫�鍑�
+//            wrkMast.setEmptyMk("N"); // 绌烘澘
+//            wrkMast.setLinkMis("Y");
+//            wrkMast.setCtnType(wrkMast1.getCtnType()); // 灏炬墭鏍囪瘑
+            wrkMast.setPdcType(wrkMast1.getPdcType()); // 绌烘《绫诲瀷
+            wrkMast.setAppeTime(now);
+            wrkMastService.insert(wrkMast);
 
-        // 瀹屾垚鏃т换鍔�(鐩翠緵缃愯绾夸换鍔℃墜鍔ㄥ畬鎴�,鍑哄簱浠诲姟浠诲姟鍙锋秷澶变細鑷姩瀹屾垚)
-        if (wrkMast1.getIoType() == 2) {
-            wrkMast1.setWrkSts(4L);
+            // 鐢熸垚宸ヤ綔妗f槑缁�----------------------------------------------------
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setAnfme(wrkDetl1.getAnfme());
+            wrkDetl.setZpallet(wrkMast1.getBarcode());
+            wrkDetl.setBatch(param.getBatch());
+            wrkDetl.setManuDate(param.getManuDate());
+            wrkDetl.setWeight(param.getWeight());
+            wrkDetl.setManLength(param.getGrossWeight());
+            wrkDetl.setInspect(1);
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAppeTime(now);
+            wrkDetlService.insert(wrkDetl);
+
+            dto = new StartupDto();
+            dto.setWorkNo(wrkMast.getWrkNo());
+            dto.setSourceStaNo(wrkMast.getSourceStaNo());
+            dto.setStaNo(wrkMast.getStaNo());
+        } else  { // 妫�娴嬫垚鍔燂紝鍏ユ垚鍝佸簱
+                // 妫�绱㈠簱浣嶆潯浠�
+                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+                findLocNoAttributeVo.setMatnr(wrkDetl1.getMatnr());
+                findLocNoAttributeVo.setModel(wrkDetl1.getModel());
+
+                // 鍒嗛厤搴撲綅
+                dto = commonService.getLocNoNew(1, param.getSourceStaNo(), findLocNoAttributeVo, 1);
+
+                // 鍒涘缓鏂颁换鍔�
+                int workNo = dto.getWorkNo();
+                // 鐢熸垚宸ヤ綔妗�
+                WrkMast wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(now);
+                wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+                wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+                wrkMast.setIoPri(13D); // 浼樺厛绾�
+                wrkMast.setCrnNo(dto.getCrnNo());
+                wrkMast.setSourceStaNo(dto.getSourceStaNo());
+                wrkMast.setStaNo(dto.getStaNo());
+                wrkMast.setLocNo(dto.getLocNo());
+                wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮�
+                wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk("N"); // 绌烘澘
+                wrkMast.setLinkMis("Y");
+//            wrkMast.setCtnType(wrkMast1.getCtnType()); // 灏炬墭鏍囪瘑
+                wrkMast.setPdcType(wrkMast1.getPdcType()); // 绌烘《绫诲瀷
+                wrkMast.setAppeTime(now);
+                wrkMastService.insert(wrkMast);
+
+                // 鐢熸垚宸ヤ綔妗f槑缁�
+                WrkDetl wrkDetl = new WrkDetl();
+                wrkDetl.sync(mat);
+                wrkDetl.setWrkNo(workNo);
+                wrkDetl.setAnfme(wrkDetl1.getAnfme());
+                wrkDetl.setZpallet(wrkMast1.getBarcode());
+                wrkDetl.setBatch(param.getBatch());
+                wrkDetl.setManuDate(param.getManuDate());
+                wrkDetl.setWeight(param.getWeight());
+                wrkDetl.setManLength(param.getGrossWeight());
+                wrkDetl.setInspect(1); // 璐存爣鎴愬姛
+                wrkDetl.setIoTime(now);
+                wrkDetl.setAppeTime(now);
+                wrkDetlService.insert(wrkDetl);
+
+                // 鏇存柊鐩爣搴撲綅鐘舵��
+                LocMast locMast = locMastService.selectById(dto.getLocNo());
+                if (locMast.getLocSts().equals("O")) {
+                    locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    locMast.setModiTime(now);
+                    if (!locMastService.updateById(locMast)) {
+                        throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+                    }
+                } else {
+                    log.error(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+                    throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+                }
+            }
+
+        // 瀹屾垚鏃т换鍔�(鐩翠緵缃愯绾夸换鍔℃墜鍔ㄥ畬鎴�)
+        if (wrkMast1.getIoType() == 3 && wrkMast1.getWrkSts() == 2) {
+            wrkMast1.setWrkSts(5L);
             wrkMast1.setModiTime(now);
             wrkMastService.updateById(wrkMast1);
+        } else if(wrkMast1.getIoType() == 101 && wrkMast1.getWrkSts() == 2) {
+            wrkMast1.setWrkSts(15L);
+            wrkMast1.setModiTime(now);
+            wrkMastService.updateById(wrkMast1);
+        } else {
+            log.error("缃愯瀹屾垚锛屽畬鎴愭棫浠诲姟澶辫触锛歿}",wrkMast1.getWrkNo());
+            return R.parse("缃愯瀹屾垚锛屽畬鎴愭棫浠诲姟澶辫触:"+wrkMast1.getWrkNo());
         }
 
         // 鏇存柊婧愮珯鐐逛俊鎭�
         BasDevp basDevp = basDevpService.selectById(param.getSourceStaNo());
-        basDevp.setWrkNo(workNo);
+        basDevp.setWrkNo(dto.getWorkNo());
         basDevp.setModiTime(now);
         if (!basDevpService.updateById(basDevp)) {
             throw new CoolException("鏇存柊婧愮珯澶辫触");
         }
+
+        log.info("WCS缃愯鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, wrkMast1.getBarcode());
+        return R.ok(dto);
+    }
+
+    // 寮傚父鍙e叆搴擄紝鑾峰彇搴撲綅
+    @PostMapping("/pakin/abnormalMouthWarehousing/loc/v1")
+    @ResponseBody
+    @Transactional
+    public synchronized R abnormalMouthWarehousing(@RequestBody CanningLineInLocParam param) {
+        log.info("鏀跺埌WCS寮傚父鍙e叆搴撴帴鍙h姹�====>>鍏ュ弬:{}", param);
+        int wrkNo = param.getWrkNo();
+        Integer sourceStaNo = param.getSourceStaNo();
+        if (Cools.isEmpty(wrkNo)) {
+            return R.error("宸ヤ綔鍙蜂笉鑳戒负绌�");
+        }
+        if (Cools.isEmpty(sourceStaNo)) {
+            return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+        }
+
+        Date now = new Date();
+        StartupDto dto;
+
+        WrkMast wrkMast = wrkMastService.selectById(wrkNo);
+        if (wrkMast == null) {
+            throw new CoolException("寮傚父鍙e叆搴撲换鍔″彿鏃犱换鍔★細" + wrkNo);
+        } else if (wrkMast.getLocNo() != null) {
+            throw new CoolException("寮傚父鍙e叆搴撳簱浣嶅凡鍒嗛厤锛�" + wrkMast.getLocNo());
+        }
+
+        if(!param.isTbFlag()) { //涓嬬嚎鍑哄簱
+            wrkMast.setSourceStaNo(1090);
+            wrkMast.setStaNo(1016); // 寮傚父涓嬬嚎榛樿鍏ュ簱绔欑偣涓�1016
+            wrkMastService.updateById(wrkMast);
+            return R.ok();
+        }
+
+
+        WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo));
+
+        // 妫�绱㈠簱浣嶆潯浠�
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+        findLocNoAttributeVo.setMatnr(wrkDetl.getMatnr());
+        findLocNoAttributeVo.setModel(wrkDetl.getModel());
+
+        // 鍒嗛厤搴撲綅
+        dto = commonService.getLocNoNew(1, param.getSourceStaNo(), findLocNoAttributeVo, 1);
+
+        dto.setWorkNo(wrkMast.getWrkNo()); // 浣跨敤鍘熷伐浣滃彿
+        wrkMast.setIoType(1); // 鍏ュ嚭搴撶被鍨� 1.鍏ュ簱
+        wrkMast.setCrnNo(dto.getCrnNo());
+        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setSourceStaNo(dto.getSourceStaNo());
+        wrkMast.setStaNo(dto.getStaNo());
+        wrkMastService.updateById(wrkMast);
 
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -234,12 +394,20 @@
             throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
         }
 
-        log.info("WCS缃愯鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, wrkMast1.getBarcode());
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        BasDevp basDevp = basDevpService.selectById(sourceStaNo);
+        basDevp.setWrkNo(dto.getWorkNo());
+        basDevp.setModiTime(now);
+        if (!basDevpService.updateById(basDevp)) {
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
+
+        log.info("WCS寮傚父鍙e叆搴撴帴鍙h繑鍙�:{},鎵樼洏鐮�:{}", dto, wrkMast.getBarcode());
         return R.ok(dto);
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
-    public WaitPakin comb(String barcode, String matnr,int bucketCount) {
+    public WaitPakin comb(String barcode, int matnr,int bucketCount) {
         if (Cools.isEmpty(barcode, matnr,bucketCount)) {
             throw new CoolException(BaseRes.PARAM);
         }
@@ -282,7 +450,7 @@
 
 
 //            for (DetlDto detlDto : detlDtos) {
-                Mat mat = matService.selectByMatnr(matnr);
+                Mat mat = matService.selectByMatnr(String.valueOf(matnr));
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(matnr + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
@@ -443,15 +611,12 @@
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional(propagation = Propagation.REQUIRED)
-    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, WaitPakin waitPakins, int locArea,boolean tailSupportFlag) {
+    public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, WaitPakin waitPakins,boolean tailSupportFlag) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-//        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-//        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
-//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins);
-        StartupDto dto = commonService.getLocNoNew( 1, devpNo,findLocNoAttributeVo, locArea);
+        StartupDto dto = commonService.getLocNoNew( 1, devpNo,findLocNoAttributeVo,waitPakins.getModel().equals("绌烘墭鐩�") ? 1 : 2);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -472,7 +637,7 @@
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("Y");
         wrkMast.setCtnType(tailSupportFlag ? 1 : 0); // 灏炬墭鏍囪瘑
-        wrkMast.setPdcType(waitPakins.getModel()); // 绌烘《绫诲瀷
+        wrkMast.setPdcType(waitPakins.getMatnr()); // 绌烘《绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -524,43 +689,30 @@
      * 鐩翠緵缃愯绾�
      */
     @Transactional(propagation = Propagation.REQUIRED)
-    public StartupDto startupFullPutStore(SearchLocParam param,WaitPakin waitPakin) {
+    public StartupDto startupFullPutStore(SearchLocParam param,WaitPakin waitPakin,SearchLocParam.WantBucket wantBucket) {
 
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
 
-        String model = waitPakin.getModel();
+        // 鍒ゆ柇绌烘《搴撴湁澶氬皯杩欑妗跺瀷
+        int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("matnr", param.getBucketType()).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
 
-        Integer wantBucketFlag = 0; // 缃愯绾垮彿
-        String wantBucketType; // 妗剁被鍨�
-        boolean flag = true;
-        for(Map.Entry<Integer,String> entry :param.getWantBucketFlag().entrySet()) {
-            wantBucketFlag = entry.getKey();
-            wantBucketType = entry.getValue();
-            if(model.equals(wantBucketType)) { // 褰撳墠妗剁被鍨嬫槸缃愯绾胯鐨勭被鍨�
-                // 绌烘《搴撴棤璇ョ被鍨嬫《
-                int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("model", model).where("CAST(SUBSTRING(loc_no, 1, 2) as int) >= 9"));
-                if (count == 0) {
-                    flag = false;
-                    break;
-                }
-            }
-        }
-        if (flag) { // 涓嶆弧瓒崇洿渚涚綈瑁呯嚎鏉′欢
+        // 灏忎簬10涓垯鐩翠緵缃愯绾匡紝閬垮厤鍏ョ┖妗跺簱鍚庡湪鍑哄簱
+        if (count > 10) {
              return null;
         }
 
-        StartupDto dto = commonService.getLocNo(param,wantBucketFlag);
+        StartupDto dto = commonService.getLocNo(param,wantBucket.getSite());
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
-        wrkMast.setIoType(2); // 鍏ュ嚭搴撶姸鎬侊細2.鐩翠緵缃愯绾�
+        wrkMast.setWrkSts(2L);
+        wrkMast.setIoType(3); // 鍏ュ嚭搴撶姸鎬侊細3.绔欏埌绔�
         wrkMast.setIoPri(13D); // 浼樺厛绾�
-        wrkMast.setCrnNo(dto.getCrnNo());
+//        wrkMast.setCrnNo(dto.getCrnNo());
         wrkMast.setSourceStaNo(dto.getSourceStaNo());
         wrkMast.setStaNo(dto.getStaNo());
 //        wrkMast.setLocNo(dto.getLocNo());
@@ -571,7 +723,7 @@
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("Y");
         wrkMast.setCtnType(param.isTailSupportFlag() ? 1 : 0); // 灏炬墭鏍囪瘑
-        wrkMast.setPdcType(model); // 绌烘《绫诲瀷
+        wrkMast.setPdcType(waitPakin.getMatnr()); // 绌烘《绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -634,8 +786,8 @@
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("Y"); // 绌烘澘
         wrkMast.setLinkMis("Y");
-        wrkMast.setBarcode(barcode);
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+//        wrkMast.setBarcode(barcode);
+//        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(new Date());
         wrkMast.setModiTime(new Date());

--
Gitblit v1.9.1