From 849648e82e5dec96f9f30fcc9c9bd799268b1f4c Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期四, 09 四月 2026 10:40:44 +0800
Subject: [PATCH] 新增资金流水导入
---
service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java | 225 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 222 insertions(+), 3 deletions(-)
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java
index 60e52b3..1e6a475 100644
--- a/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/ReceivableBillManagementServiceImpl.java
@@ -4,6 +4,12 @@
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
+
+import com.ruoyi.cwgl.domain.*;
+import com.ruoyi.cwgl.domain.vo.ReceivableBillAgingAnalysisVo;
+import com.ruoyi.cwgl.domain.vo.ReceivableBillAccountAnalysisVo;
+import com.ruoyi.cwgl.mapper.*;
+import com.ruoyi.cwgl.service.IAgingLogService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
@@ -15,10 +21,10 @@
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.core.service.BaseService;
-import com.ruoyi.cwgl.mapper.ReceivableBillManagementMapper;
-import com.ruoyi.cwgl.domain.ReceivableBillManagement;
import com.ruoyi.cwgl.service.IReceivableBillManagementService;
import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
/**
* 搴旀敹璐﹀崟绠$悊Service涓氬姟灞傚鐞�
@@ -33,6 +39,15 @@
protected final Logger logger = LoggerFactory.getLogger(getClass());
@Resource
private ReceivableBillManagementMapper receivableBillManagementMapper;
+ @Resource
+ private ReceivableFeeManagementMapper receivableFeeManagementMapper;
+
+ @Resource
+ private ReceivableBillManagementLogMapper receivableBillManagementLogMapper;
+ @Resource
+ private AgingLogMapper agingLogMapper;
+ @Resource
+ private AccountLogMapper accountLogMapper;
/**
@@ -90,6 +105,41 @@
PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
return selectReceivableBillManagementList(receivableBillManagement);
});
+ } /**
+ * 鏌ヨ搴旀敹璐﹀崟绠$悊鍒楄〃 寮傛 瀵煎嚭
+ *
+ * @param receivableBillManagement 搴旀敹璐﹀崟绠$悊
+ * @param exportKey 瀵煎嚭鍔熻兘鐨勫敮涓�鏍囪瘑
+ * @return 搴旀敹璐﹀崟绠$悊闆嗗悎
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Async
+ @Override
+ public void customerSummaryExport(ReceivableBillManagement receivableBillManagement,String exportKey) {
+
+ super.export2(ReceivableBillCustomerSummary.class,exportKey,"搴旀敹璐︽鍒嗘瀽绠$悊",(pageNum)->{
+ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+ return selectReceivableBillCustomerSummaryList(receivableBillManagement);
+ });
+ } @DataSource(DataSourceType.SLAVE)
+ @Async
+ @Override
+ public void agingAnalysisExport(ReceivableBillManagement receivableBillManagement,String exportKey) {
+
+ super.export2(ReceivableBillAgingAnalysisVo.class,exportKey,"搴旀敹璐︽鍒嗘瀽绠$悊",(pageNum)->{
+ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+ return selectReceivableBillAgingAnalysisList(receivableBillManagement);
+ });
+ }
+
+ @Async
+ @Override
+ public void accountAnalysisExport(ReceivableBillManagement receivableBillManagement,String exportKey) {
+
+ super.export2(ReceivableBillAccountAnalysisVo.class,exportKey,"搴旀敹璐︽鍒嗘瀽绠$悊",(pageNum)->{
+ PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
+ return selectReceivableBillAccountAnalysisList(receivableBillManagement);
+ });
}
@@ -129,7 +179,54 @@
public int updateReceivableBillManagement(ReceivableBillManagement receivableBillManagement)
{
receivableBillManagement.setUpdateTime(DateUtils.getNowDate());
- return receivableBillManagementMapper.updateReceivableBillManagement(receivableBillManagement);
+ int result = receivableBillManagementMapper.updateReceivableBillManagement(receivableBillManagement);
+
+ // 璁板綍鎿嶄綔鏃ュ織
+ if (result > 0) {
+ ReceivableBillManagementLog log = new ReceivableBillManagementLog();
+ log.setBillId(receivableBillManagement.getId());
+ log.setCreateBy(SecurityUtils.getUsername());
+ log.setCreateTime(DateUtils.getNowDate());
+ log.setOperation("淇敼搴旀敹璐﹀崟锛岃处鍗曠紪鍙凤細" + receivableBillManagement.getSystemNo());
+ receivableBillManagementLogMapper.insertReceivableBillManagementLog(log);
+ }
+
+ return result;
+ } @Override
+ public int aging(ReceivableBillManagement receivableBillManagement)
+ {
+ receivableBillManagement.setUpdateTime(DateUtils.getNowDate());
+ int result = receivableBillManagementMapper.updateReceivableBillManagement(receivableBillManagement);
+
+ // 璁板綍鎿嶄綔鏃ュ織
+ if (result > 0) {
+ AgingLog log = new AgingLog();
+ log.setHeadId(receivableBillManagement.getId());
+ log.setCreateBy(SecurityUtils.getUsername());
+ log.setCreateTime(DateUtils.getNowDate());
+ log.setOperation("缂栬緫璐﹂緞鍒嗘瀽淇℃伅");
+ agingLogMapper.insertAgingLog(log);
+ }
+
+ return result;
+ }
+ @Override
+ public int account(ReceivableBillManagement receivableBillManagement)
+ {
+ receivableBillManagement.setUpdateTime(DateUtils.getNowDate());
+ int result = receivableBillManagementMapper.updateReceivableBillManagement(receivableBillManagement);
+
+ // 璁板綍鎿嶄綔鏃ュ織
+ if (result > 0) {
+ AccountLog log = new AccountLog();
+ log.setHeadId(receivableBillManagement.getId());
+ log.setCreateBy(SecurityUtils.getUsername());
+ log.setCreateTime(DateUtils.getNowDate());
+ log.setOperation("缂栬緫璐︽鍒嗘瀽淇℃伅");
+ accountLogMapper.insertAccountLog(log);
+ }
+
+ return result;
}
/**
@@ -179,4 +276,126 @@
{
return receivableBillManagementMapper.deleteReceivableBillManagementById(id);
}
+
+ /**
+ * 浣滃簾搴旀敹璐﹀崟绠$悊璁板綍
+ *
+ * @param id 搴旀敹璐﹀崟绠$悊ID
+ * @return 缁撴灉
+ */
+ @Override
+ public int voidReceivableBillManagement(Integer id) {
+ // 1. 鏌ヨ搴旀敹璐﹀崟璁板綍
+ ReceivableBillManagement billManagement = receivableBillManagementMapper.selectReceivableBillManagementById(id);
+ if (billManagement == null) {
+ throw new ServiceException("搴旀敹璐﹀崟璁板綍涓嶅瓨鍦�");
+ }
+
+ // 2. 鍒ゆ柇鐘舵�佹槸鍚︿负0锛堟湭缁撶畻锛夛紝鍙湁鐘舵�佷负0鎵嶈兘浣滃簾
+ if (!"0".equals(billManagement.getStatus())) {
+ throw new ServiceException("鍙湁鐘舵�佷负鏈粨绠楃殑璐﹀崟鎵嶈兘浣滃簾");
+ }
+
+ // 3. 璁剧疆鐘舵�佷负浣滃簾
+ billManagement.setStatus("2");
+ billManagement.setUpdateTime(DateUtils.getNowDate());
+
+ // 4. 鏇存柊搴旀敹璐﹀崟璁板綍
+ int result = receivableBillManagementMapper.updateReceivableBillManagement(billManagement);
+
+ // 5. 濡傛灉鏇存柊鎴愬姛锛屾竻闄ゅ叧鑱斿簲鏀惰垂鐢ㄧ殑璐﹀崟缂栧彿骞舵洿鏂扮姸鎬�
+ if (result > 0) {
+ // 鑾峰彇璐﹀崟绯荤粺缂栧彿
+ String billSystemNo = billManagement.getSystemNo();
+ if (billSystemNo != null && !billSystemNo.trim().isEmpty()) {
+ // 鏌ヨ鍏宠仈璇ヨ处鍗曠殑搴旀敹璐圭敤璁板綍
+ ReceivableFeeManagement queryFee = new ReceivableFeeManagement();
+ queryFee.setRelatedBillNo(billSystemNo);
+ List<ReceivableFeeManagement> feeList = receivableFeeManagementMapper.selectReceivableFeeManagementList(queryFee);
+
+ // 娓呴櫎鍏宠仈璐﹀崟缂栧彿骞跺皢鐘舵�佹敼涓�0锛堝緟鐢熸垚璐﹀崟锛�
+ receivableFeeManagementMapper.updateReceivableFeeManagementByRelatedBillNo(billSystemNo);
+ }
+
+ // 璁板綍浣滃簾鎿嶄綔鏃ュ織
+ ReceivableBillManagementLog log = new ReceivableBillManagementLog();
+ log.setBillId(id);
+ log.setCreateBy(SecurityUtils.getUsername());
+ log.setCreateTime(DateUtils.getNowDate());
+ log.setOperation("浣滃簾搴旀敹璐﹀崟锛岃处鍗曠紪鍙凤細" + billManagement.getSystemNo());
+ receivableBillManagementLogMapper.insertReceivableBillManagementLog(log);
+ }
+
+ return result;
+ }
+
+ /**
+ * 鏍规嵁绯荤粺缂栧彿鏌ヨ搴旀敹璐﹀崟绠$悊
+ *
+ * @param systemNo 绯荤粺缂栧彿
+ * @return 搴旀敹璐﹀崟绠$悊
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public ReceivableBillManagement selectReceivableBillManagementBySystemNo(String systemNo)
+ {
+ return receivableBillManagementMapper.selectReceivableBillManagementBySystemNo(systemNo);
+ }
+
+ /**
+ * 鏌ヨ搴旀敹璐﹀崟瀹㈡埛姹囨�诲垪琛�
+ *
+ * @param receivableBillManagement 鏌ヨ鏉′欢
+ * @return 搴旀敹璐﹀崟瀹㈡埛姹囨�诲垪琛�
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public List<ReceivableBillCustomerSummary> selectReceivableBillCustomerSummaryList(ReceivableBillManagement receivableBillManagement)
+ {
+ return receivableBillManagementMapper.selectReceivableBillCustomerSummaryList(receivableBillManagement);
+ }
+
+ /**
+ * 鏌ヨ搴旀敹璐﹀崟璐﹂緞鍒嗘瀽鍒楄〃
+ *
+ * @param receivableBillManagement 鏌ヨ鏉′欢
+ * @return 搴旀敹璐﹀崟璐﹂緞鍒嗘瀽鍒楄〃
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public List<ReceivableBillAgingAnalysisVo> selectReceivableBillAgingAnalysisList(ReceivableBillManagement receivableBillManagement)
+ {
+ // 鐩存帴鏌ヨ鏁版嵁搴撲腑鐨勯璁$畻璐﹂緞鏁版嵁
+ List<ReceivableBillAgingAnalysisVo> result = receivableBillManagementMapper.selectReceivableBillAgingAnalysisList(receivableBillManagement);
+
+ return result;
+ }
+
+ /**
+ * 鎵归噺鏇存柊搴旀敹璐﹀崟璐﹂緞鍒嗘瀽鏁版嵁
+ * 鐩存帴鍦ㄦ暟鎹簱灞傞潰璁$畻璐﹂緞鍒嗘锛岄伩鍏嶆煡璇㈠ぇ閲忔暟鎹埌搴旂敤灞�
+ *
+ * @return 鏇存柊鐨勮褰曟暟
+ */
+ @Override
+ public int batchUpdateAgingAnalysisData()
+ {
+ return receivableBillManagementMapper.batchUpdateAgingAnalysisData();
+ }
+
+ /**
+ * 鏌ヨ搴旀敹璐﹀崟璐︽鍒嗘瀽鍒楄〃
+ *
+ * @param receivableBillManagement 鏌ヨ鏉′欢
+ * @return 搴旀敹璐﹀崟璐︽鍒嗘瀽鍒楄〃
+ */
+ @DataSource(DataSourceType.SLAVE)
+ @Override
+ public List<ReceivableBillAccountAnalysisVo> selectReceivableBillAccountAnalysisList(ReceivableBillManagement receivableBillManagement)
+ {
+ // 鐩存帴鏌ヨ鏁版嵁搴撲腑鐨勮处娆惧垎鏋愭暟鎹�
+ List<ReceivableBillAccountAnalysisVo> result = receivableBillManagementMapper.selectReceivableBillAccountAnalysisList(receivableBillManagement);
+
+ return result;
+ }
}
--
Gitblit v1.8.0