fa1e63ff7183eb545d117fd80b9f00394a00d8cc..1e7d5dbd645902e5178a4ce82aa4bc8734f0f8ce
2026-08-26 gongchunyi
feat: 质检添加采购合同号、工单编号、销售单号搜索
1e7d5d 对比 | 目录
2026-08-26 gongchunyi
fix: 文件名特殊符号处理
901d62 对比 | 目录
2026-08-26 gongchunyi
fix: 附件上传bug
36ca15 对比 | 目录
已修改4个文件
21 ■■■■■ 文件已修改
src/main/java/com/ruoyi/basic/utils/FileUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/quality/QualityInspectMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -27,6 +27,7 @@
import javax.crypto.SecretKey;
import java.io.File;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@@ -744,7 +745,7 @@
        if (!normalizedActionPath.endsWith("/")) {
            normalizedActionPath = normalizedActionPath + "/";
        }
        String baseUrl = domain + prefix + normalizedActionPath + storageBlob.getUidFilename();
        String baseUrl = domain + prefix + normalizedActionPath + URLEncoder.encode(storageBlob.getUidFilename(), StandardCharsets.UTF_8).replace("+", "%20");
        // -1 表示永久有效,不生成 token,改为 publicKey 组合校验
        if (expired != null && BigDecimal.valueOf(-1L).compareTo(expired) == 0) {
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.basic.dto.StorageBlobDTO;
import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.sales.pojo.CommonFile;
@@ -65,5 +66,6 @@
    private LocalDate deliveryDate;
    private List<StorageBlobDTO> storageBlobDTOs;
    @JsonProperty("storageBlobVOs")
    private List<StorageBlobVO> StorageBlobVOs;
}
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -12,6 +12,7 @@
import com.ruoyi.account.mapper.sales.AccountSalesCollectionMapper;
import com.ruoyi.account.pojo.sales.AccountInvoiceApplication;
import com.ruoyi.account.pojo.sales.AccountSalesCollection;
import com.ruoyi.basic.dto.StorageAttachmentDTO;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.mapper.CustomerMapper;
@@ -210,6 +211,12 @@
            resultDto.setProductData(products);
            resultDto.setSalesLedgerFiles(salesLedgerFiles);
        }
        StorageAttachmentDTO attachmentQuery = new StorageAttachmentDTO();
        attachmentQuery.setApplication(ApplicationTypeEnum.FILE.getType());
        attachmentQuery.setRecordType(RecordTypeEnum.SALES_LEDGER.getType());
        attachmentQuery.setRecordId(salesLedger.getId());
        resultDto.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(attachmentQuery));
        return resultDto;
    }
src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -43,12 +43,21 @@
        <if test="qualityInspect.supplier != null and qualityInspect.supplier != '' ">
            AND qi.supplier like concat('%',#{qualityInspect.supplier},'%')
        </if>
        <if test="qualityInspect.inspectType == 0 and qualityInspect.purchaseContractNo != null and qualityInspect.purchaseContractNo != '' ">
            AND pl.purchase_contract_number like concat('%',#{qualityInspect.purchaseContractNo},'%')
        </if>
        <if test="qualityInspect.customer != null and qualityInspect.customer != '' ">
            AND qi.customer like concat('%',#{qualityInspect.customer},'%')
        </if>
        <if test="qualityInspect.process != null and qualityInspect.process != '' ">
            AND qi.process like concat('%',#{qualityInspect.process},'%')
        </if>
        <if test="qualityInspect.inspectType != 0 and qualityInspect.workOrderNo != null and qualityInspect.workOrderNo != '' ">
            AND pot.work_order_no like concat('%',#{qualityInspect.workOrderNo},'%')
        </if>
        <if test="qualityInspect.inspectType != 0 and qualityInspect.salesContractNo != null and qualityInspect.salesContractNo != '' ">
            AND po_sales.sales_contract_no like concat('%',#{qualityInspect.salesContractNo},'%')
        </if>
        <if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
            AND qi.product_name like concat('%',#{qualityInspect.productName},'%')
        </if>