Merge remote-tracking branch '惠信/qms/develop' into qms/develop
This commit is contained in:
commit
fc491bcac0
|
|
@ -1491,8 +1491,8 @@ public class QmsIssueTicketControllerService {
|
|||
List<QmsPdiTicketMyDetailVO.MeasureVO> permanentMeasures = new ArrayList<>();
|
||||
|
||||
// 查询字典项:临时措施和永久措施的类型ID
|
||||
Long temporaryTypeId = dictionaryItemService.getIdByCode("MeasureType", "TemporaryCorrectiveMeasures");
|
||||
Long permanentTypeId = dictionaryItemService.getIdByCode("MeasureType", "PermanentCorrectiveMeasures");
|
||||
Long temporaryTypeId = dictionaryItemService.getId("工单解决措施", "临时纠正措施");
|
||||
Long permanentTypeId = dictionaryItemService.getId("工单解决措施", "永久纠正措施");
|
||||
|
||||
for (QmsIssueTicketProcess process : processes) {
|
||||
// 提取根本原因
|
||||
|
|
@ -1658,6 +1658,49 @@ public class QmsIssueTicketControllerService {
|
|||
vo.setTemporaryMeasures(temporaryMeasures);
|
||||
vo.setPermanentMeasures(permanentMeasures);
|
||||
|
||||
// 填充处理记录列表(含处理人信息)
|
||||
List<QmsPdiTicketMyDetailVO.ProcessVO> processVOs = new ArrayList<>();
|
||||
for (QmsIssueTicketProcess process : processes) {
|
||||
QmsPdiTicketMyDetailVO.ProcessVO pvo = new QmsPdiTicketMyDetailVO.ProcessVO();
|
||||
pvo.setId(process.getId());
|
||||
pvo.setHandlerUserId(process.getHandlerUserId());
|
||||
pvo.setHandlerUserName(process.getHandlerUserName());
|
||||
pvo.setRootCause(process.getRootCause());
|
||||
pvo.setTaskResultIds(process.getTaskResultIds());
|
||||
pvo.setApprovalStatus(process.getApprovalStatus());
|
||||
pvo.setApprovalOpinion(process.getApprovalOpinion());
|
||||
pvo.setApprovalUserId(process.getApprovalUserId());
|
||||
pvo.setApprovalUserName(process.getApprovalUserName());
|
||||
pvo.setApprovalTime(process.getApprovalTime());
|
||||
pvo.setProcessTime(process.getApprovalTime());
|
||||
pvo.setLeaderApprovalResult(process.getLeaderApprovalResult());
|
||||
pvo.setLeaderApprovalOpinion(process.getLeaderApprovalOpinion());
|
||||
pvo.setLeaderUserId(process.getLeaderUserId());
|
||||
pvo.setLeaderUserName(process.getLeaderUserName());
|
||||
pvo.setLeaderApprovalTime(process.getLeaderApprovalTime());
|
||||
|
||||
// 查询该处理记录的措施列表
|
||||
List<QmsIssueTicketProcessMeasure> processMeasures = issueTicketProcessMeasureService.lambdaQuery()
|
||||
.eq(QmsIssueTicketProcessMeasure::getIssueTicketProcessId, process.getId())
|
||||
.list();
|
||||
List<QmsPdiTicketMyDetailVO.MeasureVO> measureVOs = new ArrayList<>();
|
||||
for (QmsIssueTicketProcessMeasure m : processMeasures) {
|
||||
QmsPdiTicketMyDetailVO.MeasureVO mvo = new QmsPdiTicketMyDetailVO.MeasureVO();
|
||||
mvo.setId(m.getId());
|
||||
mvo.setMeasureTypeId(m.getMeasureTypeId());
|
||||
mvo.setMeasureContent(m.getMeasureContent());
|
||||
mvo.setChargeUser(m.getChargeUser());
|
||||
mvo.setPlanDate(m.getPlanDate());
|
||||
mvo.setConfirmDate(m.getConfirmDate());
|
||||
mvo.setRemark(m.getRemark());
|
||||
measureVOs.add(mvo);
|
||||
}
|
||||
pvo.setMeasures(measureVOs);
|
||||
|
||||
processVOs.add(pvo);
|
||||
}
|
||||
vo.setProcesses(processVOs);
|
||||
|
||||
// 构建相关人员签字(按部门,只返回已审批的)
|
||||
Map<String, QmsPdiTicketMyDetailVO.SignatureInfo> signatures = buildSignatures(processes);
|
||||
vo.setSignatures(signatures);
|
||||
|
|
@ -1973,8 +2016,8 @@ public class QmsIssueTicketControllerService {
|
|||
}
|
||||
|
||||
// 查询纠正措施
|
||||
Long temporaryTypeId = dictionaryItemService.getIdByCode("MeasureType", "TemporaryCorrectiveMeasures");
|
||||
Long permanentTypeId = dictionaryItemService.getIdByCode("MeasureType", "PermanentCorrectiveMeasures");
|
||||
Long temporaryTypeId = dictionaryItemService.getId("工单解决措施", "临时纠正措施");
|
||||
Long permanentTypeId = dictionaryItemService.getId("工单解决措施", "永久纠正措施");
|
||||
|
||||
List<QmsInspectionTicketDetailVO.MeasureVO> temporaryMeasures = new ArrayList<>();
|
||||
List<QmsInspectionTicketDetailVO.MeasureVO> permanentMeasures = new ArrayList<>();
|
||||
|
|
@ -2021,11 +2064,29 @@ public class QmsIssueTicketControllerService {
|
|||
.eq(QmsIssueTicketProcess::getIssueTicketId, id)
|
||||
.list();
|
||||
|
||||
// 判断是否为领导:1.已在process表记录了leaderUserId 2.或当前用户是处理人的部门负责人
|
||||
boolean isLeader = allProcesses.stream()
|
||||
.anyMatch(p -> currentUserId.equals(p.getLeaderUserId()));
|
||||
if (!isLeader) {
|
||||
// 检查当前用户是否为任一处理人的部门负责人
|
||||
for (QmsIssueTicketProcess p : allProcesses) {
|
||||
if (p.getHandlerUserId() == null) continue;
|
||||
UserInterior handlerInterior = userInteriorService.lambdaQuery()
|
||||
.eq(UserInterior::getUserId, p.getHandlerUserId())
|
||||
.one();
|
||||
if (handlerInterior != null && handlerInterior.getDeptId() != null) {
|
||||
Department dept = departmentService.getById(handlerInterior.getDeptId());
|
||||
if (dept != null && currentUserId.equals(dept.getHeadUserId())) {
|
||||
isLeader = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// isEdit:处理人或领导为true
|
||||
boolean isHandler = allProcesses.stream()
|
||||
.anyMatch(p -> currentUserId.equals(p.getHandlerUserId()));
|
||||
boolean isLeader = allProcesses.stream()
|
||||
.anyMatch(p -> currentUserId.equals(p.getLeaderUserId()));
|
||||
vo.setIsEdit(isHandler || isLeader);
|
||||
|
||||
Short status = ticket.getStatus();
|
||||
|
|
@ -2037,7 +2098,7 @@ public class QmsIssueTicketControllerService {
|
|||
// 工单表审批人:isReview=false,isDispatch在处理中到已完成之间
|
||||
vo.setIsReview(false);
|
||||
vo.setIsDispatch(status != null && status == 1);
|
||||
} else if (allProcesses.stream().anyMatch(p -> currentUserId.equals(p.getLeaderUserId()))) {
|
||||
} else if (isLeader) {
|
||||
// 上级领导:isReview=true,isDispatch=false
|
||||
vo.setIsReview(true);
|
||||
vo.setIsDispatch(false);
|
||||
|
|
|
|||
|
|
@ -192,7 +192,10 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
|
||||
// 保存临时措施
|
||||
if (CollectionUtil.isNotEmpty(temporaryMeasures)) {
|
||||
Long tempTypeId = dictionaryItemService.getIdByCode("MeasureType", "TemporaryCorrectiveMeasures");
|
||||
Long tempTypeId = dictionaryItemService.getId("工单解决措施", "临时纠正措施");
|
||||
if (tempTypeId == null) {
|
||||
throw new NflgException(STATE.BusinessError, "字典【工单解决措施-临时纠正措施】不存在");
|
||||
}
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : temporaryMeasures) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
|
|
@ -209,7 +212,10 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
|
||||
// 保存永久措施
|
||||
if (CollectionUtil.isNotEmpty(permanentMeasures)) {
|
||||
Long permTypeId = dictionaryItemService.getIdByCode("MeasureType", "PermanentCorrectiveMeasures");
|
||||
Long permTypeId = dictionaryItemService.getId("工单解决措施", "永久纠正措施");
|
||||
if (permTypeId == null) {
|
||||
throw new NflgException(STATE.BusinessError, "字典【工单解决措施-永久纠正措施】不存在");
|
||||
}
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : permanentMeasures) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
|
|
|
|||
Loading…
Reference in New Issue