From d8cbfdcac8292522dd3c39e5cafdf19a43d15a5d Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 30 四月 2026 11:21:08 +0800
Subject: [PATCH] 强制组托单号必填
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++------
1 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index 5ff3493..c469ace 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -49,6 +49,8 @@
private MatnrMapper matnrMapper;
@Autowired
private ConfigService configService;
+ @Autowired
+ private CusBarcodeSyncMatnrService cusBarcodeSyncMatnrService;
/**
@@ -67,6 +69,13 @@
}
if (StringUtils.isBlank(waitPakin.getBarcode())) {
throw new CoolException("鍙傛暟閿欒锛氭枡绠辩爜涓虹┖锛侊紒");
+ }
+ if (isPdaPakinAsnRequired()) {
+ for (PakinItem it : waitPakin.getItems()) {
+ if (StringUtils.isBlank(it.getAsnCode())) {
+ throw new CoolException("璇峰厛鎵弿WMS鍗曞彿");
+ }
+ }
}
WaitPakin pakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
.eq(WaitPakin::getBarcode, waitPakin.getBarcode()));
@@ -126,6 +135,11 @@
if (matnr == null) {
throw new CoolException("鐗╂枡淇℃伅涓嶅瓨鍦紝鐗╂枡ID锛�" + pakinItem1.getMatnrId());
}
+ cusBarcodeSyncMatnrService.syncFromMatnrCodes(Collections.singletonList(matnr.getCode()), userId);
+ matnr = matnrMapper.selectById(pakinItem1.getMatnrId());
+ if (matnr == null) {
+ throw new CoolException("鐗╂枡淇℃伅涓嶅瓨鍦紝鐗╂枡ID锛�" + pakinItem1.getMatnrId());
+ }
if (pakinItem1.getReceiptQty() == null || pakinItem1.getReceiptQty().compareTo(0.0) <= 0) {
throw new CoolException("缁勬墭鏁伴噺涓嶈兘灏忎簬绛変簬闆讹紒锛�");
}
@@ -178,7 +192,7 @@
.setMatnrCode(areaItem.getMatnrCode());
WkOrder order = asnOrderService.getById(areaItem.getAsnId());
if (order != null) {
- pakinItem.setType(order.getType()).setWkType(StringUtils.isNotBlank(order.getWkType()) ? Short.parseShort(order.getWkType()) : null);
+ pakinItem.setType(order.getType()).setWkType(order.getWkType());
}
if (pakinItem1.getReceiptQty() == null || pakinItem1.getReceiptQty().compareTo(0.0) <= 0) {
throw new CoolException("缁勬墭鏁伴噺涓嶈兘灏忎簬绛変簬闆讹紒锛�");
@@ -236,7 +250,11 @@
for (PakinItem pakinItem1 : waitPakin.getItems()) {
WaitPakinItem pakinItem = new WaitPakinItem();
- if (StringUtils.isBlank(pakinItem1.getAsnCode())) {
+ // 鍘熼�昏緫锛歩f (StringUtils.isBlank(pakinItem1.getAsnCode())) { ... } else { 鎸夊崟鎹檺鍒� ... }
+ // 鍙湁鍗曟嵁鍙峰瓨鍦ㄤ笖鑳芥煡鍒板崟鎹椂鎵嶆寜鍗曟嵁闄愬埗
+ WkOrder bindOrder = StringUtils.isBlank(pakinItem1.getAsnCode()) ? null :
+ asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, pakinItem1.getAsnCode()));
+ if (bindOrder == null) {
if (Objects.isNull(pakinItem1.getMatnrId())) {
throw new CoolException("鐗╂枡ID涓嶈兘涓虹┖锛侊紒");
}
@@ -279,9 +297,9 @@
if (null == orderItem) {
throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
}
- WkOrder order = asnOrderService.getById(orderItem.getOrderId());
- if (null == order) {
- throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+ WkOrder order = bindOrder;
+ if (orderItem.getOrderId() == null || !orderItem.getOrderId().equals(order.getId())) {
+ throw new CoolException("鐗╂枡涓嶅湪褰撳墠鍗曟嵁涓紝涓嶈兘鎸夊崟鎹粍鎵橈紒锛�");
}
pakinItem.setAnfme(QuantityUtils.roundToScale(orderItem.getAnfme()))
.setPakinId(waitPakin1.getId())
@@ -303,7 +321,7 @@
.setCreateBy(userId)
.setMatnrCode(orderItem.getMatnrCode());
pakinItem.setType(null == order.getType() ? null : order.getType())
- .setWkType(StringUtils.isNotBlank(order.getWkType()) ? Short.parseShort(order.getWkType()) : null);
+ .setWkType(order.getWkType());
for (PakinItem waitPakinItem : waitPakin.getItems()) {
if (waitPakinItem.getId().equals(orderItem.getId())) {
@@ -497,4 +515,17 @@
return R.ok("Delete Success").add(pakinIds);
}
+
+ private boolean isPdaPakinAsnRequired() {
+ Config c = configService.getOne(new LambdaQueryWrapper<Config>()
+ .eq(Config::getFlag, GlobalConfigCode.PDA_PAKIN_ASN_REQUIRED)
+ .eq(Config::getDeleted, 0)
+ .last("LIMIT 1"));
+ boolean required = true;
+ if (c != null && StringUtils.isNotBlank(c.getVal())) {
+ String v = c.getVal().trim();
+ required = Boolean.parseBoolean(v) || "1".equals(v);
+ }
+ return required;
+ }
}
--
Gitblit v1.9.1