2025-06-23 回款登记导出+分页查询条件问题修复+【采购管理】-【来票登记】,合同金额列后面增加已开票金额、待开票金额两列
已修改11个文件
已添加2个文件
167 ■■■■ 文件已修改
src/main/java/com/ruoyi/common/config/TomcatConfig.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sales/SalesLedgerMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/config/TomcatConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.common.config;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
// ä¿®æ”¹tomcat配置,对get中[]放行
@Configuration
public class TomcatConfig {
    @Bean
    public TomcatServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((Connector connector) -> {
            connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
            connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
        });
        return factory;
    }
}
src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import org.apache.ibatis.annotations.Param;
@@ -16,4 +17,6 @@
public interface PurchaseLedgerMapper extends BaseMapper<PurchaseLedger> {
    int updateContractAmountById(@Param("id") Long id, @Param("totalTaxInclusiveAmount") BigDecimal totalTaxInclusiveAmount);
    IPage<PurchaseLedger> selectPurchaseLedgerListPage(IPage ipage, @Param("c") PurchaseLedger purchaseLedger);
}
src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@@ -127,6 +128,14 @@
     */
    private String phoneNumber;
    @TableField(exist = false)
    @ApiModelProperty("来票金额")
    private String receiptPaymentAmount;
    @ApiModelProperty("未来票金额")
    @TableField(exist = false)
    private String unReceiptPaymentAmount;
}
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -425,11 +425,8 @@
    @Override
    public IPage<PurchaseLedger> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedger purchaseLedger) {
        LambdaQueryWrapper<PurchaseLedger> queryWrapper = new LambdaQueryWrapper<>();
        if (StringUtils.isNotBlank(purchaseLedger.getPurchaseContractNumber())) {
            queryWrapper.like(PurchaseLedger::getPurchaseContractNumber, purchaseLedger.getPurchaseContractNumber());
        }
        return purchaseLedgerMapper.selectPage(ipage, queryWrapper);
        return purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
    }
    @Override
