src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/pojo/InvoiceRegistrationProduct.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/pojo/SalesLedger.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/sales/SalesLedgerMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } 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; 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; } 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; } 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(); 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()); } } 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"; 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