From 6fa82a1ad7c3ae061ef499f0d0806a16846e122b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 10 十一月 2026 16:55:02 +0800
Subject: [PATCH] feat(mes): 来料检验与不合格退货闭环优化
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ncr/MesQcNcrPurchaseSourceValidator.java | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ncr/MesQcNcrPurchaseSourceValidator.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ncr/MesQcNcrPurchaseSourceValidator.java
index 137b566..088df3e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ncr/MesQcNcrPurchaseSourceValidator.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/ncr/MesQcNcrPurchaseSourceValidator.java
@@ -43,7 +43,7 @@
.eq(MesWmArrivalNoticeLineDO::getId, iqc.getSourceLineId()).last("FOR UPDATE"));
if (notice == null || line == null || !Objects.equals(line.getNoticeId(), notice.getId())
|| !Objects.equals(line.getIqcId(), iqc.getId())
- || !Objects.equals(notice.getStatus(), MesWmArrivalNoticeStatusEnum.PENDING_QC.getStatus())
+ || !isDispositionAllowedNoticeStatus(notice.getStatus())
|| !Objects.equals(line.getItemId(), iqc.getItemId())
|| !Objects.equals(ncr.getItemId(), iqc.getItemId())
|| !samePositive(ncr.getUnqualifiedQuantity(), iqc.getUnqualifiedQuantity())
@@ -52,6 +52,19 @@
return new Source(iqc, notice, line);
}
+ /**
+ * 涓嶅悎鏍煎缃厑璁哥殑鍒拌揣閫氱煡鐘舵�併��
+ *
+ * 鏉ユ枡妫�楠屽畬鎴愭椂锛屽埌璐ч�氱煡浼氬湪鍚屼竴浜嬪姟閲屼粠銆屽緟璐ㄦ銆嶆帹杩涘埌銆屽緟鍏ュ簱銆嶅苟鑷姩鐢熸垚閲囪喘鍏ュ簱鍗�
+ * 锛堝彧鍙栧悎鏍兼暟閲忥級锛岄殢鍚庣‘璁ゅ叆搴撳悗鍙樹负銆屽凡瀹屾垚銆嶃�備笉鍚堟牸閮ㄥ垎鐨勯��璐�/璁╂鐢变笉鍚堟牸鍗曞崟鐙缃紝
+ * 涓嶅啀鍙楅�氱煡鐘舵�侀檺鍒讹紝鍚﹀垯鍗曡閫氱煡锛堟垨鏈�鍚庝竴琛屾楠屽畬鎴愭椂锛夌殑涓嶅悎鏍煎崟灏嗘案杩滄棤娉曞缃��
+ */
+ private boolean isDispositionAllowedNoticeStatus(Integer status) {
+ return Objects.equals(status, MesWmArrivalNoticeStatusEnum.PENDING_QC.getStatus())
+ || Objects.equals(status, MesWmArrivalNoticeStatusEnum.PENDING_RECEIPT.getStatus())
+ || Objects.equals(status, MesWmArrivalNoticeStatusEnum.FINISHED.getStatus());
+ }
+
private boolean samePositive(BigDecimal a, BigDecimal b) {
return a != null && b != null && a.signum() > 0 && a.compareTo(b) == 0;
}
--
Gitblit v1.9.3