From 63bcb5f79633ac359af16db738731d1d316ca611 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 04 六月 2025 11:15:51 +0800
Subject: [PATCH] 销售台账/开票登记功能开发
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 4 ++--
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 4 ++++
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 5 +++--
src/main/resources/mapper/sales/SalesLedgerMapper.xml | 1 +
src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java | 4 ++--
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 16 ++++++++++++----
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 7 +++++--
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | 4 ++++
8 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 1e79daa..e873834 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -3,8 +3,10 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.time.LocalDate;
import java.util.Date;
import java.util.List;
@@ -28,4 +30,6 @@
private List<CommonFile> SalesLedgerFiles;
private Integer Type;
+ @ApiModelProperty(value = "绛捐鏃ユ湡")
+ private LocalDate executionDate;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
index 3e683d8..ecfb880 100644
--- a/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java
@@ -54,10 +54,10 @@
private String invoiceType;
@ApiModelProperty(value = "寮�绁ㄦ暟")
- private Integer invoiceNum;
+ private BigDecimal invoiceNum;
@ApiModelProperty(value = "鏈紑绁ㄦ暟")
- private Integer noInvoiceNum;
+ private BigDecimal noInvoiceNum;
@ApiModelProperty(value = "寮�绁ㄩ噾棰�")
private BigDecimal invoiceAmount;
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 472c53b..8378012 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -1,6 +1,7 @@
package com.ruoyi.sales.pojo;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
@@ -102,5 +103,8 @@
@TableField(exist = false)
@ApiModelProperty(value = "鏈紑绁ㄩ噾棰�(鍏�)")
private BigDecimal noInvoiceAmountTotal;
+
+ @ApiModelProperty(value = "绛捐鏃ユ湡")
+ private LocalDate executionDate;
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 4c11359..3949cd7 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -113,10 +113,10 @@
private BigDecimal futureTicketsAmount;
@ApiModelProperty(value = "寮�绁ㄦ暟")
- private Integer invoiceNum;
+ private BigDecimal invoiceNum;
@ApiModelProperty(value = "鏈紑绁ㄦ暟")
- private Integer noInvoiceNum;
+ private BigDecimal noInvoiceNum;
@ApiModelProperty(value = "寮�绁ㄩ噾棰�")
private BigDecimal invoiceAmount;
@@ -126,7 +126,7 @@
@ApiModelProperty(value = "鏈寮�绁ㄦ暟")
@TableField(exist = false)
- private Integer currentInvoiceNum;
+ private BigDecimal currentInvoiceNum;
@TableField(exist = false)
@ApiModelProperty(value = "鏈寮�绁ㄩ噾棰�")
@@ -144,5 +144,13 @@
@ApiModelProperty(value = "鍒濆鏈紑绁ㄦ暟")
@TableField(exist = false)
- private Integer originalNoInvoiceNum;
+ private BigDecimal originalNoInvoiceNum;
+
+ @ApiModelProperty(value = "涓存椂鏈紑绁ㄦ暟")
+ @TableField(exist = false)
+ private BigDecimal tempNoInvoiceNum;
+
+ @ApiModelProperty(value = "涓存椂鏈紑绁ㄩ噾棰�")
+ @TableField(exist = false)
+ private BigDecimal tempnoInvoiceAmount;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index 7f8bd60..a21870a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -25,6 +25,7 @@
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
@@ -58,8 +59,8 @@
if(CollectionUtils.isNotEmpty(productData)){
for (SalesLedgerProduct productDatum : productData) {
// 濡傛灉寮�绁ㄦ暟涓�0 璺宠繃
- Integer currentInvoiceNum = productDatum.getCurrentInvoiceNum();
- if(null == currentInvoiceNum || currentInvoiceNum == 0){
+ BigDecimal currentInvoiceNum = productDatum.getCurrentInvoiceNum();
+ if(null != currentInvoiceNum && BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
continue;
}
InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 76c74ac..f2cac8e 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -63,11 +63,11 @@
// 缁熻寮�绁ㄧ櫥璁颁骇鍝佺殑宸插紑绁ㄦ暟/宸插紑绁ㄩ噾棰�
if(!CollectionUtils.isEmpty(invoiceRegistrationProductDtoList)){
for (SalesLedgerProduct ledgerProduct : salesLedgerProducts) {
- int invoiceNum = 0;
+ BigDecimal invoiceNum = BigDecimal.ZERO;
BigDecimal invoiceAmount = BigDecimal.ZERO;
for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) {
if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){
- invoiceNum += registrationProductDto.getInvoiceNum();
+ invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum());
invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount());
}
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 08189ff..0470a92 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -98,6 +98,9 @@
List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
for (SalesLedgerProduct product : products) {
product.setOriginalNoInvoiceNum(product.getNoInvoiceNum());
+ // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻
+ product.setTempnoInvoiceAmount(product.getNoInvoiceAmount());
+ product.setTempNoInvoiceNum(product.getNoInvoiceNum());
}
// 3.鏌ヨ涓婁紶鏂囦欢
@@ -447,7 +450,7 @@
if (!insertList.isEmpty()) {
for (SalesLedgerProduct salesLedgerProduct : insertList) {
salesLedgerProduct.setType(type);
- salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity().intValue());
+ salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
}
@@ -493,7 +496,7 @@
List<Integer> existingSequences = salesLedgerMapper.selectSequencesByDate(datePart);
int nextSequence = findFirstMissingSequence(existingSequences);
- return datePart + String.format("%02d", nextSequence);
+ return datePart + String.format("%03d", nextSequence);
} finally {
// 3. 閲婃斁閿侊紙浣跨敤Lua鑴氭湰淇濊瘉鍘熷瓙鎬э紝閬垮厤璇垹鍏朵粬绾跨▼鐨勯攣锛�
String luaScript = "if redis.call('GET', KEYS[1]) == ARGV[1] then return redis.call('DEL', KEYS[1]) else return 0 end";
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index bb39257..1ac7fa7 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -28,6 +28,7 @@
T1.attachment_materials,
T1.tenant_id,
T1.contract_amount,
+ T1.execution_date,
T2.nick_name AS entry_person_name
FROM
sales_ledger T1
--
Gitblit v1.9.3