From 4a2703db125e67a4a9590b55a2b7fa857e87ef45 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 18 八月 2025 14:16:48 +0800
Subject: [PATCH] 合并出库添加日志
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 121 ++++++++++++++++++++++++++--------------
1 files changed, 78 insertions(+), 43 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 3680f51..78e7cb5 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -131,7 +131,7 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
List<DetlDto> detlDtos = new ArrayList<>();
param.getList().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode());
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode(),elem.getProddate(),elem.getDeadline());
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
assert detlDto1 != null;
@@ -151,6 +151,7 @@
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("O")){
+ log.warn("Flag - 1,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "S");
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -283,6 +284,11 @@
dtos.add(new OutLocDto(locNo, locDetlDto));
}
}
+
+ for (OutLocDto dto : dtos) {
+ dto.sortLocDetlDtos();
+ }
+
ArrayList<String> outerLocs = new ArrayList<>();
//妫�娴嬫槸鍚︿负娴呭簱浣�
@@ -423,14 +429,15 @@
}
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
- if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ if (detlDto.getCount()==null) {continue;}
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(detlDto.getLocDetl());
wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
wrkDetl.setWrkNo(workNo);
wrkDetl.setIoTime(now);
Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
- wrkDetl.setAnfme(anfme); // 鏁伴噺
+ wrkDetl.setAnfme(anfme); // 浣滀笟鏁伴噺
+ wrkDetl.setStock(detlDto.getLocDetl().getAnfme());
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
@@ -442,6 +449,7 @@
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("F")) {
+ log.warn("Flag - 2,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), ioType==101?"R":"P");
locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -458,6 +466,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())) {
@@ -520,13 +529,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();
@@ -536,7 +550,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);
@@ -560,6 +575,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);
@@ -575,49 +591,52 @@
});
}
- // 淇敼璁㈠崟鏄庣粏
- 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);
+ }
}
}
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
if (locMast.getLocSts().equals("F")) {
+ log.warn("Flag - 3,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), ioType==101?"R":"P");
locMast.setLocSts(ioType==101?"R":"P");
locMast.setModiUser(userId);
locMast.setModiTime(now);
@@ -676,6 +695,7 @@
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
if (locMast.getLocSts().equals("O")){
+ log.warn("Flag - 4,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "S");
locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
@@ -779,6 +799,7 @@
}
// 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
if (locMast.getLocSts().equals("D")){
+ log.warn("Flag - 5,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "R");
locMast.setLocSts("R");
locMast.setModiUser(userId);
locMast.setModiTime(new Date());
@@ -870,6 +891,7 @@
}
// 淇敼婧愬簱浣嶇姸鎬�
if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+ log.warn("Flag - 6,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", sourceLoc.getLocNo(), sourceLoc.getLocSts(), "R");
sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
sourceLoc.setModiUser(userId);
sourceLoc.setModiTime(now);
@@ -881,6 +903,7 @@
}
// 淇敼鐩爣搴撲綅鐘舵��
if (loc.getLocSts().equals("O")) {
+ log.warn("Flag - 7,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", loc.getLocNo(), loc.getLocSts(), "S");
loc.setLocSts("S"); // S.鍏ュ簱棰勭害
loc.setModiTime(now);
loc.setModiUser(userId);
@@ -1014,12 +1037,14 @@
locDetl.setBatch(adjust.getBatch());
locDetl.setLocNo(locMast.getLocNo());
locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
+ locDetl.setSuppCode(Cools.isEmpty(adjust.getSuppCode())?null:adjust.getSuppCode());
locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
locDetl.setModiTime(now);
locDetl.setAppeUser(userId);
locDetl.setAppeTime(now);
locDetl.setThreeCode(adjust.getThreeCode());
locDetl.setDeadTime(adjust.getDeadTime());
+ locDetl.setZpallet(adjust.getZpallet());
if (!locDetlService.insert(locDetl)) {
throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�");
}
@@ -1044,11 +1069,13 @@
int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
if (locMast.getLocSts().equals("F")) {
if (count == 0) {
+ log.warn("Flag - 8,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "D");
locMast.setLocSts("D");
}
}
if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) {
if (count > 0) {
+ log.warn("Flag - 9,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "F");
locMast.setLocSts("F");
}
}
@@ -1086,30 +1113,32 @@
// 搴撲綅杞Щ锛氭簮搴撲綅
LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
+ throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
}
+ log.warn("Flag - 9,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "F");
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());
}
+ log.warn("Flag - 10,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "O");
locMast.setLocSts("O");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
@@ -1179,6 +1208,7 @@
if (Cools.isEmpty(locMast)) {
throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
}
+ log.warn("Flag - 11,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), locSts);
locMast.setLocSts(locSts);
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
@@ -1236,6 +1266,7 @@
}
// 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ log.warn("Flag - 12,{}搴撲綅鐘舵�佸彉鏇�,{} => {}", locMast.getLocNo(), locMast.getLocSts(), "Q");
locMast.setLocSts("Q");
locMast.setModiTime(new Date());
locMast.setModiUser(userId);
@@ -1259,6 +1290,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