| | |
| | | // 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 |
| | | } |
| | | } |
| | | |