From c039bdc062899af5d3c7782bc0e3f38d8b39fc87 Mon Sep 17 00:00:00 2001
From: qlsxk <qlsxk@qq.com>
Date: 星期二, 14 十月 2025 08:37:54 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 170 ++++++++++++++++----------------------------------------
1 files changed, 49 insertions(+), 121 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 4b82962..48d5316 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,6 +12,7 @@
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.result.FindLocNoAttributeVo;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -91,7 +92,11 @@
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
+
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+ findLocNoAttributeVo.setMatnr(matnrs.get(0));
+
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, findLocNoAttributeVo, locTypeDto, param.getBarcode());
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -208,8 +213,18 @@
assert ioType != null;
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(dto.getLocNo());
+
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException(dto.getLocNo()+"搴撲綅涓嶅瓨鍦�");
+ }
+ if(!locMast.getLocSts().equals("F")){
+ throw new CoolException(dto.getLocNo()+"鎵樼洏闈炲湪搴撶姸鎬�");
+ }
+
+ Integer outSta = staNo.getDevNo();
+
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, outSta);
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -218,7 +233,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setIoPri(10D); // 浼樺厛绾�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
@@ -246,6 +261,8 @@
wrkDetl.setIoTime(now);
Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setPrice(detlDto.getLocDetl().getAnfme());//鎬绘暟
+ wrkDetl.setWeight(detlDto.getLocDetl().getAnfme());//鎬绘暟
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -283,7 +300,7 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -317,6 +334,8 @@
if (orderDetl == null) {
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo()).eq("matnr", locDto.getMatnr()));
+ Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", locDto.getMatnr()));
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -324,7 +343,10 @@
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setModel(mat.getModel());
+ wrkDetl.setPrice(locDetl.getAnfme());//搴撳瓨鏁伴噺
wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setWeight(locDetl.getAnfme());//鎬绘暟
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -333,7 +355,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
// 淇敼璁㈠崟鏄庣粏
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+ if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
@@ -359,7 +381,10 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+
+ FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+
+ StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, findLocNoAttributeVo, locTypeDto, "");
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -424,6 +449,9 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
}
+ if(!locMast.getLocSts().equals("D")){
+ throw new CoolException(locNo+"鎵樼洏闈炲湪搴撶姸鎬�");
+ }
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
@@ -446,6 +474,7 @@
wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+ wrkMast.setIoPri(10.0D);//浼樺厛绾�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
@@ -503,9 +532,6 @@
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();
// 鑾峰彇宸ヤ綔鍙�
@@ -778,16 +804,24 @@
//鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
if(wrkMast.getIoType() == 1) {
- WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
- if (!Cools.isEmpty(waitPakin)) {
- waitPakin.setIoStatus("N");
- waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
+ List<WaitPakin> waitPakins=waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
+ for (WaitPakin waitPakin:waitPakins){
+ if (!Cools.isEmpty(waitPakin)) {
+ waitPakin.setIoStatus("N");
+ waitPakin.setLocNo("");
+ waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
+ .eq("order_no", waitPakin.getOrderNo())
+ .eq("matnr", waitPakin.getMatnr())
+ .eq("batch", waitPakin.getBatch()));
+ }
}
}
+ //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
+ //瀛楃涓蹭笉涓虹┖
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
@@ -817,18 +851,6 @@
}
-// // 璁㈠崟鍏宠仈
-// List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-// for (WrkDetl wrkDetl : wrkDetls) {
-// if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-// }
-// // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-//// stockOutRe(wrkMast, wrkDetls);
-// }
-// }
-
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩鍙栨秷");
wrkMast.setModiUser(userId);
@@ -836,6 +858,7 @@
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
}
+
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
throw new CoolException("淇濆瓨宸ヤ綔鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
@@ -930,102 +953,7 @@
}
LocTypeDto locTypeDto = new LocTypeDto();
locTypeDto.setLocType1((short) 1);
- return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list);
- }
-
- @Override
- @Transactional
- public String dealPreHaveStart(Integer wrkNo, Long userId) {
- WrkMast wrkMast = wrkMastService.selectById(wrkNo);
- if (wrkMast == null) {
- throw new CoolException("浠诲姟宸插け鏁�");
- }
- String locNo = wrkMast.getLocNo();
- LocMast locMast = locMastService.selectById(locNo);
- assert locMast != null;
- RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1());
- assert rowLastno != null;
-
- // 鐩爣搴撲綅
- LocMast targetLoc = null;
-
- for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
-
- if (Utils.isShallowLoc(slaveProperties, curRow)) {
- Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
- targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
- continue;
- }
- }
- if (Cools.isEmpty(targetLoc)) {
- targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
- // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
- continue;
- }
- // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
- if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) {
- LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo()));
- if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
- continue;
- }
- }
- // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
- if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) {
- LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo()));
- if (!shallowLoc.getLocSts().equals("O")) {
- continue;
- }
- }
- }
-
- if (!Cools.isEmpty(targetLoc)) {
- break;
- }
-
- }
-
- if (targetLoc == null) {
- throw new CoolException("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�");
- }
-
- Date now = new Date();
- // 淇敼宸ヤ綔妗�
- StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo());
- if (Cools.isEmpty(staDesc)) {
- throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- }
- wrkMast.setWrkSts(2L);
- wrkMast.setLocNo(targetLoc.getLocNo());
- wrkMast.setStaNo(staDesc.getCrnStn());
- wrkMast.setCrnNo(targetLoc.getCrnNo());
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- wrkMast.setPreHave("N");
- if (!wrkMastService.updateById(wrkMast)) {
- throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
- }
- // 淇敼搴撲綅鐘舵�� O ===>>> S
- if (targetLoc.getLocSts().equals("O")){
- targetLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
- targetLoc.setModiUser(userId);
- targetLoc.setModiTime(now);
- if (!locMastService.updateById(targetLoc)){
- throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
- }
- } else {
- throw new CoolException(targetLoc.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
- }
- // 绂佺敤寮傚父搴撲綅
-// locMast.setLocSts("X"); // X.绂佺敤
-// locMast.setModiUser(userId);
-// locMast.setModiTime(now);
-// if (!locMastService.updateById(locMast)){
-// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-// }
- return targetLoc.getLocNo();
+ return null;
}
}
--
Gitblit v1.9.1