| | |
| | | throw new IllegalArgumentException("任务已处理"); |
| | | } |
| | | |
| | | //扩展 工作流功能 |
| | | doTaskAuditAgree(reqJson); |
| | | //判断是否为结束流程 |
| | | if("1500".equals(reqJson.getString("auditCode"))){ |
| | | doTaskFinish(reqJson); |
| | | }else { |
| | | //扩展 工作流功能 |
| | | doTaskAuditAgree(reqJson); |
| | | } |
| | | |
| | | String processInstanceId = task.getProcessInstanceId(); |
| | | Authentication.setAuthenticatedUserId(reqJson.getString("nextUserId")); |
| | |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private void doTaskFinish(JSONObject reqJson){ |
| | | OaWorkflowDataDto oaWorkflowDataDto = new OaWorkflowDataDto(); |
| | | oaWorkflowDataDto.setStoreId(reqJson.getString("storeId")); |
| | | oaWorkflowDataDto.setBusinessKey(reqJson.getString("id")); |
| | | oaWorkflowDataDto.setPage(1); |
| | | oaWorkflowDataDto.setRow(1); |
| | | List<OaWorkflowDataDto> oaWorkflowDataDtos = oaWorkflowDataInnerServiceSMOImpl.queryOaWorkflowDatas(oaWorkflowDataDto); |
| | | |
| | | if(oaWorkflowDataDtos == null || oaWorkflowDataDtos.size() < 1){ |
| | | return; |
| | | } |
| | | //修改 当前 为完成 |
| | | OaWorkflowDataPo oaWorkflowDataPo = new OaWorkflowDataPo(); |
| | | oaWorkflowDataPo.setDataId(oaWorkflowDataDtos.get(0).getDataId()); |
| | | oaWorkflowDataPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); |
| | | oaWorkflowDataPo.setContext(reqJson.getString("auditMessage")); |
| | | oaWorkflowDataInnerServiceSMOImpl.updateOaWorkflowData(oaWorkflowDataPo); |
| | | } |
| | | |
| | | /** |
| | |
| | | List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows(); |
| | | JSONObject taskObj = null; |
| | | taskObj = new JSONObject(); |
| | | taskObj.put("assignee", "-1"); // 默认 不需要指定下一个处理人 表示结束 |
| | | boolean isReturn = false; |
| | | //遍历输出连线 |
| | | for (SequenceFlow outgoingFlow : outgoingFlows) { |
| | |
| | | taskObj.put("backIndex", outgoingFlow.getTargetFlowElement().getName()); |
| | | isReturn = true; |
| | | } |
| | | //结束 |
| | | vars.put("auditCode", "1500"); |
| | | if (isCondition(outgoingFlow.getConditionExpression(), vars)) { |
| | | //true 获取输出节点名称 |
| | | taskObj.put("exit", outgoingFlow.getTargetFlowElement().getName()); |
| | | isReturn = true; |
| | | } |
| | | if (!isReturn) { |
| | | String assignee = ((UserTask) targetFlowElement).getAssignee(); |
| | | if (!StringUtil.isEmpty(assignee) && assignee.indexOf("${") < 0) { |
| | | taskObj.put("assignee", assignee); // 下一节点处理人 |
| | | } |
| | | |
| | | if ("${startUserId}".equals(assignee)) { |
| | | taskObj.put("assignee", reqJson.getString("startUserId")); // 开始人 |
| | | } |
| | | if ("${nextUserId}".equals(assignee)) { |
| | | taskObj.put("assignee", "-2"); // 需要前台指定 |
| | | } |
| | | taskObj.put("next", outgoingFlow.getTargetFlowElement().getName()); |
| | | } |
| | | } |
| | | |
| | | //如果下一个为 结束节点 |
| | | if (targetFlowElement instanceof EndEvent) { |
| | | Map vars = new HashMap(); |
| | | vars.put("auditCode", "1100"); |
| | | if (isCondition(outgoingFlow.getConditionExpression(), vars)) { |
| | | taskObj.put("assignee", "-1"); // 没有下一处理人了 |
| | | } |
| | | //true 获取输出节点名称 |
| | | taskObj.put("exit", "1"); |
| | | } |
| | | } |
| | | tasks.add(taskObj); |