Răsfoiți Sursa

Merge branch 'fix/#456' into 'wrdp'

增加map判断

See merge request o2oa/o2oa!2738
o2null 5 ani în urmă
părinte
comite
180e3bf2a0

+ 5 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java

@@ -3,6 +3,7 @@ package com.x.base.core.project.script;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 import javax.script.Compilable;
@@ -10,7 +11,6 @@ import javax.script.CompiledScript;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.lang3.BooleanUtils;
 
 import com.google.gson.JsonArray;
@@ -231,6 +231,9 @@ public class ScriptFactory {
 						}
 					}
 				}
+				// Map类型也属于Iterable 所以必须在Iterable之前进行判断
+			} else if (o instanceof Map) {
+				list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
 			} else if (o instanceof Iterable) {
 				for (Object obj : (Iterable<?>) o) {
 					if (null != obj) {
@@ -264,7 +267,7 @@ public class ScriptFactory {
 				} else {
 					list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
 				}
-			// ScriptObject or JO
+				// ScriptObject or JO
 			} else if (o instanceof ScriptObject) {
 				ScriptObject so = (ScriptObject) o;
 				if (so.isArray()) {

+ 34 - 51
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/TranslateTaskIdentityTools.java

@@ -31,7 +31,6 @@ import com.x.processplatform.service.processing.processor.AeiObjects;
  * @author Rui
  *
  */
-@SuppressWarnings("restriction")
 public class TranslateTaskIdentityTools {
 
 	private static Logger logger = LoggerFactory.getLogger(TranslateTaskIdentityTools.class);
@@ -167,35 +166,41 @@ public class TranslateTaskIdentityTools {
 			for (String str : ListTools.trim(manual.getTaskDataPathList(), true, true)) {
 				Object o = data.find(str);
 				if (null != o) {
-					if (o instanceof CharSequence) {
-						if (OrganizationDefinition.isUnitDistinguishedName(str)) {
-							units.add(str);
-						} else if (OrganizationDefinition.isGroupDistinguishedName(str)) {
-							groups.add(str);
-						} else {
-							taskIdentities.addIdentity(o.toString());
-						}
-					} else if (o instanceof Iterable) {
-						for (Object v : (Iterable<?>) o) {
-							if (null != v) {
-								if ((v instanceof CharSequence)) {
-									String vs = v.toString();
-									if (OrganizationDefinition.isUnitDistinguishedName(vs)) {
-										units.add(vs);
-									} else if (OrganizationDefinition.isGroupDistinguishedName(vs)) {
-										groups.add(vs);
-									} else {
-										taskIdentities.addIdentity(vs);
-									}
-								} else {
-									addObjectToTaskIdentities(taskIdentities, units, groups, v);
-								}
-							}
-						}
-					} else {
-						addObjectToTaskIdentities(taskIdentities, units, groups, o);
-					}
+					addObjectToTaskIdentities(taskIdentities, units, groups, o);
 				}
+//				if (null != o) {
+//					if (o instanceof CharSequence) {
+//						if (OrganizationDefinition.isUnitDistinguishedName(str)) {
+//							units.add(str);
+//						} else if (OrganizationDefinition.isGroupDistinguishedName(str)) {
+//							groups.add(str);
+//						} else {
+//							taskIdentities.addIdentity(o.toString());
+//						}
+//					} else if (o instanceof Iterable) {
+//						for (Object v : (Iterable<?>) o) {
+//							System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!v class:" + v.getClass());
+//							System.out.println(XGsonBuilder.toJson(v));
+//							if (null != v) {
+//								if (v instanceof CharSequence) {
+//									String vs = v.toString();
+//									if (OrganizationDefinition.isUnitDistinguishedName(vs)) {
+//										units.add(vs);
+//									} else if (OrganizationDefinition.isGroupDistinguishedName(vs)) {
+//										groups.add(vs);
+//									} else {
+//										taskIdentities.addIdentity(vs);
+//									}
+//									// } else if (v instanceof Entry) {
+//								} else {
+//									addObjectToTaskIdentities(taskIdentities, units, groups, v);
+//								}
+//							}
+//						}
+//					} else {
+//						addObjectToTaskIdentities(taskIdentities, units, groups, o);
+//					}
+//				}
 			}
 		}
 
@@ -221,26 +226,4 @@ public class TranslateTaskIdentityTools {
 			}
 		}
 	}
-
-//	private static void addJsonObjectToTaskIdentities(TaskIdentities taskIdentities, List<String> units,
-//			List<String> group, JsonObject jsonObject) throws Exception {
-//		if (jsonObject.has(JpaObject.DISTINGUISHEDNAME)) {
-//			String d = jsonObject.get(JpaObject.DISTINGUISHEDNAME).getAsString();
-//			if (OrganizationDefinition.isIdentityDistinguishedName(d)) {
-//				boolean ignore = false;
-//				if (jsonObject.has(TaskIdentity.IGNOREEMPOWER)) {
-//					ignore = BooleanUtils.isTrue(
-//							BooleanUtils.toBooleanObject(jsonObject.get(TaskIdentity.IGNOREEMPOWER).getAsString()));
-//				}
-//				TaskIdentity taskIdentity = new TaskIdentity();
-//				taskIdentity.setIdentity(d);
-//				taskIdentity.setIgnoreEmpower(ignore);
-//				taskIdentities.add(taskIdentity);
-//			} else if (OrganizationDefinition.isUnitDistinguishedName(d)) {
-//				units.add(d);
-//			} else if (OrganizationDefinition.isGroupDistinguishedName(d)) {
-//				units.add(d);
-//			}
-//		}
-//	}
 }