src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/dto/PaymentHistoryRecordVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/pojo/ProductRecord.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
@@ -7,6 +7,7 @@ import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.purchase.dto.PaymentHistoryRecordVo; import com.ruoyi.purchase.dto.PaymentLedgerDto; import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.pojo.PaymentRegistration; @@ -126,4 +127,15 @@ List<PaymentRegistrationDto> list = paymentRegistrationService.paymentHistoryList(paymentRegistrationDto); return getDataTable(list); } /** * æ¥è¯¢ä¾åºå徿¥è®°å½ * @param supplierId * @return */ @GetMapping("/getPaymentRecordList/{supplierId}") public AjaxResult getPaymentRecordList(@PathVariable Long supplierId) { List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationService.getPaymentRecordList(supplierId); return success(paymentRecordList); } } src/main/java/com/ruoyi/purchase/dto/PaymentHistoryRecordVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.ruoyi.purchase.dto; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @Data public class PaymentHistoryRecordVo { /** åçæ¶é´ */ private LocalDate happenTime; /** å票éé¢ */ private BigDecimal invoiceAmount; /** ç±»å 1 å票ç»è®° 0 忬¾ç»è®° */ private int type; /** æ¬æ¬¡å款éé¢ */ private BigDecimal currentPaymentAmount; /** åºä»éé¢ */ private BigDecimal payableAmount; } src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java
@@ -1,6 +1,7 @@ package com.ruoyi.purchase.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.purchase.dto.PaymentHistoryRecordVo; import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.pojo.PaymentRegistration; import org.apache.ibatis.annotations.Param; @@ -44,4 +45,11 @@ * @return */ public List<PaymentRegistrationDto> countPaymentTotalByTicketRegId(List<Long> ticketRegistrationIds); /** * æ¥è¯¢ä¾åºå徿¥è®°å½ * @param supplierId * @return */ List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId); } src/main/java/com/ruoyi/purchase/pojo/ProductRecord.java
@@ -87,7 +87,7 @@ /** * æ¬æ¬¡æ¥ç¥¨æ° */ private Long ticketsNum; private BigDecimal ticketsNum; /** * æ¬æ¬¡æ¥ç¥¨éé¢(å ) @@ -97,7 +97,7 @@ /** * æªæ¥ç¥¨æ° */ private Long futureTickets; private BigDecimal futureTickets; /** * æªæ¥ç¥¨éé¢(å ) src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.purchase.dto.PaymentHistoryRecordVo; import com.ruoyi.purchase.dto.PaymentLedgerDto; import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.pojo.PaymentRegistration; @@ -79,4 +80,11 @@ * @return 仿¬¾ç»è®°éå */ public List<PaymentRegistrationDto> paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto); /** * æ¥è¯¢ä¾åºå徿¥è®°å½ * @param supplierId * @return */ List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId); } src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -11,6 +11,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.purchase.dto.PaymentHistoryRecordVo; import com.ruoyi.purchase.dto.PaymentLedgerDto; import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.mapper.*; @@ -201,6 +202,7 @@ for (SupplierManage supplierManage : supplierManages) { Map<String, Object> res = new HashMap<>(); res.put("supplierName", supplierManage.getSupplierName()); res.put("supplierId", supplierManage.getId()); // åºä»éé¢è®¡ç® BigDecimal payableAmount = BigDecimal.ZERO; @@ -266,7 +268,6 @@ new LambdaQueryWrapper<ProductRecord>().eq(ProductRecord::getTicketRegistrationId, ticketRegistration.getId()) ).stream() .map(ProductRecord::getTicketsNum) .map(BigDecimal::new) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); detail.put("voteCount", voteCount); @@ -354,6 +355,30 @@ return paymentRegistrationMapper.paymentHistoryList(paymentRegistrationDto); } /** * æ¥è¯¢ä¾åºå徿¥è®°å½ * @param supplierId * @return */ @Override public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) { List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId); if(!CollectionUtils.isEmpty(paymentRecordList)) { // åºä»éé¢è®¡ç® BigDecimal amountTotal = BigDecimal.ZERO; for (PaymentHistoryRecordVo paymentHistoryRecordVo : paymentRecordList) { if(paymentHistoryRecordVo.getType() == 0){ amountTotal = amountTotal.subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()); } if(paymentHistoryRecordVo.getType() == 1){ amountTotal = amountTotal.add(paymentHistoryRecordVo.getInvoiceAmount()); } paymentHistoryRecordVo.setPayableAmount(amountTotal); } } return paymentRecordList; } // æ¹éæ¥è¯¢éè´å°è´¦ï¼å½æï¼ private Map<Long, List<PurchaseLedger>> batchQueryPurchaseLedgers(List<Long> supplierIds, LocalDate startDate, LocalDate endDate) { LambdaQueryWrapper<PurchaseLedger> query = new LambdaQueryWrapper<>(); src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -299,7 +299,7 @@ // è®¡ç® futureTicketsï¼ç´æ¥ä½¿ç¨ BigDecimal 计ç®ï¼é¿å ç²¾åº¦ä¸¢å¤±ï¼ product.setFutureTickets( product.getQuantity() .subtract(BigDecimal.valueOf(product.getTicketsNum())) .subtract(product.getTicketsNum()) ); // è®¡ç® futureTicketsAmount src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -95,7 +95,7 @@ /** * æ¬æ¬¡æ¥ç¥¨æ° */ private Long ticketsNum; private BigDecimal ticketsNum; /** * æ¬æ¬¡æ¥ç¥¨éé¢(å ) src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -125,4 +125,28 @@ GROUP BY ticket_registration_id </select> <select id="getPaymentRecordList" resultType="com.ruoyi.purchase.dto.PaymentHistoryRecordVo"> SELECT * FROM( SELECT T1.issue_date AS happenTime, IFNULL(T1.invoice_amount,0) AS invoiceAmount, '1' AS type, 0 AS currentPaymentAmount FROM ticket_registration T1 LEFT JOIN purchase_ledger T2 ON T1.purchase_ledger_id = T2.id WHERE T2.supplier_id = #{supplierId} UNION SELECT payment_date AS happenTime, 0 AS invoiceAmount, '0' AS type, current_payment_amount AS currentPaymentAmount FROM payment_registration WHERE supplier_id = #{supplierId} ) T1 ORDER BY T1.happenTime ASC </select> </mapper>