LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<SysDepart>();
List<String> departIdsOriginal = Arrays.asList(departIds.split(","));
int length = departIdsOriginal.size();
int time=length%1000==0?length/1000:length/1000+1;
List<SysDepart> listCondition=new ArrayList<>();
for (int i=0;i<time;i++) {
if ((i + 1) < time) {
List<String> deptIdsListSplit = departIdsOriginal.subList(i * 1000, (i + 1) * 1000);
query.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
query.in(SysDepart::getId,deptIdsListSplit);
List<SysDepart> listSplit = this.list(query);
listCondition.addAll(listSplit);
}else {
List<String> deptIdsListSplit = departIdsOriginal.subList(i * 1000, length);
query.eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
query.in(SysDepart::getId,deptIdsListSplit);
List<SysDepart> listSplit = this.list(query);
listCondition.addAll(listSplit);
}
}
listCondition.sort(new Comparator<SysDepart>() {
@Override
public int compare(SysDepart o1, SysDepart o2) {
if (Long.parseLong(o1.getOrgCode()) > Long.parseLong(o2.getOrgCode())) {
return 1;
}
if (Long.parseLong(o1.getOrgCode()) >Long.parseLong(o2.getOrgCode())) {
return 0;
}
return -1;
}
});