pqc工单修改
This commit is contained in:
parent
92c6a2e564
commit
ed4e0355af
|
|
@ -40,6 +40,12 @@ public class QmsPqcTaskRecordControllerService {
|
|||
@Resource
|
||||
private IQmsPqcInspectionRuleService pqcInspectionRuleService;
|
||||
|
||||
@Resource
|
||||
private IQmsInspectorModelItemService inspectorModelItemService;
|
||||
|
||||
@Resource
|
||||
private IQmsQualityInspectorService qualityInspectorService;
|
||||
|
||||
@Resource
|
||||
private IQmsPqcInspectionPointService pqcInspectionPointService;
|
||||
|
||||
|
|
@ -339,6 +345,7 @@ public class QmsPqcTaskRecordControllerService {
|
|||
|
||||
if (Boolean.TRUE.equals(request.getIsReview())) {
|
||||
queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 3)
|
||||
.eq(QmsPqcTaskRecord::getReviewerId, UserUtil.getUserId())
|
||||
.orderByDesc(QmsPqcTaskRecord::getCreateTime);
|
||||
} else if (Objects.equals(request.getType(), 1)) {
|
||||
queryWrapper.eq(QmsPqcTaskRecord::getStatus, (short) 0)
|
||||
|
|
@ -346,6 +353,7 @@ public class QmsPqcTaskRecordControllerService {
|
|||
.orderByDesc(QmsPqcTaskRecord::getCreateTime);
|
||||
} else if (Objects.equals(request.getType(), 0)) {
|
||||
queryWrapper.in(QmsPqcTaskRecord::getStatus, (short) 1, (short) 2)
|
||||
.eq(QmsPqcTaskRecord::getReviewerId, UserUtil.getUserId())
|
||||
.orderByAsc(QmsPqcTaskRecord::getStatus)
|
||||
.orderByDesc(QmsPqcTaskRecord::getCreateTime);
|
||||
} else {
|
||||
|
|
@ -1019,6 +1027,9 @@ public class QmsPqcTaskRecordControllerService {
|
|||
taskRecord.setSelfTesterId(currentUserId);
|
||||
taskRecord.setSelfTesterName(currentUserName);
|
||||
}
|
||||
User reviewer = resolvePqcReviewerUser(taskRecord.getModelNo());
|
||||
taskRecord.setReviewerId(reviewer.getId());
|
||||
taskRecord.setReviewerName(reviewer.getUserName());
|
||||
// 自检提交,状态改为1(待复核)
|
||||
taskRecord.setStatus((short) 1);
|
||||
} else {
|
||||
|
|
@ -1031,6 +1042,11 @@ public class QmsPqcTaskRecordControllerService {
|
|||
}
|
||||
|
||||
pqcTaskRecordService.updateById(taskRecord);
|
||||
if (!hasReviewContent) {
|
||||
sendPqcReviewTodoMessage(taskRecord, currentUserId, currentUserName, now);
|
||||
} else {
|
||||
markPqcReviewTodoDone(taskRecord.getId(), taskRecord.getReviewerId(), currentUserId, currentUserName, now);
|
||||
}
|
||||
// 6. 同步生成工单;仅当任务总体不合格时才额外生成重检任务
|
||||
Map<Long, Long> detailIdMap = getTaskDetailIdMap(taskRecord.getId());
|
||||
List<QmsPqcUnqualifiedItemVO> unqualifiedItems = buildUnqualifiedItems(request, detailIdMap);
|
||||
|
|
@ -1623,17 +1639,60 @@ public class QmsPqcTaskRecordControllerService {
|
|||
.setSourceTypeId(sourceTypeId)
|
||||
.setSourceId(sourceId)
|
||||
.setIsRead(false)
|
||||
.setCreateUserId(createUserId)
|
||||
.setCreateUserName(createUserName)
|
||||
.setCreateUserId(handlerUserId)
|
||||
.setCreateUserName(handlerUserName)
|
||||
.setCreateTime(now)
|
||||
.setUpdateUserId(createUserId)
|
||||
.setUpdateUserName(createUserName)
|
||||
.setUpdateTime(now);
|
||||
|
||||
// 通过消息服务发送
|
||||
sendMessageServices.forEach(service -> service.sendSystemMessage(todoItem));
|
||||
}
|
||||
|
||||
private User resolvePqcReviewerUser(String modelNo) {
|
||||
QmsInspectorModelItem modelItem = inspectorModelItemService.lambdaQuery()
|
||||
.eq(QmsInspectorModelItem::getModelNo, modelNo)
|
||||
.last("LIMIT 1")
|
||||
.one();
|
||||
VUtil.trueThrowBusinessError(modelItem == null).throwMessage("机型未绑定PQC复核人");
|
||||
|
||||
QmsQualityInspector inspector = qualityInspectorService.getById(modelItem.getInspectorId());
|
||||
VUtil.trueThrowBusinessError(inspector == null).throwMessage("PQC复核人不存在");
|
||||
VUtil.trueThrowBusinessError(!Objects.equals(inspector.getInspectionType(), 2)).throwMessage("复核人不是PQC类型");
|
||||
VUtil.trueThrowBusinessError(!Boolean.TRUE.equals(inspector.getEnable())).throwMessage("PQC复核人已禁用");
|
||||
|
||||
QmsQualityInspector actualInspector = inspector;
|
||||
if (inspector.getChangeUserId() != null) {
|
||||
actualInspector = qualityInspectorService.getById(inspector.getChangeUserId());
|
||||
}
|
||||
|
||||
User reviewer = actualInspector == null ? null : userService.getById(actualInspector.getUserId());
|
||||
VUtil.trueThrowBusinessError(reviewer == null).throwMessage("实际复核人用户不存在");
|
||||
return reviewer;
|
||||
}
|
||||
|
||||
private void sendPqcReviewTodoMessage(QmsPqcTaskRecord taskRecord, Long updateUserId, String updateUserName, LocalDateTime now) {
|
||||
Long reviewTypeId = dictionaryItemService.getIdByCode("MessageType", "PQCReviewTask");
|
||||
VUtil.trueThrowBusinessError(reviewTypeId == null).throwMessage("消息类型PQCReviewTask不存在");
|
||||
sendTodoMessage(taskRecord.getTaskNo(), taskRecord.getReviewerId(), taskRecord.getReviewerName(),
|
||||
taskRecord.getId(), reviewTypeId, updateUserId, updateUserName, now);
|
||||
}
|
||||
|
||||
private void markPqcReviewTodoDone(Long taskId, Long reviewerId, Long updateUserId, String updateUserName, LocalDateTime now) {
|
||||
Long reviewTypeId = dictionaryItemService.getIdByCode("MessageType", "PQCReviewTask");
|
||||
VUtil.trueThrowBusinessError(reviewTypeId == null).throwMessage("消息类型PQCReviewTask不存在");
|
||||
todoItemService.lambdaUpdate()
|
||||
.set(QmsTodoItem::getIsRead, true)
|
||||
.set(QmsTodoItem::getUpdateUserId, updateUserId)
|
||||
.set(QmsTodoItem::getUpdateUserName, updateUserName)
|
||||
.set(QmsTodoItem::getUpdateTime, now)
|
||||
.eq(QmsTodoItem::getSourceTypeId, reviewTypeId)
|
||||
.eq(QmsTodoItem::getSourceId, taskId)
|
||||
.eq(QmsTodoItem::getCreateUserId, reviewerId)
|
||||
.eq(QmsTodoItem::getIsRead, false)
|
||||
.update();
|
||||
}
|
||||
|
||||
private String buildStepKey(QmsPqcInspectionPoint point) {
|
||||
String stepName = StrUtil.blankToDefault(point.getStepName(), "");
|
||||
String stepDicItemId = point.getStepDicItemId() == null ? "" : point.getStepDicItemId().toString();
|
||||
|
|
|
|||
Loading…
Reference in New Issue