From cc18b818b28445bf6e9da0363fde3703c21178f5 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 18 九月 2024 11:00:11 +0800
Subject: [PATCH] #
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 100 insertions(+), 11 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 fe051e7..057e514 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
@@ -99,6 +99,8 @@
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
+ waitPakin.setFullPlt(param.getFullPlt());
+ waitPakin.setOwner(param.getOwner());
if (!waitPakinService.save(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
@@ -124,6 +126,9 @@
}
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ detlDto.setWarehouse(orderDetl.getThreeCode());//鏉ユ簮浠撳簱
+ detlDto.setOrigin(orderDetl.getSupp());//鏉ユ簮鍗曞彿
+ detlDto.setOriginNo(orderDetl.getSuppCode());//鏉ユ簮搴忓彿
if (DetlDto.has(detlDtos, detlDto)) {
DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
assert one != null;
@@ -144,11 +149,15 @@
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setThreeCode(detlDto.getWarehouse()); // 浠撳簱
+ waitPakin.setSupp(detlDto.getOrigin()); // 鏉ユ簮鍗曞彿
+ waitPakin.setSuppCode(detlDto.getOriginNo()); // 鏉ユ簮搴忓彿
waitPakin.setStatus("Y"); // 鐘舵��
waitPakin.setAppeUser(userId);
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
+ waitPakin.setOwner(param.getOwner());
if (!waitPakinService.save(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
@@ -239,7 +248,7 @@
@Transactional
public R WarehouseIn(String locNo, String barcode,Long hostId) {
//鍒ゆ柇搴撲綅鐘舵��
- LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locNo).eq(LocMast::getHostId,hostId));
+ 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("璇ュ簱浣嶄笉瀛樺湪");
}
@@ -305,9 +314,10 @@
}
@Override
+ @Transactional
public R WarehouseOut(CombParam combParam, Long hostId) {
//鍒ゆ柇搴撲綅鐘舵��
- LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId));
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
if (Cools.isEmpty(locMast)){
return R.error("璇ュ簱浣嶄笉瀛樺湪");
}
@@ -329,6 +339,32 @@
if (combMat.getAnfme() > locDetl.getAnfme()){
return R.error("涓嬫灦鏁伴噺閿欒锛岃秴鍑哄簱瀛樻暟閲�");
}
+ if (!Cools.isEmpty(combParam.getOrderNo())){
+ Order order = orderService.selectByNo(combParam.getOrderNo(), hostId);
+ if (Cools.isEmpty(order)){
+ continue;
+ }
+ if (order.getSettle() == 1){
+ orderService.updateSettle(order.getId(), 2L, 9527L, hostId);
+ }
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(),hostId);
+ if (Cools.isEmpty(orderDetl)){
+ continue;
+ }
+ if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
+ throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+ }
+ // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
+ throw new CoolException("淇敼鍗曟嵁鏄庣粏宸ヤ綔鏁伴噺澶辫触");
+ }
+ // 淇敼璁㈠崟鏄庣粏瀹屾垚鏁伴噺
+ if (!orderDetlService.increase(order.getId(), hostId, combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁鏄庣粏瀹屾垚鏁伴噺澶辫触");
+ }
+ // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+ orderService.checkComplete(combParam.getOrderNo(), hostId);
+ }
try {
//澶勭悊搴撳瓨淇℃伅
if (combMat.getAnfme().equals(locDetl.getAnfme())){
@@ -348,18 +384,59 @@
}catch (Exception e){
throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊"+e.getMessage());
}
+ }
+
+
+
+
+ return R.ok();
+ }
+
+ @Override
+ @Transactional
+ public R WarehouseOutV1(CombParam combParam, Long hostId) {
+ //鍒ゆ柇搴撲綅鐘舵��
+ LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,0L));
+ if (Cools.isEmpty(locMast)){
+ return R.error("璇ュ簱浣嶄笉瀛樺湪");
+ }
+ if (!locMast.getLocSts().equals("P")){
+ return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",涓嶆弧瓒冲苟鏉块�斾腑鎷i�夋潯浠讹紒锛侊紒");
+ }
+ //鏌ヨ搴撳瓨鏁版嵁
+ for (CombParam.CombMat combMat :combParam.getCombMats()){
+ List<LocDetl> locDetlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, combParam.getLocno())
+ .eq(LocDetl::getHostId, hostId)
+// .eq(LocDetl::getZpallet, combMat.getZpallet())
+ .eq(LocDetl::getMatnr, combMat.getMatnr())
+// .eq(LocDetl::getBatch, combMat.getBatch())
+ );
+ if (locDetlList.isEmpty()){
+ return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+ }
+ if (locDetlList.size()>1){
+ return R.error("搴撳瓨鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+ }
+ LocDetl locDetl = locDetlList.get(0);
+ if (combMat.getAnfme() > locDetl.getAnfme()){
+ return R.error("鎷i�夋暟閲忛敊璇紝瓒呭嚭搴撳瓨鏁伴噺");
+ }
if (!Cools.isEmpty(combParam.getOrderNo())){
Order order = orderService.selectByNo(combParam.getOrderNo(), hostId);
if (Cools.isEmpty(order)){
continue;
}
+ if (order.getSettle() == 1){
+ orderService.updateSettle(order.getId(), 2L, 9527L, hostId);
+ }
OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(),hostId);
if (Cools.isEmpty(orderDetl)){
continue;
}
- if (orderDetl.getWorkQty() < orderDetl.getWorkQty()+combMat.getAnfme()){
- throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+ if (orderDetl.getAnfme() < (orderDetl.getWorkQty()+combMat.getAnfme())){
+ throw new CoolException("鎷i�夋暟閲忓嚭閿�,璁㈠崟鍓╀綑鍑哄簱鏁伴噺灏忎簬宸插嚭搴撴暟閲忎笌灏嗘嫞閫夋暟閲忎箣鍜岋紒锛侊紒");
}
// 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -372,14 +449,26 @@
// 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
orderService.checkComplete(combParam.getOrderNo(), hostId);
}
-
-
+ try {
+ //澶勭悊搴撳瓨淇℃伅
+ if (combMat.getAnfme().equals(locDetl.getAnfme())){
+ //搴撳瓨鐩哥瓑鍒犻櫎鏁版嵁
+ locDetlService.removeById(locDetl);
+ int count = locDetlService.count(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo,combParam.getLocno()).eq(LocDetl::getHostId, hostId));
+ if (count == 0){
+ LocMast locMast1 = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId, hostId));
+ locMast1.setLocSts("O");
+ locMastService.updateById(locMast1);
+ }
+ } else {
+ BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme()));
+ locDetl.setAnfme(subtract.doubleValue());
+ locDetlService.updateById(locDetl);
+ }
+ }catch (Exception e){
+ throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊"+e.getMessage());
+ }
}
-
-
-
-
-
return R.ok();
}
}
--
Gitblit v1.9.1