platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java
@@ -2,6 +2,7 @@ import com.by4cloud.platformx.business.constant.FlowNameEnum; import com.by4cloud.platformx.business.service.ContractService; import com.by4cloud.platformx.flow.task.constant.TaskStatusEnum; import com.by4cloud.platformx.flow.task.dto.ProcessInstanceParamDto; import com.by4cloud.platformx.flow.task.dto.ProcessNodeRecordParamDto; import io.swagger.v3.oas.annotations.tags.Tag; @@ -33,7 +34,9 @@ */ @PostMapping("/startNodeEvent") public void startNodeEvent(@RequestBody ProcessNodeRecordParamDto recordParamDto){ if (recordParamDto.getFlowName().equals(FlowNameEnum.合同审批.getName())) { } } /** * 任务结束事件 @@ -43,7 +46,14 @@ @PostMapping("/endProcess") public void endProcessEvent(@RequestBody ProcessInstanceParamDto processInstanceParamDto) { if (processInstanceParamDto.getFlowName().equals(FlowNameEnum.合同审批.getName())) { contractService.startApproval(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+"")); //通过后更新主表状态 if (processInstanceParamDto.getTaskStatus()== TaskStatusEnum.YJS.getCode()){ contractService.takeEffect(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+"")); } //拒绝后回退主表状态 if (processInstanceParamDto.getTaskStatus()== TaskStatusEnum.JJ.getCode()){ contractService.refuseApproval(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+"")); } } } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
@@ -22,4 +22,8 @@ R startApproval(Long id); R genCurrentOverdue(); R refuseApproval(Long id); void takeEffect(Long id); } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
@@ -193,14 +193,14 @@ if (r1.getCode() == 1) { return R.failed("流程启动失败"); } contract.setContractStatus(2); contract.setContractStatus(1); baseMapper.updateById(contract); return R.ok(); } public void takeEffect(Long id) { Contract contract = baseMapper.selectById(id); contract.setContractStatus(1); contract.setContractStatus(2); baseMapper.updateById(contract); ContractPaymentSchedule fitstSchedule = contractPaymentScheduleMapper.selectOne(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId()) .orderByAsc(ContractPaymentSchedule::getCreateTime).last("limit 1")); @@ -399,4 +399,12 @@ } return R.ok(); } @Override public R refuseApproval(Long id) { Contract contract = baseMapper.selectById(id); contract.setContractStatus(0); baseMapper.updateById(contract); return R.ok(); } } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -13,7 +13,6 @@ import com.by4cloud.platformx.business.mapper.HistoryOverdueMapper; import com.by4cloud.platformx.business.mapper.PaymentConfirmMapper; import com.by4cloud.platformx.business.service.BusinessCustomerService; import com.by4cloud.platformx.business.service.ContractPaymentScheduleService; import com.by4cloud.platformx.business.service.ContractService; import com.by4cloud.platformx.business.service.PaymentConfirmService; import com.by4cloud.platformx.common.core.util.R; @@ -23,6 +22,7 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Objects; /** * 收款确认 @@ -169,6 +169,14 @@ entity.setConfirmTime(new Date()); baseMapper.insert(entity); } // 查询所有付款阶段是否都付款完成 List<ContractPaymentSchedule> scheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId())); if (ArrayUtil.isNotEmpty(scheduleList.toArray())){ if (scheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))){ contract.setContractStatus(3); contractService.updateById(contract); }; } return R.ok(); } }