chenrui
2025-05-13 fe1845ba21d8e9908077ab0bb5a9a8137942a50b
开票台账前后端联调
已修改7个文件
100 ■■■■ 文件已修改
src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
@@ -1,6 +1,7 @@
package com.ruoyi.sales.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.service.InvoiceLedgerService;
@@ -76,14 +77,14 @@
    }
    /**
     * 附件下载
     * 开票台账导出
     * @param response
     * @param invoiceLedgerDto
     * @return
     */
    @GetMapping("/downloadFile")
    public void invoiceLedgerDownloadFile(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
        invoiceLedgerService.invoiceLedgerDownload(response, invoiceLedgerDto);
    @PostMapping("/export")
    public void invoiceLedgerExport(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
        invoiceLedgerService.invoiceLedgerExport(response, invoiceLedgerDto);
    }
    /**
@@ -96,4 +97,18 @@
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerDetail(id));
    }
    /**
     * 文件提交
     * @param invoiceLedgerDto
     * @return
     */
    @PostMapping("/commitFile")
    public AjaxResult invoiceLedgerCommitFile(@RequestBody InvoiceLedgerDto invoiceLedgerDto) {
        try {
            invoiceLedgerService.invoiceLedgerCommitFile(invoiceLedgerDto);
            return AjaxResult.success();
        }catch (Exception e) {
            return AjaxResult.error(e.getMessage());
        }
    }
}
src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
@@ -22,4 +22,7 @@
    @ApiModelProperty(value = "业务员")
    private String salesman;
    @ApiModelProperty(value = "发票文件名")
    private String invoiceFileName;
}
src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java
@@ -11,6 +11,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@@ -19,6 +20,9 @@
    @Excel(name = "销售合同号")
    private String salesContractNo;
    @Excel(name = "")
    private String customerContractNo;
    @Excel(name = "客户名称")
    private String customerName;
@@ -36,7 +40,10 @@
    private String invoicePerson;
    @Excel(name =  "开票时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime invoiceDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate invoiceDate;
    @Excel(name =  "发票")
    private String invoiceFileName;
}
src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java
@@ -10,7 +10,6 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.text.Format;
import java.time.LocalDate;
import java.time.LocalDateTime;
src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.common.vo.FileVo;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.pojo.InvoiceLedgerFile;
@@ -54,7 +55,7 @@
     * @param invoiceLedgerDto
     * @return
     */
    void invoiceLedgerDownload(HttpServletResponse response ,InvoiceLedgerDto invoiceLedgerDto);
    void invoiceLedgerExport(HttpServletResponse response ,InvoiceLedgerDto invoiceLedgerDto);
    /**
     * 开票台账详情
@@ -62,4 +63,11 @@
     * @return
     */
    InvoiceLedgerDto invoiceLedgerDetail(Integer id);
    /**
     * 附件提交
     * @param invoiceLedgerDto
     * @return
     */
    void invoiceLedgerCommitFile(InvoiceLedgerDto invoiceLedgerDto);
}
src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -6,10 +6,6 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.excel.SupplierManageExcelDto;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.vo.FileVo;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
@@ -30,7 +26,6 @@
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -147,7 +142,7 @@
     * @return
     */
    @Override
    public void invoiceLedgerDownload(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
    public void invoiceLedgerExport(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
        List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoiceLedgerList(invoiceLedgerDto);
        List<InvoiceLedgerExcelDto> invoiceLedgerExcelDtoList = invoiceLedgerDtoList.stream().map(item -> {
            InvoiceLedgerExcelDto invoiceLedgerExcelDto = new InvoiceLedgerExcelDto();
@@ -182,4 +177,26 @@
        return invoiceLedgerDto;
    }
    /**
     * 附件提交
     * @param invoiceLedgerDto
     * @return
     */
    @Override
    public void invoiceLedgerCommitFile(InvoiceLedgerDto invoiceLedgerDto) {
        if(null == invoiceLedgerDto.getId()){
            throw new RuntimeException("缺少发票台账主键");
        }
        if(CollectionUtils.isEmpty(invoiceLedgerDto.getFileList())){
            throw new RuntimeException("缺少文件信息");
        }
        List<FileVo> fileList = invoiceLedgerDto.getFileList();
        fileList.forEach(fileVo -> {
            InvoiceLedgerFile invoiceLedgerFile = new InvoiceLedgerFile();
            BeanUtils.copyProperties(fileVo, invoiceLedgerFile);
            invoiceLedgerFile.setInvoiceLedgerId(invoiceLedgerDto.getId());
            invoiceLedgerFileMapper.insert(invoiceLedgerFile);
        });
    }
}
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -21,10 +21,17 @@
            T1.tenant_id         ,
            T2.customer_name,
            T3.customer_contract_no,
            T3.salesman
            T3.salesman,
            T4.invoiceFileName
        FROM invoice_ledger T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
        LEFT JOIN (
            SELECT
                invoice_ledger_id,
                GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
            FROM invoice_ledger_file GROUP BY invoice_ledger_id
        ) T4 ON T4.invoice_ledger_id = T1.id
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                AND (
@@ -54,9 +61,19 @@
        T1.update_time       ,
        T1.update_user       ,
        T1.tenant_id         ,
        T2.customer_name
            T2.customer_name,
            T3.salesman,
            T3.customer_contract_no,
            T4.invoiceFileName
        FROM invoice_ledger T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
        LEFT JOIN (
        SELECT
        invoice_ledger_id,
        GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
        FROM invoice_ledger_file GROUP BY invoice_ledger_id
        ) T4 ON T4.invoice_ledger_id = T1.id
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                AND (