+8
-5
@@ -82,6 +82,7 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
private static final String STATUS_APPROVED = "approved";
|
private static final String STATUS_APPROVED = "approved";
|
||||||
private static final String STATUS_REJECTED = "rejected";
|
private static final String STATUS_REJECTED = "rejected";
|
||||||
private static final String STATUS_CHANGE_REVIEWING = "change_reviewing";
|
private static final String STATUS_CHANGE_REVIEWING = "change_reviewing";
|
||||||
|
private static final String STATUS_CHANGE_APPROVED = "change_approved";
|
||||||
private static final String STATUS_VOIDED = "voided";
|
private static final String STATUS_VOIDED = "voided";
|
||||||
private static final String EFFECTIVE_TEMPORARY = "temporary";
|
private static final String EFFECTIVE_TEMPORARY = "temporary";
|
||||||
private static final String EFFECTIVE_FORMAL = "formal";
|
private static final String EFFECTIVE_FORMAL = "formal";
|
||||||
@@ -206,7 +207,7 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
if (!List.of(STATUS_REVIEWING, STATUS_CHANGE_REVIEWING).contains(projectApply.getApprovalStatus())) {
|
if (!List.of(STATUS_REVIEWING, STATUS_CHANGE_REVIEWING).contains(projectApply.getApprovalStatus())) {
|
||||||
throw new ServiceException("当前状态不允许审批通过");
|
throw new ServiceException("当前状态不允许审批通过");
|
||||||
}
|
}
|
||||||
projectApply.setApprovalStatus(STATUS_CHANGE_REVIEWING.equals(projectApply.getApprovalStatus()) ? "change_approved" : STATUS_APPROVED);
|
projectApply.setApprovalStatus(STATUS_CHANGE_REVIEWING.equals(projectApply.getApprovalStatus()) ? STATUS_CHANGE_APPROVED : STATUS_APPROVED);
|
||||||
projectApply.setEffectiveType(EFFECTIVE_FORMAL);
|
projectApply.setEffectiveType(EFFECTIVE_FORMAL);
|
||||||
projectApply.setCurrentNode("审批通过");
|
projectApply.setCurrentNode("审批通过");
|
||||||
projectApply.setCurrentProcessor(AuthUtil.getUserName());
|
projectApply.setCurrentProcessor(AuthUtil.getUserName());
|
||||||
@@ -244,7 +245,7 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean voidProject(Long id, String reason) {
|
public boolean voidProject(Long id, String reason) {
|
||||||
ProjectApply projectApply = loadExists(id);
|
ProjectApply projectApply = loadExists(id);
|
||||||
if (!Objects.equals(projectApply.getApprovalStatus(), STATUS_APPROVED)) {
|
if (!List.of(STATUS_APPROVED, STATUS_CHANGE_APPROVED).contains(projectApply.getApprovalStatus())) {
|
||||||
throw new ServiceException("仅审批通过项目允许作废");
|
throw new ServiceException("仅审批通过项目允许作废");
|
||||||
}
|
}
|
||||||
projectApply.setApprovalStatus(STATUS_VOIDED);
|
projectApply.setApprovalStatus(STATUS_VOIDED);
|
||||||
@@ -381,13 +382,13 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(projectApply.getTemporaryCreditLimitSelectable())) {
|
if (Boolean.TRUE.equals(projectApply.getTemporaryCreditLimitSelectable())) {
|
||||||
queryWrapper.eq(ProjectApply::getEffectiveType, EFFECTIVE_FORMAL)
|
queryWrapper.eq(ProjectApply::getEffectiveType, EFFECTIVE_FORMAL)
|
||||||
.in(ProjectApply::getApprovalStatus, STATUS_APPROVED, "change_approved");
|
.in(ProjectApply::getApprovalStatus, STATUS_APPROVED, STATUS_CHANGE_APPROVED);
|
||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(projectApply.getContractSelectable())) {
|
if (Boolean.TRUE.equals(projectApply.getContractSelectable())) {
|
||||||
// 正式审批通过项目 + 未作废的临时项目均可被合同选择
|
// 正式审批通过项目 + 未作废的临时项目均可被合同选择
|
||||||
queryWrapper.and(wrapper -> wrapper
|
queryWrapper.and(wrapper -> wrapper
|
||||||
.nested(formal -> formal.eq(ProjectApply::getEffectiveType, EFFECTIVE_FORMAL)
|
.nested(formal -> formal.eq(ProjectApply::getEffectiveType, EFFECTIVE_FORMAL)
|
||||||
.in(ProjectApply::getApprovalStatus, STATUS_APPROVED, "change_approved"))
|
.in(ProjectApply::getApprovalStatus, STATUS_APPROVED, STATUS_CHANGE_APPROVED))
|
||||||
.or(temporary -> temporary.eq(ProjectApply::getEffectiveType, EFFECTIVE_TEMPORARY)
|
.or(temporary -> temporary.eq(ProjectApply::getEffectiveType, EFFECTIVE_TEMPORARY)
|
||||||
.ne(ProjectApply::getApprovalStatus, STATUS_VOIDED)));
|
.ne(ProjectApply::getApprovalStatus, STATUS_VOIDED)));
|
||||||
}
|
}
|
||||||
@@ -882,7 +883,9 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl<ProjectApplyMapper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void validateChangeable(ProjectApply projectApply) {
|
private void validateChangeable(ProjectApply projectApply) {
|
||||||
if (!Objects.equals(projectApply.getApprovalStatus(), STATUS_APPROVED) || !Objects.equals(projectApply.getEffectiveType(), EFFECTIVE_FORMAL)) {
|
// 首次立项通过(approved)与历次变更通过(change_approved)均可再次发起变更
|
||||||
|
boolean approved = List.of(STATUS_APPROVED, STATUS_CHANGE_APPROVED).contains(projectApply.getApprovalStatus());
|
||||||
|
if (!approved || !Objects.equals(projectApply.getEffectiveType(), EFFECTIVE_FORMAL)) {
|
||||||
throw new ServiceException("仅正式生效且审批通过的项目允许发起变更");
|
throw new ServiceException("仅正式生效且审批通过的项目允许发起变更");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user