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