From ecc60e6e9343eec70fc2f430b6f47193249029ff Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 25 十二月 2020 10:43:50 +0800
Subject: [PATCH] #堆垛机异常码 -- 代号可编辑 【删除crnerr表id的标识属性】
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 150 +++++++++++++++++++++++++++-----------------------
1 files changed, 81 insertions(+), 69 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 c3e32e1..0026fc6 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
+import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -11,15 +12,19 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.VersionUtils;
import com.zy.common.model.LocDetlDto;
import com.zy.common.model.OutLocDto;
import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/6/11
@@ -63,11 +68,12 @@
throw new CoolException(BaseRes.PARAM);
}
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo());
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
// 妫�绱㈠簱浣�
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo());
+ List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList());
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos);
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -110,8 +116,8 @@
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("O")){
- locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
@@ -184,7 +190,7 @@
throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
}
// 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -215,16 +221,9 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
- wrkDetl.setMatnr(detlDto.getLocDetl().getMatnr());
- Double anfme = ioType==101?detlDto.getCount():detlDto.getLocDetl().getAnfme();
+ Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
wrkDetl.setAnfme(anfme); // 鏁伴噺
- wrkDetl.setZmatid(detlDto.getLocDetl().getZmatid());
- wrkDetl.setTbpos(detlDto.getLocDetl().getTbpos());
- wrkDetl.setTbnum(detlDto.getLocDetl().getTbnum());
- wrkDetl.setLgnum(detlDto.getLocDetl().getLgnum());
- wrkDetl.setAltme(detlDto.getLocDetl().getAltme());
- wrkDetl.setBname(detlDto.getLocDetl().getBname());
- wrkDetl.setMaktx(detlDto.getLocDetl().getMaktx());
+ VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -235,8 +234,8 @@
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("F")) {
- locMast.setLocType(ioType==101?"R":"P");
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)) {
@@ -252,23 +251,22 @@
@Transactional
public String emptyPlateIn(Integer devpNo, Long userId) {
// 婧愮珯鐐圭姸鎬佹娴�
- BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo);
- // 鐢熸垚宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo);
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null);
+ int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
- wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+ wrkMast.setIoPri(10D); // 浼樺厛绾э細10
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(dto.getSourceStaNo());
wrkMast.setStaNo(dto.getStaNo());
wrkMast.setLocNo(dto.getLocNo());
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setFullPlt("N"); // 婊℃澘
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("Y"); // 绌烘澘
@@ -292,8 +290,8 @@
}
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
- if (locMast.getLocType().equals("O")){
- locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)){
@@ -313,7 +311,7 @@
}
for (String locNo : param.getLocNos()) {
// 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(locNo);
if (Cools.isEmpty(locMast)) {
@@ -354,8 +352,8 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
// 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
- if (locMast.getLocType().equals("D")){
- locMast.setLocType("R");
+ if (locMast.getLocSts().equals("D")){
+ locMast.setLocSts("R");
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
if (!locMastService.updateById(locMast)) {
@@ -405,7 +403,7 @@
throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
}
// 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
// 淇濆瓨宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -419,7 +417,8 @@
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(sourceLoc.getLocType().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
wrkMast.setLinkMis("N");
wrkMast.setAppeUser(userId);
wrkMast.setAppeTime(new Date());
@@ -435,15 +434,8 @@
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(new Date());
- wrkDetl.setMatnr(locDetl.getMatnr());
wrkDetl.setAnfme(locDetl.getAnfme());
- wrkDetl.setZmatid(locDetl.getZmatid());
- wrkDetl.setTbpos(locDetl.getTbpos());
- wrkDetl.setTbnum(locDetl.getTbnum());
- wrkDetl.setLgnum(locDetl.getLgnum());
- wrkDetl.setAltme(locDetl.getAltme());
- wrkDetl.setBname(locDetl.getBname());
- wrkDetl.setMaktx(locDetl.getMaktx());
+ VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
wrkDetl.setAppeTime(new Date());
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(new Date());
@@ -453,26 +445,26 @@
}
}
// 淇敼婧愬簱浣嶇姸鎬�
- if (sourceLoc.getLocType().equals("D") || sourceLoc.getLocType().equals("F")) {
- sourceLoc.setLocType("R"); // R.鍑哄簱棰勭害
+ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiUser(userId);
sourceLoc.setModiTime(new Date());
if (!locMastService.updateById(sourceLoc)){
throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
}
} else {
- throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocType$());
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
}
// 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocType().equals("O")) {
- loc.setLocType("S"); // S.鍏ュ簱棰勭害
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
loc.setModiTime(new Date());
loc.setModiUser(userId);
if (!locMastService.updateById(loc)) {
throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
}
} else {
- throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocType$());
+ throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
}
}
@@ -493,8 +485,13 @@
} else if (wrkMast.getWrkSts() > 10) {
wrkMast.setWrkSts(14L);
}
- wrkMast.setModiTime(new Date());
+ Date now = new Date();
+ wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
+ // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩瀹屾垚");
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
}
@@ -523,17 +520,8 @@
MatCode matCode = matCodeService.selectById(adjust.getMatnr());
LocDetl locDetl = new LocDetl();
locDetl.setLocNo(locMast.getLocNo());
- locDetl.setMatnr(matCode.getMatNo());
- locDetl.setMaktx(matCode.getMatName()); // 鐗╂枡鎻忚堪
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
- locDetl.setAltme(matCode.getStr1()); // 鍗曚綅
- // todo:luxiaoao
- locDetl.setLgnum("寰呭畾"); // 浠撳簱鍙�
- locDetl.setTbnum(0); // 杞偍璇锋眰缂栧彿
- locDetl.setTbpos(0); // 琛岄」鐩�
- locDetl.setZmatid("寰呭畾"); // 鐗╂枡鏍囩ID
- locDetl.setZpallet("寰呭畾"); // 鎵樼洏鏉$爜
-
+ VersionUtils.setLocDetl(locDetl, matCode); // 鐗堟湰鎺у埗
locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
locDetl.setModiTime(new Date());
locDetl.setAppeUser(userId);
@@ -578,6 +566,15 @@
}
}
}
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+ if (locDetls.isEmpty()) {
+ locMast.setLocSts("D");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+ }
+ }
}
@Override
@@ -588,11 +585,11 @@
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
- String locType = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+ String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
if (wrkMast.getWrkSts() < 4) {
locNo = wrkMast.getLocNo();
- locType = "O";
+ locSts = "O";
/**
* 搴撲綅杞Щ
* 鍙栨秷鍚� 婧愬簱浣� ==>> F.鍦ㄥ簱
@@ -604,7 +601,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
}
- locMast.setLocType("F");
+ locMast.setLocSts("F");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
@@ -614,19 +611,19 @@
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
- locType = "F";
+ locSts = "F";
// 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
- locType = "D";
+ locSts = "D";
// 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
- locType = "F";
+ locSts = "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
}
- locMast.setLocType("O");
+ locMast.setLocSts("O");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
@@ -634,8 +631,23 @@
} else {
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
}
- // 鍒犻櫎宸ヤ綔妗�
+ // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
+ }
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
+ // 鍒犻櫎宸ヤ綔涓绘。
boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
+ // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+ }
// 鍒犻櫎宸ヤ綔妗f槑缁�
boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
// 淇敼搴撲綅鐘舵��
@@ -643,7 +655,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
}
- locMast.setLocType(locType);
+ locMast.setLocSts(locSts);
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
boolean locMastRes = locMastService.updateById(locMast);
@@ -668,9 +680,9 @@
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
}
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
-// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
-// }
+ if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+ }
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
@@ -700,7 +712,7 @@
}
// 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
- locMast.setLocType("Q");
+ locMast.setLocSts("Q");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
if (!locMastService.updateById(locMast)) {
--
Gitblit v1.9.1