From 2ff79b71d902e733a0cf0d70052ace24fa1c479e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 06 八月 2024 13:50:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  309 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 186 insertions(+), 123 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8793fa6..eabbf0e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -19,6 +19,8 @@
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.NodeUtils;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,7 +30,6 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2022/4/9
@@ -73,6 +74,190 @@
 
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private ConfigService configService;
+    @Override
+    public R synCallowWarehousing() {
+
+        Config outModel = configService.selectConfigByCode("outModel");
+        if (outModel.getValue().equals("Y")) {
+            // 娌℃湁鍒�305鐨勫嚭搴撲换鍔�(305鐨勫嚭搴撲换鍔′紭鍏�)
+            int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101)
+                    .eq("sta_no", 305));
+            if (count > 0) {
+                return R.parse("瀛樺湪305鍑哄簱浠诲姟");
+            }
+            outModel.setValue("N");
+            configService.updateById(outModel);
+        }
+        return R.ok();
+    }
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Override
+    public R syncWarehousing(CombParam param) {
+
+        Long userId = 9999L;
+
+        // 鍙傛暟闈炵┖鍒ゆ柇
+        if (Cools.isEmpty(param.getCombMats())) {
+            throw new CoolException("鏁版嵁涓嶅畬鏁达紝璇锋鏌ヨ姹傚弬鏁�");
+        }
+
+        Config outModel = configService.selectConfigByCode("outModel");
+        if (outModel.getValue().equals("Y")) {
+            throw new CoolException("305涓嶅厑璁稿叆搴�");
+        }
+
+        for (CombParam.CombMat combMat : param.getCombMats()) {
+            String batch = combMat.getBatch();
+            int countL = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", batch));
+            int countW = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", batch));
+            if (countW > 0) {
+                return R.ok("瀛樺湪浠诲姟");
+            }
+            int countP = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", batch));
+            if (countL > 0 || countW > 0 || countP > 0) {
+                throw new CoolException("璇ユ壒鍙峰凡缁忓瓨鍦�===>>" + batch);
+            }
+            WaitPakin waitPakin = new WaitPakin();
+            Date now = new Date();
+            waitPakin.sync(combMat);
+            waitPakin.setBarcode("");
+            waitPakin.setZpallet(""); // 鎵樼洏鐮�
+            waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+            waitPakin.setAnfme(1.0);  // 鏁伴噺
+            waitPakin.setStatus("Y");    // 鐘舵��
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(now);
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(now);
+
+            // 婧愮珯鐐圭姸鎬佹娴�
+            BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
+
+            // 闀垮害>3500鏀惧搴撲綅
+            sourceStaNo.setLocType2((short) (waitPakin.getLength() > 3500 ? 2 : 1));
+            LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+            // 瀵绘壘搴撲綅
+            StartupDto dto = commonService.getLocNo(sourceStaNo, locTypeDto, 1);
+
+            int workNo = dto.getWorkNo();
+            // 鐢熸垚宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setWhsType(1);
+            wrkMast.setIoTime(new Date());
+            wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱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(""); // 鎵樼洏鐮�
+            wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+            wrkMast.setPicking("N"); // 鎷f枡
+            wrkMast.setExitMk("N"); // 閫�鍑�
+            wrkMast.setEmptyMk("N"); // 绌烘澘
+            wrkMast.setLinkMis("Y");
+            wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+            // 鎿嶄綔浜哄憳鏁版嵁
+            wrkMast.setAppeTime(now);
+            wrkMast.setModiTime(now);
+            boolean res = wrkMastService.insert(wrkMast);
+            if (!res) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+
+            // 鐢熸垚宸ヤ綔妗f槑缁�
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(waitPakin);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+//            // 鏇存柊婧愮珯鐐逛俊鎭�
+//            sourceStaNo.setWrkNo(workNo);
+//            sourceStaNo.setModiTime(now);
+//            if (!basDevpService.updateById(sourceStaNo)) {
+//                throw new CoolException("鏇存柊婧愮珯澶辫触");
+//            }
+
+            // 鏇存柊鐩爣搴撲綅鐘舵��
+            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 {
+                throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
+            }
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R agvAskOpen(AgvAskOpenParam param) {
+        if (param.getFlag() == 0) { // 鍑哄簱璇锋眰wms寮�闂�
+            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
+            if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")
+                    && basDevp.getOutEnable().equals("Y")) { // 鍑哄簱宸ヤ綔妗�
+                WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
+                if (wrkMast.getWhsType() == null) {
+                    throw new CoolException("娌℃湁閫氱煡agv杩囨潵鍙栬揣");
+                } else if (wrkMast.getWhsType() == 1) {
+                    WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo()));
+                    if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
+                        wrkMast.setWhsType(2);
+                        wrkMastService.updateById(wrkMast);
+                        return R.ok("鐗╂枡鏍¢獙鎴愬姛锛岄┈涓婂紑闂�");
+                    } else {
+                        throw new CoolException("缂栫爜+鎵瑰彿鏍¢獙澶辫触锛�" + param.getBatch());
+                    }
+                } else if (wrkMast.getWhsType() == 2) {
+                    return R.ok("椹笂寮�闂�");
+                } else {
+                    return R.error("宸ヤ綔妗e綋鍓嶇姸鎬佹湁璇�");
+                }
+            } else {
+                return R.error("涓嶆弧瓒冲嚭搴撴潯浠�");
+            }
+        } else if(param.getFlag() == 1) { // 鍏ュ簱璇锋眰wms寮�闂�
+            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
+            if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y")
+                    && basDevp.getInEnable().equals("Y")) { // 鍏ュ簱搴曞骇
+                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type",1)
+                        .eq("source_sta_no",305).lt("wrk_sts",3));
+                if (wrkMast.getWhsType() == null) {
+                    throw new CoolException("娌℃湁鍏ュ簱浠诲姟");
+                } else if (wrkMast.getWhsType() == 1) {
+                    WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+                    if (wrkDetl.getMatnr().equals(param.getMatnr()) && wrkDetl.getBatch().equals(param.getBatch())) {
+                        wrkMast.setWhsType(2);
+                        wrkMastService.updateById(wrkMast);
+                        return R.ok("鐗╂枡鏍¢獙鎴愬姛锛岄┈涓婂紑闂�");
+                    } else {
+                        throw new CoolException("缂栫爜+鎵瑰彿鏍¢獙澶辫触锛�" + param.getBatch());
+                    }
+                } else if (wrkMast.getWhsType() == 2) {
+                    return R.ok("椹笂寮�闂�");
+                } else {
+                    return R.error("宸ヤ綔妗e綋鍓嶇姸鎬佹湁璇�");
+                }
+            } else {
+                return R.error("搴曞骇杩樻湭杈惧埌");
+            }
+        }
+        return R.error("鍑哄叆搴撴爣璇嗛敊璇細" + param.getFlag());
+    }
 
     @Override
     @Transactional
