1. 查询登录用户的待办任务

  1. private List<Task> queryMyTasks(){
  2. String username = SecurityUtils.getUsername();
  3. String roles = String.join(",", tokenService.getLoginUser().getRoles());
  4. //待办
  5. List<String> assignedTaskIds = taskService.createTaskQuery()
  6. .taskAssignee(username)
  7. // .taskCandidateOrAssigned(username)
  8. .list().stream().map(TaskInfo::getId).collect(Collectors.toList());
  9. //待签收
  10. List<String> waitClaimTaskIdsByCandidateUser = actRuIdentityLinkMapper.queryTaskIdsByCandidateUser(username);
  11. List<String> waitClaimTaskIdsByCandidateGroup = actRuIdentityLinkMapper.queryTaskIdsByCandidateGroup(roles);
  12. //待签收任务合并去重
  13. waitClaimTaskIdsByCandidateUser.removeAll(waitClaimTaskIdsByCandidateGroup);
  14. waitClaimTaskIdsByCandidateUser.addAll(waitClaimTaskIdsByCandidateGroup);
  15. //待办、待签收合并去重
  16. assignedTaskIds.removeAll(waitClaimTaskIdsByCandidateUser);
  17. assignedTaskIds.addAll(waitClaimTaskIdsByCandidateUser);
  18. return assignedTaskIds.stream().map(taskId -> taskService.createTaskQuery().taskId(taskId).singleResult()).collect(Collectors.toList());
  19. }

2.审批

注:查询待办任务时并没有使当前用户进行任务拾取,而是等他办理审批时确定拾取人是当前用户

如果是申请用户调整申请,则允许修改实体类+审批(对于申请用户并没有审批的功能,只是判断他是否继续申请还是取消申请)。如果是继续申请,则点击同意并修改实体类;取消申请则没必要对实体类进行修改了

  1. public AjaxResult formDataSave(@PathVariable("taskID") String taskID,
  2. @RequestBody List<ActWorkflowFormDataDTO> formData ) throws ParseException {
  3. return toAjax(actTaskService.formDataSave(taskID, formData));
  4. }
  5. public int formDataSave(String taskID, List<ActWorkflowFormDataDTO> awfs) throws ParseException {
  6. // Task task = taskRuntime.task(taskID);
  7. Task task = taskService.createTaskQuery().taskId(taskID).singleResult();
  8. ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
  9. Boolean hasVariables = false;//没有任何参数
  10. HashMap<String, Object> variables = new HashMap<String, Object>();
  11. //前端传来的字符串,拆分成每个控件
  12. List<ActWorkflowFormData> acwfds = new ArrayList<>();
  13. for (ActWorkflowFormDataDTO awf : awfs) {
  14. ActWorkflowFormData actWorkflowFormData = new ActWorkflowFormData(processInstance.getBusinessKey(),awf, task);
  15. acwfds.add(actWorkflowFormData);
  16. //构建参数集合
  17. if(!"f".equals(awf.getControlIsParam())) {
  18. variables.put(awf.getControlId(), awf.getControlValue());
  19. hasVariables = true;
  20. }
  21. }
  22. if (task.getAssignee() == null) {
  23. // taskService.claim(TaskPayloadBuilder.claim().withTaskId(task.getId()).build());
  24. //拾取任务
  25. taskService.claim(task.getId(),SecurityUtils.getUsername());
  26. }
  27. if (hasVariables) {
  28. //带参数完成任务
  29. /* taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID)
  30. .withVariables(variables)
  31. .build());*/
  32. taskService.complete(taskID,variables);
  33. } else {
  34. /* taskRuntime.complete(TaskPayloadBuilder.complete().withTaskId(taskID)
  35. .build());*/
  36. taskService.complete(taskID);
  37. }
  38. //
  39. //写入数据库 这张表是自己设计的,在查看历史任务是会用到
  40. return actWorkflowFormDataService.insertActWorkflowFormDatas(acwfds);
  41. }

