f81e12fe7535ce9ff603e3fd4ad8896494a524da..1212e2b0dea3b44668c5293a3267a6fb780b420f
2025-06-28 liyong
2025-06-28 bug修改
1212e2 对比 | 目录
2025-06-28 liyong
2025-06-28 bug修改
b2089c 对比 | 目录
2025-06-28 liyong
2025-06-27 bug修改
6c65bc 对比 | 目录
已修改13个文件
79 ■■■■ 文件已修改
doc/add.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/common/CommonController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/add.sql
@@ -68,3 +68,6 @@
    modify sale_ledger_id bigint default 0 null comment '销售台账id';
alter table ticket_registration
    add enter_date timestamp null;
src/main/java/com/ruoyi/project/common/CommonController.java
@@ -1,5 +1,6 @@
package com.ruoyi.project.common;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -52,16 +53,15 @@
            {
                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
            }
            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
            String filePath = RuoYiConfig.getDownloadPath() + fileName;
            String realFileName =  fileName.substring(fileName.indexOf("_") + 1);
            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
            FileUtils.setAttachmentResponseHeader(response, realFileName);
            FileUtils.writeBytes(filePath, response.getOutputStream());
            if (delete)
            {
                FileUtils.deleteFile(filePath);
            }
            FileUtils.writeBytes(fileName, response.getOutputStream());
//            if (delete)
//            {
//                FileUtils.deleteFile(fileName);
//            }
        }
        catch (Exception e)
        {
src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -114,6 +114,7 @@
     */
    @GetMapping("/productRecordPage")
    public AjaxResult productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
        IPage<ProductRecordDto> list = productRecordService.productRecordPage(page,ticketRegistrationDto);
        return AjaxResult.success(list);
    }
