From dbc2514aad6b2b70b08e81f33d45f64aae175ccf Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 19 十一月 2024 16:31:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/WcsController.java |  180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 177 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 97186ca..549553d 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
@@ -10,6 +11,7 @@
 import com.zy.asrs.entity.result.KeyValueVo;
 import com.zy.asrs.service.*;
 import com.zy.common.CodeRes;
+import com.zy.common.model.DetlDto;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.enums.WorkNoType;
@@ -53,6 +55,8 @@
     private WorkService workService;
     @Autowired
     private StaDescService staDescService;
+    @Autowired
+    private MatService matService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -111,12 +115,181 @@
         return R.ok().add(dto);
     }
 
+    @PostMapping("/pakin/yx/loc/v33")
+    @ResponseBody
+    public synchronized R getLocNo33(@RequestBody SearchLocParam param) {
+        if (Cools.isEmpty(param.getBarcode(), param.getSourceStaNo())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+            throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+        }
+
+        if(param.getBarcode().length()!=8){
+            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+        }
+
+        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()));
+        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+            throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+        }
+        BasDevp basDevp = basDevpService.selectById(param.getSourceStaNo());
+        if (Cools.isEmpty(basDevp)){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓嶅瓨鍦�");
+        }
+        if (Cools.isEmpty(basDevp.getGrossWt())){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 "+param.getSourceStaNo()+"閲嶉噺淇℃伅涓嶅瓨鍦�");
+        }
+
+        Date now = new Date();
+        // 鐢熸垚鍏ュ簱閫氱煡妗�
+        Mat mat = matService.selectByMatnr("6-6405H");
+        if (Cools.isEmpty(mat)) {
+            throw new CoolException("6-6405H鍟嗗搧妗f涓嶅瓨鍦�");
+        }
+        WaitPakin waitPakin = new WaitPakin();
+        waitPakin.sync(mat);
+        waitPakin.setBatch("");
+//        waitPakin.setWeight(basDevp.getGrossWt());
+        waitPakin.setWeight(basDevp.getGrossWt());
+        waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+        waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+        waitPakin.setAnfme(1.0);  // 鏁伴噺
+        waitPakin.setStatus("Y");    // 鐘舵��
+        waitPakin.setAppeUser(7777L);
+        waitPakin.setAppeTime(now);
+        waitPakin.setModiUser(7777L);
+        waitPakin.setModiTime(now);
+        if (!waitPakinService.insert(waitPakin)) {
+            throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+        }
+        return R.ok();
+    }
+    @PostMapping("/pakin/yx/loc/v464")
+    @ResponseBody
+    public synchronized R getLocNo464(@RequestBody SearchLocParam param) {
+        if (Cools.isEmpty(param.getBarcode(), param.getSourceStaNo())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
+            throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+        }
+
+        if(param.getBarcode().length()!=8){
+            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+        }
+
+        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode()));
+        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+            throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+        }
+        BasDevp basDevp = basDevpService.selectById(param.getSourceStaNo());
+        if (Cools.isEmpty(basDevp)){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓嶅瓨鍦�");
+        }
+        if (Cools.isEmpty(basDevp.getGrossWt())){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 "+param.getSourceStaNo()+"閲嶉噺淇℃伅涓嶅瓨鍦�");
+        }
+
+        Date now = new Date();
+        // 鐢熸垚鍏ュ簱閫氱煡妗�
+        Mat mat = matService.selectByMatnr("111111");
+        if (Cools.isEmpty(mat)) {
+            throw new CoolException("111111鍟嗗搧妗f涓嶅瓨鍦�");
+        }
+        WaitPakin waitPakin = new WaitPakin();
+        waitPakin.sync(mat);
+        waitPakin.setBatch("");
+//        waitPakin.setWeight(basDevp.getGrossWt());
+        waitPakin.setWeight(450.0);
+        waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+        waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+        waitPakin.setAnfme(1.0);  // 鏁伴噺
+        waitPakin.setStatus("Y");    // 鐘舵��
+        waitPakin.setAppeUser(8888L);
+        waitPakin.setAppeTime(now);
+        waitPakin.setModiUser(8888L);
+        waitPakin.setModiTime(now);
+        if (!waitPakinService.insert(waitPakin)) {
+            throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+        }
+        return R.ok();
+    }
+
     /*
     * 鍙屽伐浣嶅崟浼稿爢鍨涙満锛屽垵濮嬩笉鍒嗛厤搴撲綅
     * */
     @PostMapping("/pakin/pair/station/single/loc/v1")
     @ResponseBody
     public synchronized R getLocNoPairSingle(@RequestBody SearchLocParam param) {
+        log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+        if (Cools.isEmpty(param.getIoType())) {
+            return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+        }
+        if (Cools.isEmpty(param.getSourceStaNo())) {
+            return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+        }
+        List<WaitPakin> waitPakins = null;
+        if (param.getIoType() == 1) {
+            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("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
+        }
+
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+        sourceStaNo.setLocType1(param.getLocType1());
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+        StartupDto dto = null;
+        switch (param.getIoType()) {
+            case 1://婊℃墭鐩樺叆搴�
+                assert waitPakins != null;
+                dto = startupFullPutStorePairSingle(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins);
+                break;
+            case 10://绌烘墭鐩樺叆搴�
+                dto = emptyPlateInPairSingle(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+                break;
+//            case 201://鑷姩琛ョ┖鏉夸换鍔�
+//                dto = emptyPlateIn201(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+//                break;
+            default:
+                break;
+        }
+        log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+        return R.ok().add(dto);
+    }
+
+    /*
+     * 鍙屽伐浣嶅崟浼稿爢鍨涙満锛屽垵濮嬩笉鍒嗛厤搴撲綅
+     * */
+    @PostMapping("/pakin/pair/station/large/loc/v1")
+    @ResponseBody
+    public synchronized R getLocNoPairLarge(@RequestBody SearchLocParam param) {
         log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
         if (Cools.isEmpty(param.getIoType())) {
             return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
@@ -425,9 +598,10 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
 
         // 妫�绱㈠簱浣�
-        List<KeyValueVo> list = waitPakins.stream().map(item-> new KeyValueVo(item.getMatnr(), item.getBatch())).distinct().collect(Collectors.toList());
-//        List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(1, 1, devpNo, null,null,null, locTypeDto);
+        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
+        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
+//        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0),batchs.get(0),null, locTypeDto);
+        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matnrs.get(0),null,null, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�

--
Gitblit v1.9.1