云
2 天以前 616a6b2e9a7824da8d11a4e11730fd2f9b615299
fix(qc): 修复巡检记录校验缺少租户隔离问题

- 移除对 PatrolMapper 的直接依赖注入
- 引入 TenantContextHolder 获取当前租户ID
- 使用 JdbcTemplate 替换原有的 Mapper 查询方法
- 在巡检记录查询SQL中增加 tenant_id 条件以实现租户隔离
- 在查询SQL中增加 deleted = 0 条件以过滤已删除数据
- 优化巡检记录不存在时的异常抛出逻辑
已修改1个文件
10 ■■■■■ 文件已修改
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/attachment/MesQcAttachmentController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/qc/attachment/MesQcAttachmentController.java
@@ -2,6 +2,7 @@
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService;
import cn.iocoder.yudao.module.mes.service.qc.ipqc.MesQcIpqcService;
import cn.iocoder.yudao.module.mes.service.qc.oqc.MesQcOqcService;
@@ -31,7 +32,6 @@
    @Resource private MesQcIpqcService ipqcService;
    @Resource private MesQcOqcService oqcService;
    @Resource private MesQcRqcService rqcService;
    @Resource private cn.iocoder.yudao.module.mes.controller.admin.qc.patrol.PatrolMapper patrolMapper;
    @Resource private StorageAttachmentApi storageApi;
    @Resource private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate;
@@ -109,7 +109,13 @@
            case "ipqc" -> ipqcService.validateIpqcExists(id).getStatus();
            case "oqc" -> oqcService.validateOqcExists(id).getStatus();
            case "rqc" -> rqcService.validateRqcExists(id).getStatus();
            case "patrol" -> { if (patrolMapper.selectById(id) == null) throw new ServiceException(400, "巡检记录不存在"); yield 0; }
            case "patrol" -> {
                var ids = jdbcTemplate.queryForList(
                        "SELECT id FROM mes_qc_patrol WHERE id = ? AND tenant_id = ? AND deleted = 0",
                        Long.class, id, TenantContextHolder.getRequiredTenantId());
                if (ids.isEmpty()) throw new ServiceException(400, "巡检记录不存在");
                yield 0;
            }
            default -> throw new ServiceException(400, "质检类型无效");
        };
    }