Activiti7开发(四)-我的待办的更多相关文章

  1. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  2. C#的百度地图开发(四)前端显示与定位

    原文:C#的百度地图开发(四)前端显示与定位 有了这些定位信息,那要如何在前端的页面上显示出来呢?这需要用到百度地图的JavaScript的API.下面是示例代码. 前端代码 <%@ Page  ...

  3. 【JAVA EE企业级开发四步走完全攻略】

    本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划,单个发blog比较零散,所以整理此索引,决定以后每发一季JAVA EE blog后会 ...

  4. 从零开始实现ASP.NET Core MVC的插件式开发(四) - 插件安装

    标题:从零开始实现ASP.NET Core MVC的插件式开发(四) - 插件安装 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11260750. ...

  5. STC8H开发(四): FwLib_STC8 封装库的介绍和注意事项

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  6. 【开学季】自学嵌入式开发|四核开发板|4412开发板|ARM+Android+linux技术

    淘宝店铺:迅为开发板http://arm-board.taobao.com 网站:http://www.topeetboard.com QQ咨询:2551456065 电话咨询:010-5895758 ...

  7. EOS智能合约开发(四):智能合约部署及调试(附编程示例)

    EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set ...

  8. 响应式开发(四)-----Bootstrap CSS----------Bootstrap CSS概览和相关注意事项

    本章先记录一些与Bootstrap CSS相关的一些特点和注意事项以及兼容性. HTML 5 文档类型(Doctype) Bootstrap 使用了一些 HTML5 元素和 CSS 属性.为了让这些正 ...

  9. web开发四个作用域

    web开发一共有四个作用域,范围从高到低分为appliaction作用域(全局作用域),session作用域,request作用域和page作用域.${base}是el表达式语法,它会自动先从page ...

  10. 基于Python的Webservice开发(四)-泛微OA的SOAP接口

    一.功能需求 泛微e-cology可以在流程中调用Webservice接口实现与其他系统的联动等复杂功能.但是目前泛微文档中仅提供了调用的方法,但是没有关于接口的相关开发信息. 本次案例是用Pytho ...

随机推荐

  1. iOS开发之实现自定义浮动操作框效果

    今天有个需求是如上图实现类似微信的自定义浮动操作框效果 我自己就写了个demo,大家感兴趣的可以试试,下面是代码 VC代码如下 #import "TestCustomMenuItemVC.h ...

  2. 循环4-for循环

    一.语法 for循环和while类似,常用于执行有限次数的循环,有两种语法结构, 1.变量列表循环 语法: for 变量名 in 变量取值列表 do 指令...... done 变量取值列表中的值,要 ...

  3. ProcessLassoLauncher.exe

    html, body { font-size: 15px } body { font-family: Helvetica, "Hiragino Sans GB", 微软雅黑, &q ...

  4. mangodb查询语句

    1.查询所有记录 db.userInfo.find(); 相当于: select* from userInfo; 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据.注意:键 ...

  5. Charles 抓取 HTTPS 协议内容,需要做什么操作?

    抓取 HTTPS 需要安装证书,Charles 端需要安装 Android.iOS手机端也需要安装 电脑的 Charles 操作:1.proxy - proxy setting - http prox ...

  6. Mysql的MVCC与幻读

    以下特殊情况在可重复读时会产生幻读: 1.a事务先select,b事务insert确实会加一个gap锁,但是如果b事务commit,这个gap锁就会释放(释放后a事务可以随意操作), 2.a事务再se ...

  7. jq的用法

    选择页面中的元素,得到jQuery实例对象 ID选择器$("#save") 类选择器$(".class") 标签选择器$("div") 复合 ...

  8. Java (新)将Excel数据读取到ListMap

    Java (新)将Excel数据读取到ListMap Maven依赖: pom.xml <!-- excel --> <dependency> <groupId>o ...

  9. EF调用sql语句

    1.连接数据库 2.在Dal进行调用sql语句 public List<UserInfo> PageShow(out int totalcount,out int totalpage, s ...

  10. DPDK在虚拟机上运行时,报错: Ethdev port_id=0 requested Rx offloads 0xe doesn't match Rx offloads capabilities 0x82a1d in rte_eth_dev_configure()

    这个错误是因为RX_OFFLOAD与TX_OFFLOAD可能不支持IPV4_CKSUM的检验 解决办法: 1,在配置中注释掉 DEV_RX_OFFLOAD_CHECKSUM 2,在代码中关闭 DEV_ ...