src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
@@ -2,11 +2,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.purchase.pojo.TicketRegistration;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.util.List;
/**
@@ -47,6 +50,12 @@
     */
    private String businessPerson;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate enterDate;
    /**
     * 业务员id
     */
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
@@ -148,4 +148,7 @@
    private String issueDateStart;
    @TableField(exist = false)
    private String issueDateEnd;
    @ApiModelProperty(value = "录入时间")
    private LocalDate enterDate;
}
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -367,6 +367,7 @@
    public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) {
        List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId);
        List<PaymentHistoryRecordVo> result = new ArrayList<>();
        List<PaymentHistoryRecordVo> newResult = new ArrayList<>();
        // 应付总金额金额计算
        BigDecimal amountTotal = BigDecimal.ZERO;
        if(CollectionUtils.isNotEmpty(paymentRecordList)) {
@@ -403,8 +404,20 @@
                result.add(paymentHistoryRecordVo);
            }
            for (int i = 0; i < result.size(); i++) {
                PaymentHistoryRecordVo paymentHistoryRecordVo = result.get(i);
                if (i == 0) {
                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
                }else {
                    PaymentHistoryRecordVo paymentHistoryRecordVo1 = result.get(i-1);
                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo1.getPayableAmount()
                            .add(paymentHistoryRecordVo.getInvoiceAmount()).subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
                }
                newResult.add(paymentHistoryRecordVo);
            }
        }
        return result;
        return newResult;
    }
    /**
src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -52,6 +52,8 @@
    @Override
    public IPage<ProductRecordDto> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
        IPage<ProductRecordDto> productRecordDtoIPage1 = productRecordMapper.productRecordPage(page, ticketRegistrationDto);
        page.setSize(productRecordDtoIPage1.getTotal());
        IPage<ProductRecordDto> productRecordDtoIPage = productRecordMapper.productRecordPage(page, ticketRegistrationDto);
        productRecordDtoIPage.getRecords().forEach(productRecordDto -> {
            productRecordDto.setCommonFiles(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, productRecordDto.getTicketRegistrationId())
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -136,6 +136,7 @@
        ticketRegistration.setIssueDate(ticketRegistrationDto.getIssueDate());
        ticketRegistration.setContractAmount(purchaseLedger.getContractAmount());
        ticketRegistration.setSalesLedgerId(purchaseLedger.getSalesLedgerId());
        ticketRegistration.setEnterDate(ticketRegistrationDto.getEnterDate());
        // 4. 处理子表数据
        List<SalesLedgerProduct> productData = ticketRegistrationDto.getProductData();
@@ -201,9 +202,10 @@
            // 构建正式文件名(包含业务ID和时间戳,避免冲突)
            String originalFilename = tempFile.getOriginalName();
            String fileExtension = FilenameUtils.getExtension(originalFilename);
            String baseName = FilenameUtils.getBaseName(originalFilename);
            String formalFilename = businessId + "_" +
                    System.currentTimeMillis() + "_" +
                    UUID.randomUUID().toString().substring(0, 8) +
                    UUID.randomUUID().toString().substring(0, 8) +baseName+
                    (com.ruoyi.common.utils.StringUtils.hasText(fileExtension) ? "." + fileExtension : "");
            Path formalFilePath = formalDirPath.resolve(formalFilename);
@@ -224,7 +226,7 @@
                fileRecord.setName(originalFilename);
                fileRecord.setUrl(formalFilePath.toString());
                fileRecord.setCreateTime(LocalDateTime.now());
                fileRecord.setType(tempFile.getType());
                fileRecord.setType(4);
                commonFileMapper.insert(fileRecord);
                log.info("文件迁移成功: {} -> {}", tempFile.getTempPath(), formalFilePath);
src/main/java/com/ruoyi/sales/dto/InvoiceRegistrationProductDto.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.vo.FileVo;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.InvoiceLedgerFile;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -52,6 +54,8 @@
    @ApiModelProperty(value = "发票文件名")
    private String invoiceFileName;
    private List<InvoiceLedgerFile> commonFiles;
    private String searchText;
    private Boolean status;
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -54,6 +54,8 @@
    @Autowired
    private SalesLedgerProductMapper salesLedgerProductMapper;
    @Autowired
    private CommonFileMapper commonFileMapper;
    /**
     * 开票台账新增
@@ -306,6 +308,10 @@
        if (registrationProductDto.getStatus()) {
            invoiceRegistrationProductDtoIPage.getRecords().removeIf(invoiceRegistrationProduct -> !StringUtils.isEmpty(invoiceRegistrationProduct.getInvoiceNo()));
        }
        invoiceRegistrationProductDtoIPage.getRecords().forEach(invoiceRegistrationProductDto -> {
                invoiceRegistrationProductDto.setCommonFiles(invoiceLedgerFileMapper.selectList(new QueryWrapper<InvoiceLedgerFile>().lambda()
                        .eq(InvoiceLedgerFile::getInvoiceLedgerId, invoiceRegistrationProductDto.getInvoiceLedgerId())));
        });
        return invoiceRegistrationProductDtoIPage;
    }
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -86,6 +86,7 @@
                invoiceLedger.setInvoiceTotal(invoiceRegistrationProduct.getInvoiceAmount());
                invoiceLedger.setInvoiceNo(salesLedgerDto.getInvoiceNo());
                invoiceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
                invoiceLedger.setInvoicePerson(productDatum.getRegister());
                invoiceLedgerMapper.insert(invoiceLedger);
            }
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -247,7 +247,19 @@
            customerInteractionDto.setUnReceiptAmount(amountTotal);
            result.add(customerInteractionDto);
        }
        return result;
        ArrayList<CustomerInteractionDto> newResult = new ArrayList<>();
        for (int i = 0; i < result.size(); i++) {
            CustomerInteractionDto customerInteractionDto = result.get(i);
            if (i == 0) {
                customerInteractionDto.setUnReceiptAmount(customerInteractionDto.getInvoiceAmount().subtract(customerInteractionDto.getReceiptAmount()));
            }else {
                CustomerInteractionDto customerInteractionDto1 = result.get(i-1);
                customerInteractionDto.setUnReceiptAmount(customerInteractionDto1.getUnReceiptAmount()
                        .add(customerInteractionDto.getInvoiceAmount()).subtract(customerInteractionDto.getReceiptAmount()));
            }
            newResult.add(customerInteractionDto);
        }
        return newResult;
    }
    /**
src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml
@@ -87,6 +87,7 @@
            T2.customer_contract_no,
            T2.customer_name,
            T3.invoice_no,
            T3.id as invoice_ledger_id,
            IFNULL(T3.invoice_total,0) AS invoice_total,
            T3.invoice_person,
            T3.invoice_date,