fix(inspection): 修复来料检验任务中二维码验证逻辑

- 添加了对物料唯一编号不为空的条件判断
- 新增二维码有效性验证功能
- 保留原有的物料重复检验检查逻辑
- 确保只有在物料唯一编号存在时才执行验证流程
This commit is contained in:
曹鹏飞 2026-06-09 08:46:04 +08:00
parent c72ca41728
commit e5aff5af5b
1 changed files with 12 additions and 5 deletions

View File

@ -997,11 +997,18 @@ public class IncomingInspectionTaskControllerService {
QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId()); QmsIncomingInspectionTask task = incomingInspectionTaskService.getById(request.getTaskId());
VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在");
VUtil.trueThrowBusinessError(task.getInspectionStatus() == 2).throwMessage("该任务已完成"); VUtil.trueThrowBusinessError(task.getInspectionStatus() == 2).throwMessage("该任务已完成");
VUtil.trueThrowBusinessError(incomingInspectionTaskRecordService.lambdaQuery() if(StrUtil.isNotBlank(request.getMaterialUniqueNo())){
.eq(QmsIncomingInspectionTaskRecord::getTaskId, request.getTaskId()) VUtil.trueThrowBusinessError(!incomingInspectionTaskQrService.lambdaQuery()
.eq(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, request.getMaterialUniqueNo()) .eq(QmsIncomingInspectionTaskQr::getTaskId, request.getTaskId())
.exists() .eq(QmsIncomingInspectionTaskQr::getMaterialQrCode, request.getMaterialUniqueNo())
).throwMessage("该物料已检验过"); .exists()
).throwMessage("该二维码无效");
VUtil.trueThrowBusinessError(incomingInspectionTaskRecordService.lambdaQuery()
.eq(QmsIncomingInspectionTaskRecord::getTaskId, request.getTaskId())
.eq(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, request.getMaterialUniqueNo())
.exists()
).throwMessage("该物料已检验过");
}
Integer inspectedQty = incomingInspectionTaskService.getInspectedQty(task.getId()); Integer inspectedQty = incomingInspectionTaskService.getInspectedQty(task.getId());
VUtil.trueThrowBusinessError(request.getInspectionQty() > (task.getDetectionQty() - inspectedQty)) VUtil.trueThrowBusinessError(request.getInspectionQty() > (task.getDetectionQty() - inspectedQty))
.throwMessage("超出总检验数量"); .throwMessage("超出总检验数量");