From 9f095733d13185290cfedd242b5f299585fbcad0 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 07 四月 2025 10:05:34 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 94 +++++++++++++++++++++++++++--------------------
1 files changed, 54 insertions(+), 40 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 0a5347a..16c4148 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -464,6 +464,7 @@
@Transactional
public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
Date now = new Date();
+ taskDto.sortLocDtos();
List<LocDto> locDtos = taskDto.getLocDtos();
for (LocDto locDto : locDtos) {
if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
@@ -526,13 +527,18 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
- if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+ if (locDto.getAnfme()==null) { continue; }
LocDetl locDetl = locDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getContainerCode());
if (locDetl == null || locDetl.getAnfme() < locDto.getAnfme()) {
throw new CoolException(locDto.getLocNo() + "搴撲綅涓�" + locDto.getMatnr() + "鍟嗗搧搴撳瓨涓嶈冻锛�");
}
Mat mat = matService.selectByMatnr(locDto.getMatnr());
assert mat != null;
+
+ if (locDto.getStock() < locDto.getAnfme()) {
+ //鎬诲簱瀛樺皬浜庝綔涓氭暟閲忥紝寮傚父鏁版嵁
+ throw new CoolException("搴撳瓨涓嶈冻锛岃绋嶅悗閲嶈瘯");
+ }
if (!BaseController.isJSON(locDto.getOrderNo())) {
WrkDetl wrkDetl = new WrkDetl();
@@ -542,7 +548,8 @@
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(locDto.getOrderNo());
- wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAnfme(locDto.getAnfme()); // 浣滀笟鏁伴噺
+ wrkDetl.setStock(locDto.getStock());//鎬诲簱瀛�
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -566,6 +573,7 @@
wrkDetl.setBatch(locDto.getBatch());
wrkDetl.setOrderNo(orderDto.getOrderNo());
wrkDetl.setAnfme(orderDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setStock(locDto.getStock());//鎬诲簱瀛�
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -581,43 +589,45 @@
});
}
- // 淇敼璁㈠崟鏄庣粏
- if (!BaseController.isJSON(locDto.getOrderNo())) {
- OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
- }
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) {
- throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
- }
- orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
- } else {
- // 璁㈠崟鍚堝苟鍑哄簱
- List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
-
- //瀹為檯鍑哄簱鏁伴噺
- Double locAnfme = locDto.getAnfme();
- //璁㈠崟瀹為檯鍑哄簱鏁伴噺
- Double orderAnfme;
-
- for (OrderDto orderDto : orderDtoList) {
- OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ if (locDto.getAnfme() > 0) {
+ // 淇敼璁㈠崟鏄庣粏
+ if (!BaseController.isJSON(locDto.getOrderNo())) {
+ OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
}
-
- orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
-
- if(locAnfme > orderAnfme){
- locAnfme -= orderAnfme;
- }else {
- orderAnfme = locAnfme;
- }
-
- if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) {
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ } else {
+ // 璁㈠崟鍚堝苟鍑哄簱
+ List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+
+ //瀹為檯鍑哄簱鏁伴噺
+ Double locAnfme = locDto.getAnfme();
+ //璁㈠崟瀹為檯鍑哄簱鏁伴噺
+ Double orderAnfme;
+
+ for (OrderDto orderDto : orderDtoList) {
+ OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
+ }
+
+ orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+ if(locAnfme > orderAnfme){
+ locAnfme -= orderAnfme;
+ }else {
+ orderAnfme = locAnfme;
+ }
+
+ if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) {
+ throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+ }
+ orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+ }
}
}
}
@@ -1092,29 +1102,29 @@
// 搴撲綅杞Щ锛氭簮搴撲綅
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
}
locMast.setLocSts("F");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
locMastService.updateById(locMast);
}
- // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+ // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
} else if (wrkMast.getWrkSts() > 20) {
locNo = wrkMast.getSourceLocNo();
// 鍑哄簱 ===>> F.鍦ㄥ簱
if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
locSts = "F";
- // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+ // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 110) {
locSts = "D";
- // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+ // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
} else if (wrkMast.getIoType() == 11) {
- locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
+ locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
// 搴撲綅杞Щ锛氱洰鏍囧簱浣�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
}
locMast.setLocSts("O");
locMast.setModiTime(new Date());
@@ -1265,6 +1275,10 @@
}
private void generateAgvWaitpakin(WrkDetl wrkDetl){
+ if (wrkDetl.getAnfme() <= 0D) {
+ return;
+ }
+
String orderNo = wrkDetl.getOrderNo();
if(orderNo.contains("{")){
JSONArray orderArray = JSON.parseArray(orderNo);
--
Gitblit v1.9.1