前提:由於我當前頁面顯示的數據 是在其他兩個表中 只有ID可以使用
1、分別對兩個表進行操作,將List轉為Map對象
//查詢項目表
List<BudgetProjectInfo> budgetProjectInfoList = budgetProjectInfoService.list();
Map<String,BudgetProjectInfo> schemMap = budgetProjectInfoList.stream().collect(Collectors.toMap(BudgetProjectInfo::getId,Function.identity()));
//查詢部門表
List<ComDept> comDeptList = comDeptServiceImpl.list();
Map<String,ComDept> deptMap = comDeptList.stream().collect(Collectors.toMap(ComDept::getId, Function.identity()));
2、設置頁面所需要的數據,篩選條件
QueryWrapper<BudgetSchemeInfo> schemeQuery = Wrappers.query();
schemeQuery.eq(StringUtils.isNotEmpty(schemeInfo.getDeclareYear()), BudgetSchemeInfoUtil.COLUMN_DECLARE_YEAR,schemeInfo.getDeclareYear())
.eq(StringUtils.isNotEmpty(schemeInfo.getDepId()),BudgetSchemeInfoUtil.COLUMN_DEP_ID,schemeInfo.getDepId())
.eq(StringUtils.isNotEmpty(schemeInfo.getDataSource()),BudgetSchemeInfoUtil.COLUMN_DATA_SOURCE,schemeInfo.getDataSource())
.eq(StringUtils.isNotEmpty(schemeInfo.getSchoolCode()),BudgetSchemeInfoUtil.COLUMN_SCHOOL_CODE,schemeInfo.getSchoolCode());
Page<BudgetSchemeInfo> page = new Page<>(schemeInfo.getPageCurrent(), schemeInfo.getPageSize());
IPage<BudgetSchemeInfo> budgetSchemeInfoIPage = this.page(page, schemeQuery);
3、寫VO,例如(里面寫的是自己數據庫沒有,要調用其他數據庫的數據的值,記得導入Get和Set,此處略)
/** 項目編號**/
private String proCode;
/** 項目名稱**/
private String proName;
/** 部門編號**/
private String deptNum;
/** 部門名稱**/
private String deptName;
/** 項目狀態**/
private String proStatus;
4、將實體對象轉換為VO
List<BudgetSchemeVO> fmsAtInfoVOList = ObjectParamCopyUtil.copyList(budgetSchemeInfoIPage.getRecords(),BudgetSchemeVO.class);
5、循環獲取數據(根據ProId找項目表中數據,根據DepId找部門表中數據)
for (BudgetSchemeVO b:fmsAtInfoVOList){
b.setProCode(schemMap.get(b.getProId()).getProNo());
b.setProName(schemMap.get(b.getProId()).getProName());
if(StringUtils.isNotEmpty(deptMap.get(b.getDepId()).getDeptNum())) {
b.setDeptNum(deptMap.get(b.getDepId()).getDeptNum());
}
//b.setDeptNum(deptMap.get(b.getDepId()).getDeptNum());
b.setDeptName(deptMap.get(b.getDepId()).getDeptName());
b.setProStatus(schemMap.get(b.getProId()).getStatus());
}
6、返回數據
return ResultJsonUtil.returnResult(ResultEnum.SUCCESS, VoUtilFactory.convertToVoPage(fmsAtInfoVOList,budgetSchemeInfoIPage));