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