From 4a8729894cea54668df86f70403775f731d962ca Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期五, 16 五月 2025 14:25:37 +0800
Subject: [PATCH] 回款台账
---
src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java | 8 ++++
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml | 13 ++++++
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml | 4 ++
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java | 32 ++++++++++++++++
src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java | 11 +++++
src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java | 8 ++++
src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java | 8 ++++
7 files changed, 84 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java b/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
index 42896c6..99a3ea2 100644
--- a/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
@@ -121,4 +121,15 @@
return AjaxResult.success(invoiceLedgerService.invoiceLedgerList(invoiceLedgerDto));
}
+ /**
+ * 瀹㈡埛閿�鍞褰�
+ * @param page
+ * @param invoiceLedgerDto
+ * @return
+ */
+ @GetMapping("/salesAccount")
+ public AjaxResult invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto) {
+ return AjaxResult.success(invoiceLedgerService.invoiceLedgerSalesAccount(page,invoiceLedgerDto));
+ }
+
}
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
index b8d9318..4f6ecb8 100644
--- a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
@@ -4,6 +4,8 @@
import com.ruoyi.sales.pojo.InvoiceLedger;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+
+import java.math.BigDecimal;
import java.util.List;
@Data
@@ -25,4 +27,10 @@
@ApiModelProperty(value = "鍙戠エ鏂囦欢鍚�")
private String invoiceFileName;
+
+ @ApiModelProperty(value = "鍥炴閲戦")
+ private BigDecimal receiptPaymentAmount;
+
+ @ApiModelProperty(value = "鏈洖娆鹃噾棰�")
+ private BigDecimal unReceiptPaymentAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
index ed78d68..57a2cd0 100644
--- a/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/InvoiceLedgerMapper.java
@@ -33,4 +33,12 @@
*/
InvoiceLedgerDto invoiceLedgerInfo(Integer id);
+ /**
+ * 瀹㈡埛閿�鍞褰�
+ * @param page
+ * @param invoiceLedgerDto
+ * @return
+ */
+ IPage<InvoiceLedgerDto> invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto);
+
}
diff --git a/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java b/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
index a828f02..f159d89 100644
--- a/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
@@ -77,4 +77,12 @@
* @return
*/
List<InvoiceLedgerDto> invoiceLedgerList(InvoiceLedgerDto invoiceLedgerDto);
+
+ /**
+ * 瀹㈡埛閿�鍞褰�
+ * @param page
+ * @param invoiceLedgerDto
+ * @return
+ */
+ IPage<InvoiceLedgerDto> invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto);
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
index 298f44a..89520b4 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -12,8 +12,10 @@
import com.ruoyi.sales.excel.InvoiceLedgerExcelDto;
import com.ruoyi.sales.mapper.InvoiceLedgerFileMapper;
import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
+import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.InvoiceLedgerFile;
+import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.service.InvoiceLedgerService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
@@ -26,6 +28,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.File;
+import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
@@ -42,6 +45,9 @@
@Autowired
private InvoiceLedgerFileMapper invoiceLedgerFileMapper;
+
+ @Autowired
+ private ReceiptPaymentMapper receiptPaymentMapper;
/**
* 寮�绁ㄥ彴璐︽柊澧�
@@ -210,4 +216,30 @@
return invoiceLedgerMapper.invoiceLedgerList(invoiceLedgerDto);
}
+ /**
+ * 瀹㈡埛閿�鍞褰�
+ * @param page
+ * @param invoiceLedgerDto
+ * @return
+ */
+ @Override
+ public IPage<InvoiceLedgerDto> invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto) {
+ IPage<InvoiceLedgerDto> invoiceLedgerDtoIPage = invoiceLedgerMapper.invoiceLedgerSalesAccount(page, invoiceLedgerDto);
+ for (InvoiceLedgerDto record : invoiceLedgerDtoIPage.getRecords()) {
+ QueryWrapper<ReceiptPayment> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("customer_id", record.getCustomerId());
+ List<ReceiptPayment> receiptPaymentList = receiptPaymentMapper.selectList(queryWrapper);
+ BigDecimal totalAmount = BigDecimal.ZERO;
+ if(!CollectionUtils.isEmpty(receiptPaymentList)){
+ for (ReceiptPayment receiptPayment : receiptPaymentList) {
+ totalAmount = totalAmount.add(receiptPayment.getInvoiceAmount());
+ }
+ }
+ BigDecimal unReceiptPaymentAmount = record.getInvoiceAmount().subtract(totalAmount);
+ record.setReceiptPaymentAmount(totalAmount);
+ record.setUnReceiptPaymentAmount(unReceiptPaymentAmount);
+ }
+ return invoiceLedgerDtoIPage;
+ }
+
}
diff --git a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
index 6d38405..e08366b 100644
--- a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -109,5 +109,18 @@
WHERE T1.id = #{id}
</select>
+ <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
+ SELECT
+ customer_id,
+ T2.customer_name,
+ SUM( invoice_amount ) invoiceAmount
+ FROM
+ invoice_ledger T1
+ LEFT JOIN customer T2 ON T1.customer_id = T2.id
+ GROUP BY
+ customer_id,
+ T2.customer_name;
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
index 7ff62bf..14587ee 100644
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -33,7 +33,11 @@
OR T1.sales_contract_no LIKE CONCAT('%',#{receiptPaymentDto.searchText},'%')
)
</if>
+ <if test="receiptPaymentDto.customerId != null">
+ AND T1.customer_id = #{receiptPaymentDto.customerId}
+ </if>
</where>
+ ORDER BY T1.receipt_payment_date ASC
</select>
<select id="receiptPaymentInfo" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
--
Gitblit v1.9.3