refactor(qms): 优化车间质检结果处理逻辑
- 删除了工单异步处理及推送相关代码,简化工单保存流程 - 调整整体判定结果保存时机,确保先校验不合格检测项 - 新增校验逻辑,防止所有检测项合格但整体判定为不合格 - 修改不合格检测项查询条件,排除装车前检测项 - 优化任务状态设置顺序及注释说明 - 规范不合格项转换为VO并返回结果的代码位置
This commit is contained in:
parent
e639e633e0
commit
8701e0fb3d
|
|
@ -380,22 +380,6 @@ public class QmsIssueTicketControllerService {
|
||||||
.setUpdateTime(now);
|
.setUpdateTime(now);
|
||||||
|
|
||||||
issueTicketService.save(entity);
|
issueTicketService.save(entity);
|
||||||
|
|
||||||
// 按处理人分组,异步新增工单处理记录并推送待办
|
|
||||||
Map<Long, List<Long>> handlerToResultsMap = request.getHandlers().stream()
|
|
||||||
.collect(Collectors.groupingBy(
|
|
||||||
QmsIssueTicketPdiAddQO.HandlerItem::getHandlerUserId,
|
|
||||||
Collectors.mapping(QmsIssueTicketPdiAddQO.HandlerItem::getTaskResultId, Collectors.toList())
|
|
||||||
));
|
|
||||||
|
|
||||||
for (Map.Entry<Long, List<Long>> entry : handlerToResultsMap.entrySet()) {
|
|
||||||
issueTicketProcessControllerService.addAsync(
|
|
||||||
entity.getId(),
|
|
||||||
entry.getKey(),
|
|
||||||
entry.getValue(),
|
|
||||||
ticketNo
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -214,22 +214,27 @@ public class QmsPdiInspectionResultsControllerService {
|
||||||
throw new NflgException(STATE.BusinessError, "还有" + unfilledImages + "项装车前检测未上传图片,无法提交");
|
throw new NflgException(STATE.BusinessError, "还有" + unfilledImages + "项装车前检测未上传图片,无法提交");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 将整体判定结果存入 task_record
|
// 4. 查询不合格检测项(type=0/1/3,装车前不计入)
|
||||||
boolean overallResult = request.getOverallResult() != null && request.getOverallResult();
|
|
||||||
taskRecordService.lambdaUpdate()
|
|
||||||
.eq(QmsPdiTaskRecord::getId, taskRecord.getId())
|
|
||||||
.set(QmsPdiTaskRecord::getInspectionInspection, overallResult)
|
|
||||||
.update();
|
|
||||||
|
|
||||||
// 5. 查询不合格检测项(type=0/1/3)
|
|
||||||
List<QmsPdiInspectionResults> failedItems = inspectionResultsService.lambdaQuery()
|
List<QmsPdiInspectionResults> failedItems = inspectionResultsService.lambdaQuery()
|
||||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||||
.ne(QmsPdiInspectionResults::getInspectionItemType, 2)
|
.ne(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||||
.eq(QmsPdiInspectionResults::getInspectionItemResults, false)
|
.eq(QmsPdiInspectionResults::getInspectionItemResults, false)
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
// 6. 根据整体判定+检测项结果设置状态:有不合格则=3(待流转),全合格则=2(已完成)
|
// 5. 校验:如果所有检测项都合格,总体判定不能为不合格
|
||||||
boolean hasDefect = !overallResult || !failedItems.isEmpty();
|
boolean hasDefect = !failedItems.isEmpty();
|
||||||
|
if (!hasDefect && !request.getOverallResult()) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "所有检测项均为合格,总体判定不能为不合格");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6. 将整体判定结果存入 task_record
|
||||||
|
boolean overallResult = request.getOverallResult() != null && request.getOverallResult();
|
||||||
|
taskRecordService.lambdaUpdate()
|
||||||
|
.eq(QmsPdiTaskRecord::getId, taskRecord.getId())
|
||||||
|
.set(QmsPdiTaskRecord::getInspectionInspection, overallResult)
|
||||||
|
.update();
|
||||||
|
|
||||||
|
// 7. 根据总体判定+检测项结果设置状态:有不合格则=3(待流转),全合格则=2(已完成)
|
||||||
|
|
||||||
// 校验 overdue 字段:无值时根据完成时间与要求完成时间比较设置,有值则保持原值
|
// 校验 overdue 字段:无值时根据完成时间与要求完成时间比较设置,有值则保持原值
|
||||||
Boolean overdueValue = taskRecord.getOverdue();
|
Boolean overdueValue = taskRecord.getOverdue();
|
||||||
|
|
@ -245,7 +250,7 @@ public class QmsPdiInspectionResultsControllerService {
|
||||||
.set(QmsPdiTaskRecord::getInspectionEnable, hasDefect ? 3 : 2)
|
.set(QmsPdiTaskRecord::getInspectionEnable, hasDefect ? 3 : 2)
|
||||||
.update();
|
.update();
|
||||||
|
|
||||||
// 7. 返回不合格项(转换为VO,图片改为List格式)
|
// 8. 返回不合格项(转换为VO,图片改为List格式)
|
||||||
return buildInspectionResultVOList(failedItems);
|
return buildInspectionResultVOList(failedItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue