From 718da33ba17db8b97f25e4b57fb722d798805513 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 07 八月 2024 14:34:04 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 113 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 9123f37..c6fff83 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -204,6 +201,8 @@
ioType = dto.isAll() ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
+ } else if (ioWorkType.equals(IoWorkType.MERGE_OUT)) {
+ ioType = 104;
}
assert ioType != null;
// 鑾峰彇搴撲綅
@@ -562,6 +561,27 @@
@Override
@Transactional
+ public void locMergeOut(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+ LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
+ stockOut(staNo, locDetlDtos, IoWorkType.MERGE_OUT, userId);
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+ }
+ }
+
+ @Override
+ @Transactional
public void locMove(String sourceLocNo, String locNo, Long userId) {
LocMast sourceLoc = locMastService.selectById(sourceLocNo);
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
@@ -643,6 +663,87 @@
@Override
@Transactional
+ public void locCombOut(ReplenishmentParam param, Long userId) {
+ // 鍙傛暟闈炵┖鍒ゆ柇
+ if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ //鍒ゆ柇搴撲綅鍙枫�佸簱浣嶇姸鎬�
+ LocMast locMast;
+ if (Cools.isEmpty(param.getLocNo())){
+ throw new CoolException("骞舵澘鍑哄簱搴撲綅鍙傛暟閿欒");
+ }else {
+ locMast = locMastService.selectById(param.getLocNo());
+ if(!Cools.isEmpty(locMast)){
+ if (!locMast.getLocSts().equals("F")){
+ throw new CoolException("骞舵澘搴撲綅闈炲湪搴撶姸鎬�");
+ }
+ }else{
+ throw new CoolException("搴撳瓨涓簱浣嶅彿涓嶅瓨鍦�");
+ }
+ }
+ // 婧愮珯鐐圭姸鎬佹娴�
+// BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ // 鑾峰彇璺緞
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", 104)
+ .eq("stn_no", param.getDevpNo())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+ }
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn());
+ wrkMast.setStaNo(param.getDevpNo());
+ wrkMast.setSourceLocNo(param.getLocNo());
+ wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setCtnType(locMast.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("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ List<MatCodeCountDto> matDtos = new ArrayList<>();
+ param.getList().forEach(elem -> {
+ matDtos.add(new MatCodeCountDto(elem.getMatnr(), elem.getBatch(), elem.getCount()));
+ });
+ wrkDetlService.createWorkDetail2(workNo, matDtos, locMast.getBarcode(), userId);
+ // 鏇存柊搴撲綅鐘舵��
+// LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("F")){
+ locMast.setLocSts("P"); // P.骞舵澘鍑哄簱棰勭害
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)){
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(locMast.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ }
+
+ @Override
+ @Transactional
public void completeWrkMast(String workNo, Long userId) {
WrkMast wrkMast = wrkMastService.selectById(workNo);
if (Cools.isEmpty(wrkMast)){
@@ -684,6 +785,13 @@
Date now = new Date();
List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+
+ String zpallet = "";
+ for (LocDetl locDetl : locDetls) {
+ if (!Cools.isEmpty(locDetl.getZpallet())) {
+ zpallet = locDetl.getZpallet();
+ }
+ }
List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
@@ -748,6 +856,7 @@
Mat mat = matService.selectByMatnr(adjust.getMatnr());
LocDetl locDetl = new LocDetl();
locDetl.sync(mat);
+ locDetl.setZpallet(zpallet);
locDetl.setBatch(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
--
Gitblit v1.9.1