当前位置:   article > 正文

基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-抄送服务处理

基于jeecgboot-vue3的Flowable流程仿钉钉流程设计器-抄送服务处理

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

1、因为仿钉钉设计器里抄送人是一个服务任务,所以要根据这个服务任务进行处理

2、前端就是一个抄送,选择人

3、这里用了jeecg的选择人组件

  1. <el-form-item prop="users" label="指定人员" v-if="activeData.assigneeType === 'user'">
  2. <div style="width:100%">
  3. <j-select-user-by-dept
  4. :zIndex="3000"
  5. v-model:value="activeData.users"
  6. :multi="true"
  7. :placeholder="`请选择${type}人`"
  8. @getSelectResult="handleSelectUsers">
  9. </j-select-user-by-dept>
  10. </div>
  11. </el-form-item>

4、后端对这个处理如下:

  1. public class CcNode extends AssigneeNode {
  2. // 表单属性
  3. private List<FormProperty> formProperties = new ArrayList<>();
  4. // 操作权限
  5. private Map<String, Boolean> operations = new LinkedHashMap<>();
  6. @Override
  7. public List<FlowElement> convert() {
  8. ArrayList<FlowElement> elements = new ArrayList<>();
  9. // 服务节点
  10. ServiceTask serviceTask = new ServiceTask();
  11. serviceTask.setId(this.getId());
  12. serviceTask.setName(this.getName());
  13. // serviceTask.setAsynchronous(true);
  14. serviceTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_CLASS);
  15. serviceTask.setImplementation("org.jeecg.modules.flowable.ServiceTask.ccDelegate");
  16. //增加扩展属性 add by nbacheng
  17. Map<String, List<ExtensionElement>> extensionElements = new HashMap<String, List<ExtensionElement>>();
  18. ExtensionElement extensionElementTotal = new ExtensionElement();
  19. extensionElementTotal.setName("flowable:properties");
  20. ExtensionElement extensionElement = new ExtensionElement();
  21. extensionElement.setName("flowable:property");
  22. ExtensionAttribute extensionAttributeName = new ExtensionAttribute();
  23. extensionAttributeName.setName("name");
  24. extensionAttributeName.setValue("ccUserList");
  25. extensionElement.addAttribute(extensionAttributeName);
  26. ExtensionAttribute extensionAttributeValue = new ExtensionAttribute();
  27. extensionAttributeValue.setName("value");
  28. extensionAttributeValue.setValue(StringUtils.join(this.getUsers(), ","));
  29. extensionElement.addAttribute(extensionAttributeValue);
  30. extensionElementTotal.addChildElement(extensionElement);
  31. extensionElements.put("ccUserList", CollUtil.newArrayList(extensionElementTotal));
  32. serviceTask.setExtensionElements(extensionElements);
  33. elements.add(serviceTask);
  34. // 下一个节点的连线
  35. Node child = this.getChild();
  36. SequenceFlow sequenceFlow = this.buildSequence(child);
  37. elements.add(sequenceFlow);
  38. // 下一个节点
  39. if (Objects.nonNull(child)) {
  40. child.setBranchId(this.getBranchId());
  41. List<FlowElement> flowElements = child.convert();
  42. elements.addAll(flowElements);
  43. }
  44. return elements;
  45. }
  46. }

4、实际的效果图与xml

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/898535
推荐阅读
相关标签
  

闽ICP备14008679号