当前位置: 首页 > news >正文

海珠做网站要多少钱百度收录网站链接入口

海珠做网站要多少钱,百度收录网站链接入口,销售技巧,网站上如何放入地图流程图配置 会签实现须在 userTask 节点下的 multi instance 中配置 collection 及 completion condition; collection 会签人员列表#xff1b;element variable 当前会签变量名称#xff0c;类似循环中的 item;completion condition: 完成条件。 ${taskExecutionServiceIm…流程图配置 会签实现须在 userTask 节点下的 multi instance 中配置 collection 及 completion condition; collection 会签人员列表element variable 当前会签变量名称类似循环中的 item;completion condition: 完成条件。 ${taskExecutionServiceImpl.findProcessUsers(‘applicant’)} : spring 代理下的 activiti 项目可使用 bean 下配置方法。 ${countersignComponent.isComplete(taskId)} 会签实现方法省略监听类。括号中的字符加单引号就是传递字符串不加引号就是取当前任务中的变量。 会签配置图中的 user 变量需在此处使用。 实现代码 会签实现代码 Component RequiredArgsConstructor public class CountersignComponent {private final TaskService taskService;public boolean isComplete(String taskId) {// 1、参数验证if(StringUtils.isAnyEmpty(taskId)){return false;}// 2、获取当前任务节点参数及会签判断后重新设置// 获取流程参数 var会签人员完成自己的审批任务时会添加流程参数 var2 为拒绝1 为同意String variable BeanUtil.nullOrUndefinedToEmptyStr(taskService.getVariableLocal(taskId, ActivitiCommonConstant.VAR.getValue()));// 当值为 2 证明已有人拒绝返回 trueif(DefaultConstant.TWO_CODE.getKey().equals(variable)){//会签结束设置参数 execType 为 4 进行下一步操作。taskService.setVariableLocal(taskId, ActivitiCommonConstant.EXEC_TYPE.getValue(), DefaultConstant.FIVE_CODE.getKey());return true;}// 当值为 1判断会签是否结束Integer complete (Integer) taskService.getVariable(taskId, ActivitiCommonConstant.NR_OF_COMPLETED_INSTANCES.getValue());if(complete 0){// 会签未结束后续处理}return false;}}用户动态获取代码 Overridepublic ListString findProcessUsers(String code) {// 1、参数验证if(StringUtils.isEmpty(code)){throw new BusinessException(ActivitiConstant.PROCESS_USER_NULL);}// 2、查询对应流程人员具体取人逻辑根据个人业务变更ProcessParameterQuery processParameterQuery new ProcessParameterQuery();processParameterQuery.setCode(code);GostopResponseVoProcessParameterVo processParameter dev.findProcessParameter(processParameterQuery);ProcessParameterVo processParameterVo processParameter.getResult();if(Objects.isNull(processParameterVo)){throw new BusinessException(ActivitiConstant.PROCESS_USER_NULL);}ListHospitalUserVo userInfos processParameterVo.getUserInfos();if(CollectionUtils.isEmpty(userInfos)){throw new BusinessException(ActivitiConstant.PROCESS_USER_NULL);}return userInfos.stream().map(HospitalUserVo::getId).distinct().collect(Collectors.toList());}开启流程 Overridepublic String startProcess(CommonTaskParamVo param) {// 1、参数验证if(Objects.isNull(param) || StringUtils.isAnyEmpty(param.getProcessKey())){throw new BusinessException(ActivitiConstant.EXEC_ERROR_PARAMS_NULL);}// 2、启动流程定义返回流程实例ProcessInstance pi;try {CustomParamVo customParamVo param.getCustomParamVo();String paramJson JSONObject.toJSONString(customParamVo);Map paramMap JSONObject.parseObject(paramJson, Map.class);pi runtimeService.startProcessInstanceByKey(param.getProcessKey(), paramMap);} catch (Exception e) {log.error(e.getMessage());throw new BusinessException(ActivitiConstant.PROCESS_NOT_DEPLOYED);}return pi.getId();}任务执行 Overridepublic String complete(CommonTaskParamVo param) {// 1、参数验证if(Objects.isNull(param) || StringUtils.isAnyEmpty(param.getProcessId(), param.getUserId())){throw new BusinessException(ActivitiConstant.EXEC_ERROR_PARAMS_NULL);}// 2、查询当前人任务信息String userId param.getUserId();//与正在执行的任务管理相关的ServiceTask task taskService.createTaskQuery()//指定个人任务查询指定办理人.taskCandidateUser(userId)//使用流程实例ID查询.processInstanceId(param.getProcessId())//排序.orderByTaskCreateTime().asc()//返回列表.singleResult();if (Objects.isNull(task)) {throw new BusinessException(ActivitiConstant.TASK_NULL_ERROR);}task.setDescription(param.getDescription());task.setAssignee(userId);taskService.saveTask(task);// 2.1 设置执行人信息HospitalUserCacheVo userInfo activitComponent.getUserInfo();CustomParamVo customParamVo param.getCustomParamVo();customParamVo.setExecUserId(userInfo.getId());customParamVo.setExecUserName(userInfo.getDepartmentName());customParamVo.setExecTime(DateUtil.date2String(LocalDateTime.now()));customParamVo.setTaskId(task.getId());// 2.2 将自定义参数转为 mapString paramJson JSONObject.toJSONString(customParamVo);Map paramMap JSONObject.parseObject(paramJson, Map.class);taskService.setVariablesLocal(task.getId(), paramMap);// 3、执行当前节点信息taskService.complete(task.getId());return task.getId();}参数接收对象 Data public class CommonTaskParamVo {/*** 用户 ID*/private String userId;/**** 流程图定义 KEY*/private String processKey;/*** 流程 ID*/private String processId;/*** 描述*/private String description;/*** 自定义参数类*/private CustomParamVo customParamVo;} Data public class CustomParamVo {/*** 操作类型 1 同意 2 回退 3 驳回 4 提交 5 删除*/private String execType;/*** 节点类型 1 申请节点 2 审批节点*/private String nodeType;/*** 预留参数*/private String var;/*** 执行人 ID*/private String execUserId;/*** 执行人名称*/private String execUserName;/*** 执行时间*/private String execTime;/*** 任务 ID*/private String taskId;}使用上述参数类及流程配置后查询任务流水就变得非常简单。 流水查询 Overridepublic ListFlowDataVo flowQueryProcess(FlowQuery param) {// 1、参数验证if(Objects.isNull(param) || StringUtils.isAnyEmpty(param.getProcessId())){return new ArrayList();}// 2、查询任务执行节点信息HistoricTaskInstanceQuery historicTaskInstanceQuery historyService.createHistoricTaskInstanceQuery();ListHistoricTaskInstance taskInfoArr historicTaskInstanceQuery.processInstanceId(param.getProcessId()).orderByTaskCreateTime().asc().list();if(CollectionUtils.isEmpty(taskInfoArr)){return new ArrayList();}// 3、查询任务执行参数信息HistoricVariableInstanceQuery historicVariableInstanceQuery historyService.createHistoricVariableInstanceQuery();ListHistoricVariableInstance variableInstanceList historicVariableInstanceQuery.processInstanceId(param.getProcessId()).list();// 4、构建返回信息对象ListFlowDataVo resultArr taskInfoArr.stream().map(taskInfo - {FlowDataVo flowDataVo new FlowDataVo();flowDataVo.setNodeName(taskInfo.getName());flowDataVo.setDescription(taskInfo.getDescription());ListHistoricVariableInstance variableArr variableInstanceList.stream().filter(e - taskInfo.getId().equals(e.getTaskId())).collect(Collectors.toList());if (CollectionUtils.isEmpty(variableArr)) {flowDataVo.setStatus(DefaultConstant.ONE_CODE.getKey());return flowDataVo;}JSONObject flowDataJson (JSONObject) JSONObject.toJSON(flowDataVo);variableArr.stream().forEach(var - {String variableName var.getVariableName();String value BeanUtil.nullOrUndefinedToEmptyStr(var.getValue());flowDataJson.put(variableName, value);});String flowDataJsonString flowDataJson.toJSONString();FlowDataVo afterFlowData JSONObject.parseObject(flowDataJsonString, FlowDataVo.class);afterFlowData.setStatus(DefaultConstant.TWO_CODE.getKey());return afterFlowData;}).collect(Collectors.toList());return resultArr;}流水查询使用 bean 对象 Data public class FlowQuery {/*** 流程 ID*/private String processId;/*** 用户 ID*/private String userId; } Data public class FlowDataVo {/*** 操作类型 1 同意 2 回退 3 驳回 4 提交 5 删除*/private String execType;/*** 节点类型 1 申请节点 2 审批节点*/private String nodeType;/*** 预留参数*/private String var;/*** 节点名称*/private String nodeName;/*** 执行状态 1 未执行 2 已执行*/private String status;/*** 执行人 ID*/private String execUserId;/*** 执行人名称*/private String execUserName;/*** 执行时间*/private String execTime;/**** 描述*/private String description;}
http://www.dnsts.com.cn/news/2533.html

