From aea629d098bdab0918d90e0c51af9d7b099bca12 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 31 五月 2024 20:45:51 +0800
Subject: [PATCH] #新旧物料更新接口
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 174 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 119 insertions(+), 55 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 188d814..0e8dc19 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -284,6 +284,12 @@
}
}
+ for (OutLocDto dto : dtos) {
+ dto.sortLocDetlDtos();
+ }
+
+
+ ArrayList<String> outerLocs = new ArrayList<>();
//妫�娴嬫槸鍚︿负娴呭簱浣�
boolean sign=false;
String th = "";
@@ -301,17 +307,32 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
if (locMast != null) {
if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) {
- sign = true;
- th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
- break;
+// sign = true;
+// th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+// break;
+
+ OutLocDto outLocDto = new OutLocDto();
+ outLocDto.setLocNo(locMast.getLocNo());
+ List<LocDetlDto> locDetlDtos1 = new ArrayList<>();
+ for (LocDetl locDetl : locDetlService.selectByLocNo(locMast.getLocNo())) {
+ LocDetlDto locDetlDto = new LocDetlDto();
+ locDetlDto.setLocDetl(locDetl);
+ locDetlDto.setCount(locDetl.getAnfme());
+ locDetlDtos1.add(locDetlDto);
+ }
+ outLocDto.setLocDetlDtos(locDetlDtos1);
+ if (!outerLocs.contains(locMast.getLocNo())) {
+ dtos.add(outLocDto);
+ outerLocs.add(locMast.getLocNo());
+ }
}
}
}
}
}
- if (sign){
- throw new CoolException("鍑哄簱澶辫触锛�"+th);
- }
+// if (sign){
+// throw new CoolException("鍑哄簱澶辫触锛�"+th);
+// }
//**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
HashMap<String, Object> tmpMap = new HashMap<>();
@@ -407,14 +428,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 +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())) {
@@ -504,70 +527,107 @@
}
// 鐢熸垚宸ヤ綔妗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;
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(mat);
- wrkDetl.setZpallet(wrkMast.getBarcode());
- wrkDetl.setIoTime(now);
- wrkDetl.setWrkNo(workNo);
- wrkDetl.setBatch(locDto.getBatch());
- wrkDetl.setOrderNo(locDto.getOrderNo());
- wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
- wrkDetl.setAppeTime(now);
- wrkDetl.setAppeUser(userId);
- wrkDetl.setModiTime(now);
- wrkDetl.setModiUser(userId);
- wrkDetl.setSuppCode(locDto.getContainerCode());
- wrkDetl.setThreeCode(locDto.getCsocode());
- wrkDetl.setDeadTime(locDto.getIsoseq());
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+
+ if (locDto.getStock() < locDto.getAnfme()) {
+ //鎬诲簱瀛樺皬浜庝綔涓氭暟閲忥紝寮傚父鏁版嵁
+ throw new CoolException("搴撳瓨涓嶈冻锛岃绋嶅悗閲嶈瘯");
}
- //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
- generateAgvWaitpakin(wrkDetl);
- // 淇敼璁㈠崟鏄庣粏
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());
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setBatch(locDto.getBatch());
+ wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setAnfme(locDto.getAnfme()); // 浣滀笟鏁伴噺
+ wrkDetl.setStock(locDto.getStock());//鎬诲簱瀛�
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
- 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 {
- // 璁㈠崟鍚堝苟鍑哄簱
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ }else {
List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+ orderDtoList.forEach(orderDto -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setWrkNo(workNo);
+ 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);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setSuppCode(locDto.getContainerCode());
+ wrkDetl.setThreeCode(locDto.getCsocode());
+ wrkDetl.setDeadTime(locDto.getIsoseq());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+ generateAgvWaitpakin(wrkDetl);
+ });
+ }
- //瀹為檯鍑哄簱鏁伴噺
- 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());
}
-
- if(locAnfme > orderDetl.getAnfme()){
- orderAnfme = orderDetl.getAnfme();
- 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);
+ }
}
}
}
@@ -1215,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