+11
-1
@@ -195,7 +195,17 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean submitApproval(Long id) {
|
||||
ProjectApply projectApply = loadEditable(id, true);
|
||||
ProjectApply projectApply = loadExists(id);
|
||||
if (!canCurrentUserOperate(projectApply)) {
|
||||
throw new ServiceException("无权操作其他组织项目立项");
|
||||
}
|
||||
// 已在审批中则幂等成功,避免「先 MK 后本地」时 sync 已写成 reviewing 再被编辑校验拦住
|
||||
if (List.of(STATUS_REVIEWING, STATUS_CHANGE_REVIEWING).contains(projectApply.getApprovalStatus())) {
|
||||
return true;
|
||||
}
|
||||
if (!List.of(STATUS_DRAFT, STATUS_WITHDRAWN, STATUS_REJECTED, "change_rejected").contains(projectApply.getApprovalStatus())) {
|
||||
throw new ServiceException("当前状态不允许提交");
|
||||
}
|
||||
validateSubmit(projectApply);
|
||||
projectApply.setApprovalStatus(STATUS_REVIEWING);
|
||||
projectApply.setCurrentNode(resolveApprovalNode(projectApply));
|
||||
|
||||
+11
-1
@@ -170,7 +170,17 @@ public class ProjectChangeServiceImpl extends BaseServiceImpl<ProjectChangeMappe
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean submitApproval(Long id) {
|
||||
ProjectChange projectChange = loadEditable(id);
|
||||
ProjectChange projectChange = loadExists(id);
|
||||
if (!canCurrentUserOperate(projectChange)) {
|
||||
throw new ServiceException("无权操作其他组织项目变更");
|
||||
}
|
||||
// 已在审批中则幂等成功,避免 MK 回写 reviewing 后再提交被编辑校验拦住
|
||||
if (Objects.equals(projectChange.getApprovalStatus(), STATUS_REVIEWING)) {
|
||||
return true;
|
||||
}
|
||||
if (!List.of(STATUS_DRAFT, STATUS_WITHDRAWN, STATUS_REJECTED).contains(projectChange.getApprovalStatus())) {
|
||||
throw new ServiceException("当前状态不允许提交");
|
||||
}
|
||||
validateSubmit(projectChange);
|
||||
projectChange.setApprovalStatus(STATUS_REVIEWING);
|
||||
projectChange.setCurrentNode(resolveApprovalNode(projectChange));
|
||||
|
||||
Reference in New Issue
Block a user