Explorar el Código

改由ScriptFactory实现

zhourui hace 5 años
padre
commit
08ac6ebff7

+ 8 - 0
o2server/configSample/pushConfig.json

@@ -0,0 +1,8 @@
+{
+  "enable": false,
+  "appKey": "9aca7cc20fe0cc987cd913ca",
+  "masterSecret": "96ee7e2e0daffd51bac57815",
+  "###enable": "是否启用.###",
+  "###appKey": "极光推送应用的AppKey###",
+  "###masterSecret": "极光推送应用的Master Secret###"
+}

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

@@ -3,7 +3,6 @@ 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;
@@ -245,16 +244,38 @@ public class ScriptFactory {
 			} else if (o instanceof ScriptObjectMirror) {
 				ScriptObjectMirror som = (ScriptObjectMirror) o;
 				if (som.isArray()) {
-					Object[] objs = (som.to(Object[].class));
-					for (Object obj : objs) {
+					for (Object obj : som.to(Object[].class)) {
+						if (null != obj) {
+							if (obj instanceof CharSequence) {
+								list.add(Objects.toString(obj, ""));
+							} else if (obj instanceof ScriptObject) {
+								ScriptObject so = (ScriptObject) obj;
+								if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+									list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
+								}
+							} else {
+								list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class, ""));
+							}
+
+						}
+					}
+				} else if (som.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+					list.add(Objects.toString(som.get(JpaObject.DISTINGUISHEDNAME), ""));
+				} else {
+					list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
+				}
+			} else if (o instanceof ScriptObject) {
+				ScriptObject so = (ScriptObject) o;
+				if (so.isArray()) {
+					for (Object obj : so.getArray().asObjectArray()) {
 						if (null != obj) {
 							if (obj instanceof CharSequence) {
 								list.add(Objects.toString(obj, ""));
 							} else {
 								if (obj instanceof ScriptObject) {
-									ScriptObject so = (ScriptObject) obj;
-									if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
-										list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
+									ScriptObject scriptObject = (ScriptObject) obj;
+									if (scriptObject.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+										list.add(Objects.toString(scriptObject.get(JpaObject.DISTINGUISHEDNAME), ""));
 									}
 								} else {
 									list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class,
@@ -263,6 +284,8 @@ public class ScriptFactory {
 							}
 						}
 					}
+				} else if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+					list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
 				} else {
 					list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
 				}

+ 8 - 5
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListIdentityWithUnitWithName.java

@@ -33,9 +33,12 @@ import com.x.organization.core.entity.UnitDuty_;
 
 class ActionListIdentityWithUnitWithName extends BaseAction {
 	private static Logger logger = LoggerFactory.getLogger(ActionListIdentityWithUnitWithName.class);
+
 	ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
+
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
+
 			ActionResult<Wo> result = new ActionResult<>();
 			Business business = new Business(emc);
 			List<String> names = new ArrayList<>();
@@ -143,20 +146,20 @@ class ActionListIdentityWithUnitWithName extends BaseAction {
 	private Wo list(Business business, List<String> names, List<String> units, Boolean recursiveUnit) throws Exception {
 		Wo wo = new Wo();
 		List<UnitDuty> os = new ArrayList<>();
-		if(units.isEmpty()){
+		if (units.isEmpty()) {
 			EntityManager em = business.entityManagerContainer().get(UnitDuty.class);
 			CriteriaBuilder cb = em.getCriteriaBuilder();
 			CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = root.get(UnitDuty_.name).in(names);
 			os = em.createQuery(cq.select(root).where(p)).getResultList();
-		}else{
+		} else {
 			List<Unit> unitList = business.unit().pick(units);
-			if(!unitList.isEmpty()){
+			if (!unitList.isEmpty()) {
 				units.clear();
-				for(Unit unit : unitList){
+				for (Unit unit : unitList) {
 					units.add(unit.getId());
-					if(BooleanUtils.isTrue(recursiveUnit)){
+					if (BooleanUtils.isTrue(recursiveUnit)) {
 						units.addAll(business.unit().listSubNested(unit.getId()));
 					}
 				}

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

@@ -7,7 +7,6 @@ import java.util.Objects;
 
 import javax.script.CompiledScript;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -21,6 +20,7 @@ import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.organization.OrganizationDefinition;
 import com.x.base.core.project.script.ScriptFactory;
 import com.x.base.core.project.tools.ListTools;
+import com.x.base.core.project.tools.PropertyTools;
 import com.x.processplatform.core.entity.content.Data;
 import com.x.processplatform.core.entity.element.Manual;
 import com.x.processplatform.service.processing.Business;
@@ -203,18 +203,22 @@ public class TranslateTaskIdentityTools {
 
 	private static void addObjectToTaskIdentities(TaskIdentities taskIdentities, List<String> units,
 			List<String> groups, Object o) throws Exception {
-		String d = Objects.toString(PropertyUtils.getProperty(o, JpaObject.DISTINGUISHEDNAME), "");
-		if (OrganizationDefinition.isIdentityDistinguishedName(d)) {
-			Boolean ignore = BooleanUtils.isTrue(BooleanUtils.toBooleanObject(
-					Objects.toString(PropertyUtils.getProperty(o, TaskIdentity.IGNOREEMPOWER), "false")));
-			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)) {
-			groups.add(d);
+		// String d = PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME,
+		// String.class, "");
+		for (String d : ScriptFactory.asDistinguishedNameList(o)) {
+			if (OrganizationDefinition.isIdentityDistinguishedName(d)) {
+				Boolean ignore = BooleanUtils.isTrue(BooleanUtils.toBooleanObject(Objects.toString(
+						PropertyTools.getOrElse(o, TaskIdentity.IGNOREEMPOWER, Boolean.class, Boolean.FALSE),
+						"false")));
+				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)) {
+				groups.add(d);
+			}
 		}
 	}