From 892e590cf8c579a235db630ddbe31a59930420af Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期四, 05 六月 2025 10:13:29 +0800 Subject: [PATCH] 付款登记功能开发 --- src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java | 7 +++ src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java | 28 +++++++++++++- src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java | 3 + src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 4 + src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 10 ++++ src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java | 8 ++++ src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml | 15 +++++++ 7 files changed, 71 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java index a036f29..b34494d 100644 --- a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java +++ b/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java @@ -36,4 +36,7 @@ private String registrant; private String searchText; + + // 宸蹭粯娆炬�婚噾棰� + private BigDecimal paymentAmountTotal; } diff --git a/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java index 4127059..a03a8d2 100644 --- a/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java +++ b/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java @@ -37,4 +37,11 @@ * @return 浠樻鐧昏闆嗗悎 */ public List<PaymentRegistrationDto> paymentHistoryList(@Param("params") PaymentRegistrationDto paymentRegistrationDto); + + /** + * 璁$畻姣忓紶鍙戠エ鐨勫凡寮�绁ㄩ噾棰� + * @param ticketRegistrationIds + * @return + */ + public List<PaymentRegistrationDto> countPaymentTotalByTicketRegId(List<Long> ticketRegistrationIds); } diff --git a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java index a297f3f..d4b49c2 100644 --- a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java +++ b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -132,4 +133,11 @@ @TableField(fill = FieldFill.INSERT) private Long tenantId; + @ApiModelProperty(value = "宸蹭粯娆炬�婚噾棰�") + @TableField(exist = false) + private BigDecimal paymentAmountTotal; + + @ApiModelProperty(value = "鏈粯娆炬�婚噾棰�") + @TableField(exist = false) + private BigDecimal unPaymentAmountTotal; } diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java index 3be1a26..db32be5 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java @@ -374,10 +374,12 @@ .eq(SalesLedgerProduct::getType, 2); List<SalesLedgerProduct> productList = salesLedgerProductMapper.selectList(queryWrapper); productList.forEach(product -> { - product.setFutureTickets(product.getFutureTickets() != null ? product.getFutureTickets() : product.getQuantity().longValue()); + product.setFutureTickets(product.getFutureTickets() != null ? product.getFutureTickets() : product.getQuantity()); product.setFutureTicketsAmount(product.getFutureTicketsAmount() != null ? product.getFutureTicketsAmount() : product.getTaxInclusiveTotalPrice()); product.setTicketsNum(null); product.setTicketsAmount(null); + product.setTempFutureTickets(product.getFutureTickets()); + product.setTempFutureTicketsAmount(product.getFutureTicketsAmount()); }); resultDto.setProductData(productList); return resultDto; diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java index c9d189f..f007f6e 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java @@ -9,7 +9,9 @@ import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.other.mapper.TempFileMapper; import com.ruoyi.other.pojo.TempFile; +import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.dto.TicketRegistrationDto; +import com.ruoyi.purchase.mapper.PaymentRegistrationMapper; import com.ruoyi.purchase.mapper.ProductRecordMapper; import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.mapper.TicketRegistrationMapper; @@ -24,6 +26,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FilenameUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,6 +69,9 @@ private final ProductRecordMapper productRecordMapper; + @Autowired + private PaymentRegistrationMapper paymentRegistrationMapper; + @Value("${file.upload-dir}") private String uploadDir; @@ -78,7 +84,26 @@ .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName()) .eq(TicketRegistration::getIssueDate, ticketRegistration.getIssueDate()); } - return ticketRegistrationMapper.selectList(queryWrapper); + List<TicketRegistration> ticketRegistrationList = ticketRegistrationMapper.selectList(queryWrapper); + // 璁$畻宸蹭粯娆鹃噾棰� + if(CollectionUtils.isNotEmpty(ticketRegistrationList)){ + List<Long> ids = ticketRegistrationList.stream().map(TicketRegistration::getId).collect(Collectors.toList()); + List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids); + for (TicketRegistration registration : ticketRegistrationList) { + for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) { + if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){ + BigDecimal paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal(); + BigDecimal invoiceAmount = registration.getInvoiceAmount(); + registration.setPaymentAmountTotal(paymentAmountTotal); + BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal); + registration.setUnPaymentAmountTotal(subtractAmount); + break; + } + } + } + } + + return ticketRegistrationList; } @Override @@ -275,7 +300,6 @@ product.setFutureTickets( product.getQuantity() .subtract(BigDecimal.valueOf(product.getTicketsNum())) - .longValueExact() // 浣跨敤 exact 鏂规硶纭繚鏃犲皬鏁伴儴鍒� ); // 璁$畻 futureTicketsAmount diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java index 3949cd7..84aef39 100644 --- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java +++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java @@ -105,7 +105,7 @@ /** * 鏈潵绁ㄦ暟 */ - private Long futureTickets; + private BigDecimal futureTickets; /** * 鏈潵绁ㄩ噾棰�(鍏�) @@ -153,4 +153,12 @@ @ApiModelProperty(value = "涓存椂鏈紑绁ㄩ噾棰�") @TableField(exist = false) private BigDecimal tempnoInvoiceAmount; + + @ApiModelProperty(value = "涓存椂鏈潵绁ㄦ暟") + @TableField(exist = false) + private BigDecimal tempFutureTickets; + + @ApiModelProperty(value = "涓存椂鏈潵绁ㄩ噾棰�") + @TableField(exist = false) + private BigDecimal tempFutureTicketsAmount; } diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml index aad93c5..16e4960 100644 --- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml +++ b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml @@ -110,4 +110,19 @@ ORDER BY T1.payment_date,T1.create_time DESC </select> + <select id="countPaymentTotalByTicketRegId" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto"> + SELECT + IFNULL(SUM(current_payment_amount),0) AS paymentAmountTotal, + ticket_registration_id + FROM + payment_registration + <where> + ticket_registration_id IN + <foreach collection="ticketRegistrationIds" separator="," open="(" close=")" item="item"> + #{item} + </foreach> + </where> + GROUP BY ticket_registration_id + </select> + </mapper> \ No newline at end of file -- Gitblit v1.9.3