工单暂存和提交接口修改
This commit is contained in:
parent
e8a38ae171
commit
1181b5de02
|
|
@ -1688,19 +1688,24 @@ public class QmsIssueTicketControllerService {
|
|||
if (isLeader) {
|
||||
// 领导:isReview=true
|
||||
vo.setIsReview(true);
|
||||
// isEdit:领导未提交审批(leaderApprovalResult为null)时有编辑权限
|
||||
boolean leaderNotSubmitted = allProcesses.stream()
|
||||
// isEdit:领导未审批(leaderApprovalResult为null)且处理人已提交(approvalStatus不为null)时有编辑权限
|
||||
// 处理人再次提交后(leaderApprovalResult被重置为null),领导重新获得编辑权限
|
||||
boolean leaderCanEdit = allProcesses.stream()
|
||||
.filter(p -> currentUserId.equals(p.getLeaderUserId()))
|
||||
.anyMatch(p -> p.getLeaderApprovalResult() == null);
|
||||
vo.setIsEdit(leaderNotSubmitted);
|
||||
.anyMatch(p -> p.getLeaderApprovalResult() == null && p.getApprovalStatus() != null);
|
||||
vo.setIsEdit(leaderCanEdit);
|
||||
} else {
|
||||
// 处理人/审批人
|
||||
boolean hasUnapproved = allProcesses.stream()
|
||||
.filter(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()))
|
||||
.anyMatch(p -> p.getApprovalStatus() == null);
|
||||
vo.setIsReview(hasUnapproved);
|
||||
// isEdit:处理人未提交(approvalStatus为null)时有编辑权限
|
||||
vo.setIsEdit(hasUnapproved);
|
||||
// isEdit:未提交(approvalStatus为null)或领导驳回(leaderApprovalResult==1)时有编辑权限
|
||||
boolean canEdit = allProcesses.stream()
|
||||
.filter(p -> currentUserId.equals(p.getHandlerUserId()) || currentUserId.equals(p.getApprovalUserId()))
|
||||
.anyMatch(p -> p.getApprovalStatus() == null
|
||||
|| (p.getLeaderApprovalResult() != null && p.getLeaderApprovalResult() == 1));
|
||||
vo.setIsEdit(canEdit);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -254,10 +254,13 @@ public class QmsIssueTicketProcessControllerService {
|
|||
// 2. 保存数据
|
||||
issueTicketProcessMeasureControllerService.draft(request);
|
||||
|
||||
// 3. 写入审批时间
|
||||
// 3. 写入审批时间,并重置领导审批结果(允许领导重新审批)
|
||||
issueTicketProcessService.lambdaUpdate()
|
||||
.eq(QmsIssueTicketProcess::getId, request.getId())
|
||||
.set(QmsIssueTicketProcess::getApprovalTime, now)
|
||||
.set(QmsIssueTicketProcess::getLeaderApprovalResult, null)
|
||||
.set(QmsIssueTicketProcess::getLeaderApprovalOpinion, null)
|
||||
.set(QmsIssueTicketProcess::getLeaderApprovalTime, null)
|
||||
.update();
|
||||
|
||||
// 4. 根据审批状态推送待办
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.qms.admin.service;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
|
|
@ -59,19 +60,22 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
.set(QmsIssueTicketProcess::getApprovalUserName, UserUtil.getUserName())
|
||||
.update();
|
||||
|
||||
// 有措施内容则新增一条措施记录
|
||||
if (StrUtil.isNotBlank(request.getMeasureContent())) {
|
||||
// 有措施列表则批量新增措施记录
|
||||
if (CollectionUtil.isNotEmpty(request.getMeasures())) {
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : request.getMeasures()) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
.setIssueTicketProcessId(request.getId())
|
||||
.setMeasureContent(request.getMeasureContent())
|
||||
.setMeasureTypeId(request.getMeasureTypeId())
|
||||
.setChargeUser(UserUtil.getUserName()) // 自动设置为当前登录用户
|
||||
.setPlanDate(request.getPlanDate())
|
||||
.setConfirmDate(request.getConfirmDate())
|
||||
.setRemark(request.getRemark());
|
||||
.setMeasureContent(item.getMeasureContent())
|
||||
.setMeasureTypeId(item.getMeasureTypeId())
|
||||
.setChargeUser(UserUtil.getUserName())
|
||||
.setPlanDate(item.getPlanDate())
|
||||
.setConfirmDate(item.getConfirmDate())
|
||||
.setRemark(item.getRemark());
|
||||
issueTicketProcessMeasureService.save(measure);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 领导暂存:更新领导审批意见、审批结果,写入领导信息
|
||||
|
|
@ -135,18 +139,21 @@ public class QmsIssueTicketProcessMeasureControllerService {
|
|||
.set(QmsIssueTicketProcess::getApprovalUserName, UserUtil.getUserName())
|
||||
.update();
|
||||
|
||||
// 有措施内容则新增
|
||||
if (StrUtil.isNotBlank(request.getMeasureContent())) {
|
||||
// 有措施列表则批量新增
|
||||
if (CollectionUtil.isNotEmpty(request.getMeasures())) {
|
||||
for (QmsIssueTicketProcessDraftQO.MeasureItem item : request.getMeasures()) {
|
||||
if (StrUtil.isBlank(item.getMeasureContent())) continue;
|
||||
QmsIssueTicketProcessMeasure measure = new QmsIssueTicketProcessMeasure()
|
||||
.setIssueTicketProcessId(request.getId())
|
||||
.setMeasureContent(request.getMeasureContent())
|
||||
.setMeasureTypeId(request.getMeasureTypeId())
|
||||
.setMeasureContent(item.getMeasureContent())
|
||||
.setMeasureTypeId(item.getMeasureTypeId())
|
||||
.setChargeUser(UserUtil.getUserName())
|
||||
.setPlanDate(request.getPlanDate())
|
||||
.setConfirmDate(request.getConfirmDate())
|
||||
.setRemark(request.getRemark());
|
||||
.setPlanDate(item.getPlanDate())
|
||||
.setConfirmDate(item.getConfirmDate())
|
||||
.setRemark(item.getRemark());
|
||||
issueTicketProcessMeasureService.save(measure);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 领导审批:前端传入approvalStatus/approvalOpinion,数据库填入leaderApprovalResult/leaderApprovalOpinion
|
||||
issueTicketProcessService.lambdaUpdate()
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import jakarta.validation.constraints.NotNull;
|
|||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 质量问题工单处理 暂存/提交参数
|
||||
|
|
@ -33,27 +34,39 @@ public class QmsIssueTicketProcessDraftQO {
|
|||
private String approvalOpinion;
|
||||
|
||||
/**
|
||||
* 措施内容(可选),有值则新增一条 QmsIssueTicketProcessMeasure 记录
|
||||
* 措施列表(可选),每项对应一条 QmsIssueTicketProcessMeasure 记录
|
||||
*/
|
||||
private String measureContent;
|
||||
private List<MeasureItem> measures;
|
||||
|
||||
/**
|
||||
* 措施类型ID(可选),关联字典项表
|
||||
* 措施项
|
||||
*/
|
||||
@Data
|
||||
public static class MeasureItem {
|
||||
|
||||
/**
|
||||
* 措施类型ID,关联字典项表
|
||||
*/
|
||||
private Long measureTypeId;
|
||||
|
||||
/**
|
||||
* 计划日期(可选)
|
||||
* 措施内容
|
||||
*/
|
||||
private String measureContent;
|
||||
|
||||
/**
|
||||
* 计划日期
|
||||
*/
|
||||
private LocalDate planDate;
|
||||
|
||||
/**
|
||||
* 确认日期(可选)
|
||||
* 确认日期
|
||||
*/
|
||||
private LocalDate confirmDate;
|
||||
|
||||
/**
|
||||
* 备注(可选)
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue