liding
23 小时以前 f29c8786807015d78b9be8a33397f69478d92a76
main-business/src/main/java/com/ruoyi/business/service/impl/SalesRecordServiceImpl.java
@@ -69,28 +69,25 @@
        // 1. 创建查询条件,按创建时间倒序排序
        LambdaQueryWrapper<SalesRecord> queryWrapper = new LambdaQueryWrapper<>();
        if (StringUtils.isNotBlank(salesRecordDto.getSearchAll())) {
            String searchValue = salesRecordDto.getSearchAll();
            // 1. 先尝试作为日期查询
            try {
                LocalDate saleDate = LocalDate.parse(searchValue);
                queryWrapper.eq(SalesRecord::getSaleDate, saleDate);
            } catch (DateTimeParseException e) {
                // 2. 如果不是日期,则作为煤种名称查询
        // 按日期查询
        if (salesRecordDto.getSaleDate() != null) {
            queryWrapper.eq(SalesRecord::getSaleDate, salesRecordDto.getSaleDate());
        }
        // 按煤种名称查询
        if (StringUtils.isNotBlank(salesRecordDto.getCoal())) {
                LambdaQueryWrapper<CoalInfo> coalQueryWrapper = new LambdaQueryWrapper<>();
                coalQueryWrapper.like(CoalInfo::getCoal, searchValue);
            coalQueryWrapper.like(CoalInfo::getCoal, salesRecordDto.getCoal());
                List<CoalInfo> coalInfos = coalInfoMapper.selectList(coalQueryWrapper);
                if (!coalInfos.isEmpty()) {
                    // 提取所有匹配的煤种ID
                    List<Long> coalIds = coalInfos.stream()
                            .map(CoalInfo::getId)
                            .collect(Collectors.toList());
                    // 使用in查询匹配任意一个煤种ID
                    queryWrapper.in(SalesRecord::getCoalId, coalIds);
                } else {
                    // 3. 如果找不到煤种,可以返回空结果
                    queryWrapper.eq(SalesRecord::getCoalId, "-1"); // 使用不可能存在的ID
                }
                // 如果没有匹配的煤种,直接返回空结果
                queryWrapper.eq(SalesRecord::getCoalId, -1L); // 使用不可能存在的ID
            }
        }