|
|
@ -36,6 +36,12 @@ public class ApprovalService { |
|
|
|
public void submit(String formId, ApprovalTypeEnum approvalType) { |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
String status = service.formStatus(formId); |
|
|
|
if (!ApprovalStatusEnum.SUBMITTING.getValue().equals(status)) { |
|
|
|
throw new RuntimeException("不能重复提交审批"); |
|
|
|
} |
|
|
|
service.updateApprovalStatus(formId, ApprovalStatusEnum.WAITING); |
|
|
|
|
|
|
|
ApprovalTask approvalTask = new ApprovalTask(); |
|
|
|
approvalTask.setFormId(formId); |
|
|
|
approvalTask.setBusinessType(approvalType.getValue()); |
|
|
@ -55,23 +61,25 @@ public class ApprovalService { |
|
|
|
approvalOperatorService.saveBatch(approvalOperators); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
service.updateApprovalStatus(formId, ApprovalStatusEnum.WAITING); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public <T> void rejected(String id, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) { |
|
|
|
ApprovalTask approvalTask = approvalTaskService.getById(id); |
|
|
|
if (approvalTask != null) { |
|
|
|
approvalTask.setStatus(ApprovalStatusEnum.REJECT.getValue()); |
|
|
|
approvalTask.setComment(dto.getComment()); |
|
|
|
approvalTask.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
approvalTask.setOperator(getOperatorDto()); |
|
|
|
approvalTask.setApprovalTime(new Date()); |
|
|
|
approvalTaskService.updateById(approvalTask); |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
String status = service.formStatus(id); |
|
|
|
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) { |
|
|
|
throw new RuntimeException("不能重复审批"); |
|
|
|
} |
|
|
|
ApprovalTask approvalTask = approvalTaskService.getById(id); |
|
|
|
if (approvalTask != null) { |
|
|
|
approvalTask.setStatus(ApprovalStatusEnum.REJECT.getValue()); |
|
|
|
approvalTask.setComment(dto.getComment()); |
|
|
|
approvalTask.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
approvalTask.setOperator(getOperatorDto()); |
|
|
|
approvalTask.setApprovalTime(new Date()); |
|
|
|
approvalTaskService.updateById(approvalTask); |
|
|
|
service.updateApprovalStatus(approvalTask.getFormId(), ApprovalStatusEnum.REJECT); |
|
|
|
} |
|
|
|
} |
|
|
@ -79,16 +87,20 @@ public class ApprovalService { |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public <T> void passed(String id, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) { |
|
|
|
ApprovalTask approvalTask = approvalTaskService.getById(id); |
|
|
|
if (approvalTask != null) { |
|
|
|
approvalTask.setStatus(ApprovalStatusEnum.PASS.getValue()); |
|
|
|
approvalTask.setComment(dto.getComment()); |
|
|
|
approvalTask.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
approvalTask.setOperator(getOperatorDto()); |
|
|
|
approvalTask.setApprovalTime(new Date()); |
|
|
|
approvalTaskService.updateById(approvalTask); |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
String status = service.formStatus(id); |
|
|
|
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) { |
|
|
|
throw new RuntimeException("不能重复审批"); |
|
|
|
} |
|
|
|
ApprovalTask approvalTask = approvalTaskService.getById(id); |
|
|
|
if (approvalTask != null) { |
|
|
|
approvalTask.setStatus(ApprovalStatusEnum.PASS.getValue()); |
|
|
|
approvalTask.setComment(dto.getComment()); |
|
|
|
approvalTask.setDoc(JSON.toJSONString(dto.getDoc())); |
|
|
|
approvalTask.setOperator(getOperatorDto()); |
|
|
|
approvalTask.setApprovalTime(new Date()); |
|
|
|
approvalTaskService.updateById(approvalTask); |
|
|
|
service.updateApprovalStatus(approvalTask.getFormId(), ApprovalStatusEnum.PASS); |
|
|
|
} |
|
|
|
} |
|
|
@ -126,4 +138,23 @@ public class ApprovalService { |
|
|
|
.collect(Collectors.toList()); |
|
|
|
return Response.ok(commentDtoList); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public <T> void returnApproval(String formId, ApprovalTypeEnum approvalType, ApprovalDetailDto<T> dto) { |
|
|
|
ApprovalBusinessService service = approvalType.getService(); |
|
|
|
if (service != null) { |
|
|
|
String status = service.formStatus(formId); |
|
|
|
if (!ApprovalStatusEnum.WAITING.getValue().equals(status)) { |
|
|
|
throw new RuntimeException("不能回退审批"); |
|
|
|
} |
|
|
|
approvalTaskService.update(Wrappers.<ApprovalTask>lambdaUpdate() |
|
|
|
.eq(ApprovalTask::getFormId, formId) |
|
|
|
.eq(ApprovalTask::getBusinessType, approvalType.getValue()) |
|
|
|
.eq(ApprovalTask::getStatus, ApprovalStatusEnum.WAITING.getValue()) |
|
|
|
.set(ApprovalTask::getStatus, ApprovalStatusEnum.CANCEL.getValue()) |
|
|
|
.set(ApprovalTask::getApprovalTime, new Date()) |
|
|
|
); |
|
|
|
service.updateApprovalStatus(formId, ApprovalStatusEnum.SUBMITTING); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|