From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化
---
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
index 8fbb7de..62cea6a 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/CrmReceivablePlanServiceImpl.java
@@ -24,6 +24,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
+import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@@ -130,6 +131,31 @@
}
@Override
+ public void updateReceivablePlanReceipted(Long id, java.math.BigDecimal receiptPrice,
+ java.time.LocalDateTime actualTime) {
+ CrmReceivablePlanDO plan = validateReceivablePlanExists(id);
+ BigDecimal receiptedPrice = plan.getReceiptedPrice() == null ? java.math.BigDecimal.ZERO : plan.getReceiptedPrice();
+ receiptedPrice = receiptedPrice.add(receiptPrice == null ? java.math.BigDecimal.ZERO : receiptPrice);
+ // 鐘舵�侊細0鏈洖娆� 10閮ㄥ垎鍥炴 20宸插洖娓�
+ int status = receiptedPrice.compareTo(plan.getPrice()) >= 0 ? 20 : (receiptedPrice.signum() > 0 ? 10 : 0);
+ receivablePlanMapper.updateById(new CrmReceivablePlanDO().setId(id)
+ .setReceiptedPrice(receiptedPrice).setStatus(status)
+ .setActualTime(actualTime != null ? actualTime : java.time.LocalDateTime.now()));
+ }
+
+ @Override
+ public void resetReceivablePlanReceipted(Long id) {
+ validateReceivablePlanExists(id);
+ // updateById 浼氬拷鐣� null锛岄渶鏄惧紡娓呯┖瀹為檯鍥炴鏃堕棿
+ receivablePlanMapper.update(null,
+ new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<CrmReceivablePlanDO>()
+ .eq(CrmReceivablePlanDO::getId, id)
+ .set(CrmReceivablePlanDO::getReceiptedPrice, java.math.BigDecimal.ZERO)
+ .set(CrmReceivablePlanDO::getStatus, 0)
+ .set(CrmReceivablePlanDO::getActualTime, null));
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
@LogRecord(type = CRM_RECEIVABLE_PLAN_TYPE, subType = CRM_RECEIVABLE_PLAN_DELETE_SUB_TYPE, bizNo = "{{#id}}",
success = CRM_RECEIVABLE_PLAN_DELETE_SUCCESS)
--
Gitblit v1.9.3