Prechádzať zdrojové kódy

Merge branch 'fix/getter_setter' into 'wrdp'

修复自定义表的getter方法setter方法命名错误的bug

See merge request o2oa/o2oa!1955
o2null 5 rokov pred
rodič
commit
07a76e4749

+ 15 - 15
o2server/x_base_core_project/src/main/java/com/x/base/core/entity/dynamic/DynamicEntityBuilder.java

@@ -16,7 +16,6 @@ import javax.persistence.OrderColumn;
 import javax.persistence.Table;
 import javax.persistence.Temporal;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.openjpa.persistence.PersistentCollection;
 import org.apache.openjpa.persistence.PersistentMap;
 import org.apache.openjpa.persistence.jdbc.ContainerTable;
@@ -42,6 +41,7 @@ import com.x.base.core.entity.annotation.ContainerEntity;
 import com.x.base.core.entity.dynamic.DynamicEntity.Field;
 import com.x.base.core.project.annotation.FieldDescribe;
 import com.x.base.core.project.tools.ListTools;
+import com.x.base.core.project.tools.StringTools;
 
 public class DynamicEntityBuilder {
 
@@ -196,10 +196,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(typeClass, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(this.index(field))
 				.addAnnotation(this.checkPersist(field)).addAnnotation(column).build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(typeClass).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(typeClass, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -222,10 +222,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(Date.class, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(this.index(field))
 				.addAnnotation(this.checkPersist(field)).addAnnotation(column).addAnnotation(temporal).build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(Date.class).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(Date.class, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -249,10 +249,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(Date.class, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(this.index(field))
 				.addAnnotation(this.checkPersist(field)).addAnnotation(column).addAnnotation(temporal).build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(Date.class).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(Date.class, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -276,10 +276,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(Date.class, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(this.index(field))
 				.addAnnotation(this.checkPersist(field)).addAnnotation(column).addAnnotation(temporal).build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(Date.class).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(Date.class, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -365,10 +365,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(list_type, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(containerTable).addAnnotation(elementIndex)
 				.addAnnotation(persistentCollection).addAnnotation(orderColumn).addAnnotation(elementColumn).build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(list_type).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(list_type, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -401,10 +401,10 @@ public class DynamicEntityBuilder {
 		FieldSpec fieldSpec = FieldSpec.builder(String.class, field.getName(), Modifier.PRIVATE)
 				.addAnnotation(this.fieldDescribe(field)).addAnnotation(lob).addAnnotation(basic).addAnnotation(column)
 				.build();
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(String.class).addStatement("return this." + field.getName())
 				.build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(String.class, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);
@@ -467,9 +467,9 @@ public class DynamicEntityBuilder {
 				.addAnnotation(keyColumn).addAnnotation(elementColumn).addAnnotation(elementIndex)
 				.addAnnotation(keyIndex).build();
 
-		MethodSpec get = MethodSpec.methodBuilder("get" + StringUtils.capitalize(field.getName()))
+		MethodSpec get = MethodSpec.methodBuilder(StringTools.getMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(map_type).addStatement("return this." + field.getName()).build();
-		MethodSpec set = MethodSpec.methodBuilder("set" + StringUtils.capitalize(field.getName()))
+		MethodSpec set = MethodSpec.methodBuilder(StringTools.setMethodName(field.getName()))
 				.addModifiers(Modifier.PUBLIC).returns(void.class).addParameter(map_type, field.getName())
 				.addStatement("this." + field.getName() + " = " + field.getName()).build();
 		builder.addField(this.fieldName(field)).addField(fieldSpec).addMethod(get).addMethod(set);

+ 26 - 22
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/StringTools.java

@@ -1,5 +1,7 @@
 package com.x.base.core.project.tools;
 
+import static java.util.Locale.ENGLISH;
+
 import java.io.ByteArrayInputStream;
 import java.io.InputStreamReader;
 import java.lang.reflect.Field;
@@ -29,6 +31,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.reflect.FieldUtils;
 import org.slf4j.helpers.MessageFormatter;
 
+import com.alibaba.druid.sql.visitor.functions.Char;
+
 public class StringTools {
 
 	// 脚本文本
@@ -365,28 +369,6 @@ public class StringTools {
 
 	public static boolean matchWildcard(String str, String pattern) {
 		return Objects.toString(str, "").matches(Objects.toString(pattern, "").replace("?", ".?").replace("*", ".*?"));
-		// if (StringUtils.isNotEmpty(str) && StringUtils.isNotEmpty(pattern) &&
-		// StringUtils.contains(pattern, "*")) {
-		// if (StringUtils.equals(pattern, "*")) {
-		// return true;
-		// }
-		// if (StringUtils.startsWith(pattern, "*")) {
-		// return StringUtils.endsWith(str, StringUtils.substringAfter(pattern, "*"));
-		// }
-		// if (StringUtils.endsWith(pattern, "*")) {
-		// return StringUtils.startsWith(str, StringUtils.substringBeforeLast(pattern,
-		// "*"));
-		// }
-		// String[] parts = StringUtils.split(pattern, "*", 2);
-		// if (StringUtils.startsWith(str, parts[0]) && StringUtils.endsWith(str,
-		// parts[1])) {
-		// return true;
-		// } else {
-		// return false;
-		// }
-		// } else {
-		// return StringUtils.equals(str, pattern);
-		// }
 	}
 
 	public static List<String> includesExcludesWithWildcard(List<String> list, Collection<String> includes,
@@ -544,4 +526,26 @@ public class StringTools {
 		return result.toArray(new String[result.size()]);
 	}
 
+	public static String getMethodName(String name) {
+		return methodName("get", name);
+	}
+
+	public static String setMethodName(String name) {
+		return methodName("set", name);
+	}
+
+	private static String methodName(String getOrSet, String name) {
+		if (StringUtils.isEmpty(name) || StringUtils.isEmpty(getOrSet)) {
+			return name;
+		}
+		StringBuilder sb = new StringBuilder();
+		sb.append(getOrSet);
+		if ((name.length() > 1) && (StringUtils.isAllLowerCase(name.substring(0, 1))
+				&& StringUtils.isAllUpperCase(name.substring(1, 2)))) {
+			sb.append(name);
+		} else {
+			sb.append(StringUtils.capitalize(name));
+		}
+		return sb.toString();
+	}
 }

+ 3 - 3
o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java

@@ -38,7 +38,7 @@ public class HttpStatus extends Thread {
 						bean.getDaemonThreadCount(), deadLockedCount));
 				if (BooleanUtils.isTrue(Servers.centerServerIsRunning())) {
 					String file = "centerServer_" + DateTools.compact(new Date()) + ".txt";
-					list.add(String.format("  +++ center server thread pool size:%d, idle:%d, detail:%d.",
+					list.add(String.format("  +++ center server thread pool size:%d, idle:%d, detail:%s.",
 							Servers.centerServer.getThreadPool().getThreads(),
 							Servers.centerServer.getThreadPool().getIdleThreads(), file));
 					try (FileOutputStream stream = new FileOutputStream(new File(Config.dir_logs(true), file));
@@ -48,7 +48,7 @@ public class HttpStatus extends Thread {
 				}
 				if (BooleanUtils.isTrue(Servers.applicationServerIsRunning())) {
 					String file = "applicationServer_" + DateTools.compact(new Date()) + ".txt";
-					list.add(String.format("  +++ application server thread pool size:%d, idle:%d, detail:%d.",
+					list.add(String.format("  +++ application server thread pool size:%d, idle:%d, detail:%s.",
 							Servers.applicationServer.getThreadPool().getThreads(),
 							Servers.applicationServer.getThreadPool().getIdleThreads(), file));
 					try (FileOutputStream stream = new FileOutputStream(new File(Config.dir_logs(true), file));
@@ -58,7 +58,7 @@ public class HttpStatus extends Thread {
 				}
 				if (BooleanUtils.isTrue(Servers.webServerIsRunning())) {
 					String file = "webServer_" + DateTools.compact(new Date()) + ".txt";
-					list.add(String.format("  +++ web server thread pool size:%d, idle:%d, detail:%d.",
+					list.add(String.format("  +++ web server thread pool size:%d, idle:%d, detail:%s.",
 							Servers.webServer.getThreadPool().getThreads(),
 							Servers.webServer.getThreadPool().getIdleThreads(), file));
 					try (FileOutputStream stream = new FileOutputStream(new File(Config.dir_logs(true), file));

+ 4 - 2
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/ActionGetWorkOrWorkCompleted.java

@@ -56,8 +56,10 @@ class ActionGetWorkOrWorkCompleted extends BaseAction {
 					if (null != work) {
 						wo = this.work(business, effectivePerson, work);
 					} else {
-						wo = this.workCompleted(business, effectivePerson,
-								emc.flag(workOrWorkCompleted, WorkCompleted.class));
+						WorkCompleted workCompleted = emc.flag(workOrWorkCompleted, WorkCompleted.class);
+						if (null != workCompleted) {
+							wo = this.workCompleted(business, effectivePerson, workCompleted);
+						}
 					}
 				} catch (Exception e) {
 					logger.error(e);

+ 5 - 3
o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionGetWithWorkOrWorkCompleted.java

@@ -43,6 +43,7 @@ class ActionGetWithWorkOrWorkCompleted extends BaseAction {
 
 	ActionResult<Wo> execute(EffectivePerson effectivePerson, String workOrWorkCompleted) throws Exception {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+
 			ActionResult<Wo> result = new ActionResult<>();
 			Business business = new Business(emc);
 			CompletableFuture<Wo> _wo = CompletableFuture.supplyAsync(() -> {
@@ -52,10 +53,11 @@ class ActionGetWithWorkOrWorkCompleted extends BaseAction {
 					if (null != work) {
 						wo = this.work(business, effectivePerson, work);
 					} else {
-						wo = this.workCompleted(business, effectivePerson,
-								emc.flag(workOrWorkCompleted, WorkCompleted.class));
+						WorkCompleted workCompleted = emc.flag(workOrWorkCompleted, WorkCompleted.class);
+						if (null != workCompleted) {
+							wo = this.workCompleted(business, effectivePerson, workCompleted);
+						}
 					}
-
 				} catch (Exception e) {
 					logger.error(e);
 				}