From 47a3fef69130da3e5c80e5357f643465582c504c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 29 四月 2026 09:53:22 +0800
Subject: [PATCH] fix: 回款登记录入人存储错误
---
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index 7f9b4cd..c866302 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -6,9 +6,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.pojo.AccountIncome;
import com.ruoyi.account.service.AccountIncomeService;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.sales.dto.CustomerInteractionDto;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.ReceiptPaymentDto;
import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
@@ -16,7 +19,6 @@
import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -32,7 +34,6 @@
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.*;
-import java.util.stream.Collectors;
@Service
public class ReceiptPaymentServiceImpl extends ServiceImpl<ReceiptPaymentMapper,ReceiptPayment> implements ReceiptPaymentService {
@@ -50,6 +51,9 @@
@Autowired
private AccountIncomeService accountIncomeService;
+
+ @Autowired
+ private SysUserMapper sysUserMapper;
/**
* 鍥炴鐧昏鏂板
@@ -69,8 +73,8 @@
// 宸插洖娆鹃噾棰�
SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴攢鍞崟浜у搧");
- if (salesLedgerProduct.getPendingInvoiceTotal().compareTo(receiptPayment.getReceiptPaymentAmount())<0){
- throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
+ if (salesLedgerProduct.getPendingInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount()).compareTo(byId.getReceiptPaymentAmount())<0){
+ throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�+鍥炴閲戦");
}
if(null==receiptPayment.getId()){
salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount()));
@@ -79,18 +83,26 @@
// 澧炲姞璐㈠姟鏀跺叆璁板綍
AccountIncome accountIncome = new AccountIncome();
accountIncome.setIncomeDate(salesLedger.getEntryDate());
- accountIncome.setIncomeType("0");
+ accountIncome.setIncomeType("3");
accountIncome.setCustomerName(salesLedger.getCustomerName());
- accountIncome.setIncomeMoney(salesLedger.getContractAmount());
+ accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount());
accountIncome.setIncomeMethod("0");
accountIncome.setInputTime(new Date());
- accountIncome.setInputUser(salesLedger.getEntryPerson());
+ String entryPerson = salesLedger.getEntryPerson();
+ if (StringUtils.isEmpty(entryPerson) || !StringUtils.isNumeric(entryPerson)) {
+ throw new ServiceException("鍥炴鐧昏澶辫触,閿�鍞彴璐﹀綍鍏ヤ汉涓嶈兘涓虹┖");
+ }
+ SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(entryPerson));
+ if (sysUser == null) {
+ throw new ServiceException("鍥炴鐧昏澶辫触,閿�鍞彴璐﹀綍鍏ヤ汉涓嶅瓨鍦�");
+ }
+ accountIncome.setInputUser(sysUser.getNickName());
accountIncome.setIncomeDescribed("鍥炴鏀跺叆");
accountIncome.setBusinessId(Long.parseLong(receiptPayment.getId().toString()));
accountIncome.setBusinessType(1);
accountIncomeService.save(accountIncome);
}else {
- BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount());
+ BigDecimal subtract = byId.getReceiptPaymentAmount().subtract(receiptPayment.getReceiptPaymentAmount());
salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount());
--
Gitblit v1.9.3