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