From 9bb6bced3110dc1ac2c0744078f225f99d70ac2c Mon Sep 17 00:00:00 2001 From: dangsn <dangsn@chicecm.com> Date: 星期五, 21 六月 2024 17:36:09 +0800 Subject: [PATCH] 调整流程启动和流程执行 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java | 137 ++++++++++++++++++++++++--------------------- 1 files changed, 72 insertions(+), 65 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java index 5bcf33a..bc5f628 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java @@ -1,5 +1,6 @@ package com.vci.web.service.impl; +import com.vci.corba.common.PLException; import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; @@ -94,6 +95,13 @@ return false; } + /** + * 鍚姩娴佺▼ + * @param config 鍚姩娴佺▼鐩稿叧閰嶇疆 + * @param processNodeUsers 鍚勪釜鑺傜偣鐨勮礋璐d汉淇℃伅 + * @param variablesInfo 鐩稿叧鍙橀噺 + * @throws VciBaseException + */ @Override public void startProcess(ProcessStartConfigDTO config, Map<String, List<ProcessUserVO>> processNodeUsers, @@ -108,7 +116,6 @@ if (config.getTitle().length() > 127) { config.setTitle(config.getTitle().substring(0, 127)); } - //SessionInfo si = WebUtil.getSessionInfo(request); //weidy淇敼鑾峰彇褰撳墠鐢ㄦ埛鐨勬柟娉� SessionInfo si = WebUtil.getCurrentUserSessionInfo(); @@ -194,7 +201,7 @@ long currentTime =0L; try{ -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); }catch (Throwable e){ throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[0],e); } @@ -205,50 +212,50 @@ noticeInfo.setProcessTemplateVO(template); BusAnnotationUtil.callForAnnotation(FlowNotifyWeb.class, FlowNotifyBefore.class,noticeInfo); String processInstanceId = ""; -// try { -// if (config.isAutoSubmitFirst()) { -// processInstanceId = processDao.getWorkService().startProcessAndExecuteFirstNode(template.getOid(), -// flowInstanceInfo, -// objIds, -// getUserEntityInfo(), -// firstNodeUserNames, -// "", -// allTaskName, -// allTaskNameUsers, -// allVariables, -// objectPropertyKeys, -// objectPropertyValues); -// }else{ -// processInstanceId = processDao.getWorkService().startPocessByPLM_v1( -// /** -// * String processDefinitionKey, 娴佺▼妯℃澘涓婚敭 -// * FlowInstanceInfo flowInstanceInfo, 娴佺▼瀹炰緥 -// * String[] objId, 鏁版嵁瀵硅薄id -// * UserEntityInfo userEntityInfo, 鐢ㄦ埛Info -// * String[] userName, 鐢ㄦ埛鍚� -// * String outcome, 鎸囧悜 -// * String[] tasknames, 涓氬姟鍚嶇О -// * String[][] taskUserNames, 鎵�灞炵敤鎴峰悕 -// * MapTransfersInfo[] mapTransfersInfos, 绉讳氦Info -// * String[] objectProperty, 涓氬姟灞炴�� -// * String[][] objectPropertyValues 涓氬姟灞炴�у�� -// */ -// template.getOid(), -// flowInstanceInfo, -// objIds, -// getUserEntityInfo(), -// firstNodeUserNames, -// "", -// allTaskName, -// allTaskNameUsers, -// allVariables, -// objectPropertyKeys, -// objectPropertyValues -// ); -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + if (config.isAutoSubmitFirst()) { + processInstanceId = processDao.getWorkService().startProcessAndExecuteFirstNode(template.getOid(), + flowInstanceInfo, + objIds, + getUserEntityInfo(), + firstNodeUserNames, + "", + allTaskName, + allTaskNameUsers, + allVariables, + objectPropertyKeys, + objectPropertyValues); + }else{ + processInstanceId = processDao.getWorkService().startPocessByPLMv1( + /** + * String processDefinitionKey, 娴佺▼妯℃澘涓婚敭 + * FlowInstanceInfo flowInstanceInfo, 娴佺▼瀹炰緥 + * String[] objId, 鏁版嵁瀵硅薄id + * UserEntityInfo userEntityInfo, 鐢ㄦ埛Info + * String[] userName, 鐢ㄦ埛鍚� + * String outcome, 鎸囧悜 + * String[] tasknames, 涓氬姟鍚嶇О + * String[][] taskUserNames, 鎵�灞炵敤鎴峰悕 + * MapTransfersInfo[] mapTransfersInfos, 绉讳氦Info + * String[] objectProperty, 涓氬姟灞炴�� + * String[][] objectPropertyValues 涓氬姟灞炴�у�� + */ + template.getOid(), + flowInstanceInfo, + objIds, + getUserEntityInfo(), + firstNodeUserNames, + "", + allTaskName, + allTaskNameUsers, + allVariables, + objectPropertyKeys, + objectPropertyValues + ); + } + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } if (StringUtils.isNotBlank(config.getStartStatus())) { lifeCycleService.transCboStatus(allCbo, config.getStartStatus()); } @@ -262,7 +269,7 @@ private void callBefore(List<Map> preWorkitemList,String outcome,String note,long currentTime){ if(currentTime == 0L) { try { -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } @@ -490,20 +497,20 @@ List<Map> workitemList = processDao.getTaskCBOByOid(taskIds); long currentTime = 0L; try { -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } callBefore(workitemList,outCome,note,currentTime); -// try { -// if (jbpmTaskIds.length == 1) { -// processDao.getWorkService().completeTaskByPlatform_v1(jbpmTaskIds[0], outCome, nextTaskName, note, getUserEntityInfo(), nextTaskUsers, objectPropertyKeys, objectPropertyValues); -// } else { -// processDao.getWorkService().completeTasksByPlatform_v1(jbpmTaskIds, outCome, nextTaskName, note, getUserEntityInfo(), nextTaskUsers, objectPropertyKeys, objectPropertyValues); -// } -// } catch (VCIError e) { -// throw WebUtil.getVciBaseException(e); -// } + try { + if (jbpmTaskIds.length == 1) { + processDao.getWorkService().completeTaskByPlatformv1(jbpmTaskIds[0], outCome, nextTaskName, note, getUserEntityInfo(), nextTaskUsers, objectPropertyKeys, objectPropertyValues); + } else { + processDao.getWorkService().completeTasksByPlatformv1(jbpmTaskIds, outCome, nextTaskName, note, getUserEntityInfo(), nextTaskUsers, objectPropertyKeys, objectPropertyValues); + } + } catch (PLException e) { + throw WebUtil.getVciBaseException(e); + } callAfter((String)workitemList.get(0).get("executionid"),null,workitemList,currentTime); } @@ -530,11 +537,11 @@ String[] taskOidArray = taskOids.split(","); for (String taskOid : taskOidArray) { if (StringUtils.isNotBlank(taskOid)) { -// try { -// processDao.getWorkService().transmitTask(taskOid, "user:" + userIds, getUserEntityInfo()); -// } catch (VCIError vciError) { -// throw WebUtil.getVciBaseException(vciError); -// } + try { + processDao.getWorkService().transmitTask(taskOid, "user:" + userIds, getUserEntityInfo()); + } catch (PLException vciError) { + throw WebUtil.getVciBaseException(vciError); + } } } } @@ -566,7 +573,7 @@ WebUtil.alertNotNull(executionId, "娴佺▼鎵ц瀹炰緥鐨勪富閿�"); long currentTime = 0L; try { -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } @@ -617,7 +624,7 @@ } long currentTime = 0L; try { -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } @@ -657,7 +664,7 @@ } long currentTime = 0L; try { -// currentTime = platformClientUtil.getLogonFactoryService().getFrameworkService().getSystemTime(); + currentTime = platformClientUtil.getFrameworkService().getSystemTime(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[0], e); } -- Gitblit v1.9.3