相关文章:

  • 苏州做网站费用线上销售怎么做推广
  • 上海网站seo外包微信公众号推广2元一个
  • 做电商赚钱吗企业seo网络推广
  • 网站建设需要学什么语言百度注册公司地址
  • 石家庄网站优化招聘西安seo托管
  • 建设网站申请空间需要多少钱郑州网站营销推广
  • 做网站的产品图片seo扣费系统
  • 任县网站建设设计app推广渠道在哪接的单子
  • 红酒 网站 模板百度联系方式
  • 微信小程序店铺怎么弄seo网站推广计划
  • 用asp.net做购物网站seo教程培训班
  • 泉州优化公司全网seo
  • 企业网站建设亮点一个自己的网站
  • 网站后台 编辑器 调用seo技术外包公司
  • 哈尔滨网站如何制作seo关键字排名
  • 常州网站制作公司多吗上海网站快速优化排名
  • 网站权重等级推广app赚佣金
  • 加油站网站大全会计培训班要多少钱一般要学多久
  • 二手车网站制作贵吗石家庄seo全网营销
  • 传奇如何做网站网站内部seo优化包括
  • 杭州做网站的网络公司有哪些广州网络推广公司排名
  • 让别人做网站要注意什么6南昌seo优化公司
  • 用什么软件做网站好处网站seo报告
  • 网站session 验证怎么样推广自己的网址
  • 怎么在网站上做推广微信营销工具
  • 建设微网站多少钱微信营销的优势
  • 桂林做网站多少钱关键词指数查询工具
  • 环保局网站建设百度快照怎么做
  • 国内知名网站建设公司建网站赚钱
  • 有没有介绍做私家导游的网站军事新闻 今日关注