From 7e280767092440530d8229bbbb9f89582310d5a8 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 16 六月 2025 15:28:17 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++------
1 files changed, 73 insertions(+), 13 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 ad9a8e7..bf954d2 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -15,6 +15,7 @@
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -93,6 +94,15 @@
@Resource
private OrderPakoutService orderPakOutService;
+
+ @Autowired
+ private InventoryCheckOrderService checkOrderService;
+
+ @Autowired
+ private InventoryCheckOrderDetlService checkOrderDetlService;
+
+ @Resource
+ private OrderDetlPakoutService orderDetlPakoutService;
@Override
@Transactional
@@ -180,6 +190,7 @@
public void startupFullTakeStore(StockOutParam param, Long userId) {
// 鐩爣绔欑偣鐘舵�佹娴�
BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+
// 鑾峰彇搴撲綅鏄庣粏
List<LocDetlDto> locDetlDtos = new ArrayList<>();
for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -199,7 +210,7 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
// 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
- stockOut(staNo, locDetlDtos, null, userId);
+ stockOut(staNo, locDetlDtos, null, userId, null, param.getItemId());
} else {
throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
@@ -288,7 +299,7 @@
@Override
@Transactional
- public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, String checkOrderNo, String itemId) {
Date now = new Date();
// 鍚堝苟鍚岀被椤�
Set<String> locNos = new HashSet<>();
@@ -315,6 +326,15 @@
ioType = dto.isAll() ? 101 : 103;
} else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
ioType = 107;
+ if (Cools.isEmpty(checkOrderNo)) {
+ checkOrderNo = DateUtils.createTimeStamp();
+ InventoryCheckOrder checkOrder = new InventoryCheckOrder();
+ checkOrder.setCreateBy(userId);
+ checkOrder.setStatus("1");
+ checkOrder.setCreateTime(new Date());
+ checkOrder.setOrderNo(checkOrderNo);
+ checkOrderService.insert(checkOrder);
+ }
}
assert ioType != null;
// 鑾峰彇搴撲綅
@@ -351,6 +371,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setPacked(itemId);
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
}
@@ -372,6 +393,22 @@
wrkDetl.setModiUser(userId);
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ if (ioType == 107) {
+ List<InventoryCheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrderNo).eq("loc_no", dto.getLocNo()));
+ if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
+ throw new CoolException("璇ュ簱浣嶇殑鐩樼偣浠诲姟宸茬粡娣诲姞鍒颁簡璇ュ簱浣嶄腑");
+ }
+ InventoryCheckOrderDetl checkOrderDetl = new InventoryCheckOrderDetl();
+ checkOrderDetl.setOrderNo(checkOrderNo);
+ checkOrderDetl.setMatnr(detlDto.getLocDetl().getMatnr());
+ checkOrderDetl.setMaktx(detlDto.getLocDetl().getMaktx());
+ checkOrderDetl.setBatch(detlDto.getLocDetl().getBatch());
+ checkOrderDetl.setLocNo(detlDto.getLocDetl().getLocNo());
+ checkOrderDetl.setAnfme(detlDto.getLocDetl().getAnfme());
+ checkOrderDetl.setIoTime(new Date());
+ checkOrderDetl.setStatus("0");
+ checkOrderDetlService.insert(checkOrderDetl);
}
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
@@ -438,15 +475,28 @@
continue;
}
// OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
- OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(), locDto.getBrand()
, locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
- if (orderDetl == null) {
- orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
+ if (orderDetlPakout == null) {
+ orderDetlPakout = orderDetlPakoutService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null, locDto.getBrand()
, locDto.getStandby1(), locDto.getStandby2(), locDto.getStandby3(), locDto.getBoxType1(), locDto.getBoxType2(), locDto.getBoxType3());
}
+
+ Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>()
+ .eq("loc_no", wrkMast.getSourceLocNo())
+ .eq("matnr", orderDetlPakout.getMatnr());
+ if (!Cools.isEmpty(locDto.getBatch())) {
+ wrapper.eq("batch", locDto.getBatch());
+ }
+ if (!Cools.isEmpty(orderDetlPakout.getSpecs())) {
+ wrapper.eq("specs", orderDetlPakout.getSpecs());
+ }
+
+ LocDetl locDetl = locDetlService.selectOne(wrapper);
+
WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(orderDetl);
+ wrkDetl.sync(orderDetlPakout);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
@@ -457,6 +507,13 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setThreeCode(orderDetlPakout.getId() + "");
+ wrkDetl.setSupp(orderPakout.getCstmrName());
+ wrkDetl.setStockNum(locDetl.getAnfme());//搴撳瓨
+
+ //璁$畻杈呮暟閲�
+ Double weight = MatUtils.calcWeight(wrkDetl.getMatnr(), wrkDetl.getAnfme());
+ wrkDetl.setWeight(weight);
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -465,11 +522,12 @@
// throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
// }
// orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
- OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
- orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
- , locDto.getAnfme());
- OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
+ orderDetlPakoutService.increaseWorkQtyById(orderDetlPakout.getId(), locDto.getAnfme());
+// OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE, orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
+// orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(),
+// orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
+// ,locDto.getAnfme() );
+ OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetlPakout.getOrderId(), 2L, userId);
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
locMast = locMastService.selectById(taskDto.getLocNo());
@@ -704,7 +762,7 @@
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
if (locMast.getLocSts().equals("F")) {
// 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
- stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
+ stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null);
} else {
throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
}
@@ -1407,7 +1465,9 @@
//// stockOutRe(wrkMast, wrkDetls);
// }
// }
-
+ if (wrkMast.getIoType() == 107) {
+ checkOrderDetlService.delete(new EntityWrapper<InventoryCheckOrderDetl>().eq("loc_no", locNo));
+ }
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩鍙栨秷");
wrkMast.setModiUser(userId);
--
Gitblit v1.9.1