diff --git a/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java b/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java index 9e9929e1..e85deb46 100644 --- a/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java +++ b/src/main/java/com/qs/serve/modules/tzc/common/TzcPolicyStatus.java @@ -12,5 +12,6 @@ public interface TzcPolicyStatus { int Status_3_Success = 3; int Status_4_RollBack = 4; int Status_5_Refuse = 5; + int Status_6_CANCEL = 6; } diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 9985527a..7dd43063 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -33,6 +33,9 @@ import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.service.TzcPolicyApplicationService; import com.qs.serve.modules.tzc.service.TzcPolicyItemService; import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; +import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -64,6 +67,8 @@ public class TzcPolicyController { private TzcPolicyApplicationService policyApplicationService; private TzcPolicyOperationServiceImpl tzcPolicyOperationService; private SysPostUserService postUserService; + private VtbVerificationService verificationService; + private TbsBudgetLogService budgetLogService; @GetMapping("succ") public R succ(Long id){ @@ -423,5 +428,37 @@ public class TzcPolicyController { return tzcPolicyOperationService.runCompensate(id); } + /** + * 作废 用于过审的政策 + * @param id + * @return + */ + @PostMapping("/cancellation/{id}") + public R cancellation(@PathVariable Long id){ + List tzcPolicyItemList = tzcPolicyItemService.listByPolicyId(id); + List itemIds = tzcPolicyItemList.stream().map(TzcPolicyItem::getId).collect(Collectors.toList()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(VtbVerification::getPolicyItemId,itemIds); + long count = verificationService.count(lqw); + if(count>0){ + return R.error("已核销的政策无法作废"); + } + //释放预算占用 + LambdaQueryWrapper logLqw = new LambdaQueryWrapper<>(); + logLqw.eq(TbsBudgetLog::getPolicyId,id); + budgetLogService.remove(logLqw); + //释放政策及关联数据 + for (TzcPolicyItem policyItem : tzcPolicyItemList) { + policyItem.setPolicyItemStatus(TzPolicyItemStatus.Status_0_Default); + tzcPolicyItemService.updateById(policyItem); + } + TzcPolicy policy = new TzcPolicy(); + policy.setId(id); + policy.setPolicyStatus(TzcPolicyStatus.Status_6_CANCEL); + policy.setPassTime(LocalDateTime.now()); + tzcPolicyService.updateById(policy); + return R.ok(); + } + }