+11
-1
@@ -195,7 +195,17 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean submitApproval(Long id) {
|
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);
|
validateSubmit(projectApply);
|
||||||
projectApply.setApprovalStatus(STATUS_REVIEWING);
|
projectApply.setApprovalStatus(STATUS_REVIEWING);
|
||||||
projectApply.setCurrentNode(resolveApprovalNode(projectApply));
|
projectApply.setCurrentNode(resolveApprovalNode(projectApply));
|
||||||
|
|||||||
+11
-1
@@ -170,7 +170,17 @@ public class ProjectChangeServiceImpl extends BaseServiceImpl<ProjectChangeMappe
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean submitApproval(Long id) {
|
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);
|
validateSubmit(projectChange);
|
||||||
projectChange.setApprovalStatus(STATUS_REVIEWING);
|
projectChange.setApprovalStatus(STATUS_REVIEWING);
|
||||||
projectChange.setCurrentNode(resolveApprovalNode(projectChange));
|
projectChange.setCurrentNode(resolveApprovalNode(projectChange));
|
||||||
|
|||||||
Reference in New Issue
Block a user