src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
@@ -16,7 +16,9 @@
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/receiptPayment")
@@ -102,14 +104,21 @@
    @ApiModelProperty("导出回款登记")
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArrayList<Long> ids) {
        //ids选择就是全导出
//        if (ids == null || ids.size() == 0) {
//            receiptPaymentService.exportPaymentList(response);
//        }
    public void export(HttpServletResponse response, @RequestParam("ids") String idsStr) {
        if (idsStr == null || idsStr.trim().isEmpty()) {
            throw new RuntimeException("请选择要导出的记录");
        }
        ArrayList<Long> ids = (ArrayList<Long>) Arrays.stream(idsStr.split(","))
                .map(s -> s.replaceAll("[\\[\\]]", "").trim())
                .map(Long::valueOf)
                .collect(Collectors.toList());
            receiptPaymentService.exportPaymentList(response, ids);
    }
    /**
     * å¼€ç¥¨å°è´¦è¯¦æƒ…
     * @param id
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
@@ -21,7 +21,6 @@
    private String customerName;
    @ApiModelProperty(value = "查询文本")
    @Excel(isExport = false)
    private String searchText;
    @ApiModelProperty(value = "销售台账sales_ledger")
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package com.ruoyi.sales.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ReceiptPaymentExeclDto {
    @ApiModelProperty(value = "销售合同号")
    @Excel(name = "销售合同号",sort = 1)
    private String salesContractNo;
    @ApiModelProperty(value = "客户合同号")
    @Excel(name = "客户合同号",sort = 2)
    private String customerContractNo;
    @ApiModelProperty(value = "客户名称")
    @Excel(name = "客户名称",sort = 3)
    private String customerName;
    @ApiModelProperty(value = "产品大类")
    @Excel(name = "产品大类",sort = 4)
    private String productCategory;
    @ApiModelProperty(value = "项目名称")
    @Excel(name = "项目名称",sort = 5)
    private String projectName;
    @ApiModelProperty(value = "发票号")
    @Excel(name = "发票号",sort = 6)
    private String invoiceNo;
    @ApiModelProperty(value = "发票金额")
    @Excel(name = "发票金额",sort = 7)
    private BigDecimal invoiceTotal;
    @ApiModelProperty(value = "税率(%)")
    @Excel(name = "税率(%)",sort = 8)
    private BigDecimal taxRate;
    @ApiModelProperty(value = "回款金额")
    @Excel(name = "回款金额",sort = 9)
    private BigDecimal receiptPaymentAmountTotal;
    @ApiModelProperty(value = "待回款金额")
    @Excel(name = "待回款金额",sort = 10)
    private BigDecimal noReceiptAmount;
}
src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java
@@ -6,6 +6,7 @@
import com.ruoyi.sales.dto.CustomerInteractionDto;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.ReceiptPaymentDto;
import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
import com.ruoyi.sales.pojo.ReceiptPayment;
import org.apache.ibatis.annotations.Param;
@@ -73,5 +74,5 @@
    List<ReceiptPaymentDto> bindInvoiceNoRegListAll();
    List<ReceiptPaymentDto> bindInvoiceNoRegListByIds(ArrayList<Long> ids);
    List<ReceiptPaymentExeclDto> bindInvoiceNoRegListByIds(List<Long> ids);
}
src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
@@ -6,11 +6,9 @@
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.ReceiptPaymentDto;
import com.ruoyi.sales.pojo.ReceiptPayment;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -101,5 +99,5 @@
    /**
     * éƒ¨åˆ†å¯¼å‡ºå›žæ¬¾åˆ—表
     */
    void exportPaymentList(HttpServletResponse response, ArrayList<Long> ids);
    void exportPaymentList(HttpServletResponse response, List<Long> ids);
}
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.sales.dto.CustomerInteractionDto;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.ReceiptPaymentDto;
import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.pojo.ReceiptPayment;
@@ -264,9 +265,9 @@
    }
    @Override
    public void exportPaymentList(HttpServletResponse response, ArrayList<Long> ids) {
        List<ReceiptPaymentDto> receiptPaymentDtoList =  receiptPaymentMapper.bindInvoiceNoRegListByIds(ids);
        ExcelUtil<ReceiptPaymentDto> util = new ExcelUtil<ReceiptPaymentDto>(ReceiptPaymentDto.class);
    public void exportPaymentList(HttpServletResponse response, List<Long> ids) {
        List<ReceiptPaymentExeclDto> receiptPaymentDtoList =  receiptPaymentMapper.bindInvoiceNoRegListByIds(ids);
        ExcelUtil<ReceiptPaymentExeclDto> util = new ExcelUtil<ReceiptPaymentExeclDto>(ReceiptPaymentExeclDto.class);
        util.exportExcel(response, receiptPaymentDtoList, "回款登记");
    }
}
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -9,4 +9,29 @@
        SET contract_amount = #{totalTaxInclusiveAmount}
        WHERE id = #{id}
    </update>
    <select id="selectPurchaseLedgerListPage" resultType="com.ruoyi.purchase.pojo.PurchaseLedger">
        select
        pl.id,
        pl.purchase_contract_number ,
        pl.sales_contract_no,
        pl.supplier_name,
        pl.project_name,
        pl.contract_amount,
        sum(pr.tickets_amount)as receipt_payment_amount,
        pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount,
        pl.entry_date,
        pl.recorder_name
        from purchase_ledger pl
        left join product_record pr on pl.id = pr.purchase_ledger_id
        <where>
            <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
                pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
            </if>
        </where>
        group by pl.id, pl.purchase_contract_number, pl.sales_contract_no, pl.supplier_name,
        pl.project_name,pl.entry_date,
        pl.recorder_name,
        pl.contract_amount
    </select>
</mapper>
src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
@@ -99,7 +99,7 @@
                AND T3.customer_name LIKE CONCAT('%',#{c.customerName},'%')
            </if>
            <if test="c.customerContractNo != null and c.customerContractNo !=''">
                AND T1.customer_contract_no LIKE CONCAT('%',#{c.customerContractNo},'%')
                AND T3.customer_contract_no LIKE CONCAT('%',#{c.customerContractNo},'%')
            </if>
            <if test="c.projectName != null and c.projectName !=''">
                AND T3.project_name LIKE CONCAT('%',#{c.projectName},'%')
@@ -210,10 +210,10 @@
                AND T4.project_name LIKE CONCAT('%',#{params.projectName},'%')
            </if>
            <if test="params.customerContractNo != null and params.customerContractNo != '' ">
                AND T1.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%')
                AND T4.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%')
            </if>
            <if test="params.salesContractNo != null and params.salesContractNo != '' ">
                AND T1.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%')
                AND T4.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%')
            </if>
        </where>
        ORDER BY T1.receipt_payment_date DESC
@@ -368,7 +368,7 @@
                BY invoice_ledger_id
        ) T6 ON T1.id = T6.invoice_ledger_id
    </select>
    <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
    <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentExeclDto">
        SELECT
            T1.id ,
            T1.invoice_no ,
src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -67,8 +67,8 @@
            <if test="salesLedgerDto.customerContractNo != null and salesLedgerDto.customerContractNo !='' ">
                T1.customer_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%')
            </if>
            <if test="salesLedgerDto.sales_contract_no != null and salesLedgerDto.sales_contract_no != '' ">
                T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%')
            <if test="salesLedgerDto.salesContractNo != null and salesLedgerDto.salesContractNo != '' ">
                T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.salesContractNo},'%')
            </if>
            <if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' ">
                T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%')