Merge remote-tracking branch '惠信/qms/develop' into qms/develop
This commit is contained in:
commit
45201556c6
|
|
@ -3082,6 +3082,7 @@ public class QmsIssueTicketControllerService {
|
|||
|
||||
for (QmsIssueTicketProcessMeasure measure : measures) {
|
||||
QmsInspectionTicketDetailVO.MeasureVO measureVO = new QmsInspectionTicketDetailVO.MeasureVO();
|
||||
measureVO.setId(measure.getId());
|
||||
measureVO.setMeasureTypeId(measure.getMeasureTypeId());
|
||||
measureVO.setMeasureContent(measure.getMeasureContent());
|
||||
measureVO.setChargeUser(measure.getChargeUser());
|
||||
|
|
@ -3155,21 +3156,11 @@ public class QmsIssueTicketControllerService {
|
|||
vo.setIsEdit(false);
|
||||
vo.setIsShut(false);
|
||||
}
|
||||
// 处理人权限:拿到工单时有编辑和审批权限,有了审批状态后失去审批权限,驳回时失去编辑权限
|
||||
// 处理人权限:未提交或领导驳回重置后可编辑,处理人提交后关闭编辑权限
|
||||
else if (isHandler) {
|
||||
Short handlerApprovalStatus = myProcess.getApprovalStatus();
|
||||
vo.setIsReview(handlerApprovalStatus == null);
|
||||
if (handlerApprovalStatus != null && handlerApprovalStatus == 1) {
|
||||
// 驳回:失去编辑权限
|
||||
vo.setIsEdit(false);
|
||||
} else if (handlerApprovalStatus != null && handlerApprovalStatus == 0) {
|
||||
// 通过:按之前逻辑(领导未审批时可编辑)
|
||||
boolean leaderNotApproved = myProcess.getLeaderApprovalResult() == null;
|
||||
vo.setIsEdit(leaderNotApproved);
|
||||
} else {
|
||||
// 未提交:有编辑权限
|
||||
vo.setIsEdit(true);
|
||||
}
|
||||
vo.setIsEdit(handlerApprovalStatus == null);
|
||||
vo.setIsDispatch(false);
|
||||
vo.setIsShut(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,6 +211,8 @@ public class QmsIssueTicketProcessControllerService {
|
|||
.set(QmsIssueTicketProcess::getApprovalTime, now)
|
||||
.update();
|
||||
|
||||
issueTicketToDoService.processed(ticket.getId());
|
||||
|
||||
// 根据审批状态推送待办
|
||||
if (request.getApprovalStatus() != null && request.getApprovalStatus() == 1) {
|
||||
// 驳回:推送待办给负责人(工单表的 approvalUserId)
|
||||
|
|
@ -283,6 +285,8 @@ public class QmsIssueTicketProcessControllerService {
|
|||
.set(QmsIssueTicketProcess::getLeaderApprovalTime, now)
|
||||
.update();
|
||||
|
||||
issueTicketToDoService.processed(ticket.getId());
|
||||
|
||||
Short leaderApprovalResult = request.getApprovalStatus();
|
||||
|
||||
if (leaderApprovalResult == 1) {
|
||||
|
|
@ -383,6 +387,8 @@ public class QmsIssueTicketProcessControllerService {
|
|||
.set(QmsIssueTicketProcess::getLeaderApprovalTime, null)
|
||||
.update();
|
||||
|
||||
issueTicketToDoService.processed(ticket.getId());
|
||||
|
||||
// 4. 根据审批状态推送待办
|
||||
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "RejectedPDIDefectiveProductHandling");
|
||||
|
||||
|
|
@ -417,8 +423,6 @@ public class QmsIssueTicketProcessControllerService {
|
|||
issueTicketToDoService.save(todoItem);
|
||||
}
|
||||
}
|
||||
|
||||
issueTicketToDoService.processed(ticket.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -437,6 +441,8 @@ public class QmsIssueTicketProcessControllerService {
|
|||
.set(QmsIssueTicketProcess::getApprovalTime, now)
|
||||
.update();
|
||||
|
||||
issueTicketToDoService.processed(ticket.getId());
|
||||
|
||||
// 3. 根据审批状态处理
|
||||
if (request.getApprovalStatus() != null && request.getApprovalStatus() == 1) {
|
||||
// 驳回:推送给工单创建人
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
throw new NflgException(STATE.BusinessError, "字典【工单解决措施-临时纠正措施】不存在");
|
||||
}
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : temporaryMeasures) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
if (!shouldSaveMeasure(item, currentUserName)) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
.setIssueTicketProcessId(processId)
|
||||
.setMeasureTypeId(tempTypeId)
|
||||
|
|
@ -237,7 +237,7 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
throw new NflgException(STATE.BusinessError, "字典【工单解决措施-永久纠正措施】不存在");
|
||||
}
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : permanentMeasures) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
if (!shouldSaveMeasure(item, currentUserName)) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
.setIssueTicketProcessId(processId)
|
||||
.setMeasureTypeId(permTypeId)
|
||||
|
|
@ -250,4 +250,14 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean shouldSaveMeasure(QmsIssueTicketProcessDraftQO.MeasureItem item, String currentUserName) {
|
||||
if (item == null || StrUtil.isBlank(item.getMeasureContent())) {
|
||||
return false;
|
||||
}
|
||||
if (StrUtil.isBlank(item.getChargeUser())) {
|
||||
throw new NflgException(STATE.BusinessError, "措施负责人不能为空");
|
||||
}
|
||||
return StrUtil.equals(item.getChargeUser(), currentUserName);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,11 @@ public class QmsIssueTicketProcessDraftQO {
|
|||
*/
|
||||
private String measureContent;
|
||||
|
||||
/**
|
||||
* 负责人
|
||||
*/
|
||||
private String chargeUser;
|
||||
|
||||
/**
|
||||
* 计划日期
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -214,6 +214,11 @@ public class QmsInspectionTicketDetailVO {
|
|||
@Data
|
||||
public static class MeasureVO {
|
||||
|
||||
/**
|
||||
* 处理方案明细ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 措施类型ID,关联字典项表
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -13,10 +13,12 @@ import com.nflg.wms.common.util.UserUtil;
|
|||
import com.nflg.wms.repository.entity.FileUploadRecord;
|
||||
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
|
||||
import com.nflg.wms.repository.entity.QmsIssueTicketToDo;
|
||||
import com.nflg.wms.repository.mapper.QmsIssueTicketMapper;
|
||||
import com.nflg.wms.repository.service.IFileUploadRecordService;
|
||||
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
|
||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||
import com.nflg.wms.repository.service.IQmsIssueTicketToDoService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -35,6 +37,7 @@ public class QmsIssueTicketServiceImpl
|
|||
|
||||
private final IFileUploadRecordService fileUploadRecordService;
|
||||
private final IQmsIssueTicketProcessService issueTicketProcessService;
|
||||
private final IQmsIssueTicketToDoService issueTicketToDoService;
|
||||
|
||||
@Override
|
||||
public PageData<QmsIssueTicketVO> search(QmsIssueTicketSearchQO request) {
|
||||
|
|
@ -51,6 +54,11 @@ public class QmsIssueTicketServiceImpl
|
|||
.list()
|
||||
.stream().map(QmsIssueTicketProcess::getIssueTicketId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<Long> todoTicketIds = issueTicketToDoService.lambdaQuery()
|
||||
.eq(QmsIssueTicketToDo::getHandlerUserId, currentUserId)
|
||||
.list()
|
||||
.stream().map(QmsIssueTicketToDo::getTicketId).distinct().collect(Collectors.toList());
|
||||
|
||||
var query = lambdaQuery()
|
||||
// 数据权限:只能看到与当前登录人相关的工单
|
||||
.and(w -> {
|
||||
|
|
@ -59,6 +67,9 @@ public class QmsIssueTicketServiceImpl
|
|||
if (CollectionUtil.isNotEmpty(processTicketIds)) {
|
||||
w.or().in(QmsIssueTicket::getId, processTicketIds);
|
||||
}
|
||||
if (CollectionUtil.isNotEmpty(todoTicketIds)) {
|
||||
w.or().in(QmsIssueTicket::getId, todoTicketIds);
|
||||
}
|
||||
})
|
||||
.like(StrUtil.isNotBlank(request.getTicketNo()), QmsIssueTicket::getTicketNo, request.getTicketNo())
|
||||
.like(StrUtil.isNotBlank(request.getTicketTitle()), QmsIssueTicket::getTicketTitle, request.getTicketTitle())
|
||||
|
|
|
|||
Loading…
Reference in New Issue