diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/entity/dynamic/DynamicEntityBuilder.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/entity/dynamic/DynamicEntityBuilder.java index 95439255327e033cbe86d1f4cce3cf703ffbf417..a088a7fc59d0a1ee48667699f070a8272b28ee97 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/entity/dynamic/DynamicEntityBuilder.java +++ b/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); diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/StringTools.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/StringTools.java index 269404ce5e2e1a7a137a00e1aff5161475a86617..c1ff3da8d4464600df6de3bf838918d90ab298c4 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/StringTools.java +++ b/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 includesExcludesWithWildcard(List list, Collection 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(); + } } \ No newline at end of file diff --git a/o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java b/o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java index c4590a9d5e2518ae2fc7f1e7d3205a8bb61b49e1..68fa9eeb3c88603d1c227f3d3aa2bce3b63d04b1 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/action/HttpStatus.java +++ b/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)); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/ActionGetWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/ActionGetWorkOrWorkCompleted.java index 4f2dbdc42ab203e7f2eefaaf5d740715e4b917fe..9f366805e77a7247f40922e1523e3f4afcc154bd 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/control/ActionGetWorkOrWorkCompleted.java +++ b/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); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionGetWithWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionGetWithWorkOrWorkCompleted.java index 61f26b4035200c2573fdb307057014c27015dccd..4c009c7f65c988f641e36bad780add5947512e97 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/work/ActionGetWithWorkOrWorkCompleted.java +++ b/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 execute(EffectivePerson effectivePerson, String workOrWorkCompleted) throws Exception { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { + ActionResult result = new ActionResult<>(); Business business = new Business(emc); CompletableFuture _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); }