From 9b6a50bf1288d2f7f06a67bec0c902d1256e44fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 05 七月 2025 11:15:54 +0800
Subject: [PATCH] 1.订单出库改物料多的先出 2.新增订单明细打印功能
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java | 129 +++++++++++++++++++++++++++++++++---------
1 files changed, 100 insertions(+), 29 deletions(-)
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index c2d6f71..3b466f1 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -72,7 +72,7 @@
Date now = new Date();
// 鏃犲崟缁勬墭
- if (Cools.isEmpty(param.getOrderNo())) {
+ if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
// 鐢熸垚鍏ュ簱閫氱煡妗�
List<DetlDto> detlDtos = new ArrayList<>();
@@ -112,14 +112,13 @@
}
// 鍏宠仈缁勬墭
} else {
- Order order = orderService.selectByNo(param.getOrderNo(), hostId);
- if (order.getSettle() > 2) {
- throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
- }
// 鐢熸垚鍏ュ簱閫氱煡妗�
List<DetlDto> detlDtos = new ArrayList<>();
param.getCombMats().forEach(elem -> {
-
+ Order order = orderService.selectByNo(elem.getOrderNo(), hostId);
+ if (order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
// 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),hostId);
if (elem.getAnfme() > orderDetl.getEnableQty()) {
@@ -139,6 +138,7 @@
assert one != null;
one.setAnfme(one.getAnfme() + detlDto.getAnfme());
} else {
+ detlDto.setOrderNo(order.getOrderNo());
detlDtos.add(detlDto);
}
});
@@ -147,6 +147,9 @@
if (Cools.isEmpty(mat)) {
throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
}
+
+ Order order = orderService.selectByNo(detlDto.getOrderNo(), hostId);
+
WaitPakin waitPakin = new WaitPakin();
waitPakin.sync(mat);
waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
@@ -166,8 +169,9 @@
if (!waitPakinService.save(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
+ orderService.updateSettle(order.getId(), 2L, userId, hostId);
}
- orderService.updateSettle(order.getId(), 2L, userId, hostId);
+
}
}
@@ -251,45 +255,85 @@
@Override
@Transactional
- public R WarehouseIn(String locNo, String barcode,Long hostId) {
+ public R WarehouseIn(String locNo, String barcode,Long hostId,Long userId) {
//鍒ゆ柇搴撲綅鐘舵��
LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locNo).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
if (Cools.isEmpty(locMast)){
return R.error("璇ュ簱浣嶄笉瀛樺湪");
}
- if (!locMast.getLocSts().equals("O")){
- return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",绂佹鍏ュ簱");
- }
+// if (!locMast.getLocSts().equals("O")){
+// return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",绂佹鍏ュ簱");
+// }
//鏌ヨ缁勬墭鏁版嵁
List<WaitPakin> list = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getZpallet, barcode).eq(WaitPakin::getHostId, hostId));
if (Cools.isEmpty(list)){
return R.error("鏈壘鍒扮粍鎵樹俊鎭�");
}
Date now = new Date();
+
//鎻掑叆搴撳瓨鏁版嵁
for (WaitPakin waitPakin: list){
- Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
- LocDetl locDetl = new LocDetl();
- locDetl.sync(mat);
- locDetl.setLocNo(locNo);
+ //澶勭悊搴撳瓨淇℃伅
+ AdjDetl adjDetl = new AdjDetl();
+ Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>()
+ .eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
+ LocDetl locDetl1=locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getMatnr,waitPakin.getMatnr())
+ .eq(LocDetl::getHostId,hostId)
+ .eq(LocDetl::getLocNo,locNo));
+ double i=0.0;
+ if(!Cools.isEmpty(locDetl1)){
+ i=locDetl1.getAnfme();
+ locDetl1.setAnfme(locDetl1.getAnfme()+waitPakin.getAnfme());
+ locDetlService.updateById(locDetl1);
+ adjDetl.setMatnr(locDetl1.getMatnr());
+ adjDetl.setBatch(locDetl1.getBatch());
+ adjDetl.setAdjQty(locDetl1.getAnfme());
+ }else{
+ LocDetl locDetl = new LocDetl();
+ locDetl.sync(mat);
+ locDetl.setLocNo(locNo);
// locDetl.setBarcode(waitPakin.getBarcode());
- locDetl.setZpallet(waitPakin.getZpallet());
- locDetl.setAnfme(waitPakin.getAnfme());
- locDetl.setBatch(waitPakin.getBatch());
+ locDetl.setZpallet(waitPakin.getZpallet());
+ locDetl.setAnfme(waitPakin.getAnfme());
+ locDetl.setBatch(waitPakin.getBatch());
// locDetl.setWeight(waitPakin.getWeight());
- locDetl.setHostId(hostId);
- locDetl.setModiTime(now);
- locDetl.setAppeTime(now);
- locDetlService.save(locDetl);
+ locDetl.setHostId(hostId);
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ locDetlService.save(locDetl);
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setAdjQty(locDetl.getAnfme());
+ }
+
+ try {
+
+ adjDetl.setLocNo(locNo);
+ adjDetl.setOriQty(i);
+ adjDetl.setMemo("骞冲韩涓婃灦");
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeUser(userId);
+ adjDetl.setAppeTime(new Date());
+ adjDetl.setModiTime(new Date());
+ adjDetl.setOrderNo(waitPakin.getOrderNo());
+ if (!adjDetlService.save(adjDetl)) {
+ throw new CoolException("淇濆瓨搴撳瓨璋冩暣璁板綍澶辫触");
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊" + e.getMessage());
+ }
+
//鏄惁灞炰簬璁㈠崟鏁版嵁
if (!Cools.isEmpty(waitPakin.getOrderNo())){
Order order = orderService.selectByNo(waitPakin.getOrderNo(), hostId);
if (Cools.isEmpty(order)){
- continue;
+ throw new CoolException("骞冲簱涓婃灦鏌ヨ璁㈠崟澶辫触");
}
OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), waitPakin.getMatnr(), waitPakin.getBatch(),hostId);
if (Cools.isEmpty(orderDetl)){
- continue;
+ throw new CoolException("骞冲簱涓婃灦鏌ヨ璁㈠崟鏄庣粏澶辫触");
}
// 淇敼璁㈠崟鏄庣粏瀹屾垚鏁伴噺
if (!orderDetlService.increase(order.getId(), hostId, waitPakin.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme())) {
@@ -320,7 +364,7 @@
@Override
@Transactional
- public R WarehouseOut(CombParam combParam, Long hostId) {
+ public R WarehouseOut(CombParam combParam, Long hostId , Long userId) {
//鍒ゆ柇搴撲綅鐘舵��
LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
if (Cools.isEmpty(locMast)){
@@ -336,7 +380,7 @@
.eq(LocDetl::getHostId, hostId)
.eq(LocDetl::getZpallet, combMat.getZpallet())
.eq(LocDetl::getMatnr, combMat.getMatnr())
- .eq(LocDetl::getBatch, combMat.getBatch())
+// .eq(LocDetl::getBatch, combMat.getBatch())
);
if (Cools.isEmpty(locDetl)){
return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -357,7 +401,7 @@
continue;
}
if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
- throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+ combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
}
// 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -371,6 +415,8 @@
orderService.checkComplete(combParam.getOrderNo(), hostId);
}
try {
+ double i=0.0;
+ double j=locDetl.getAnfme();
//澶勭悊搴撳瓨淇℃伅
if (combMat.getAnfme().equals(locDetl.getAnfme())){
//搴撳瓨鐩哥瓑鍒犻櫎鏁版嵁
@@ -383,8 +429,32 @@
}
}else {
BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme()));
+ i=subtract.byteValue();
locDetl.setAnfme(subtract.doubleValue());
locDetlService.updateById(locDetl);
+ }
+
+ try {
+ //澶勭悊搴撳瓨淇℃伅
+ AdjDetl adjDetl = new AdjDetl();
+ adjDetl.setLocNo(locDetl.getLocNo());
+ adjDetl.setMatnr(locDetl.getMatnr());
+ adjDetl.setBatch(locDetl.getBatch());
+ adjDetl.setOriQty(j);
+ adjDetl.setAdjQty(i);
+ adjDetl.setMemo("骞冲韩涓嬫灦");
+ adjDetl.setModiUser(userId);
+ adjDetl.setAppeUser(userId);
+ adjDetl.setAppeTime(new Date());
+ adjDetl.setModiTime(new Date());
+ adjDetl.setOrderNo(combParam.getOrderNo());
+ adjDetl.setHostId(hostId);
+ if (!adjDetlService.save(adjDetl)) {
+ throw new CoolException("淇濆瓨搴撳瓨璋冩暣璁板綍澶辫触");
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊" + e.getMessage());
}
}catch (Exception e){
throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊"+e.getMessage());
@@ -461,7 +531,7 @@
adjDetl.setMatnr(locDetl.getMatnr());
adjDetl.setBatch(locDetl.getBatch());
adjDetl.setOriQty(locDetl.getAnfme());
- adjDetl.setMemo("WarehouseOutV1-pick");
+ adjDetl.setMemo("骞舵澘閫斾腑鎷f枡");
adjDetl.setModiUser(userId);
adjDetl.setAppeUser(userId);
adjDetl.setAppeTime(new Date());
@@ -637,7 +707,7 @@
adjDetl.setBatch(locDetl.getBatch());
adjDetl.setOriQty(originAnfme);
adjDetl.setAdjQty(locDetl.getAnfme());
- adjDetl.setMemo("WarehouseOutV1-pick");
+ adjDetl.setMemo("鎷f枡閫斾腑骞舵澘");
adjDetl.setModiUser(userId);
adjDetl.setAppeUser(userId);
adjDetl.setAppeTime(new Date());
@@ -785,4 +855,5 @@
return R.ok();
}
+
}
--
Gitblit v1.9.1