public TableDataInfo list(TAllParam tAllParam) { startPage(); //List<TAllParam> list = tAllParamService.selectTAllParamList(tAllParam); List<TAllParam> list = tAllParamService.selectList(tAllParam); // new LambdaQueryWrapper<TAllParam>().like(StringUtils.isNotBlank(tAllParam.getMsc()),TAllParam::getMsc,StringUtils.isNotBlank(tAllParam.getMsc())?tAllParam.getMsc().toUpperCase():"") // .like(StringUtils.isNotBlank(tAllParam.getClxh()),TAllParam::getClxh,tAllParam.getClxh()) // .like(StringUtils.isNotBlank(tAllParam.getHbpl()),TAllParam::getHbpl,tAllParam.getHbpl()) // .like(StringUtils.isNotBlank(tAllParam.getVehRlzl()),TAllParam::getVehRlzl,tAllParam.getVehRlzl()) // .like(StringUtils.isNotBlank(tAllParam.getClyyxzcbh()),TAllParam::getClyyxzcbh,tAllParam.getClyyxzcbh()) // .like(StringUtils.isNotBlank(tAllParam.getVehZbzl()),TAllParam::getVehZbzl,tAllParam.getVehZbzl()) for (TAllParam param: list) { if (StringUtils.isNotBlank(param.getBlcVin())){ param.setBlc("是"); }else { param.setBlc("否"); } } // 如果查询条件中有blc字段,则按照该字段进行匹配查询 if (StringUtils.isNotBlank(tAllParam.getBlc())) { list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList()); } return getDataTable(list);这样根据查询‘保留车’得到的数据只是第一页的(带了分页的),如何查询出不带分页的
时间: 2024-03-17 09:43:05 浏览: 59
要查询不带分页的数据,可以将 `startPage()` 方法注释掉,这样就不会开启分页功能,查询出的数据就是全部数据,而不是只有第一页的数据。修改后的代码如下:
```
public TableDataInfo list(TAllParam tAllParam) {
//startPage(); // 注释掉该行代码
List<TAllParam> list = tAllParamService.selectList(tAllParam);
for (TAllParam param: list) {
if (StringUtils.isNotBlank(param.getBlc())) {
param.setBlc("是");
} else {
param.setBlc("否");
}
}
if (StringUtils.isNotBlank(tAllParam.getBlc())) {
list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList());
}
return getDataTable(list);
}
```
相关问题
public TableDataInfo list(TAllParam tAllParam) { startPage(); List<TAllParam> list = tAllParamService.list(new LambdaQueryWrapper<TAllParam>() .like(StringUtils.isNotBlank(tAllParam.getMsc()),TAllParam::getMsc,StringUtils.isNotBlank(tAllParam.getMsc())?tAllParam.getMsc().toUpperCase():"") .like(StringUtils.isNotBlank(tAllParam.getClxh()),TAllParam::getClxh,tAllParam.getClxh()) .like(StringUtils.isNotBlank(tAllParam.getHbpl()),TAllParam::getHbpl(),tAllParam.getHbpl()) .like(StringUtils.isNotBlank(tAllParam.getVehRlzl()),TAllParam::getVehRlzl(),tAllParam.getVehRlzl()) .like(StringUtils.isNotBlank(tAllParam.getClyyxzcbh()),TAllParam::getClyyxzcbh,tAllParam.getClyyxzcbh()) .like(StringUtils.isNotBlank(tAllParam.getVehZbzl()),TAllParam::getVehZbzl(),tAllParam.getVehZbzl()) ); // 遍历List,根据MSC匹配查询T_VEHCERT_PRINT表和T_LOCK_VIN表 for (TAllParam param : list) { String msc = param.getMsc(); List<String> vinList = vehcertPrintService.getVinByMsc(msc); // 根据MSC查询对应的VIN列表 boolean isBlc = false; // 是否为保留车的标志位 for (String vin : vinList) { if (StringUtils.isNotBlank(vin) && lockVinService.isVinExisted(vin)) { isBlc = true; break; } } param.setBlc(isBlc ? "是" : ""); } // 如果查询条件中有blc字段,则按照该字段进行匹配查询 if (StringUtils.isNotBlank(tAllParam.getBlc())) { list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList()); } return getDataTable(list); }能不能优化代码,这样在循环中调用查询方法,每循环一次都要去查询对应的表一次,很拖时间,页面半天出不来
可以优化代码,可以考虑将查询操作放在循环外面,避免每次循环都去查询,可以考虑使用 Map 来存储 msc 和对应的 VIN 列表,然后在循环中根据 msc 取出对应的 VIN 列表进行操作。修改后的代码如下所示:
```
public TableDataInfo list(TAllParam tAllParam) {
startPage();
List<TAllParam> list = tAllParamService.list(new LambdaQueryWrapper<TAllParam>()
.like(StringUtils.isNotBlank(tAllParam.getMsc()),TAllParam::getMsc,StringUtils.isNotBlank(tAllParam.getMsc())?tAllParam.getMsc().toUpperCase():"")
.like(StringUtils.isNotBlank(tAllParam.getClxh()),TAllParam::getClxh,tAllParam.getClxh())
.like(StringUtils.isNotBlank(tAllParam.getHbpl()),TAllParam::getHbpl(),tAllParam.getHbpl())
.like(StringUtils.isNotBlank(tAllParam.getVehRlzl()),TAllParam::getVehRlzl(),tAllParam.getVehRlzl())
.like(StringUtils.isNotBlank(tAllParam.getClyyxzcbh()),TAllParam::getClyyxzcbh,tAllParam.getClyyxzcbh())
.like(StringUtils.isNotBlank(tAllParam.getVehZbzl()),TAllParam::getVehZbzl(),tAllParam.getVehZbzl())
);
// 遍历List,根据MSC匹配查询T_VEHCERT_PRINT表和T_LOCK_VIN表
Map<String, List<String>> mscToVinListMap = new HashMap<>();
for (TAllParam param : list) {
String msc = param.getMsc();
if (!mscToVinListMap.containsKey(msc)) {
List<String> vinList = vehcertPrintService.getVinByMsc(msc);
mscToVinListMap.put(msc, vinList);
}
List<String> vinList = mscToVinListMap.get(msc);
boolean isBlc = false; // 是否为保留车的标志位
for (String vin : vinList) {
if (StringUtils.isNotBlank(vin) && lockVinService.isVinExisted(vin)) {
isBlc = true;
break;
}
}
param.setBlc(isBlc ? "是" : "");
}
// 如果查询条件中有blc字段,则按照该字段进行匹配查询
if (StringUtils.isNotBlank(tAllParam.getBlc())) {
list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList());
}
return getDataTable(list);
}
```
通过以上优化,可以避免在循环中重复查询,提高代码的执行效率。
public static <T> PageInfo<T> startPage(PageSortInterface pageSort, Supplier<List<T>> supplier, QueryWrapper<T> queryWrapper) { PageHelper.startPage(pageSort.getPageNum(), pageSort.getPageSize(), pageSort.getSort() + " " + pageSort.getOrder()); List<T> list = supplier.get(queryWrapper); PageInfo<T> pageInfo = new PageInfo<>(list); return pageInfo; }中的 List<T> list = supplier.get(queryWrapper);报错Expected 0 arguments but found 1
根据你提供的代码,可以看出 `supplier` 是一个 `Supplier` 接口,该接口不接受任何参数,只有一个 `get()` 方法,因此在调用 `supplier.get(queryWrapper)` 时会报错。如果你想要将 `queryWrapper` 作为参数传递给 `supplier`,可以将 `supplier` 定义为一个接受 `QueryWrapper<T>` 类型参数的函数式接口,例如 `Function<QueryWrapper<T>, List<T>>`,然后在调用时使用 `supplier.apply(queryWrapper)`。这样就可以将 `queryWrapper` 作为参数传递给 `supplier` 了。
阅读全文