@Override // 默认销售负责人负责的工单列表 public String execute() throws Exception { List<Issue> dbIssues = new ArrayList<Issue>(); HttpSession session = request.getSession(); // 获取当前登录用户 User sessionUser = (User) session.getAttribute(LicenseWorkFlowConstants.SESSION_USER); // 获取流程定义列表 List<ProcessDefinition> pdList = issueService.getRepositoryService().createProcessDefinitionQuery().list(); // 获取流程实例列表 List<ProcessInstance> piList = issueService.getExecutionService().createProcessInstanceQuery().list(); // 获取该用户组内的任务 List<Task> taskList = issueService.getTaskService().findGroupTasks(sessionUser.getName()); // 查询库中所有的工单 dbIssues = issueService.getAllIssues(); // 获取流程寮例历史记录列表 List<HistoryProcessInstance> hplist = issueService.getHistoryService().createHistoryProcessInstanceQuery().list(); String processDefinitionId = ""; // 流程定义标识 if (pdList != null && pdList.size() > 0) { processDefinitionId = ((ProcessDefinition) (pdList.get(0))).getId(); } // 遍历系统中的工单 for (Issue issue : dbIssues) { // 设置工单的流程节点 String activeName = issueService.getActiveName(issue.getProcessInstanceId()); IssueVO issueVO = new IssueVO(); issueVO.setWorkFlowNodeName(activeName); // 遍历当前登录用户的task列表 for (Task task : taskList) { // 获取执行 Execution execution = issueService.getExecutionService().findExecutionById(task.getExecutionId()); ExecutionImpl execImpl = (ExecutionImpl) execution; // 获取执行的流程实例 ProcessInstance processInstance = execImpl.getProcessInstance(); if (issue.getProcessInstanceId().equals(processInstance.getId())) { // 显示审核链接 issueVO.setShowAudit(true); // 当前工单要审核的task issueVO.setIssueTask(task); break; } else { issueVO.setShowAudit(false); } } LicenseWorkFlowConstants.issuePOTOVOCopier.copy(issue, issueVO, null); issues.add(issueVO); } return "index"; }
// 审核 public String audit() throws Exception { TaskService taskService = issueService.getTaskService(); HttpSession session = request.getSession(); User sessionUser = (User) session.getAttribute(LicenseWorkFlowConstants.SESSION_USER); User user = userService.getById(sessionUser.getId()); Audit audit = new Audit(); // 审批意见 String groupName = ""; if (user.getGroups() != null && user.getGroups().size() > 0) { List<Group> groupList = new ArrayList<Group>(); groupList.addAll(user.getGroups()); groupName = groupList.get(0).getCnName(); } // 设置审核的部门名称 audit.setAuditDept(groupName); audit.setAuditNotion(auditNotion); // 审批意见 audit.setAuditTime(new Date()); // 审批时间 audit.setAuditUser(user); // 审批用户 String outcome = ""; // 边 if ("1".equals(result)) { outcome = "同意"; audit.setAuditResult("同意"); } else { outcome = "否决"; audit.setAuditResult("不同意"); } /** all the variables visible in the given task */ Set<String> set = taskService.getVariableNames(taskId); /** retrieves a map of variables */ Map<String, Object> variables = taskService.getVariables(taskId, set); if (issue.getId() == 0) throw new OceanRuntimeException("标识不合法"); // 获取工单 issue = issueService.getById(issue.getId()); variables.put("createUser", "admin"); // 执行任务 taskService.completeTask(taskId, outcome, variables); // 修改工单的审核信息 audit.setIssue(issue); Set<Audit> audits = issue.getAudits(); audits.add(audit); issue.setAudits(audits); issueService.saveOrUpdate(issue); // 更新到库中 return "indexAction"; }