From 2d22e2697a48b6061745e674c20359fef4280052 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期一, 18 五月 2026 09:38:04 +0800
Subject: [PATCH] feat:合同流程审批
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java | 12 ++++++++++--
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java | 10 +++++++++-
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java | 12 +++++++++++-
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java | 4 ++++
4 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java
index ab70426..a4dbc79 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java
+++ b/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")+""));
+ }
}
}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
index 66c72b7..636f2d1 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
+++ b/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);
}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
index 82307fb..081447a 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
+++ b/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();
+ }
}
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
index 41635d1..498a055 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
+++ b/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();
}
}
\ No newline at end of file
--
Gitblit v1.9.1