@Override public void flowStepAdd(DeptContactParamVo params) { // log.debug(resultInfo.checkFlag+" "+resultInfo.checkOnly); if (resultInfo.getOperateFlag()) { String taskUserLoginName = LoginUtil.getUserLoginName(userInfo); String processName = DeptContactConstants.PROCESSNAME; /** 创建mainBo */ mainBo = new TDeptContactMain(); try { BeanUtils.copyProperties(mainBo, mainVo); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } mainBo.setCreateDeptid(userInfo.getDeptId()); mainBo.setCreateDeptname(userInfo.getDeptName()); mainBo.setInitiator(userInfo.getLoginName()); mainBo.setInitiatorName(userInfo.getUserName()); mainBo.setStartTime(time); mainBo.setOperateDate(time); mainBo.setOperateUser(taskUserLoginName); mainBo.setOperateName(userInfo.getUserName()); mainBo.setProcessname(processName); /** 添加关联信息 */ TDeptContactTree treeBo = DeptContactUtil.generateTreeBo(); params.treeBo = treeBo; treeBo.setCname(processName); treeBo.setType(DeptContactConstants.STATUS_MAIN); commonService.save(treeBo); /** 发起流程 */ int incidentNo = flowBegin(); if (incidentNo > 0) { String incidentNoStr = String.valueOf(incidentNo); mainBo.setIncidentno(incidentNoStr); commonService.save(mainBo); String id = StringUtil.getNotNullValueString(mainBo.getId()); if (id.length() == 0) { log.warn(DeptContactMessage.FAIL_TO_SAVE_DATA); resultInfo.addErrors(DeptContactMessage.FAIL_TO_SAVE_DATA); throw new RuntimeException(DeptContactMessage.FAIL_TO_SAVE_DATA.textCn); } DeptContactUtil.copyOperateInfo(treeBo, mainBo); /** 更新关联信息 */ treeBo.setCId(id); treeBo.setCincident(incidentNoStr); commonService.update(treeBo); try { params.addProcessParam("cname", mainBo.getProcessname()); params.addProcessParam("cincident", mainBo.getIncidentno()); params.mainBo = mainBo; deptContactCommonService.saveReferences(params); deptContactCommonService.saveApprovedInfo(params); } catch (Exception e) { e.printStackTrace(); } /** 跳转URL */ resultInfo.url = TextUtil.generateDeptContactUrl( mainBo.getProcessname(), incidentNoStr, mainBo.getProcessname(), incidentNoStr, ""); } else { log.warn(DeptContactMessage.FAIL_TO_LAUNCH_PROCESS); resultInfo.addErrors(DeptContactMessage.FAIL_TO_LAUNCH_PROCESS); throw new RuntimeException(DeptContactMessage.FAIL_TO_LAUNCH_PROCESS.textCn); } } }