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