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