From 29237e8dd94c4d3cdfb0eb48bca0de7dc68d768e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 11:27:55 +0800
Subject: [PATCH] feat(mes): 出货检验单客户改为选填,未关联客户的单据不受客户数据权限限制
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcImportExcelVO.java | 2 +-
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java | 2 +-
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java | 3 +--
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java | 8 ++++++--
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java | 10 +++++++---
5 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcImportExcelVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcImportExcelVO.java
index fd13714..5d0555f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcImportExcelVO.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcImportExcelVO.java
@@ -37,7 +37,7 @@
private String itemCode;
@ExcelProperty("瀹㈡埛鍚嶇О")
- @Schema(description = "瀹㈡埛鍚嶇О锛岄渶涓� CRM 瀹㈡埛绠$悊涓殑鍚嶇О涓�鑷�", requiredMode = Schema.RequiredMode.REQUIRED, example = "绀轰緥瀹㈡埛鏈夐檺鍏徃")
+ @Schema(description = "瀹㈡埛鍚嶇О锛岄�夊~锛涘~鍐欐椂闇�涓� CRM 瀹㈡埛绠$悊涓殑鍚嶇О涓�鑷�", example = "绀轰緥瀹㈡埛鏈夐檺鍏徃")
private String clientName;
@ExcelProperty("鎵规鍙�")
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java
index c720ae8..c6514dd 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java
@@ -37,8 +37,7 @@
// ========== 瀹㈡埛 ==========
- @Schema(description = "瀹㈡埛 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
- @NotNull(message = "瀹㈡埛涓嶈兘涓虹┖")
+ @Schema(description = "瀹㈡埛 ID锛屽彲涓虹┖锛氫笉鍏宠仈瀹㈡埛鐨勫嚭璐ф楠屽崟鍙仛鍐呴儴鍑鸿揣璁板綍", example = "10")
private Long clientId;
// ========== 鐗╂枡 ==========
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
index 8674163..f1791f3 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
@@ -43,10 +43,13 @@
.betweenIfPresent(MesQcOqcDO::getInspectDate, reqVO.getInspectDate())
.orderByDesc(MesQcOqcDO::getId);
if (permittedClientIds != null) {
+ // 瀹㈡埛闈炲繀濉細鏈叧鑱斿鎴风殑鍑鸿揣妫�楠屽崟涓嶅睘浜庝换浣曞鎴凤紝涓嶅彈瀹㈡埛鏁版嵁鏉冮檺闄愬埗锛屽缁堝彲瑙�
if (CollUtil.isEmpty(permittedClientIds)) {
- return PageResult.empty();
+ wrapper.isNull(MesQcOqcDO::getClientId);
+ } else {
+ wrapper.and(w -> w.in(MesQcOqcDO::getClientId, permittedClientIds)
+ .or().isNull(MesQcOqcDO::getClientId));
}
- wrapper.in(MesQcOqcDO::getClientId, permittedClientIds);
}
return selectPage(reqVO, wrapper);
}
@@ -62,7 +65,8 @@
LocalDateTime outDate) {
return selectList(new LambdaQueryWrapperX<MesQcOqcDO>()
.eq(MesQcOqcDO::getItemId, itemId)
- .eq(MesQcOqcDO::getClientId, clientId)
+ .eq(clientId != null, MesQcOqcDO::getClientId, clientId)
+ .isNull(clientId == null, MesQcOqcDO::getClientId)
.eq(batchCode != null, MesQcOqcDO::getBatchCode, batchCode)
.isNull(batchCode == null, MesQcOqcDO::getBatchCode)
.eq(MesQcOqcDO::getOutDate, outDate)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
index c73f087..1b1396a 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
@@ -174,11 +174,11 @@
}
/**
- * 瑙f瀽瀹㈡埛缂栧彿锛屽熀浜庡鎴峰悕绉�
+ * 瑙f瀽瀹㈡埛缂栧彿锛屽熀浜庡鎴峰悕绉帮紙閫夊~锛氬鎴峰悕绉扮暀绌烘椂杩斿洖 null锛岃〃绀鸿妫�楠屽崟涓嶅叧鑱斿鎴凤級
*/
public Long resolveClientId(String clientName) {
if (StrUtil.isBlank(clientName)) {
- throw new IllegalArgumentException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖锛氳濉啓妯℃澘涓琛岀殑銆屽鎴峰悕绉般�嶅垪");
+ return null;
}
if (customerNameMap == null) {
customerNameMap = new HashMap<>();
@@ -205,6 +205,10 @@
* 鍑鸿揣妫�楠屽崟鍒楄〃鎸夊鎴锋暟鎹潈闄愯繃婊わ紝鏉冮檺澶栫殑瀹㈡埛瀵煎叆鍚庢湰浜哄湪鍒楄〃涓湅涓嶅埌璇ュ崟鎹紝鍥犳鎻愬墠鎷︽埅銆�
*/
public void validateClientPermission(Long clientId, String clientName) {
+ // 瀹㈡埛閫夊~锛氭湭濉啓瀹㈡埛鐨勬楠屽崟涓嶅睘浜庝换浣曞鎴凤紝涓嶅彈瀹㈡埛鏁版嵁鏉冮檺闄愬埗
+ if (clientId == null) {
+ return;
+ }
if (!clientPermissionLoaded) {
List<Long> permittedIds = crmCustomerApi.getPermittedCustomerIds();
permittedClientIds = permittedIds == null ? null : new HashSet<>(permittedIds);
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
index 52f4a8b..d48d74e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
@@ -528,7 +528,7 @@
reqVO.setName(row.getName().trim());
reqVO.setItemId(qcImportHelper.resolveItemId(row.getItemCode()));
Long clientId = qcImportHelper.resolveClientId(row.getClientName());
- qcImportHelper.validateClientPermission(clientId, row.getClientName().trim());
+ qcImportHelper.validateClientPermission(clientId, StrUtil.trimToNull(row.getClientName()));
reqVO.setClientId(clientId);
reqVO.setBatchCode(StrUtil.trimToNull(row.getBatchCode()));
reqVO.setTemplateId(qcImportHelper.resolveTemplateId(row.getTemplateName()));
--
Gitblit v1.9.3