java+native+字段_Java NativeTaskQuery類代碼示例

import org.activiti.engine.task.NativeTaskQuery; //導入依賴的package包/類

/**

* 讀取啟動流程的表單字段

*/

@RequestMapping(value = "task/list")

public ModelAndView todoTasks(HttpServletRequest request, @RequestParam(value = "taskName", required = false) String taskName) throws Exception {

String viewName = "chapter6/task-list";

ModelAndView mav = new ModelAndView(viewName);

User user = UserUtil.getUserFromSession(request.getSession());

Page page = new Page(PageUtil.PAGE_SIZE);

int[] pageParams = PageUtil.init(page, request);

NativeTaskQuery nativeTaskQuery = taskService.createNativeTaskQuery();

LeaveJpaEntity leave = leaveEntityManager.getLeave(1l);

System.out.println(leave);

/*

過濾條件

*/

String filters = "";

if (StringUtils.isNotBlank(taskName)) {

filters += " and RES.NAME_ like #{taskName}";

nativeTaskQuery.parameter("taskName", "%" + taskName + "%");

mav.addObject("taskName", taskName);

}

// 當前人在候選人或者候選組範圍之內

String sql = "select distinct RES.* from ACT_RU_TASK RES left join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_ WHERE SUSPENSION_STATE_ = '1' and " +

" ( RES.ASSIGNEE_ = #{userId}" +

" or (RES.ASSIGNEE_ is null and ( I.USER_ID_ = #{userId} or I.GROUP_ID_ IN (select G.GROUP_ID_ from ACT_ID_MEMBERSHIP G where G.USER_ID_ = #{userId} ) )" +

") )" + filters + " order by RES.CREATE_TIME_ desc";

nativeTaskQuery.sql(sql).parameter("userId", user.getId());

List tasks = nativeTaskQuery.listPage(pageParams[0], pageParams[1]);

page.setResult(tasks);

page.setTotalCount(nativeTaskQuery.sql("select count(*) from (" + sql + ")").count());

// 從5.16版本開始可以使用以下方式

/*TaskQuery taskQuery = taskService.createTaskQuery().taskCandidateOrAssigned(user.getId());

page.setTotalCount(taskQuery.count());

page.setResult(taskQuery.list());

mav.addObject("tasks", tasks);*/

mav.addObject("page", page);

return mav;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值