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 | 39 +++++++++++++++++++++++++++++++++++----
1 files changed, 35 insertions(+), 4 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 52f6778..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()));
@@ -123,6 +132,11 @@
throw new CoolException("鏃犺鍗曠粍鎵樻椂鐗╂枡ID涓嶈兘涓虹┖锛侊紒");
}
Matnr matnr = matnrMapper.selectById(pakinItem1.getMatnrId());
+ 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());
}
@@ -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())
@@ -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