From 46ef1825a0fcbe8b042e31ac81b9e0d20f464661 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 22 五月 2023 10:04:22 +0800
Subject: [PATCH] WMS任务完成、取消功能
---
src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 106 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java
index 22917e7..420cd4d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WmsWrkServiceImpl.java
@@ -1,7 +1,10 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.WmsWrkStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.WmsWrkMapper;
import com.zy.asrs.service.*;
@@ -12,6 +15,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
+import java.util.List;
@Service("wmsWrkService")
public class WmsWrkServiceImpl extends ServiceImpl<WmsWrkMapper, WmsWrk> implements WmsWrkService {
@@ -26,6 +30,10 @@
private WrkMastService wrkMastService;
@Autowired
private StaDescService staDescService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
@Override
public WmsWrk selectByWmsWrkNo(Integer wmsWrkNo) {
@@ -47,10 +55,13 @@
//鍒涘缓浠诲姟
if (wmsWrk.getIoType() == 1) {
- //鍏ュ簱
+ //1.鍏ュ簱
startup(wmsWrk, userId);
- }else if(wmsWrk.getIoType() == 101){
- //鍑哄簱
+ }else if(wmsWrk.getIoType() == 11){
+ //11.搴撴牸绉昏浇
+ locMove(wmsWrk, userId);
+ } else if (wmsWrk.getIoType() == 101) {
+ //101.鍑哄簱
stockOut(wmsWrk, userId);
}
@@ -66,7 +77,7 @@
}
// 鐢熸垚浠诲姟鍙�
- int workNo = commonService.getWorkNo(0);
+ int workNo = commonService.getWorkNo(WorkNoType.PAKIN.type);
wmsWrk.setWrkNo(workNo);
this.baseMapper.updateById(wmsWrk);
@@ -76,6 +87,7 @@
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
+ wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙�
wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());
wrkMast.setIoTime(now);
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
@@ -122,6 +134,7 @@
}
@Override
+ @Transactional
public void stockOut(WmsWrk wmsWrk, Long userId) {
Date now = new Date();
LocMast locMast = locMastService.selectByLocNo(wmsWrk.getSourceLocNo());
@@ -130,7 +143,7 @@
}
// 鐢熸垚浠诲姟鍙�
- int workNo = commonService.getWorkNo(2);
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
wmsWrk.setWrkNo(workNo);
this.baseMapper.updateById(wmsWrk);
@@ -139,6 +152,7 @@
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
+ wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙�
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(101); // 101.鍑哄簱
@@ -174,4 +188,91 @@
throw new CoolException(wmsWrk.getSourceLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
}
+
+ //搴撲綅绉昏浆
+ @Override
+ @Transactional
+ public void locMove(WmsWrk wmsWrk, Long userId) {
+ String sourceLocNo = wmsWrk.getSourceLocNo();
+ String locNo = wmsWrk.getLocNo();
+ LocMast sourceLoc = locMastService.selectById(sourceLocNo);
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+ if (Cools.isEmpty(sourceLoc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ LocMast loc = locMastService.selectById(locNo);
+ if (Cools.isEmpty(loc)){
+ throw new CoolException("鏈壘鍒板簱浣�");
+ }
+ if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
+ throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
+ }
+ Date now = new Date();
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+ wmsWrk.setWrkNo(workNo);
+ this.baseMapper.updateById(wmsWrk);
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setWmsWrkNo(wmsWrk.getWmsWrkNo());//WMS浠诲姟鍙�
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+ wrkMast.setIoPri(10D);
+ wrkMast.setCrnNo(sourceLoc.getCrnNo());
+ wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+ wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
+ wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 宸ヤ綔妗f槑缁嗕繚瀛�
+ for (LocDetl locDetl : locDetls) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(locDetl);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAnfme(locDetl.getAnfme());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬�
+ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+ sourceLoc.setModiUser(userId);
+ sourceLoc.setModiTime(now);
+ if (!locMastService.updateById(sourceLoc)){
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ } else {
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+ }
+ // 淇敼鐩爣搴撲綅鐘舵��
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+ loc.setModiTime(now);
+ loc.setModiUser(userId);
+ if (!locMastService.updateById(loc)) {
+ throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
+ }
+ }
}
--
Gitblit v1.9.1