巡检任务查看修改

This commit is contained in:
yf001217 2026-06-14 15:33:05 +08:00
parent 5fcfb12957
commit e10fb0bf1f
6 changed files with 44 additions and 16 deletions

View File

@ -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);
}

View File

@ -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) {
// 驳回推送给工单创建人

View File

@ -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);
}
}

View File

@ -62,6 +62,11 @@ public class QmsIssueTicketProcessDraftQO {
*/
private String measureContent;
/**
* 负责人
*/
private String chargeUser;
/**
* 计划日期
*/

View File

@ -214,6 +214,11 @@ public class QmsInspectionTicketDetailVO {
@Data
public static class MeasureVO {
/**
* 处理方案明细ID
*/
private Long id;
/**
* 措施类型ID关联字典项表
*/

View File

@ -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())