8 小时以前 e100852268b6819c6168b25bc6c91a906274d622
feat(mes): 调整OQC检验单客户端权限控制逻辑

- 修改MesQcOqcMapper查询逻辑,允许client_id为空的记录对所有有权限用户可见
- 当permittedClientIds为空时,设置wrapper条件为client_id为null
- 当permittedClientIds不为空时,支持client_id在指定范围或为null的记录
- 移除MesQcOqcSaveReqVO中clientId字段的@NotNull校验注解
- 更新数据传输对象描述,将客户ID标记为可选字段
- 移除前端表单中客户选择字段的必填校验规则
已修改2个文件
10 ■■■■■ 文件已修改
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/oqc/vo/MesQcOqcSaveReqVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    // ========== 物料 ==========
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
@@ -43,9 +43,12 @@
                .orderByDesc(MesQcOqcDO::getId);
        if (permittedClientIds != null) {
            if (CollUtil.isEmpty(permittedClientIds)) {
                return PageResult.empty();
                wrapper.isNull(MesQcOqcDO::getClientId);
            } else {
                // 允许 client_id 为空的记录(未填客户的检验单对所有有权限用户可见)
                wrapper.and(w -> w.in(MesQcOqcDO::getClientId, permittedClientIds)
                        .or().isNull(MesQcOqcDO::getClientId));
            }
            wrapper.in(MesQcOqcDO::getClientId, permittedClientIds);
        }
        return selectPage(reqVO, wrapper);
    }