某一个serviceImpl
@Override
public PageVO<FlightTaskModel> GetFlightPublishDataContainName(int page, int rows, String strTaskCode, String dtSDate, String dtEDate, String strAcType, String strAcReg, String iscancel, String isfinish, String user_name,String type) {
// Page<FlightTaskModel> pages = new Page<FlightTaskModel>(page, rows);//mybatis自动分页
List<FlightTaskModel> list = flyTaskMapper.GetFlightPublishDataContainName(strTaskCode, dtSDate, dtEDate, strAcType, strAcReg, iscancel, isfinish, user_name, type);
//根据行程号去重
List<String> taskcodeList = list.stream().map(x -> x.getTaskCode()).distinct().collect(Collectors.toList());
//页面上看到的数据装在这里
List<FlightTaskModel> dt = new ArrayList<>();
PageVO<FlightTaskModel> pages = new PageVO<FlightTaskModel>();//返回值
pages.setTotal(taskcodeList.size());
//行程号那一列
if (taskcodeList.size() > 0) {
Integer sIndex = 0 + (page - 1) * rows;
Integer eIndex = page * rows;
if ((eIndex + 1) >= taskcodeList.size()) {
eIndex = taskcodeList.size();
}
//截取是为了第2页,第3页正确
taskcodeList = taskcodeList.subList(sIndex, eIndex);
}
//其他数据根据行程号排好
for (String itor : taskcodeList) {
//其他数据根据行程号筛选
List<FlightTaskModel> drFlightPlan = list.stream().filter(x -> StringUtils.equals(x.getTaskCode(), itor)).collect(Collectors.toList());
//把筛选好的数据放到空的newlist dt中来
for (FlightTaskModel itpr : drFlightPlan) {
dt.add(itpr);
}
}
pages.setRecords(dt);
return pages;
}
效果