From 4d84a1d49dde503f7798c56205b83b11e85198a0 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期五, 20 八月 2021 16:31:49 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/MatStoreService.java | 13 ++++
src/main/java/com/zy/asrs/service/impl/MatStoreServiceImpl.java | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 163 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/MatStoreService.java b/src/main/java/com/zy/asrs/service/MatStoreService.java
new file mode 100644
index 0000000..ed4d473
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/MatStoreService.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.param.FullStoreParam;
+
+public interface MatStoreService {
+
+ /**
+ * 鍏ㄦ澘鍏ュ簱
+ * @return 搴撲綅鍙�
+ */
+ String startupFullStore(FullStoreParam param, Long userId);
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MatStoreServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MatStoreServiceImpl.java
new file mode 100644
index 0000000..05bd433
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/MatStoreServiceImpl.java
@@ -0,0 +1,150 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.FullStoreParam;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.model.StartupDto;
+import com.zy.common.service.CommonService;
+import com.zy.ints.entity.WaitMatin;
+import com.zy.ints.service.WaitMatinService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class MatStoreServiceImpl implements MatStoreService {
+
+ // 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨�
+ private static final int DEFAULT_WORK_NO_TYPE = 0;
+ // 搴撲綅鎺掑彿鍒嗛厤榛樿绫诲埆
+ private static final int DEFAULT_ROW_NO_TYPE = 1;
+
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private BasDevpService basDevpService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private MatCodeService matCodeService;
+ @Autowired
+ private WaitMatinService matinService;
+
+ @Override
+ @Transactional
+ public String startupFullStore(FullStoreParam param, Long userId) {
+ // 鍙傛暟闈炵┖鍒ゆ柇
+ if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ // 婧愮珯鐐圭姸鎬佹娴�
+ 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 startupDtodto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, 0);
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+ wrkMast.setCrnNo(startupDtodto.getCrnNo());
+ wrkMast.setSourceStaNo(startupDtodto.getSourceStaNo());
+ wrkMast.setStaNo(startupDtodto.getStaNo());
+ wrkMast.setLocNo(startupDtodto.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(new Date());
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。澶辫触");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ List<MatCodeCountDto> matDtos = new ArrayList<>();
+ param.getList().forEach(elem -> {
+ matDtos.add(new MatCodeCountDto(elem.getBillNo(),elem.getSeqNo(),elem.getMatNo(), elem.getCount()));
+ });
+ for (MatCodeCountDto dto : matDtos) {
+ MatCode matCode = matCodeService.selectById(dto.getMatNo());
+ if (Cools.isEmpty(matCode)){
+ throw new CoolException("浜у搧缂栫爜鏁版嵁涓虹┖");
+ }
+ // 淇濇寔宸ヤ綔妗f槑缁�
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(new Date());
+ wrkDetl.setBillNo(dto.getBillNo());
+ wrkDetl.setSeqNo(dto.getSeqNo());
+ wrkDetl.setQty(dto.getCount()); // 鏁伴噺
+ VersionUtils.setWrkDetl(wrkDetl, matCode); // 鐗堟湰鎺у埗
+ wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鏉$爜
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setAppeTime(new Date());
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setModiTime(new Date());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗eけ璐�");
+ }
+ else {
+ //鏇存柊鍏ュ簱閫氱煡妗�
+ WaitMatin waitMatin = matinService.selectOne(new EntityWrapper<WaitMatin>().eq("bill_no",dto.getBillNo()).eq("seq_no",dto.getSeqNo()));
+ if(dto.getCount() > (waitMatin.getQty() - waitMatin.getInQty())){
+ throw new CoolException("鍏ュ簱鏁伴噺瓒呰繃浜嗗彲鍏ュ簱閲�");
+ }
+ waitMatin.setIoStatus(1);//鍏ュ簱涓�
+ waitMatin.setInQty(waitMatin.getInQty()+dto.getCount()); //宸插叆搴撻噺
+ waitMatin.setModiTime(new Date());
+ if(!matinService.update(waitMatin,new EntityWrapper<WaitMatin>().eq("bill_no",dto.getBillNo()).eq("seq_no",dto.getSeqNo()))){
+ throw new CoolException("鏇存柊鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ }
+ }
+// wrkDetlService.createWorkDetail(workNo, matDtos, param.getBarcode(), userId);
+ // 鏇存柊婧愮珯鐐逛俊鎭�
+ sourceStaNo.setWrkNo(workNo);
+ sourceStaNo.setModiUser(userId);
+ sourceStaNo.setModiTime(new Date());
+ if (!basDevpService.updateById(sourceStaNo)){
+ throw new CoolException("鏇存柊婧愮珯澶辫触");
+ }
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(startupDtodto.getLocNo());
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)){
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(startupDtodto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ return startupDtodto.getLocNo();
+ }
+}
--
Gitblit v1.9.1