@@ -567,128 +752,6 @@
             }
         }
 
-    }
-
-    @Override
-    public R synCallowWarehousing(String flag) {
-        List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
-        if (wrkMasts.isEmpty()) {
-            return R.ok();
-        }
-        return R.parse("褰撳墠瀛樺湪鍑哄簱浠诲姟");
-    }
-
-    @Override
-    public R syncWarehousing(FullStoreParam param) {
-
-        Long userId = 9999L;
-
-       // 鍙傛暟闈炵┖鍒ゆ柇
-        if (Cools.isEmpty(param.getBarcode(), param.getList())) {
-            throw new CoolException("鏁版嵁涓嶅畬鏁达紝璇锋鏌ヨ姹傚弬鏁�");
-        }
-
-        List<WrkMast> wrkMasts = wrkMastMapper.queryOutLocWork();
-        if(!wrkMasts.isEmpty()) {
-            throw new CoolException("305瀛樺湪鍑哄簱浠诲姟");
-        }
-
-        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) {
-            throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
-        }
-
-        Date now = new Date();
-        // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true);
-        // 妫�绱㈠簱浣�
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
-        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(sourceStaNo,locTypeDto, 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); // 浼樺厛绾э細13
-        wrkMast.setCrnNo(dto.getCrnNo());
-        wrkMast.setSourceStaNo(dto.getSourceStaNo());
-        wrkMast.setStaNo(dto.getStaNo());
-        wrkMast.setLocNo(dto.getLocNo());
-        wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
-        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
-        wrkMast.setPicking("N"); // 鎷f枡
-        wrkMast.setExitMk("N"); // 閫�鍑�
-        wrkMast.setEmptyMk("N"); // 绌烘澘
-        wrkMast.setLinkMis("N");
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
-        wrkMast.setAppeUser(userId);
-        wrkMast.setAppeTime(now);
-        wrkMast.setModiUser(userId);
-        wrkMast.setModiTime(now);
-        if (!wrkMastService.insert(wrkMast)) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-        }
-        // 鐢熸垚宸ヤ綔妗f槑缁�
-        List<DetlDto> detlDtos = new ArrayList<>();
-        param.getList().forEach(elem -> {
-            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
-            detlDto.setMaktx(elem.getMaktx());
-            detlDto.setSpecs(elem.getSpecs());
-            detlDto.setTagId(elem.getTagId());
-            if (DetlDto.has(detlDtos, detlDto)) {
-                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
-                assert detlDto1 != null;
-                detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
-            } else {
-                detlDtos.add(detlDto);
-            }
-        });
-        wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now);
-        // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiUser(userId);
-        sourceStaNo.setModiTime(now);
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
-        // 鏇存柊鐩爣搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(dto.getLocNo());
-        if (locMast.getLocSts().equals("O")){
-            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
-            locMast.setModiUser(userId);
-            locMast.setModiTime(now);
-            if (!locMastService.updateById(locMast)){
-                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-            }
-        } else {
-            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
-        }
-
-        return R.ok();
-    }
-
-    @Override
-    public R getOutboundMaterials(String flag) {
-        List<WrkDetl> outboundMaterials = wrkMastMapper.getOutboundMaterials();
-        if (Cools.isEmpty(outboundMaterials)) {
-            return R.parse("璐х墿鏈埌杈炬垨宸插彇璧�");
-        }
-        List<FullStoreParam.MatCodeStore> matCodeStoreList = new ArrayList<>();
-        for(WrkDetl wrkDetl : outboundMaterials){
-            FullStoreParam.MatCodeStore matCodeStore = new FullStoreParam.MatCodeStore();
-            matCodeStore.setMatnr(wrkDetl.getMatnr());
-            matCodeStore.setBatch(wrkDetl.getBatch());
-            matCodeStore.setAnfme(wrkDetl.getAnfme());
-            matCodeStoreList.add(matCodeStore);
-        }
-
-        return R.ok(matCodeStoreList);
     }
 
 }

--
Gitblit v1.9.1