activiti6用户分页查询待办任务

activiti6 用户分页查询待办任务

Controller
 @RequestMapping("/queryTask")
    @ApiOperation(value = "用户分页查询待办任务", httpMethod = "POST", notes = "用户分页查询待办任务")
    @ResponseBody
    public ResponseVo<IPage> queryTask(String userId, PageRequest pageRequest, String drafterName, Date startTime, Date endTime) {
        if (null == userId || "".equals(userId)) {
            throw new BaseException(CoreErrorCode.REQUIRED_PARAM_EMPTY.getCode());
        }
        IPage page = jbpmProcessinstanceService.selectAgentTask(userId, pageRequest,drafterName,startTime,endTime);
        return new ResponseVo<>(page);
    }

createTaskyiban
/**
	 *
	 * 查询用户待办任务
	 * 
	 * @param userId 用户id
	 * @param offset 从数据库中的第几条数据开始查询
	 * @param limit  查询几条数据
	 * @return :List<Task>
	 */
	public List<Task> createTaskQuery(String userId, Integer offset, Integer limit) {
		List<Task> candidateUserTasks = ProcessEngines.getDefaultProcessEngine().getTaskService().createTaskQuery()
				.taskCandidateOrAssigned(userId).orderByTaskCreateTime().desc().listPage(offset, limit);
		return candidateUserTasks;
	}
Service
public IPage selectAgentTask(String userId, PageRequest pageRequest, String name,Date startTime,Date endTime) {
		if (null == userId || "".equals(userId)) {
			throw new BaseException(CoreErrorCode.REQUIRED_PARAM_EMPTY.getCode());
		}

		Integer offset = pageRequest.getOffset();
		Integer limit = pageRequest.getLimit();

		// 查询出用户待办任务
		List<Task> taskQuery = activitiInstanceService.createTaskQuery(userId, offset, limit);

		List<TfJbpmWfInstanceTaskVO> taskVOList = new ArrayList<>();
		JbpmProcessinstance jbpmProcessinstance = null;
		for (Task task : taskQuery) {
			// 流程实例ID
			String processInstanceId = task.getProcessInstanceId();
			// 根据流程实例ID,查询需要返回给用户的任务列表
			QueryWrapper<JbpmProcessinstance> queryWrapper = new QueryWrapper<>();
			queryWrapper.eq("process_instance_id", processInstanceId);
			if(name != null && !"".equals(name)){
				queryWrapper.like("drafter_name",name);
			}
			if(startTime != null && !"".equals(startTime) && endTime != null && !"".equals(endTime)) {
				queryWrapper.between("ct",startTime,endTime);
			}
			jbpmProcessinstance = this.getOne(queryWrapper, true);

			// 转换 VO对象
			TfJbpmWfInstanceTaskVO tfJbpmWfInstanceTaskVO = new TfJbpmWfInstanceTaskVO();

			if (null != jbpmProcessinstance) {
				// 任务名称
				String taskName = task.getName();
				// 获取流程Id
				Long processId = jbpmProcessinstance.getProcessId();
				// 返回activiti流程实例ID
				String jbpmProcessInstanceId = jbpmProcessinstance.getProcessInstanceId();
				// 获取businessKey
				String businessKey = jbpmProcessinstance.getBusinessKey();
				// 申请者ID
				String drafter = jbpmProcessinstance.getDrafter();
				// 申请者姓名
				String drafterName = jbpmProcessinstance.getDrafterName();
				//开始时间
				Date ct = jbpmProcessinstance.getCt();
				//任务状态
				String flowstate = jbpmProcessinstance.getFlowstate();
				//当前任务
				String topic = jbpmProcessinstance.getTopic();


				tfJbpmWfInstanceTaskVO.setTaskId(task.getId());
				tfJbpmWfInstanceTaskVO.setTaskName(taskName);
				tfJbpmWfInstanceTaskVO.setProcessId(processId);
				tfJbpmWfInstanceTaskVO.setProcessInstanceId(jbpmProcessInstanceId);
				tfJbpmWfInstanceTaskVO.setBusinessKey(businessKey);
				tfJbpmWfInstanceTaskVO.setDrafter(drafter);
				tfJbpmWfInstanceTaskVO.setDrafterName(drafterName);
				tfJbpmWfInstanceTaskVO.setBegindate(ct);
				tfJbpmWfInstanceTaskVO.setFlowstate(flowstate);
				tfJbpmWfInstanceTaskVO.setTopic(topic);
				taskVOList.add(tfJbpmWfInstanceTaskVO);
			}
		}

		IPage page = new Page();
		long count = activitiInstanceService.createTaskQueryCount(userId);
		page.setTotal(count);
		page.setRecords(taskVOList);
		page.setCurrent(pageRequest.getPage());
		page.setSize(pageRequest.getLimit());
		return page;
	}
TfJbpmWfInstanceTaskVO
private Long id;

	/** 当前任务. */
	private String taskId;

	/** 当前任务名称. */
	private String taskName;

	/** process id. */
	private Long processId;
	/** 流程名称. */
	private String processName;

	/** 发起流程描述. */
	private String option;

	/** activiti流程实例id,此id来源于jbpm内流程实例信息id. */
	private String processInstanceId;

	/** 业务实体id. */
	private String businessKey;

	/** 主题信息. */
	private String topic;

	/** 发起人姓名. */
	private String drafterName;

	/** 发起人id. */
	private String drafter;

	/** 发起时间. */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date draftDate;

	/** 结束时间. */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date enddate;

	/** 开始时间. */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date begindate;

	/** 流程状态. */
	private String flowstate;

	/** 上一节点任务. */
	private Long previoustask;

	/** 当前节点任务. */
	private Long currenttask;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高空二踢脚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值