public NativeTaskQuery buildParams(NativeTaskQuery query, TaskQueryCondition queryCondition) { if (queryCondition.getCurrentUser() != null) { query.parameter("gourpIn", queryCondition.getCurrentUser().getRoleIds()); query.parameter("userId", queryCondition.getCurrentUser().getUserId()); } return query; }
/** * 查询工作流列表 * * @param queryCondition * @return */ public PageInfo<TaskInfoBean> queryTaskListNative(TaskQueryCondition queryCondition) { PageInfo<TaskInfoBean> page = queryCondition.getPageInfo(); List<TaskInfoBean> list = new ArrayList<>(); try { String listSQL = createNativeQuerySQL(queryCondition); String countSQL = "select count(1) from (" + listSQL + ") as t"; logger.info("Native SQL: {}", listSQL); NativeTaskQuery listTaskQuery = taskService.createNativeTaskQuery().sql(listSQL); buildParams(listTaskQuery, queryCondition); List<Task> taskList = listTaskQuery.listPage((page.getPageNo() - 1) * page.getPageSize(), page.getPageSize()); NativeTaskQuery countTaskQuery = taskService.createNativeTaskQuery().sql(countSQL); buildParams(countTaskQuery, queryCondition); long count = countTaskQuery.count(); page.setCount(count); for (Task task : taskList) { list.add(transToTaskInfoBean(task)); } page.setList(list); } catch (Exception e) { logger.error(e.getMessage(), e); throw new OneBaseException("查询失败:" + e.getMessage()); } return page; }