Просмотр исходного кода

修正默认流程模版表单不存在的问题

zhourui 5 лет назад
Родитель
Сommit
2fcc1e1d58

+ 1 - 1
o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java

@@ -315,7 +315,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 				case 1:
 					t = list.get(0);
 					break out;
-				case 2:
+				default:
 					throw new Exception("flag get multiple entity flag:" + flag + ", class:" + cls.getName()
 							+ ", attribute:" + field.getName() + ", restrict attrubte:" + singularAttribute
 							+ ", restrict value:" + restrictValue + ".");

+ 6 - 0
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/form/ActionGetWithWorkOrWorkCompleted.java

@@ -58,9 +58,15 @@ class ActionGetWithWorkOrWorkCompleted extends BaseAction {
 	private WoWorkForm work(Business business, Work work) throws Exception {
 		WoWorkForm wo = new WoWorkForm();
 		String id = work.getForm();
+		System.out.println("!!!!!!!!!!!!!!!!!!");
+		System.out.println(id);
+		System.out.println("!!!!!!!!!!!!!!!!!!");
 		if (StringUtils.isEmpty(id)) {
 			Activity activity = business.getActivity(work);
 			id = PropertyTools.getOrElse(activity, Activity.form_FIELDNAME, String.class, "");
+			System.out.println("!!!!!!!!!!!!!!!!!!22");
+			System.out.println(id);
+			System.out.println("!!!!!!!!!!!!!!!!!!22");
 		}
 		if (StringUtils.isNotEmpty(id)) {
 			Form form = business.form().pick(id);

+ 8 - 3
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/work/V2Reroute.java

@@ -22,6 +22,7 @@ import com.x.processplatform.core.entity.content.Task;
 import com.x.processplatform.core.entity.content.Work;
 import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.core.entity.element.Activity;
+import com.x.processplatform.core.entity.element.Form;
 import com.x.processplatform.core.express.service.processing.jaxrs.work.V2RerouteWi;
 import com.x.processplatform.service.processing.Business;
 import com.x.processplatform.service.processing.MessageFactory;
@@ -65,7 +66,7 @@ class V2Reroute extends BaseAction {
 					emc.beginTransaction(Task.class);
 					emc.beginTransaction(WorkLog.class);
 					/** 重新设置表单 */
-					setForm(work, activity);
+					setForm(business, work, activity);
 					work.setDestinationActivity(activity.getId());
 					work.setDestinationActivityType(activity.getActivityType());
 					work.setDestinationRoute("");
@@ -98,9 +99,13 @@ class V2Reroute extends BaseAction {
 
 	}
 
-	private void setForm(Work work, Activity activity) {
+	private void setForm(Business business, Work work, Activity activity) throws Exception {
 		if (StringUtils.isNotEmpty(activity.getForm())) {
-			work.setForm(activity.getForm());
+			//表单需要重新判断,如果是从模板或者复制过来的流程可能发生表单不存在的情况.
+			Form form = business.entityManagerContainer().find(activity.getForm(), Form.class);
+			if (null!= form){
+				work.setForm(form.getId());
+			}
 		}
 	}