From aa2ef2ef37c7d95cfb1d3833a023328d05ea5060 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期日, 21 一月 2024 15:06:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 278 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index d17cace..1e23c30 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,16 +10,21 @@
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.MatUtils;
+import com.zy.asrs.utils.PostMesDataUtils;
 import com.zy.common.CodeRes;
 import com.zy.common.constant.MesConstant;
 import com.zy.common.entity.Parameter;
 import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.MesCombParam;
+import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -35,6 +40,8 @@
 @Slf4j
 @Service
 public class MobileServiceImpl implements MobileService {
+
+
 
     @Autowired
     private MatService matService;
@@ -74,13 +81,283 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private DocTypeService docTypeService;
+    @Autowired
+    private LocDetlRullUpDetailService locDetlRullUpDetailService;
 
 
     @Override
     @Transactional
     public void trussComb(TrussCombParam param, Long userId) {
-        param.setUuid(String.valueOf(new Date().getTime()));
+        Date now = new Date();
+        if (param.getSouSta()==145){
+            param.setBarcode(String.valueOf(now.getTime()));
+        }else {
+            if (Cools.isEmpty(param.getBarcode())){
+                throw new CoolException("鍙傛暟锛氭墭鐩樼爜涓虹┖");
+            }
+        }
+        param.setPalletizingNo(147);
 
+
+
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氬師绔欑偣缂栧彿涓虹┖");
+        }else if (param.getSouSta()==145 && param.getMatList().size() != 1){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖  鎴栬��  澶т簬1涓槑缁�");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() > 2){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖  鎴栬��  澶т簬2涓槑缁�");
+        }
+
+        String matnr = null;
+        List<WaitPakin> waitPakins = new ArrayList<>();
+        for (TrussCombParam.MatList matList:param.getMatList()){
+            long rollUp = new Date().getTime();
+            Mat mat = matService.selectByMatnr(matList.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(matList.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+            }
+            matnr = mat.getMatnr();
+            WaitPakin waitPakin = new WaitPakin();
+            waitPakin.sync(mat);
+            waitPakin.setModel(matList.getModel());     //鎵规
+            waitPakin.setSpecs(matList.getSpecs());     //瑙勬牸
+            waitPakin.setBatch(matList.getBatch());       //鏈ㄧ缂栫爜
+            waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+            waitPakin.setZpallet(param.getBarcode());   //鎵樼洏鐮�
+            waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+            waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+            waitPakin.setAnfme((double)matList.getAnfme());  // 鏈ㄧ涓摐绠旀暟閲�
+            waitPakin.setStatus("Y");    // 鐘舵��
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(now);
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(now);
+            waitPakin.setRollUp(rollUp);
+            if (!Cools.isEmpty(matList.getMatDetlList())){
+                for (TrussCombParam.MatDetlList matDetlList:matList.getMatDetlList()){
+                    LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail();
+                    locDetlRullUpDetail.setUuid(rollUp);
+                    locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl());
+                    locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString());
+                    locDetlRullUpDetailService.insert(locDetlRullUpDetail);
+                }
+            }
+            if (!waitPakinService.insert(waitPakin)) {
+                throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+            }
+            waitPakins.add(waitPakin);
+        }
+
+        LocTypeDto locTypeDto = new LocTypeDto();
+        locTypeDto.setLocType1((short)1);
+
+        StartupDto dto = commonService.getLocNo(1, 1, param.getSouSta(), matnr,null,null, locTypeDto);
+
+        int workNo = dto.getWorkNo();
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        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(param.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        waitPakins.forEach(waitPakin -> {
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(waitPakin);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setRollUp(waitPakin.getRollUp());
+            if (!wrkDetlService.insert(wrkDetl)) {
+                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()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+    }
+
+    //wms鍏ュ簱缁勬墭  閫�搴撳崟閫�搴撶粍鎵�
+    @Override
+    @Transactional
+    public void trussCombOrder(TrussCombParam param, Long userId) {
+        Date now = new Date();
+        param.setBarcode(String.valueOf(now.getTime()));
+        param.setPalletizingNo(147);
+
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+        }else if (Cools.isEmpty(param.getOrderNo())){
+            throw new CoolException("鍙傛暟锛氶��璐у崟鍗曞彿 orderNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+        }
+
+        Order order = orderService.selectByNo(param.getOrderNo());
+        if (Cools.isEmpty(order) || order.getSettle() > 2) {
+            throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈燂紝鍗曞彿锛�"+param.getOrderNo());
+        }
+        DocType docType = docTypeService.selectById(order.getDocType());
+        if (Cools.isEmpty(docType) || !docType.getDocName().equals("閫�璐у叆搴撳崟")){
+            throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+"涓嶆槸閫�璐у叆搴撳崟");
+        }
+
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+        if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
+            throw new CoolException("鏈煡璇㈠埌姝よ鍗曟槑缁嗭紝鍗曞彿锛�"+param.getOrderNo());
+        }
+        List<String> orderBoxNoList = new ArrayList<>();
+        for (OrderDetl orderDetl: orderDetls){
+            if (orderDetl.getWorkQty()==0){
+                orderBoxNoList.add(orderDetl.getBatch());
+            }
+        }
+        if (orderBoxNoList.size()==0 || orderBoxNoList.size()<param.getMatList().size()){
+            throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 閫�璐ф暟閲忓ぇ浜庢槑缁嗘暟閲�");
+        }
+        List<String> matListBoxNoList = new ArrayList<>();
+        for (TrussCombParam.MatList matList: param.getMatList()){
+            if (!orderBoxNoList.contains(matList.getBatch())){
+                throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�");
+            }else {
+//                if (matList.getAnfme() > orderDetls.get(0).getAnfme()) {
+//                    throw new CoolException("绠卞彿锛�"+orderDetls.get(0).getBatch() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+//                }
+                matListBoxNoList.add(matList.getBoxNo());
+            }
+        }
+        List<OrderDetl> orderDetlList = new ArrayList<>();
+        for (OrderDetl orderDetl: orderDetls){
+            if (matListBoxNoList.contains(orderDetl.getBatch())){
+                orderDetl.setBrand("1");
+                orderDetlList.add(orderDetl);
+            }
+        }
+        String matnr = null;
+        List<WaitPakin> waitPakins = new ArrayList<>();
+
+        for (OrderDetl orderDetl:orderDetlList){
+            Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+            }
+            matnr = mat.getMatnr();
+            WaitPakin waitPakin = new WaitPakin();
+            waitPakin.sync(mat);
+            waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
+            waitPakin.setModel(orderDetl.getModel());     //鎵规
+            waitPakin.setSpecs(orderDetl.getSpecs());     //瑙勬牸
+            waitPakin.setBatch(orderDetl.getBatch());       //鏈ㄧ缂栫爜
+            waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+            waitPakin.setZpallet(param.getBarcode());   //鎵樼洏鐮�
+            waitPakin.setOrigin(orderDetl.getOrigin()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+            waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+            waitPakin.setAnfme(orderDetl.getAnfme());  // 鏈ㄧ涓摐绠旀暟閲�
+            waitPakin.setStatus("Y");    // 鐘舵��
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(now);
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(now);
+            waitPakin.setRollUp(orderDetl.getRollUp());
+            if (!waitPakinService.insert(waitPakin)) {
+                throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+            }
+            waitPakins.add(waitPakin);
+        }
+
+        LocTypeDto locTypeDto = new LocTypeDto();
+        locTypeDto.setLocType1((short)1);
+
+        StartupDto dto = commonService.getLocNo(1, 1, 145, matnr,null,null, locTypeDto);
+
+        int workNo = dto.getWorkNo();
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        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(param.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        waitPakins.forEach(waitPakin -> {
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(waitPakin);
+            wrkDetl.setOrderNo(order.getOrderNo());
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setRollUp(waitPakin.getRollUp());
+            if (!wrkDetlService.insert(wrkDetl)) {
+                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()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+        // 淇敼璁㈠崟浣滀笟鏁伴噺
+        if (!orderDetlService.increaseWorkQty(order.getId(), orderDetls.get(0).getMatnr(), orderDetls.get(0).getBatch(), orderDetls.get(0).getAnfme())) {
+            throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+        }
+        orderService.updateSettle(order.getId(), 2L, userId);
     }
     @Override
     @Transactional

--
Gitblit v1.9.1