Ver Fonte

Merge branch 'feature/record/paging' into 'release'

DLL导出命令,增加Record分页,删除pom.xml.versionsBackup

See merge request o2oa/o2oa!357
胡起 há 5 anos atrás
pai
commit
a446a9f3ce
100 ficheiros alterados com 600 adições e 20615 exclusões
  1. 3 0
      .gitignore
  2. 225 0
      o2server/create.sql
  3. 43 38
      o2server/pom.xml
  4. 1 1
      o2server/x_attendance_assemble_control/pom.xml
  5. 1 1
      o2server/x_attendance_core_entity/pom.xml
  6. 1 6
      o2server/x_base_core_project/pom.xml
  7. 44 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java
  8. 95 8
      o2server/x_base_core_project/src/main/java/com/x/base/core/container/factory/PersistenceXmlHelper.java
  9. 0 6
      o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/MetaModelBuilder.java
  10. 21 3
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java
  11. 0 2
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Node.java
  12. 11 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/ListTools.java
  13. 20 0
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/URLClassLoaderTools.java
  14. 1 1
      o2server/x_bbs_assemble_control/pom.xml
  15. 1 1
      o2server/x_bbs_core_entity/pom.xml
  16. 1 1
      o2server/x_calendar_assemble_control/pom.xml
  17. 1 1
      o2server/x_calendar_core_entity/pom.xml
  18. 1 1
      o2server/x_cms_assemble_control/pom.xml
  19. 1 1
      o2server/x_cms_core_entity/pom.xml
  20. 1 1
      o2server/x_cms_core_express/pom.xml
  21. 1 1
      o2server/x_component_assemble_control/pom.xml
  22. 1 1
      o2server/x_component_core_entity/pom.xml
  23. 1 1
      o2server/x_console/pom.xml
  24. 15 0
      o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java
  25. 92 0
      o2server/x_console/src/main/java/com/x/server/console/action/Ddl.java
  26. 1 1
      o2server/x_file_assemble_control/pom.xml
  27. 1 1
      o2server/x_file_core_entity/pom.xml
  28. 1 1
      o2server/x_general_assemble_control/pom.xml
  29. 1 1
      o2server/x_general_core_entity/pom.xml
  30. 1 1
      o2server/x_hotpic_assemble_control/pom.xml
  31. 1 1
      o2server/x_hotpic_core_entity/pom.xml
  32. 1 2
      o2server/x_jpush_assemble_control/pom.xml
  33. 1 1
      o2server/x_jpush_core_entity/pom.xml
  34. 1 1
      o2server/x_meeting_assemble_control/pom.xml
  35. 1 1
      o2server/x_meeting_core_entity/pom.xml
  36. 1 1
      o2server/x_message_assemble_communicate/pom.xml
  37. 1 1
      o2server/x_message_core_entity/pom.xml
  38. 1 1
      o2server/x_mind_assemble_control/pom.xml
  39. 1 1
      o2server/x_mind_core_entity/pom.xml
  40. 1 1
      o2server/x_okr_assemble_control/pom.xml
  41. 1 1
      o2server/x_okr_core_entity/pom.xml
  42. 1 1
      o2server/x_organization_assemble_authentication/pom.xml
  43. 1 1
      o2server/x_organization_assemble_control/pom.xml
  44. 0 15701
      o2server/x_organization_assemble_control/src/main/webapp/describe/describe.json
  45. 0 85
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/AbstractFactory.java
  46. 0 33
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/ApplicationServletContextListener.java
  47. 0 530
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/Business.java
  48. 0 366
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/MappingItem.java
  49. 0 5
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/MappingItemValueType.java
  50. 0 30
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/ThisApplication.java
  51. 0 240
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/GroupFactory.java
  52. 0 108
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/IdentityFactory.java
  53. 0 110
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/PersonAttributeFactory.java
  54. 0 230
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/PersonFactory.java
  55. 0 110
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/RoleFactory.java
  56. 0 109
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitAttributeFactory.java
  57. 0 107
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitDutyFactory.java
  58. 0 333
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitFactory.java
  59. 0 44
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/ActionApplication.java
  60. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/ExportJaxrsFilter.java
  61. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/FunctionJaxrsFilter.java
  62. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/GroupJaxrsFilter.java
  63. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/IdentityJaxrsFilter.java
  64. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/InputPersonFilter.java
  65. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/LoginRecordFilter.java
  66. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/PersonAttributeJaxrsFilter.java
  67. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/PersonJaxrsFilter.java
  68. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/RoleFilter.java
  69. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/TestFilter.java
  70. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitAttributeFilter.java
  71. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitDutyFilter.java
  72. 0 10
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitFilter.java
  73. 0 36
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ActionGetResult.java
  74. 0 223
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ActionZhengwuDingdingPerson.java
  75. 0 35
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/BaseAction.java
  76. 0 12
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ExceptionResultNotFound.java
  77. 0 65
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ExportAction.java
  78. 0 55
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionCreatePassword.java
  79. 0 35
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionListAllPersonName.java
  80. 0 39
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionSetPassword.java
  81. 0 45
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionSetText.java
  82. 0 110
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/FunctionAction.java
  83. 0 78
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionAddMember.java
  84. 0 83
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionCreate.java
  85. 0 99
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionDelete.java
  86. 0 77
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionDeleteMember.java
  87. 0 91
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionEdit.java
  88. 0 157
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionGet.java
  89. 0 123
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListLike.java
  90. 0 121
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListLikePinyin.java
  91. 0 100
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListNext.java
  92. 0 120
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListPinyinInitial.java
  93. 0 100
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListPrev.java
  94. 0 63
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSubDirect.java
  95. 0 63
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSubNested.java
  96. 0 63
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupDirect.java
  97. 0 64
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupDirectWithPerson.java
  98. 0 63
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupNested.java
  99. 0 64
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupNestedWithPerson.java
  100. 0 66
      o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListWithRole.java

+ 3 - 0
.gitignore

@@ -159,3 +159,6 @@ typings/
 
 *.swp
 
+#pom.xml.versionsBackup
+*.versionsBackup
+

Diff do ficheiro suprimidas por serem muito extensas
+ 225 - 0
o2server/create.sql


+ 43 - 38
o2server/pom.xml

@@ -3,8 +3,15 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>o2oa</groupId>
 	<artifactId>o2server</artifactId>
-	<version>4.0.5</version>
+	<version>5</version>
 	<packaging>pom</packaging>
+	<properties>
+		<maven.compiler.source>1.8</maven.compiler.source>
+		<maven.compiler.target>1.8</maven.compiler.target>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8
+		</project.reporting.outputEncoding>
+	</properties>
 	<modules>
 		<module>x_base_core_project</module>
 		<!-- 顺序 -->
@@ -61,13 +68,6 @@
 		<module>x_program_center</module>
 		<module>x_console</module>
 	</modules>
-	<properties>
-		<maven.compiler.source>1.8</maven.compiler.source>
-		<maven.compiler.target>1.8</maven.compiler.target>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<project.reporting.outputEncoding>UTF-8
-		</project.reporting.outputEncoding>
-	</properties>
 	<dependencies>
 		<dependency>
 			<groupId>javax</groupId>
@@ -365,13 +365,13 @@
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-jar-plugin</artifactId>
-				<version>3.1.2</version>
+				<version>3.2.0</version>
 				<configuration>
 					<archive>
 						<addMavenDescriptor>false</addMavenDescriptor>
 					</archive>
 					<excludes>
-						<exclude>META-INF</exclude>
+						<exclude>META-INF/**</exclude>
 					</excludes>
 				</configuration>
 			</plugin>
@@ -734,142 +734,147 @@
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_base_core_project</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_attendance_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_bbs_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_calendar_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_cms_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_cms_core_express</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_component_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_file_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_general_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_hotpic_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_meeting_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_message_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_mind_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_okr_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_organization_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
+			</dependency>
+			<dependency>
+				<groupId>o2oa</groupId>
+				<artifactId>x_jpush_core_entity</artifactId>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_organization_core_express</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_portal_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_processplatform_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_processplatform_core_express</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_query_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_query_core_express</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_report_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_strategydeploy_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_strategydeploy_assemble_control</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_program_center</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_program_center_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_teamwork_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 			<dependency>
 				<groupId>o2oa</groupId>
 				<artifactId>x_workschedu_core_entity</artifactId>
-				<version>${project.version}</version>
+				<version>5</version>
 			</dependency>
 		</dependencies>
 	</dependencyManagement>

+ 1 - 1
o2server/x_attendance_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_attendance_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_attendance_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_attendance_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 6
o2server/x_base_core_project/pom.xml

@@ -6,15 +6,10 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_base_core_project</artifactId>
 	<packaging>jar</packaging>
-	<dependencies>
-
-	</dependencies>
-
-
 	<build>
 		<plugins>
 			<plugin>

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

@@ -1701,6 +1701,50 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return list;
 	}
 
+	/* 仅在单一数据库可用 */
+	public <T extends JpaObject, W extends GsonPropertyObject> List<W> fetchEqualAscPaging(Class<T> clz,
+			WrapCopier<T, W> copier, String equalAttribute, Object equalValue, Integer page, Integer count,
+			String orderAttribute) throws Exception {
+		List<T> os = fetchEqualAscPaging(clz, copier.getCopyFields(), equalAttribute, equalValue, page, count,
+				orderAttribute);
+		return copier.copy(os);
+	}
+
+	/* 仅在单一数据库可用 */
+	public <T extends JpaObject> List<T> fetchEqualAscPaging(Class<T> clz, String equalAttribute, Object equalValue,
+			Integer page, Integer count, String orderAttribute) throws Exception {
+		return fetchEqualAscPaging(clz, JpaObject.singularAttributeField(clz, true, true), equalAttribute, equalValue,
+				page, count, orderAttribute);
+	}
+
+	/* 仅在单一数据库可用 */
+	public <T extends JpaObject, W extends GsonPropertyObject> List<T> fetchEqualAscPaging(Class<T> clz,
+			List<String> fetchAttributes, String equalAttribute, Object equalValue, Integer page, Integer pageSize,
+			String orderAttribute) throws Exception {
+		List<T> list = new ArrayList<>();
+		int max = (pageSize == null || pageSize < 1 || pageSize > MAX_PAGESIZE) ? DEFAULT_PAGESIZE : pageSize;
+		int startPosition = (page == null || page < 1) ? 0 : (page - 1) * max;
+		List<String> fields = ListTools.trim(fetchAttributes, true, true, JpaObject.id_FIELDNAME);
+		EntityManager em = this.get(clz);
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
+		Root<T> root = cq.from(clz);
+		List<Selection<?>> selections = new ArrayList<>();
+		for (String str : fields) {
+			selections.add(root.get(str));
+		}
+		Predicate p = cb.equal(root.get(equalAttribute), equalValue);
+		cq.multiselect(selections).where(p).orderBy(cb.asc(root.get(orderAttribute)));
+		for (Tuple o : em.createQuery(cq).setFirstResult(startPosition).setMaxResults(max).getResultList()) {
+			T t = clz.newInstance();
+			for (int i = 0; i < fields.size(); i++) {
+				PropertyUtils.setProperty(t, fields.get(i), o.get(selections.get(i)));
+			}
+			list.add(t);
+		}
+		return list;
+	}
+
 	/* 仅在单一数据库可用 */
 	public <T extends JpaObject, W extends GsonPropertyObject> List<W> fetchEqualDescPaging(Class<T> clz,
 			WrapCopier<T, W> copier, String equalAttribute, Object equalValue, Integer page, Integer count,

+ 95 - 8
o2server/x_base_core_project/src/main/java/com/x/base/core/container/factory/PersistenceXmlHelper.java

@@ -6,7 +6,15 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
+import com.x.base.core.container.FactorDistributionPolicy;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.entity.tools.JpaObjectTools;
+import com.x.base.core.project.config.Config;
+import com.x.base.core.project.config.Node;
+import com.x.base.core.project.tools.ListTools;
+
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openjpa.persistence.PersistenceProviderImpl;
 import org.dom4j.Document;
@@ -16,14 +24,12 @@ import org.dom4j.QName;
 import org.dom4j.io.OutputFormat;
 import org.dom4j.io.XMLWriter;
 
-import com.x.base.core.container.FactorDistributionPolicy;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.tools.JpaObjectTools;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.tools.ListTools;
-
 public class PersistenceXmlHelper {
 
+	private PersistenceXmlHelper() {
+
+	}
+
 	public static List<String> directWrite(String path, List<String> classNames) throws Exception {
 		try {
 			Document document = DocumentHelper.createDocument();
@@ -56,6 +62,88 @@ public class PersistenceXmlHelper {
 			throw new Exception("registContainerEntity error.className:" + ListTools.toStringJoin(classNames), e);
 		}
 	}
+	
+	public static void writeForDdl(String path) throws Exception {
+		try {
+			Document document = DocumentHelper.createDocument();
+			Element persistence = document.addElement("persistence", "http://java.sun.com/xml/ns/persistence");
+			persistence.addAttribute(QName.get("schemaLocation", "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
+					"http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd");
+			persistence.addAttribute("version", "2.0");
+			Element unit = persistence.addElement("persistence-unit");
+			unit.addAttribute("name", "enhance");
+			unit.addAttribute("transaction-type", "RESOURCE_LOCAL");
+			Element provider = unit.addElement("provider");
+			provider.addText(PersistenceProviderImpl.class.getName());
+			List<String> entities = new ArrayList<>();
+			for (String className : (List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES)) {
+				Class<? extends JpaObject> clazz = (Class<JpaObject>) Class.forName(className);
+				for (Class<?> o : JpaObjectTools.scanMappedSuperclass(clazz)) {
+					entities.add(o.getName());
+				}
+			}
+			entities = ListTools.trim(entities, true, true);
+			for (String className : entities) {
+				Element class_element = unit.addElement("class");
+				class_element.addText(className);
+			}
+			Element properties = unit.addElement("properties");
+			if (BooleanUtils.isTrue(Config.externalDataSources().enable())) {
+				writeForDdlExternalProperty(properties);
+			} else {
+				writeForDdlInternalProperty(properties);
+			}
+			OutputFormat format = OutputFormat.createPrettyPrint();
+			format.setEncoding("UTF-8");
+			File file = new File(path);
+			FileUtils.touch(file);
+			XMLWriter writer = new XMLWriter(new FileWriter(file), format);
+			writer.write(document);
+			writer.close();
+		} catch (Exception e) {
+			throw new Exception("writeForDdl error.", e);
+		}
+	}
+
+	private static void writeForDdlExternalProperty(Element properties) throws Exception {
+		Element property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.driver");
+		property.addAttribute("value", Config.externalDataSources().get(0).getDriverClassName());
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.url");
+		property.addAttribute("value", Config.externalDataSources().get(0).getUrl());
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.user");
+		property.addAttribute("value", Config.externalDataSources().get(0).getUsername());
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.password");
+		property.addAttribute("value", Config.externalDataSources().get(0).getPassword());
+		property = properties.addElement("property");
+		property.addAttribute("name", "openjpa.DynamicEnhancementAgent");
+		property.addAttribute("value", "false");
+	}
+
+	private static void writeForDdlInternalProperty(Element properties) throws Exception {
+		Element property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.driver");
+		property.addAttribute("value", SlicePropertiesBuilder.driver_h2);
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.url");
+		Node node = Config.currentNode();
+		String url = "jdbc:h2:tcp://" + Config.node() + ":" + node.getData().getTcpPort() + "/X;JMX="
+				+ (node.getData().getJmxEnable() ? "TRUE" : "FALSE") + ";CACHE_SIZE="
+				+ (node.getData().getCacheSize() * 1024);
+		property.addAttribute("value", url);
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.user");
+		property.addAttribute("value", "sa");
+		property = properties.addElement("property");
+		property.addAttribute("name", "javax.persistence.jdbc.password");
+		property.addAttribute("value", Config.token().getPassword());
+		property = properties.addElement("property");
+		property.addAttribute("name", "openjpa.DynamicEnhancementAgent");
+		property.addAttribute("value", "false");
+	}
 
 	public static List<String> write(String path, List<String> entities) throws Exception {
 		List<String> names = new ArrayList<>();
@@ -90,7 +178,7 @@ public class PersistenceXmlHelper {
 			writer.close();
 			return names;
 		} catch (Exception e) {
-			throw new Exception("registContainerEntity error.className:" + name, e);
+			throw new Exception("write error.className:" + name, e);
 		}
 	}
 
@@ -108,7 +196,6 @@ public class PersistenceXmlHelper {
 				return properties_internal_single(className);
 			}
 		}
-
 	}
 
 	private static Properties properties_base_slice(String className) throws Exception {

+ 0 - 6
o2server/x_base_core_project/src/main/java/com/x/base/core/entity/tools/MetaModelBuilder.java

@@ -88,12 +88,6 @@ public class MetaModelBuilder {
 		for (URL url : urls) {
 			cp.add(new File(url.getFile()));
 		}
-
-//		filter = new WildcardFileFilter("*.jar");
-//		File dir = new File(o2oadir, "o2server/commons/ext");
-//		for (File o : FileUtils.listFiles(dir, filter, null)) {
-//			cp.add(o);
-//		}
 		return cp;
 	}
 

+ 21 - 3
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Config.java

@@ -96,6 +96,7 @@ public class Config {
 	public static final String DIR_LOCAL_UPDATE = "local/update";
 	public static final String DIR_LOCAL_TEMP = "local/temp";
 	public static final String DIR_LOCAL_TEMP_CLASSES = "local/temp/classes";
+	public static final String DIR_LOCAL_TEMP_SQL = "local/temp/sql";
 	public static final String DIR_LOCAL_TEMP_DYNAMIC = "local/temp/dynamic";
 	public static final String DIR_LOCAL_TEMP_DYNAMIC_SRC = "local/temp/dynamic/src";
 	public static final String DIR_LOCAL_TEMP_DYNAMIC_TARGET = "local/temp/dynamic/target";
@@ -329,6 +330,20 @@ public class Config {
 		return dir;
 	}
 
+	public static File dir_local_temp_sql() throws Exception {
+		return new File(base(), DIR_LOCAL_TEMP_SQL);
+	}
+
+	public static File dir_local_temp_sql(Boolean force) throws Exception {
+		File dir = new File(base(), DIR_LOCAL_TEMP_SQL);
+		if (force) {
+			if ((!dir.exists()) || dir.isFile()) {
+				FileUtils.forceMkdir(dir);
+			}
+		}
+		return dir;
+	}
+
 	public static File dir_logs() throws Exception {
 		return new File(base(), DIR_LOGS);
 	}
@@ -790,9 +805,12 @@ public class Config {
 					/* 添加默认格式 */
 					mimeTypes.addMimeMapping("", "application/octet-stream");
 					/* 添加新版office格式 */
-					mimeTypes.addMimeMapping("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
-					mimeTypes.addMimeMapping("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-					mimeTypes.addMimeMapping("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
+					mimeTypes.addMimeMapping("docx",
+							"application/vnd.openxmlformats-officedocument.wordprocessingml.document");
+					mimeTypes.addMimeMapping("xlsx",
+							"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+					mimeTypes.addMimeMapping("pptx",
+							"application/vnd.openxmlformats-officedocument.presentationml.presentation");
 					/* 名片 */
 					mimeTypes.addMimeMapping("vcf", "text/x-vcard");
 					instance().mimeTypes = mimeTypes;

+ 0 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Node.java

@@ -331,6 +331,4 @@ public class Node extends ConfigObject {
 
 	}
 
-
-
 }

+ 11 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/ListTools.java

@@ -587,4 +587,15 @@ public class ListTools {
 		return targetList;
 	}
 
+	public static <E> List<E> paging(List<E> list, Integer page, Integer size) {
+		if (isEmpty(list)) {
+			return list;
+		}
+		int start = (page - 1) * size;
+		int end = page * size;
+		start = Math.min(start, list.size());
+		end = Math.min(end, list.size());
+		return list.subList(start, end);
+	}
+
 }

+ 20 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/URLClassLoaderTools.java

@@ -0,0 +1,20 @@
+package com.x.base.core.project.tools;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+public class URLClassLoaderTools {
+
+    private URLClassLoaderTools() {
+    }
+
+    public static void add(URLClassLoader classLoader, File file) throws Exception {
+        Class<?> urlClass = URLClassLoader.class;
+        Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
+        method.setAccessible(true);
+        method.invoke(classLoader, new Object[] { file.toURI().toURL() });
+    }
+
+}

+ 1 - 1
o2server/x_bbs_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_bbs_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_bbs_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_bbs_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_calendar_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_calendar_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_calendar_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_calendar_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_cms_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_cms_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_cms_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_cms_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_cms_core_express/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_cms_core_express</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_component_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_component_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_component_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_component_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_console/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_console</artifactId>
 	<packaging>jar</packaging>

+ 15 - 0
o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java

@@ -37,6 +37,7 @@ public class ActionControl extends ActionBase {
 	private static final String CMD_RS = "rs";
 	private static final String CMD_CLH2 = "clh2";
 	private static final String CMD_UF = "uf";
+	private static final String CMD_DDL = "ddl";
 
 	private static final int REPEAT_MAX = 100;
 	private static final int REPEAT_MIN = 1;
@@ -69,6 +70,8 @@ public class ActionControl extends ActionBase {
 				clh2(cmd);
 			} else if (cmd.hasOption(CMD_UF)) {
 				uf(cmd);
+			} else if (cmd.hasOption(CMD_DDL)) {
+				ddl(cmd);
 			} else {
 				HelpFormatter formatter = new HelpFormatter();
 				formatter.printHelp("control command", options);
@@ -91,6 +94,7 @@ public class ActionControl extends ActionBase {
 		options.addOption(rsOption());
 		options.addOption(clh2Option());
 		options.addOption(ufOption());
+		options.addOption(ddlOption());
 		return options;
 	}
 
@@ -152,6 +156,11 @@ public class ActionControl extends ActionBase {
 				.desc("升级服务器,升级前请注意备份.").build();
 	}
 
+	private static Option ddlOption() {
+		return Option.builder("ddl").longOpt("DataDefinitionLanguage").argName("type").hasArg()
+				.desc("导出数据定义语句:建表语句:build,数据库创建:createDB,数据库删除dropDB.").build();
+	}
+
 	private void ec(CommandLine cmd) throws Exception {
 		if (BooleanUtils.isNotTrue(Config.currentNode().getEraseContentEnable())) {
 			logger.print("erase content is disabled.");
@@ -238,6 +247,12 @@ public class ActionControl extends ActionBase {
 		updateFile.execute(path);
 	}
 
+	private void ddl(CommandLine cmd) throws Exception {
+		String type = Objects.toString(cmd.getOptionValue(CMD_DDL), "");
+		Ddl ddl= new Ddl();
+		ddl.execute(type);
+	}
+
 	private Integer getArgInteger(CommandLine cmd, String opt, Integer defaultValue) {
 		Integer repeat = defaultValue;
 		String r = cmd.getOptionValue(opt);

+ 92 - 0
o2server/x_console/src/main/java/com/x/server/console/action/Ddl.java

@@ -0,0 +1,92 @@
+package com.x.server.console.action;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import com.x.base.core.container.factory.PersistenceXmlHelper;
+import com.x.base.core.project.config.Config;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.meta.MappingTool;
+import org.apache.openjpa.lib.util.Options;
+import org.apache.openjpa.persistence.EntityManagerImpl;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+
+public class Ddl {
+
+	private static Logger logger = LoggerFactory.getLogger(Ddl.class);
+
+	/* 初始化完成 */
+	public boolean execute(String type) throws Exception {
+
+		// List<String> containerEntityNames = new ArrayList<>();
+		// containerEntityNames.addAll((List<String>)
+		// Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
+		// List<String> classNames =
+		// ListTools.includesExcludesWildcard(containerEntityNames,
+		// Config.dumpRestoreData().getIncludes(),
+		// Config.dumpRestoreData().getExcludes());
+		// File persistence = new File(Config.dir_local_temp_classes(),
+		// "META-INF/persistence.xml");
+		// PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
+		// String[] arguments = new String[4];
+		// arguments[0] = "-schemaAction";
+		// arguments[1] = StringUtils.equals(type ,"create")? "build":"add";
+		// arguments[2] = "-sql";
+		// arguments[3] = Config.dir_local_temp_sql(true) + "/" + type + ".sql";
+		// MappingTool.main(arguments);
+		// return true;
+		String flag = "build";
+		if (StringUtils.equalsIgnoreCase(type, "createDB")) {
+			flag = "createDB";
+		} else if (StringUtils.equalsIgnoreCase(type, "dropDB")) {
+			flag = "dropDB";
+		} else if (StringUtils.equalsIgnoreCase(type, "drop")) {
+			flag = "drop";
+			// } else if (StringUtils.equalsIgnoreCase(type, "deleteTableContents")) {
+			// flag = "deleteTableContents";
+		}
+		List<String> containerEntityNames = new ArrayList<>();
+		containerEntityNames.addAll((List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
+		List<String> classNames = ListTools.includesExcludesWildcard(containerEntityNames,
+				Config.dumpRestoreData().getIncludes(), Config.dumpRestoreData().getExcludes());
+		File persistence = new File(Config.dir_local_temp_classes(), "persistence_sql.xml");
+		PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
+		OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory("enhance",
+				persistence.getName());
+		EntityManagerImpl em = (EntityManagerImpl) emf.createEntityManager();
+		String[] arguments = null;
+		String[] args = null;
+		Options opts = new Options();
+		if (StringUtils.equals(flag, "build") || StringUtils.equals(flag, "drop")
+				|| StringUtils.equals(flag, "createDB") || StringUtils.equals(flag, "dropDB")) {
+			arguments = new String[4];
+			File file = new File(Config.dir_local_temp_sql(true), flag + ".sql");
+			arguments[0] = "-schemaAction";
+			arguments[1] = flag;
+			arguments[2] = "-sql";
+			arguments[3] = file.getAbsolutePath();
+			args = opts.setFromCmdLine(arguments);
+			MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
+			logger.print("file : {}.", file.getAbsolutePath());
+		} else if (StringUtils.equals(flag, "deleteTableContents")) {
+			// arguments = new String[2];
+			// arguments[0] = "-schemaAction";
+			// arguments[1] = flag;
+			// args = opts.setFromCmdLine(arguments);
+			// MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
+			// logger.print("delete all table contents.");
+		}
+		em.close();
+		emf.close();
+		return true;
+	}
+
+}

+ 1 - 1
o2server/x_file_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_file_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_file_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_file_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_general_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_general_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_general_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_general_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_hotpic_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_hotpic_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_hotpic_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_hotpic_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 2
o2server/x_jpush_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_jpush_assemble_control</artifactId>
 	<packaging>war</packaging>
@@ -27,7 +27,6 @@
 		<dependency>
 			<groupId>o2oa</groupId>
 			<artifactId>x_jpush_core_entity</artifactId>
-			<version>4.0.5</version>
 		</dependency>
 		<!--极光推送 sdk-->
 		<dependency>

+ 1 - 1
o2server/x_jpush_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_jpush_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_meeting_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_meeting_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_meeting_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_meeting_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_message_assemble_communicate/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_message_assemble_communicate</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_message_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_message_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_mind_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_mind_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_mind_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_mind_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_okr_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_okr_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_okr_core_entity/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_okr_core_entity</artifactId>
 	<packaging>jar</packaging>

+ 1 - 1
o2server/x_organization_assemble_authentication/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_organization_assemble_authentication</artifactId>
 	<packaging>war</packaging>

+ 1 - 1
o2server/x_organization_assemble_control/pom.xml

@@ -7,7 +7,7 @@
 	<parent>
 		<groupId>o2oa</groupId>
 		<artifactId>o2server</artifactId>
-		<version>4.0.5</version>
+		<version>5</version>
 	</parent>
 	<artifactId>x_organization_assemble_control</artifactId>
 	<packaging>war</packaging>

+ 0 - 15701
o2server/x_organization_assemble_control/src/main/webapp/describe/describe.json

@@ -1,15701 +0,0 @@
-{
-  "jaxrs": [
-    {
-      "name": "CacheAction",
-      "className": "com.x.base.core.project.jaxrs.cache.CacheAction",
-      "description": "缓存操作",
-      "methods": [
-        {
-          "name": "configFlush",
-          "className": "com.x.base.core.project.jaxrs.cache.ActionConfigFlush",
-          "description": "接收config flush 信号.",
-          "type": "GET",
-          "path": "jaxrs/cache/config/flush",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "receive",
-          "className": "com.x.base.core.project.jaxrs.cache.ActionReceive",
-          "description": "接收Cache刷新信息.",
-          "type": "PUT",
-          "path": "jaxrs/cache",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "nodeName",
-              "type": "String",
-              "isCollection": false,
-              "description": "节点名",
-              "isBaseType": true
-            },
-            {
-              "name": "className",
-              "type": "String",
-              "isCollection": false,
-              "description": "类名",
-              "isBaseType": true
-            },
-            {
-              "name": "keys",
-              "type": "List\u003cObject\u003e",
-              "isCollection": true,
-              "description": "关键字",
-              "isBaseType": false
-            }
-          ],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "EchoAction",
-      "className": "com.x.base.core.project.jaxrs.echo.EchoAction",
-      "description": "响应",
-      "methods": [
-        {
-          "name": "get",
-          "className": "com.x.base.core.project.jaxrs.echo.ActionGet",
-          "description": "获取应答.",
-          "type": "GET",
-          "path": "jaxrs/echo",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "servletContextName",
-              "type": "String",
-              "isCollection": false,
-              "description": "上下文根"
-            },
-            {
-              "name": "serverTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "服务器时间"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "ExportAction",
-      "className": "com.x.organization.assemble.control.jaxrs.export.ExportAction",
-      "description": "导出",
-      "methods": [
-        {
-          "name": "getResult",
-          "className": "com.x.organization.assemble.control.jaxrs.export.ActionGetResult",
-          "description": "获取导出结果.",
-          "type": "GET",
-          "path": "jaxrs/export/result/flag/{flag}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "导入文件返回的结果标记"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "zhengwuDingdingPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.export.ActionZhengwuDingdingPerson",
-          "description": "获取政务钉钉人员.",
-          "type": "GET",
-          "path": "jaxrs/export/zhengwudingding/person",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "flag",
-              "type": "String",
-              "isCollection": false,
-              "description": "返回的结果标识"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "FireScheduleAction",
-      "className": "com.x.base.core.project.jaxrs.fireschedule.FireScheduleAction",
-      "description": "触发任务",
-      "methods": [
-        {
-          "name": "execute",
-          "className": "com.x.base.core.project.jaxrs.fireschedule.ActionExecute",
-          "description": "接受x_program_center发送过来的运行schedule.",
-          "type": "GET",
-          "path": "jaxrs/fireschedule/classname/{className}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "className",
-              "type": "String",
-              "description": "运行类"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "GroupAction",
-      "className": "com.x.organization.assemble.control.jaxrs.group.GroupAction",
-      "description": "群组操作",
-      "methods": [
-        {
-          "name": "addMember",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionAddMember",
-          "description": "添加群组成员.",
-          "type": "PUT",
-          "path": "jaxrs/group/{flag}/add/member",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成.",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位.",
-              "isBaseType": true
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中.",
-              "isBaseType": true
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中.",
-              "isBaseType": true
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionCreate",
-          "description": "创建群组.",
-          "type": "POST",
-          "path": "jaxrs/group",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionDelete",
-          "description": "删除群组.",
-          "type": "DELETE",
-          "path": "jaxrs/group/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "deleteMember",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionDeleteMember",
-          "description": "删除群组成员.",
-          "type": "PUT",
-          "path": "jaxrs/group/{flag}/delete/member",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成.",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "distributeFactor",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "分布式存储标识位.",
-              "isBaseType": true
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中.",
-              "isBaseType": true
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中.",
-              "isBaseType": true
-            },
-            {
-              "name": "sequence",
-              "type": "String",
-              "isCollection": false,
-              "description": "列表序号,由创建时间以及ID组成.在保存时自动生成,索引创建在约束中.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionEdit",
-          "description": "更新群组.",
-          "type": "PUT",
-          "path": "jaxrs/group/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionGet",
-          "description": "获取群组.",
-          "type": "GET",
-          "path": "jaxrs/group/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woGroupList",
-              "type": "List\u003cWo\u003e",
-              "isCollection": true,
-              "description": "成员群组对象"
-            },
-            {
-              "name": "woPersonList",
-              "type": "List\u003cWoPerson\u003e",
-              "isCollection": true,
-              "description": "成员个人对象"
-            },
-            {
-              "name": "woUnitList",
-              "type": "List\u003cWoUnit\u003e",
-              "isCollection": true,
-              "description": "成员组织对象"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLike",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListLike",
-          "description": "根据名称进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/group/list/like",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLikePinyin",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListLikePinyin",
-          "description": "根据拼音或者首字母进行模糊查询",
-          "type": "PUT",
-          "path": "jaxrs/group/list/like/pinyin",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListNext",
-          "description": "列示群组,下一页.",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPinyinInitial",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListPinyinInitial",
-          "description": "获取拼音首字母开始的群组.",
-          "type": "PUT",
-          "path": "jaxrs/group/list/pinyininitial",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListPrev",
-          "description": "列示群组,上一页.",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "身份"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubDirect",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSubDirect",
-          "description": "查找群组直接作为成员所在的群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/sub/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubNested",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSubNested",
-          "description": "查找群组所在的群组,包括嵌套的下级群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/sub/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupDirect",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSupDirect",
-          "description": "查找群组的直接上级群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/sup/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupDirectWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSupDirectWithPerson",
-          "description": "查找人员直接作为成员所在的群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/person/{personFlag}/sup/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "personFlag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupNested",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSupNested",
-          "description": "查找群组的嵌套上级群组",
-          "type": "GET",
-          "path": "jaxrs/group/list/{flag}/sup/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupNestedWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListSupNestedWithPerson",
-          "description": "查找人员所在的群组,包括嵌套的下级群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/person/{personFlag}/sup/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "personFlag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithRole",
-          "className": "com.x.organization.assemble.control.jaxrs.group.ActionListWithRole",
-          "description": "查找指定角色所包含的群组.",
-          "type": "GET",
-          "path": "jaxrs/group/list/role/{roleFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "roleFlag",
-              "type": "String",
-              "description": "角色标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对群组的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "群组名称.可重名"
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的个人成员.存放个人 ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组的群组成员.存放群组 ID."
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "群组存放组织成员,存放unit ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "IdentityAction",
-      "className": "com.x.organization.assemble.control.jaxrs.identity.IdentityAction",
-      "description": "身份操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionCreate",
-          "description": "创建身份.",
-          "type": "POST",
-          "path": "jaxrs/identity",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionDelete",
-          "description": "删除身份,同时删除职务.",
-          "type": "DELETE",
-          "path": "jaxrs/identity/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionEdit",
-          "description": "更新身份.",
-          "type": "PUT",
-          "path": "jaxrs/identity/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionGet",
-          "description": "获取身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woUnit",
-              "type": "WoUnit",
-              "isCollection": false,
-              "description": "组织对象"
-            },
-            {
-              "name": "woPerson",
-              "type": "WoPerson",
-              "isCollection": false,
-              "description": "个人对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLike",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListLike",
-          "description": "进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/identity/list/like",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "unitDutyList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索职务范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLikePinyin",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListLikePinyin",
-          "description": "根据拼音或者首字母搜索.",
-          "type": "PUT",
-          "path": "jaxrs/identity/list/like/pinyin",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "unitDutyList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索职务范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListNext",
-          "description": "列示身份,下一页.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPinyinInitial",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListPinyinInitial",
-          "description": "获取拼音首字母开始的身份.",
-          "type": "PUT",
-          "path": "jaxrs/identity/list/pinyininitial",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "unitDutyList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索职务范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListPrev",
-          "description": "列示身份,上一页.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListWithPerson",
-          "description": "根据给定的人员,列示其所有的身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/person/{personFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "personFlag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnit",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListWithUnit",
-          "description": "根据给定的组织,列示其所有的身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/unit/{unitFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "unitFlag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnitDutyName",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListWithUnitDutyName",
-          "description": "根据给定的组织职务名称,列示其所有的身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/unitduty/name/{unitDutyName}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "unitDutyName",
-              "type": "String",
-              "description": "组织职务名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnitWithUnitDutyName",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionListWithUnitWithUnitDutyName",
-          "description": "根据给定的组织和组织职务名称,列示其所有的身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/list/{flag}/unitduty/name/{unitDutyName}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织"
-            },
-            {
-              "name": "unitDutyName",
-              "type": "String",
-              "description": "组织职务名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "身份所属个人,存放个人 ID,不为空."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "属性所属组织,不可为空."
-            },
-            {
-              "name": "unitName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织名称."
-            },
-            {
-              "name": "unitLevel",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别."
-            },
-            {
-              "name": "unitLevelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "major",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "主身份标识"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "order",
-          "className": "com.x.organization.assemble.control.jaxrs.identity.ActionOrder",
-          "description": "更新身份.",
-          "type": "GET",
-          "path": "jaxrs/identity/{flag}/order/before/{followFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "身份标识"
-            },
-            {
-              "name": "followFlag",
-              "type": "String",
-              "description": "后续身份标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "InputPersonAction",
-      "className": "com.x.organization.assemble.control.jaxrs.inputperson.InputPersonAction",
-      "description": "导入人员",
-      "methods": [
-        {
-          "name": "getResult",
-          "className": "com.x.organization.assemble.control.jaxrs.inputperson.ActionGetResult",
-          "description": "获取导入人员结果.",
-          "type": "GET",
-          "path": "jaxrs/inputperson/result/flag/{flag}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "导入文件返回的结果标记"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "input",
-          "className": "com.x.organization.assemble.control.jaxrs.inputperson.ActionInput",
-          "description": "上传Excel导入人员.",
-          "type": "POST",
-          "path": "jaxrs/inputperson",
-          "contentType": "multipart/form-data",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [],
-          "formParameters": [
-            {
-              "name": "file",
-              "type": "File",
-              "description": "Excel文件"
-            }
-          ],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "flag",
-              "type": "String",
-              "isCollection": false,
-              "description": "返回的结果标识"
-            }
-          ]
-        },
-        {
-          "name": "template",
-          "className": "com.x.organization.assemble.control.jaxrs.inputperson.ActionTemplate",
-          "description": "获取导入人员模版.",
-          "type": "GET",
-          "path": "jaxrs/inputperson/template",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "LoggerAction",
-      "className": "com.x.base.core.project.jaxrs.logger.LoggerAction",
-      "description": "日志操作",
-      "methods": [
-        {
-          "name": "debug",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionDebug",
-          "description": "设置日志级别为DEBUG.",
-          "type": "GET",
-          "path": "jaxrs/logger/debug",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionGet",
-          "description": "获取当前日志级别.",
-          "type": "GET",
-          "path": "jaxrs/logger",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        },
-        {
-          "name": "info",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionInfo",
-          "description": "设置日志级别为INFO",
-          "type": "GET",
-          "path": "jaxrs/logger/info",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "trace",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionTrace",
-          "description": "设置日志级别为TRACE.",
-          "type": "GET",
-          "path": "jaxrs/logger/trace",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "warn",
-          "className": "com.x.base.core.project.jaxrs.logger.ActionWarn",
-          "description": "设置日志级别为WARN",
-          "type": "GET",
-          "path": "jaxrs/logger/warn",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "LoginRecordAction",
-      "className": "com.x.organization.assemble.control.jaxrs.loginrecord.LoginRecordAction",
-      "description": "登录日志",
-      "methods": [
-        {
-          "name": "loginRecord",
-          "className": "com.x.organization.assemble.control.jaxrs.loginrecord.ActionLoginRecord",
-          "description": "获取用户登录记录的Excel.",
-          "type": "GET",
-          "path": "jaxrs/loginrecord/{stream}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "stream",
-              "type": "Boolean",
-              "description": "是否采用流格式直接作为附件下载"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PermissionSettingAction",
-      "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.PermissionSettingAction",
-      "description": "通讯录权限设置",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.ActionCreate",
-          "description": "创建通讯录权限设置.",
-          "type": "POST",
-          "path": "jaxrs/permissionsetting",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "excludeUnit",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询单位.",
-              "isBaseType": true
-            },
-            {
-              "name": "excludePerson",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询个人.",
-              "isBaseType": true
-            },
-            {
-              "name": "limitQueryOuter",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看外部门.",
-              "isBaseType": true
-            },
-            {
-              "name": "limitQueryAll",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看所有人",
-              "isBaseType": true
-            },
-            {
-              "name": "explain",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布",
-              "isBaseType": true
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.ActionDelete",
-          "description": "删除通讯录设置配置.",
-          "type": "DELETE",
-          "path": "jaxrs/permissionsetting/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "通讯录配置标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.ActionGet",
-          "description": "获取通讯录配置.",
-          "type": "GET",
-          "path": "jaxrs/permissionsetting/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "名片标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "excludeUnit",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询单位."
-            },
-            {
-              "name": "excludePerson",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询个人."
-            },
-            {
-              "name": "limitQueryOuter",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看外部门."
-            },
-            {
-              "name": "limitQueryAll",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看所有人"
-            },
-            {
-              "name": "explain",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "list",
-          "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.ActionList",
-          "description": "获取所有通讯录设置配置",
-          "type": "GET",
-          "path": "jaxrs/permissionsetting/list",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "excludeUnit",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询单位."
-            },
-            {
-              "name": "excludePerson",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询个人."
-            },
-            {
-              "name": "limitQueryOuter",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看外部门."
-            },
-            {
-              "name": "limitQueryAll",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看所有人"
-            },
-            {
-              "name": "explain",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "update",
-          "className": "com.x.organization.assemble.control.jaxrs.permissionsetting.ActionUpdate",
-          "description": "更新通讯录配置.",
-          "type": "PUT",
-          "path": "jaxrs/permissionsetting/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "名片标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "excludeUnit",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询单位.",
-              "isBaseType": true
-            },
-            {
-              "name": "excludePerson",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询个人.",
-              "isBaseType": true
-            },
-            {
-              "name": "limitQueryOuter",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看外部门.",
-              "isBaseType": true
-            },
-            {
-              "name": "limitQueryAll",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看所有人",
-              "isBaseType": true
-            },
-            {
-              "name": "explain",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布",
-              "isBaseType": true
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "excludeUnit",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询单位."
-            },
-            {
-              "name": "excludePerson",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "不允许被查询个人."
-            },
-            {
-              "name": "limitQueryOuter",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看外部门."
-            },
-            {
-              "name": "limitQueryAll",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "限制查看所有人"
-            },
-            {
-              "name": "explain",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PersonAction",
-      "className": "com.x.organization.assemble.control.jaxrs.person.PersonAction",
-      "description": "个人操作",
-      "methods": [
-        {
-          "name": "checkPassword",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionCheckPassword",
-          "description": "校验password密码等级.",
-          "type": "GET",
-          "path": "jaxrs/person/check/password/{password}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "password",
-              "type": "String",
-              "description": "校验密码"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值"
-            }
-          ]
-        },
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionCreate",
-          "description": "创建个人.",
-          "type": "POST",
-          "path": "jaxrs/person",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d",
-              "isBaseType": false
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像).",
-              "isBaseType": true
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像).",
-              "isBaseType": true
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。",
-              "isBaseType": true
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象.",
-              "isBaseType": true
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址.",
-              "isBaseType": true
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号.",
-              "isBaseType": true
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号.",
-              "isBaseType": true
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话.",
-              "isBaseType": true
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日.",
-              "isBaseType": true
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1.",
-              "isBaseType": true
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2.",
-              "isBaseType": true
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3.",
-              "isBaseType": true
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4.",
-              "isBaseType": true
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数",
-              "isBaseType": true
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionDelete",
-          "description": "删除个人.",
-          "type": "DELETE",
-          "path": "jaxrs/person/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionEdit",
-          "description": "更新个人.",
-          "type": "PUT",
-          "path": "jaxrs/person/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d",
-              "isBaseType": false
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像).",
-              "isBaseType": true
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像).",
-              "isBaseType": true
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。",
-              "isBaseType": true
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象.",
-              "isBaseType": true
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址.",
-              "isBaseType": true
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号.",
-              "isBaseType": true
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号.",
-              "isBaseType": true
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话.",
-              "isBaseType": true
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日.",
-              "isBaseType": true
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1.",
-              "isBaseType": true
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2.",
-              "isBaseType": true
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3.",
-              "isBaseType": true
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4.",
-              "isBaseType": true
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间.",
-              "isBaseType": true
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionGet",
-          "description": "获取个人,附带身份,身份所在的组织,个人所在群组,个人拥有角色.",
-          "type": "GET",
-          "path": "jaxrs/person/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "身份对象"
-            },
-            {
-              "name": "woRoleList",
-              "type": "List\u003cWoRole\u003e",
-              "isCollection": true,
-              "description": "角色对象"
-            },
-            {
-              "name": "woGroupList",
-              "type": "List\u003cWoGroup\u003e",
-              "isCollection": true,
-              "description": "群组对象"
-            },
-            {
-              "name": "woPersonAttributeList",
-              "type": "List\u003cWoPersonAttribute\u003e",
-              "isCollection": true,
-              "description": "个人属性对象"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "getIconWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionGetIconWithPerson",
-          "description": "获取个人头像.",
-          "type": "GET",
-          "path": "jaxrs/person/{flag}/icon",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "listLike",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListLike",
-          "description": "根据名称进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/person/list/like",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLikePinyin",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListLikePinyin",
-          "description": "根据拼音或者首字母进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/person/list/like/pinyin",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListNext",
-          "description": "列示个人,下一页.",
-          "type": "GET",
-          "path": "jaxrs/person/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPinyinInitial",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListPinyinInitial",
-          "description": "获取拼音首字母开始的个人.",
-          "type": "PUT",
-          "path": "jaxrs/person/list/pinyininitial",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListPrev",
-          "description": "列示个人,上一页.",
-          "type": "GET",
-          "path": "jaxrs/person/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "人员标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubDirectWithGroup",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListSubDirectWithGroup",
-          "description": "根据给定的群组,列示直接个人成员.",
-          "type": "GET",
-          "path": "jaxrs/person/list/group/{groupFlag}/sub/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "groupFlag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubNestedWithGroup",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListSubNestedWithGroup",
-          "description": "根根据给定的群组,列示嵌套的个人成员.",
-          "type": "GET",
-          "path": "jaxrs/person/list/group/{groupFlag}/sub/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "groupFlag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithRole",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionListWithRole",
-          "description": "根根据给定的角色,列示个人成员.",
-          "type": "GET",
-          "path": "jaxrs/person/list/role/{roleFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "roleFlag",
-              "type": "String",
-              "description": "角色标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对个人的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "iconMdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(中等尺寸图像)."
-            },
-            {
-              "name": "iconLdpi",
-              "type": "String",
-              "isCollection": false,
-              "description": "icon Base64编码后的文本(小尺寸图像)."
-            },
-            {
-              "name": "signature",
-              "type": "String",
-              "isCollection": false,
-              "description": "个性签名."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "employee",
-              "type": "String",
-              "isCollection": false,
-              "description": "工号,不可重复."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "个人管理者.默认为创建者。"
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "汇报对象."
-            },
-            {
-              "name": "passwordExpiredTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码到期时间."
-            },
-            {
-              "name": "changePasswordTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "用户密码最后修改时间."
-            },
-            {
-              "name": "lastLoginTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "最后登录时间."
-            },
-            {
-              "name": "lastLoginAddress",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录地址."
-            },
-            {
-              "name": "lastLoginClient",
-              "type": "String",
-              "isCollection": false,
-              "description": "最后登录客户端类型,web,android或者ios."
-            },
-            {
-              "name": "mail",
-              "type": "String",
-              "isCollection": false,
-              "description": "邮件地址."
-            },
-            {
-              "name": "weixin",
-              "type": "String",
-              "isCollection": false,
-              "description": "微信号."
-            },
-            {
-              "name": "qq",
-              "type": "String",
-              "isCollection": false,
-              "description": "QQ号."
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "hiddenMobile",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "是否隐藏手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "boardDate",
-              "type": "Date",
-              "isCollection": false,
-              "description": "入职时间."
-            },
-            {
-              "name": "birthday",
-              "type": "Date",
-              "isCollection": false,
-              "description": "生日."
-            },
-            {
-              "name": "age",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "年龄"
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉人员哈希特征."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "open1Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id1."
-            },
-            {
-              "name": "open2Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id2."
-            },
-            {
-              "name": "open3Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id3."
-            },
-            {
-              "name": "open4Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id4."
-            },
-            {
-              "name": "open5Id",
-              "type": "String",
-              "isCollection": false,
-              "description": "oauth登录id5."
-            },
-            {
-              "name": "failureTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "登录失败记录时间."
-            },
-            {
-              "name": "failureCount",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "登录失败次数"
-            },
-            {
-              "name": "topUnitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "所属顶层组织."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "resetPassword",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionResetPassword",
-          "description": "重置个人的密码.",
-          "type": "GET",
-          "path": "jaxrs/person/{flag}/reset/password",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "setIcon",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionSetIcon",
-          "description": "设置个人的头像.",
-          "type": "PUT",
-          "path": "jaxrs/person/{flag}/icon",
-          "contentType": "multipart/form-data",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [
-            {
-              "name": "file",
-              "type": "File",
-              "description": "头像文件"
-            }
-          ],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        },
-        {
-          "name": "setPassword",
-          "className": "com.x.organization.assemble.control.jaxrs.person.ActionSetPassword",
-          "description": "更新指定个人的密码.",
-          "type": "PUT",
-          "path": "jaxrs/person/{flag}/set/password",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "value",
-              "type": "String",
-              "isCollection": false,
-              "description": "字符串值",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PersonAttributeAction",
-      "className": "com.x.organization.assemble.control.jaxrs.personattribute.PersonAttributeAction",
-      "description": "个人属性操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionCreate",
-          "description": "创建个人属性.",
-          "type": "POST",
-          "path": "jaxrs/personattribute",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionDelete",
-          "description": "删除个人属性.",
-          "type": "DELETE",
-          "path": "jaxrs/personattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionEdit",
-          "description": "更新个人属性.",
-          "type": "PUT",
-          "path": "jaxrs/personattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionGet",
-          "description": "获取个人属性.附带个人",
-          "type": "GET",
-          "path": "jaxrs/personattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woPerson",
-              "type": "WoPerson",
-              "isCollection": false,
-              "description": "个人对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionListNext",
-          "description": "列示个人属性,下一页.",
-          "type": "GET",
-          "path": "jaxrs/personattribute/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人属性标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionListWithPerson",
-          "description": "列示个人的个人属性.",
-          "type": "GET",
-          "path": "jaxrs/personattribute/list/person/{personFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "personFlag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "standardListPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.personattribute.ActionListPrev",
-          "description": "列示个人属性,上一页.",
-          "type": "GET",
-          "path": "jaxrs/personattribute/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "个人属性标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一个组织中不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@PA结尾."
-            },
-            {
-              "name": "person",
-              "type": "String",
-              "isCollection": false,
-              "description": "个人属性所属个人,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "PersonCardAction",
-      "className": "com.x.organization.assemble.control.jaxrs.personcard.PersonCardAction",
-      "description": "个人通讯录操作",
-      "methods": [
-        {
-          "name": "ListGroupTypes",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionListMyGroupTypes",
-          "description": "列出当前用户的所有分组",
-          "type": "GET",
-          "path": "jaxrs/personcard/listgrouptypes",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "ListPaging",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionListPaging",
-          "description": "获取当前登录人的名片.分页",
-          "type": "PUT",
-          "path": "jaxrs/personcard/listpaging/page/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "页码"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "每页几条"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "匹配关键字:姓名,手机号,电话,姓名拼音,分组,状态",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入人,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址."
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注."
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "inputTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入时间."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "ListPagingWithGroupType",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionListPagingWithGroup",
-          "description": "按分组查询当前登录人的名片.分页",
-          "type": "PUT",
-          "path": "jaxrs/personcard/listpagingwithgroup/page/{page}/size/{size}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "page",
-              "type": "Integer",
-              "description": "页码"
-            },
-            {
-              "name": "size",
-              "type": "Integer",
-              "description": "每页几条"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "匹配关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "分组名称",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入人,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址."
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注."
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "inputTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入时间."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "code",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionCreateCode",
-          "description": "个人通讯录生成二维码",
-          "type": "GET",
-          "path": "jaxrs/personcard/createQR/{cardId}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "cardId",
-              "type": "String",
-              "description": "名片id"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionCreate",
-          "description": "创建名片.",
-          "type": "POST",
-          "path": "jaxrs/personcard",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d",
-              "isBaseType": false
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话.",
-              "isBaseType": true
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionDelete",
-          "description": "删除个人名片.",
-          "type": "DELETE",
-          "path": "jaxrs/personcard/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "名片标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionGet",
-          "description": "获取个人名片.",
-          "type": "GET",
-          "path": "jaxrs/personcard/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "名片标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入人,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址."
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注."
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "inputTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入时间."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPersonalVCf",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionExportPersonalVcf",
-          "description": "导出个人通讯录vcf",
-          "type": "GET",
-          "path": "jaxrs/personcard/listPersonalVCf/{idList}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "idList",
-              "type": "String",
-              "description": "名片id组"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "listVCf",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionExportVcf",
-          "description": "导出组织通讯录vcf",
-          "type": "GET",
-          "path": "jaxrs/personcard/listVCf/{idList}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "idList",
-              "type": "String",
-              "description": "名片id组"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "mylist",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionList",
-          "description": "获取当前登录人的所有名片",
-          "type": "GET",
-          "path": "jaxrs/personcard/mylist",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入人,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址."
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注."
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "inputTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入时间."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "personcode",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionPersonCode",
-          "description": "组织人员生成二维码",
-          "type": "GET",
-          "path": "jaxrs/personcard/createCode/{cardId}",
-          "contentType": "application/json",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "cardId",
-              "type": "String",
-              "description": "名片id"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "contentDisposition",
-              "type": "String",
-              "isCollection": false,
-              "description": "说明"
-            },
-            {
-              "name": "contentType",
-              "type": "String",
-              "isCollection": false,
-              "description": "类型"
-            },
-            {
-              "name": "bytes",
-              "type": "byte[]",
-              "isCollection": false,
-              "description": "字节内容."
-            }
-          ]
-        },
-        {
-          "name": "update",
-          "className": "com.x.organization.assemble.control.jaxrs.personcard.ActionUpdate",
-          "description": "更新个人名片.",
-          "type": "PUT",
-          "path": "jaxrs/personcard/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "名片标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d",
-              "isBaseType": false
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组.",
-              "isBaseType": true
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号.",
-              "isBaseType": true
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话.",
-              "isBaseType": true
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段.",
-              "isBaseType": true
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "genderType",
-              "type": "GenderType",
-              "isCollection": false,
-              "description": "性别.男:m,女:f,未知:d"
-            },
-            {
-              "name": "groupType",
-              "type": "String",
-              "isCollection": false,
-              "description": "所属分组."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入人,@P结尾."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "mobile",
-              "type": "String",
-              "isCollection": false,
-              "description": "必填,手机号."
-            },
-            {
-              "name": "officePhone",
-              "type": "String",
-              "isCollection": false,
-              "description": "办公电话."
-            },
-            {
-              "name": "address",
-              "type": "String",
-              "isCollection": false,
-              "description": "地址."
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "备注."
-            },
-            {
-              "name": "extend1",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend1扩展字段."
-            },
-            {
-              "name": "extend2",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend2扩展字段."
-            },
-            {
-              "name": "extend3",
-              "type": "String",
-              "isCollection": false,
-              "description": "extend3扩展字段."
-            },
-            {
-              "name": "inputTime",
-              "type": "String",
-              "isCollection": false,
-              "description": "录入时间."
-            },
-            {
-              "name": "status",
-              "type": "String",
-              "isCollection": false,
-              "description": "状态.草稿,发布"
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "RoleAction",
-      "className": "com.x.organization.assemble.control.jaxrs.role.RoleAction",
-      "description": "角色操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionCreate",
-          "description": "创建角色.",
-          "type": "POST",
-          "path": "jaxrs/role",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionDelete",
-          "description": "删除角色对象.",
-          "type": "DELETE",
-          "path": "jaxrs/role/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "角色标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionEdit",
-          "description": "更新角色.",
-          "type": "PUT",
-          "path": "jaxrs/role/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "角色标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionGet",
-          "description": "获取角色.",
-          "type": "GET",
-          "path": "jaxrs/role/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "角色标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLike",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListLike",
-          "description": "根据名称进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/role/list/like",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLikePinyin",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListLikePinyin",
-          "description": "根据拼音或者首字母进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/role/list/like/pinyin",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListNext",
-          "description": "列示角色对象,下一页.",
-          "type": "GET",
-          "path": "jaxrs/role/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "角色标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPinyinInitial",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListPinyinInitial",
-          "description": "获取拼音首字母开始的Person.",
-          "type": "PUT",
-          "path": "jaxrs/role/list/pinyininitial",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索群组范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "roleList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索角色范围,为空则不限定",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListPrev",
-          "description": "列示角色对象,上一页.",
-          "type": "GET",
-          "path": "jaxrs/role/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "角色标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithGroup",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListWithGroup",
-          "description": "根据给定的Group ID,获取其拥有的角色对象.",
-          "type": "GET",
-          "path": "jaxrs/role/list/group/{groupFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "groupFlag",
-              "type": "String",
-              "description": "群组标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithPerson",
-          "className": "com.x.organization.assemble.control.jaxrs.role.ActionListWithPerson",
-          "description": "根据给定的人员的的角色.",
-          "type": "GET",
-          "path": "jaxrs/role/list/person/{personFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "personFlag",
-              "type": "String",
-              "description": "个人标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "对角色的操作权限"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "personList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色个人成员,多值,存储 Person ID."
-            },
-            {
-              "name": "groupList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "角色群组成员,多值,存储 Group ID."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "SysResourceAction",
-      "className": "com.x.base.core.project.jaxrs.sysresource.SysResourceAction",
-      "description": "系统资源",
-      "methods": [
-        {
-          "name": "listResource",
-          "className": "com.x.base.core.project.jaxrs.sysresource.ActionListResource",
-          "description": "获取静态资源信息.",
-          "type": "GET",
-          "path": "jaxrs/sysresource/filePath/{filePath}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "filePath",
-              "type": "String",
-              "description": "查找路径(根路径:(0))"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "uploadResource",
-          "className": "com.x.base.core.project.jaxrs.sysresource.ActionUploadResource",
-          "description": "上传静态资源(仅上传到当前服务器)",
-          "type": "POST",
-          "path": "jaxrs/sysresource/upload/resource/as/new/{asNew}",
-          "contentType": "multipart/form-data",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": true,
-          "pathParameters": [
-            {
-              "name": "asNew",
-              "type": "Boolean",
-              "description": "覆盖类型:true删除原文件然后上传,false覆盖原文件"
-            }
-          ],
-          "formParameters": [
-            {
-              "name": "file",
-              "type": "File",
-              "description": "上传文件"
-            },
-            {
-              "name": "fileName",
-              "type": "String",
-              "description": "附件名称"
-            },
-            {
-              "name": "filePath",
-              "type": "String",
-              "description": "附件存放目录(可以为空)"
-            }
-          ],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "value",
-              "type": "Boolean",
-              "isCollection": false,
-              "description": "布尔值."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "UnitAction",
-      "className": "com.x.organization.assemble.control.jaxrs.unit.UnitAction",
-      "description": "组织操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionCreate",
-          "description": "创建组织.",
-          "type": "POST",
-          "path": "jaxrs/unit",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionDelete",
-          "description": "删除组织.",
-          "type": "DELETE",
-          "path": "jaxrs/unit/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionEdit",
-          "description": "更新组织.",
-          "type": "PUT",
-          "path": "jaxrs/unit/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型.",
-              "isBaseType": true
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。",
-              "isBaseType": true
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID.",
-              "isBaseType": true
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征.",
-              "isBaseType": true
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionGet",
-          "description": "获取组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woSupDirectUnit",
-              "type": "Wo",
-              "isCollection": false,
-              "description": "直接上级组织对象"
-            },
-            {
-              "name": "woSubDirectIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "直接下级身份对象"
-            },
-            {
-              "name": "woUnitAttributeList",
-              "type": "List\u003cWoUnitAttribute\u003e",
-              "isCollection": true,
-              "description": "组织属性对象"
-            },
-            {
-              "name": "woUnitDutyList",
-              "type": "List\u003cWoUnitDuty\u003e",
-              "isCollection": true,
-              "description": "组织职务对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "getSupDirect",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionGetSupDirect",
-          "description": "直接上级组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/{flag}/sup/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "getWithIdentityWithLevel",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionGetWithIdentityWithLevel",
-          "description": "根据身份获取递归上级组织中等级为指定登记的组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/identity/{identityFlag}/level/{level}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "identityFlag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "description": "组织等级"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woSupDirectUnit",
-              "type": "Wo",
-              "isCollection": false,
-              "description": "直接上级组织对象"
-            },
-            {
-              "name": "woSubDirectIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "直接下级身份对象"
-            },
-            {
-              "name": "woUnitAttributeList",
-              "type": "List\u003cWoUnitAttribute\u003e",
-              "isCollection": true,
-              "description": "组织属性对象"
-            },
-            {
-              "name": "woUnitDutyList",
-              "type": "List\u003cWoUnitDuty\u003e",
-              "isCollection": true,
-              "description": "组织职务对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "getWithIdentityWithType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionGetWithIdentityWithType",
-          "description": "根据身份获取递归上级组织中type为指定type的组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/identity/{identityFlag}/type/{type}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "identityFlag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "description": "组织类型"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woSupDirectUnit",
-              "type": "Wo",
-              "isCollection": false,
-              "description": "直接上级组织对象"
-            },
-            {
-              "name": "woSubDirectIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "直接下级身份对象"
-            },
-            {
-              "name": "woUnitAttributeList",
-              "type": "List\u003cWoUnitAttribute\u003e",
-              "isCollection": true,
-              "description": "组织属性对象"
-            },
-            {
-              "name": "woUnitDutyList",
-              "type": "List\u003cWoUnitDuty\u003e",
-              "isCollection": true,
-              "description": "组织职务对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "list",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionList",
-          "description": "批量获取组织.",
-          "type": "POST",
-          "path": "jaxrs/unit/list",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织标识",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLike",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListLike",
-          "description": "根据名称进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/unit/list/like",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织类型",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "woSupNestedUnitList",
-              "type": "List\u003cWo\u003e",
-              "isCollection": true,
-              "description": "递归上级组织对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listLikePinyin",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListLikePinyin",
-          "description": "根据拼音或者首字母进行模糊查询.",
-          "type": "PUT",
-          "path": "jaxrs/unit/list/like/pinyin",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织类型",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "woSupNestedUnitList",
-              "type": "List\u003cWo\u003e",
-              "isCollection": true,
-              "description": "递归上级组织对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListNext",
-          "description": "列示组织,下一页.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPinyinInitial",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListPinyinInitial",
-          "description": "获取拼音首字母开始的组织.",
-          "type": "PUT",
-          "path": "jaxrs/unit/list/pinyininitial",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "key",
-              "type": "String",
-              "isCollection": false,
-              "description": "搜索关键字",
-              "isBaseType": true
-            },
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织类型",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "woSupNestedUnitList",
-              "type": "List\u003cWo\u003e",
-              "isCollection": true,
-              "description": "递归上级组织对象"
-            },
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListPrev",
-          "description": "列示组织对象,上一页.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubDirect",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListSubDirect",
-          "description": "直接下级组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/sub/direct",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubDirectWithType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListSubDirectWithType",
-          "description": "查找直接下级组织中符合type值的对象.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/sub/direct/type/{type}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "description": "组织的type属性值,匹配多值中的某一个"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSubNested",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListSubNested",
-          "description": "递归下级组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/sub/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupNested",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListSupNested",
-          "description": "递归上级组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/sup/nested",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listSupNestedWithType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListSupNestedWithType",
-          "description": "查找递归上级组织中符合type值的对象.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/{flag}/sup/nested/type/{type}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织标识"
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "description": "组织的type属性值,匹配多值中的某一个"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listTop",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListTop",
-          "description": "列示顶层组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/top",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接成员身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listTopWithType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListTopWithType",
-          "description": "通过type属性值搜索顶层组织.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/top/type/{type}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "type",
-              "type": "String",
-              "description": "组织的type属性值,匹配多值中的某一个"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "subDirectUnitCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接下级组织数量"
-            },
-            {
-              "name": "subDirectIdentityCount",
-              "type": "Long",
-              "isCollection": false,
-              "description": "直接成员身份数量"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListType",
-          "description": "列示所有的组织属性.",
-          "type": "GET",
-          "path": "jaxrs/unit/list/type",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "valueList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "字符串多值."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnitWithType",
-          "className": "com.x.organization.assemble.control.jaxrs.unit.ActionListWithUnitWithType",
-          "description": "通过type属性值搜索组织.",
-          "type": "PUT",
-          "path": "jaxrs/unit/list/unit/type",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "unitList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "搜索组织范围,为空则不限定",
-              "isBaseType": true
-            },
-            {
-              "name": "type",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织的type属性值,匹配多值中的某一个,不能为空",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "woSubDirectUnitList",
-              "type": "List\u003cWo\u003e",
-              "isCollection": true,
-              "description": "直接下级组织组织对象"
-            },
-            {
-              "name": "control",
-              "type": "Control",
-              "isCollection": false,
-              "description": "当前用户是否可以操作组织"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,可以重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名.以@U结尾."
-            },
-            {
-              "name": "typeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织类型."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "shortName",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织简称。"
-            },
-            {
-              "name": "level",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "组织级别,1为最上层组织.自动计算."
-            },
-            {
-              "name": "levelName",
-              "type": "String",
-              "isCollection": false,
-              "description": "显示的层级名."
-            },
-            {
-              "name": "superior",
-              "type": "String",
-              "isCollection": false,
-              "description": "上级组织."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "controllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织的管理人员."
-            },
-            {
-              "name": "inheritedControllerList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "继承自上级组织的管理人员."
-            },
-            {
-              "name": "dingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门ID."
-            },
-            {
-              "name": "dingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "钉钉部门哈希特征."
-            },
-            {
-              "name": "qiyeweixinId",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员ID."
-            },
-            {
-              "name": "zhengwuDingdingId",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员ID."
-            },
-            {
-              "name": "zhengwuDingdingHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "政务钉钉人员哈希特征."
-            },
-            {
-              "name": "qiyeweixinHash",
-              "type": "String",
-              "isCollection": false,
-              "description": "企业微信人员哈希特征."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "UnitAttributeAction",
-      "className": "com.x.organization.assemble.control.jaxrs.unitattribute.UnitAttributeAction",
-      "description": "组织属性操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionCreate",
-          "description": "创建组织属性.",
-          "type": "POST",
-          "path": "jaxrs/unitattribute",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织属性所属组织,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionDelete",
-          "description": "删除组织属性.",
-          "type": "DELETE",
-          "path": "jaxrs/unitattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionEdit",
-          "description": "更新组织属性.",
-          "type": "PUT",
-          "path": "jaxrs/unitattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionGet",
-          "description": "获取组织属性对象.",
-          "type": "GET",
-          "path": "jaxrs/unitattribute/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woUnit",
-              "type": "WoUnit",
-              "isCollection": false,
-              "description": "组织对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织属性所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionListNext",
-          "description": "列示组织属性,下一页.",
-          "type": "GET",
-          "path": "jaxrs/unitattribute/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织属性所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionListPrev",
-          "description": "列示组织属性,上一页.",
-          "type": "GET",
-          "path": "jaxrs/unitattribute/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织属性所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnit",
-          "className": "com.x.organization.assemble.control.jaxrs.unitattribute.ActionListWithUnit",
-          "description": "根据给定的组织,列示其所有的组织属性对象.",
-          "type": "GET",
-          "path": "jaxrs/unitattribute/list/unit/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织属性标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UA结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织属性所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "attributeList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "属性值,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name": "UnitDutyAction",
-      "className": "com.x.organization.assemble.control.jaxrs.unitduty.UnitDutyAction",
-      "description": "组织职务操作",
-      "methods": [
-        {
-          "name": "create",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionCreate",
-          "description": "创建组织职务.",
-          "type": "POST",
-          "path": "jaxrs/unitduty",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "delete",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionDelete",
-          "description": "删除组织职务.",
-          "type": "DELETE",
-          "path": "jaxrs/unitduty/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织职务标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "distinctName",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionDistinctName",
-          "description": "获取去重的组织职务名称.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/distinct/name",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "distinctNameLike",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionDistinctNameLike",
-          "description": "模糊匹配组织职务的名称,匹配名称,拼音和首字母.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/distinct/name/like/{key}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "key",
-              "type": "String",
-              "description": "关键字,拼音或首字母"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": []
-        },
-        {
-          "name": "edit",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionEdit",
-          "description": "更新组织职务.",
-          "type": "PUT",
-          "path": "jaxrs/unitduty/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织职务标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述.",
-              "isBaseType": true
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名.",
-              "isBaseType": true
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值",
-              "isBaseType": true
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾.",
-              "isBaseType": true
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后",
-              "isBaseType": true
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值.",
-              "isBaseType": true
-            }
-          ],
-          "outs": [
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "id"
-            }
-          ]
-        },
-        {
-          "name": "get",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionGet",
-          "description": "获取组织职务.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/{flag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织职务标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woUnit",
-              "type": "WoUnit",
-              "isCollection": false,
-              "description": "组织对象"
-            },
-            {
-              "name": "woIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "身份对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listNext",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionListNext",
-          "description": "列示组织职务.下一页",
-          "type": "GET",
-          "path": "jaxrs/unitduty/list/{flag}/next/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织职务标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listPrev",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionListPrev",
-          "description": "列示组织职务,上一页.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/list/{flag}/prev/{count}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "flag",
-              "type": "String",
-              "description": "组织职务标识"
-            },
-            {
-              "name": "count",
-              "type": "Integer",
-              "description": "数量"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "rank",
-              "type": "Long",
-              "isCollection": false,
-              "description": "排序号"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithIdentity",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionListWithIdentity",
-          "description": "根据给定的身份,获取所拥有的组织职务.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/list/identity/{identityFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "identityFlag",
-              "type": "String",
-              "description": "身份标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woUnit",
-              "type": "WoUnit",
-              "isCollection": false,
-              "description": "组织对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithName",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionListWithName",
-          "description": "给定组织职务名称,列示组织职务.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/list/name/{name}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "name",
-              "type": "String",
-              "description": "组织名称"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woUnit",
-              "type": "WoUnit",
-              "isCollection": false,
-              "description": "组织对象"
-            },
-            {
-              "name": "woIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "身份对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        },
-        {
-          "name": "listWithUnit",
-          "className": "com.x.organization.assemble.control.jaxrs.unitduty.ActionListWithUnit",
-          "description": "根据给定的组织,获取组织职务.",
-          "type": "GET",
-          "path": "jaxrs/unitduty/list/unit/{unitFlag}",
-          "contentType": "application/json",
-          "resultContentType": "application/json; charset\u003dUTF-8",
-          "useJsonElementParameter": false,
-          "useStringParameter": false,
-          "pathParameters": [
-            {
-              "name": "unitFlag",
-              "type": "String",
-              "description": "组织标识"
-            }
-          ],
-          "formParameters": [],
-          "queryParameters": [],
-          "ins": [],
-          "outs": [
-            {
-              "name": "woIdentityList",
-              "type": "List\u003cWoIdentity\u003e",
-              "isCollection": true,
-              "description": "身份对象"
-            },
-            {
-              "name": "id",
-              "type": "String",
-              "isCollection": false,
-              "description": "数据库主键,自动生成."
-            },
-            {
-              "name": "pinyin",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音,自动生成"
-            },
-            {
-              "name": "pinyinInitial",
-              "type": "String",
-              "isCollection": false,
-              "description": "name拼音首字母,自动生成"
-            },
-            {
-              "name": "description",
-              "type": "String",
-              "isCollection": false,
-              "description": "描述."
-            },
-            {
-              "name": "name",
-              "type": "String",
-              "isCollection": false,
-              "description": "名称,同一组织下不可重名."
-            },
-            {
-              "name": "unique",
-              "type": "String",
-              "isCollection": false,
-              "description": "唯一标识,不可重复,为空则使用自动填充值"
-            },
-            {
-              "name": "distinguishedName",
-              "type": "String",
-              "isCollection": false,
-              "description": "识别名,自动填充,@UD结尾."
-            },
-            {
-              "name": "unit",
-              "type": "String",
-              "isCollection": false,
-              "description": "组织职务所属组织,不可为空."
-            },
-            {
-              "name": "orderNumber",
-              "type": "Integer",
-              "isCollection": false,
-              "description": "排序号,升序排列,为空在最后"
-            },
-            {
-              "name": "identityList",
-              "type": "List\u003cString\u003e",
-              "isCollection": true,
-              "description": "组织职务身份成员,多值."
-            },
-            {
-              "name": "createTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "创建时间,自动生成,索引创建在约束中."
-            },
-            {
-              "name": "updateTime",
-              "type": "Date",
-              "isCollection": false,
-              "description": "修改时间,自动生成,索引创建在约束中."
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}

+ 0 - 85
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/AbstractFactory.java

@@ -1,85 +0,0 @@
-package com.x.organization.assemble.control;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.persistence.EntityManager;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.cache.ApplicationCache;
-
-import net.sf.ehcache.Ehcache;
-import net.sf.ehcache.Element;
-
-public abstract class AbstractFactory {
-
-	protected Business business;
-
-	protected Ehcache cache;
-
-	public AbstractFactory(Business business) throws Exception {
-		try {
-			if (null == business) {
-				throw new Exception("business can not be null.");
-			}
-			this.business = business;
-		} catch (Exception e) {
-			throw new Exception("can not instantiating factory.");
-		}
-	}
-
-	public EntityManagerContainer entityManagerContainer() throws Exception {
-		return this.business.entityManagerContainer();
-	}
-
-	@SuppressWarnings("unchecked")
-	protected <T extends JpaObject> T pick(String flag, Class<T> clz, String... attributes) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Ehcache cache = ApplicationCache.instance().getCache(clz);
-		T t = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				t = (T) element.getObjectValue();
-			}
-		} else {
-			t = this.entityManagerContainer().flag(flag, clz);
-			if (t != null) {
-				this.entityManagerContainer().get(clz).detach(t);
-			}
-			cache.put(new Element(flag, t));
-		}
-		return t;
-	}
-
-	@SuppressWarnings("unchecked")
-	protected <T extends JpaObject> List<T> pick(List<String> flags, Class<T> clz) throws Exception {
-		List<T> list = new ArrayList<>();
-		if (null == flags || flags.isEmpty()) {
-			return list;
-		}
-		Ehcache cache = ApplicationCache.instance().getCache(clz);
-		Map<Object, Element> map = cache.getAll(flags);
-		if (map.size() == flags.size()) {
-			map.values().stream().forEach(o -> {
-				list.add((T) o.getObjectValue());
-			});
-		} else {
-			List<T> os = this.entityManagerContainer().flag(flags, clz);
-			EntityManager em = this.entityManagerContainer().get(clz);
-			os.stream().forEach(o -> {
-				em.detach(o);
-				list.add(o);
-				cache.put(new Element(o.getId(), o));
-			});
-		}
-		return list;
-	}
-
-}

+ 0 - 33
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/ApplicationServletContextListener.java

@@ -1,33 +0,0 @@
-package com.x.organization.assemble.control;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
-
-import com.x.base.core.project.Context;
-
-@WebListener
-public class ApplicationServletContextListener implements ServletContextListener {
-
-	@Override
-	public void contextInitialized(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.context = Context.concrete(servletContextEvent);
-			ThisApplication.init();
-			ThisApplication.context().regist();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	public void contextDestroyed(ServletContextEvent servletContextEvent) {
-		try {
-			ThisApplication.destroy();
-			ThisApplication.context.destrory(servletContextEvent);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 530
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/Business.java

@@ -1,530 +0,0 @@
-package com.x.organization.assemble.control;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.instrument.Instrument;
-import com.x.base.core.project.organization.OrganizationDefinition;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.factory.GroupFactory;
-import com.x.organization.assemble.control.factory.IdentityFactory;
-import com.x.organization.assemble.control.factory.PermissionSettingFactory;
-import com.x.organization.assemble.control.factory.PersonAttributeFactory;
-import com.x.organization.assemble.control.factory.PersonCardFactory;
-import com.x.organization.assemble.control.factory.PersonFactory;
-import com.x.organization.assemble.control.factory.RoleFactory;
-import com.x.organization.assemble.control.factory.UnitAttributeFactory;
-import com.x.organization.assemble.control.factory.UnitDutyFactory;
-import com.x.organization.assemble.control.factory.UnitFactory;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Identity_;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.PersonAttribute;
-import com.x.organization.core.entity.Person_;
-import com.x.organization.core.entity.Role;
-import com.x.organization.core.entity.Role_;
-import com.x.organization.core.entity.Unit;
-import com.x.organization.core.entity.UnitAttribute;
-import com.x.organization.core.entity.UnitDuty;
-
-import net.sf.ehcache.Ehcache;
-
-public class Business {
-
-	private EntityManagerContainer emc;
-
-	private Ehcache cache;
-
-	public Business(EntityManagerContainer emc) throws Exception {
-		this.emc = emc;
-		this.cache = ApplicationCache.instance().getCache(Group.class, Role.class, Person.class, PersonAttribute.class,
-				Unit.class, UnitDuty.class, UnitAttribute.class, Identity.class);
-	}
- 
-	public EntityManagerContainer entityManagerContainer() {
-		return this.emc;
-	}
-
-	private Instrument instrument;
-
-	public Instrument instrument() throws Exception {
-		if (null == this.instrument) {
-			this.instrument = new Instrument();
-		}
-		return instrument;
-	}
-
-	private PersonFactory person;
-
-	public PersonFactory person() throws Exception {
-		if (null == this.person) {
-			this.person = new PersonFactory(this);
-		}
-		return person;
-	}
-
-	
-	private PersonCardFactory personCard;
-
-	public PersonCardFactory personCard() throws Exception {
-		if (null == this.personCard) {
-			this.personCard = new PersonCardFactory(this);
-		}
-		return personCard;
-	}
-	
-	private PermissionSettingFactory permissionSetting;
-
-	public PermissionSettingFactory permissionSetting() throws Exception {
-		if (null == this.permissionSetting) {
-			this.permissionSetting = new PermissionSettingFactory(this);
-		}
-		return permissionSetting;
-	}
-	
-	private PersonAttributeFactory personAttribute;
-
-	public PersonAttributeFactory personAttribute() throws Exception {
-		if (null == this.personAttribute) {
-			this.personAttribute = new PersonAttributeFactory(this);
-		}
-		return personAttribute;
-	}
-
-	private IdentityFactory identity;
-
-	public IdentityFactory identity() throws Exception {
-		if (null == this.identity) {
-			this.identity = new IdentityFactory(this);
-		}
-		return identity;
-	}
-
-	private GroupFactory group;
-
-	public GroupFactory group() throws Exception {
-		if (null == this.group) {
-			this.group = new GroupFactory(this);
-		}
-		return group;
-	}
-
-	private RoleFactory role;
-
-	public RoleFactory role() throws Exception {
-		if (null == this.role) {
-			this.role = new RoleFactory(this);
-		}
-		return role;
-	}
-
-	private UnitFactory unit;
-
-	public UnitFactory unit() throws Exception {
-		if (null == this.unit) {
-			this.unit = new UnitFactory(this);
-		}
-		return unit;
-	}
-
-	private UnitAttributeFactory unitAttribute;
-
-	public UnitAttributeFactory unitAttribute() throws Exception {
-		if (null == this.unitAttribute) {
-			this.unitAttribute = new UnitAttributeFactory(this);
-		}
-		return unitAttribute;
-	}
-
-	private UnitDutyFactory unitDuty;
-
-	public UnitDutyFactory unitDuty() throws Exception {
-		if (null == this.unitDuty) {
-			this.unitDuty = new UnitDutyFactory(this);
-		}
-		return unitDuty;
-	}
-
-	public boolean hasAnyRole(EffectivePerson effectivePerson, String... roleFlags) throws Exception {
-		/** 如果不加这个xadmin会报错 */
-		if (effectivePerson.isManager()) {
-			return true;
-		}
-		Person person = this.person().pick(effectivePerson.getDistinguishedName());
-		if (null != person) {
-			List<String> groupIds = this.group().listSupNestedWithPerson(person.getId());
-			if (null != person) {
-				List<Role> roles = this.role().pick(Arrays.asList(roleFlags));
-				for (Role o : roles) {
-					if (o.getPersonList().contains(person.getId())) {
-						return true;
-					}
-					if (CollectionUtils.containsAny(o.getGroupList(), groupIds)) {
-						return true;
-					}
-				}
-
-			}
-		}
-		return false;
-	}
-
-	public boolean editable(EffectivePerson effectivePerson, Group group) throws Exception {
-		if (effectivePerson.isManager()) {
-			return true;
-		}
-		if (this.hasAnyRole(effectivePerson, OrganizationDefinition.OrganizationManager,
-				OrganizationDefinition.GroupManager)) {
-			return true;
-		}
-		return false;
-	}
-
-	public boolean editable(EffectivePerson effectivePerson, Unit unit) throws Exception {
-		if (effectivePerson.isManager()) {
-			return true;
-		}
-		if (this.hasAnyRole(effectivePerson, OrganizationDefinition.Manager, OrganizationDefinition.OrganizationManager,
-				OrganizationDefinition.UnitManager)) {
-			return true;
-		}
-		if (ListTools.isNotEmpty(unit.getControllerList())) {
-			List<Person> os = this.person().pick(unit.getControllerList());
-			List<String> list = ListTools.extractProperty(os, JpaObject.DISTINGUISHEDNAME, String.class, true, true);
-			if (ListTools.contains(list, effectivePerson.getDistinguishedName())) {
-				return true;
-			}
-		}
-		if (ListTools.isNotEmpty(unit.getInheritedControllerList())) {
-			List<Person> os = this.person().pick(unit.getInheritedControllerList());
-			List<String> list = ListTools.extractProperty(os, JpaObject.DISTINGUISHEDNAME, String.class, true, true);
-			if (ListTools.contains(list, effectivePerson.getDistinguishedName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public boolean editable(EffectivePerson effectivePerson, Person person) throws Exception {
-		if (effectivePerson.isManager()) {
-			return true;
-		}
-		if (this.hasAnyRole(effectivePerson, OrganizationDefinition.Manager, OrganizationDefinition.OrganizationManager,
-				OrganizationDefinition.PersonManager)) {
-			return true;
-		}
-		return false;
-	}
-
-	public boolean editable(EffectivePerson effectivePerson, Role role) throws Exception {
-		if (effectivePerson.isManager()) {
-			return true;
-		}
-		if (this.hasAnyRole(effectivePerson, OrganizationDefinition.Manager, OrganizationDefinition.OrganizationManager,
-				OrganizationDefinition.RoleManager)) {
-			return true;
-		}
-		return false;
-	}
-
-	public List<String> expendGroupRoleToPerson(List<String> values) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> roleIds = new ArrayList<>();
-		List<String> personIds = new ArrayList<>();
-		for (String str : values) {
-			Group g = this.group().pick(str);
-			if (null != g) {
-				groupIds.add(g.getId());
-			} else {
-				Role r = this.role().pick(str);
-				if (null != r) {
-					roleIds.add(r.getId());
-				} else {
-					Person p = this.person().pick(str);
-					if (null != p) {
-						personIds.add(p.getId());
-					}
-				}
-			}
-		}
-		personIds.addAll(this.expendGroupRoleToPerson(groupIds, roleIds));
-		personIds = ListTools.trim(personIds, true, true);
-		return personIds;
-	}
-
-	public List<String> expendGroupRoleToPerson(List<String> groupList, List<String> roleList) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> expendGroupIds = new ArrayList<>();
-		List<String> personIds = new ArrayList<>();
-		if (ListTools.isNotEmpty(groupList)) {
-			for (String s : groupList) {
-				Group g = this.group().pick(s);
-				if (null != g) {
-					groupIds.add(g.getId());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(roleList)) {
-			for (String s : roleList) {
-				Role r = this.role().pick(s);
-				if (null != r) {
-					groupIds.addAll(r.getGroupList());
-					personIds.addAll(r.getPersonList());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(groupIds)) {
-			groupIds = ListTools.trim(groupIds, true, true);
-			for (String s : groupIds) {
-				expendGroupIds.add(s);
-				expendGroupIds.addAll(this.group().listSubNested(s));
-			}
-			expendGroupIds = ListTools.trim(expendGroupIds, true, true);
-			EntityManager em = this.entityManagerContainer().get(Group.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-			Root<Group> root = cq.from(Group.class);
-			Predicate p = root.get(Group_.id).in(expendGroupIds);
-			List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
-			for (Group o : os) {
-				personIds.addAll(o.getPersonList());
-			}
-			personIds = ListTools.trim(personIds, true, true);
-		}
-		return personIds;
-	}
-
-	public List<String> expendGroupRoleToGroup(List<String> values) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> roleIds = new ArrayList<>();
-		List<String> expendGroupIds = new ArrayList<>();
-		for (String str : values) {
-			Group g = this.group().pick(str);
-			if (null != g) {
-				groupIds.add(g.getId());
-			} else {
-				Role r = this.role().pick(str);
-				if (null != r) {
-					roleIds.add(r.getId());
-				}
-			}
-		}
-		expendGroupIds.addAll(this.expendGroupRoleToGroup(groupIds, roleIds));
-		return expendGroupIds;
-	}
-
-	public List<String> expendGroupRoleToGroup(List<String> groupList, List<String> roleList) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> expendGroupIds = new ArrayList<>();
-		if (ListTools.isNotEmpty(groupList)) {
-			for (String s : groupList) {
-				Group g = this.group().pick(s);
-				if (null != g) {
-					groupIds.add(g.getId());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(roleList)) {
-			for (String s : roleList) {
-				Role r = this.role().pick(s);
-				if (null != r) {
-					groupIds.addAll(r.getGroupList());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(groupIds)) {
-			groupIds = ListTools.trim(groupIds, true, true);
-			for (String s : groupIds) {
-				expendGroupIds.add(s);
-				expendGroupIds.addAll(this.group().listSubNested(s));
-			}
-			expendGroupIds = ListTools.trim(expendGroupIds, true, true);
-		}
-		return expendGroupIds;
-	}
-
-	public List<String> expendGroupRoleToRole(List<String> values) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> roleIds = new ArrayList<>();
-		List<String> expendRoleIds = new ArrayList<>();
-		for (String str : values) {
-			Group g = this.group().pick(str);
-			if (null != g) {
-				groupIds.add(g.getId());
-			} else {
-				Role r = this.role().pick(str);
-				if (null != r) {
-					roleIds.add(r.getId());
-				}
-			}
-		}
-		expendRoleIds.addAll(this.expendGroupRoleToRole(groupIds, roleIds));
-		return expendRoleIds;
-	}
-
-	public List<String> expendGroupRoleToRole(List<String> groupList, List<String> roleList) throws Exception {
-		List<String> groupIds = new ArrayList<>();
-		List<String> expendGroupIds = new ArrayList<>();
-		List<String> roleIds = new ArrayList<>();
-		if (ListTools.isNotEmpty(groupList)) {
-			for (String s : groupList) {
-				Group g = this.group().pick(s);
-				if (null != g) {
-					groupIds.add(g.getId());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(roleList)) {
-			for (String s : roleList) {
-				Role r = this.role().pick(s);
-				if (null != r) {
-					roleIds.add(r.getId());
-					groupIds.addAll(r.getGroupList());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(groupIds)) {
-			groupIds = ListTools.trim(groupIds, true, true);
-			for (String s : groupIds) {
-				expendGroupIds.add(s);
-				expendGroupIds.addAll(this.group().listSubNested(s));
-			}
-			expendGroupIds = ListTools.trim(expendGroupIds, true, true);
-			EntityManager em = this.entityManagerContainer().get(Role.class);
-			CriteriaBuilder cb = em.getCriteriaBuilder();
-			CriteriaQuery<Role> cq = cb.createQuery(Role.class);
-			Root<Role> root = cq.from(Role.class);
-			Predicate p = root.get(Role_.groupList).in(expendGroupIds);
-			List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList();
-			for (Role o : os) {
-				roleIds.add(o.getId());
-			}
-		}
-		roleIds = ListTools.trim(roleIds, true, true);
-		return roleIds;
-	}
-
-	public List<String> expendUnitToUnit(List<String> unitList) throws Exception {
-		List<String> unitIds = new ArrayList<>();
-		List<String> expendUnitIds = new ArrayList<>();
-		if (ListTools.isNotEmpty(unitList)) {
-			for (String s : unitList) {
-				Unit u = this.unit().pick(s);
-				if (null != u) {
-					unitIds.add(u.getId());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(unitIds)) {
-			unitIds = ListTools.trim(unitIds, true, true);
-			for (String s : unitIds) {
-				expendUnitIds.add(s);
-				expendUnitIds.addAll(this.unit().listSubNested(s));
-			}
-		}
-		expendUnitIds = ListTools.trim(expendUnitIds, true, true);
-		return expendUnitIds;
-	}
-
-	public List<String> expendUnitToIdentity(List<String> unitList) throws Exception {
-		List<String> unitIds = new ArrayList<>();
-		List<String> expendUnitIds = new ArrayList<>();
-		if (ListTools.isNotEmpty(unitList)) {
-			for (String s : unitList) {
-				Unit u = this.unit().pick(s);
-				if (null != u) {
-					unitIds.add(u.getId());
-				}
-			}
-		}
-		if (ListTools.isNotEmpty(unitIds)) {
-			unitIds = ListTools.trim(unitIds, true, true);
-			for (String s : unitIds) {
-				expendUnitIds.add(s);
-				expendUnitIds.addAll(this.unit().listSubNested(s));
-			}
-		}
-		expendUnitIds = ListTools.trim(expendUnitIds, true, true);
-		EntityManager em = this.entityManagerContainer().get(Identity.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Identity> root = cq.from(Identity.class);
-		Predicate p = root.get(Identity_.unit).in(expendUnitIds);
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.id)).where(p)).getResultList();
-		os = ListTools.trim(os, true, true);
-		return os;
-	}
-
-	public Ehcache cache() {
-		return cache;
-	}
-
-	public List<Person> listPersonWithUnit(String unitFlag) throws Exception {
-		Unit unit = this.unit().pick(unitFlag);
-		EntityManager em = this.entityManagerContainer().get(Identity.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Identity> root = cq.from(Identity.class);
-		Predicate p = cb.equal(root.get(Identity_.unit), unit.getId());
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.person)).where(p)).getResultList();
-		return this.person().pick(os);
-	}
-
-	public List<Unit> listTopUnitWithPerson(String personFlag) throws Exception {
-		List<Unit> os = new ArrayList<>();
-		Person person = this.person().pick(personFlag);
-		List<Identity> identities = emc.listEqual(Identity.class, Identity.person_FIELDNAME, person.getId());
-		List<String> unitIds = new ArrayList<>();
-		for (String id : ListTools.extractField(identities, Identity.unit_FIELDNAME, String.class, true, true)) {
-			unitIds.add(id);
-			unitIds.addAll(unit().listSupNested(id));
-		}
-		unitIds = ListTools.trim(unitIds, true, true);
-		for (Unit unit : this.unit().pick(unitIds)) {
-			if (Objects.deepEquals(Unit.TOP_LEVEL, unit.getLevel())) {
-				os.add(unit);
-			}
-		}
-		return os;
-	}
-
-	public boolean sameTopUnit(EffectivePerson effectivePerson, String person) throws Exception {
-		List<Unit> o = this.listTopUnitWithPerson(effectivePerson.getDistinguishedName());
-		List<Unit> t = this.listTopUnitWithPerson(person);
-		return ListTools.containsAny(o, t);
-	}
-
-	public Predicate personPredicateWithTopUnit(EffectivePerson effectivePerson) throws Exception {
-		EntityManager em = emc.get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		if (effectivePerson.isManager() || this.hasAnyRole(effectivePerson, OrganizationDefinition.Manager,
-				OrganizationDefinition.OrganizationManager)) {
-			return cb.conjunction();
-		} else {
-			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-			Root<Person> root = cq.from(Person.class);
-			List<Unit> units = listTopUnitWithPerson(effectivePerson.getDistinguishedName());
-			List<String> ids = ListTools.extractField(units, Unit.id_FIELDNAME, String.class, true, true);
-			return cb.or(root.get(Person_.topUnitList).in(ids), cb.isEmpty(root.get(Person_.topUnitList)));
-		}
-	}
-
-}

+ 0 - 366
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/MappingItem.java

@@ -1,366 +0,0 @@
-package com.x.organization.assemble.control;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellType;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.type.GenderType;
-import com.x.base.core.project.gson.GsonPropertyObject;
-
-public class MappingItem extends GsonPropertyObject {
-
-	public static void setValue(Row row, JpaObject jpaObject, MappingItem item) throws Exception {
-		Cell cell = row.getCell(item.getColumn());
-		if (null != cell) {
-			switch (item.getType()) {
-			case string:
-				cell.setCellType(CellType.STRING);
-				String stringValue = cell.getStringCellValue();
-				if (null != stringValue) {
-					PropertyUtils.setProperty(jpaObject, item.getField(), stringValue);
-				}
-				break;
-			case integer:
-				cell.setCellType(CellType.NUMERIC);
-				Double doubeValue = cell.getNumericCellValue();
-				if (null != doubeValue) {
-					PropertyUtils.setProperty(jpaObject, item.getField(), doubeValue.intValue());
-				}
-				break;
-			case date:
-				Date dateValue = cell.getDateCellValue();
-				if (null != dateValue) {
-					PropertyUtils.setProperty(jpaObject, item.getField(), dateValue);
-				}
-				break;
-			case genderType:
-				String genderTypeStringValue = cell.getStringCellValue();
-				if (StringUtils.isNotEmpty(genderTypeStringValue)) {
-					if (StringUtils.equalsIgnoreCase(GenderType.f.toString(), genderTypeStringValue)) {
-						PropertyUtils.setProperty(jpaObject, item.getField(), GenderType.f);
-					} else if (StringUtils.equalsIgnoreCase(GenderType.m.toString(), genderTypeStringValue)) {
-						PropertyUtils.setProperty(jpaObject, item.getField(), GenderType.m);
-					} else {
-						PropertyUtils.setProperty(jpaObject, item.getField(), GenderType.d);
-					}
-				}
-				break;
-			case stringList:
-				String stringListValue = cell.getStringCellValue();
-				if (null != stringListValue) {
-					List<String> list = new ArrayList<>(Arrays.asList(StringUtils.split(stringListValue, ",")));
-					PropertyUtils.setProperty(jpaObject, item.getField(), list);
-				}
-				break;
-			default:
-				break;
-			}
-		}
-	}
-
-	public static List<MappingItem> personMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("姓名", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("工号", "employee", MappingItemValueType.string));
-		list.add(new MappingItem("性别", "genderType", MappingItemValueType.genderType));
-		list.add(new MappingItem("密码", "password", MappingItemValueType.string));
-		list.add(new MappingItem("密码到期时间", "passwordExpiredTime", MappingItemValueType.date));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		// list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("邮件", "mail", MappingItemValueType.string));
-		list.add(new MappingItem("手机", "mobile", MappingItemValueType.string));
-		list.add(new MappingItem("固定电话", "officePhone", MappingItemValueType.string));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		list.add(new MappingItem("入职时间", "boardDate", MappingItemValueType.date));
-		list.add(new MappingItem("出生日期", "birthday", MappingItemValueType.date));
-		list.add(new MappingItem("头像", "icon", MappingItemValueType.string));
-		list.add(new MappingItem("签名", "signature", MappingItemValueType.string));
-		list.add(new MappingItem("微信", "weixin", MappingItemValueType.string));
-		list.add(new MappingItem("QQ", "qq", MappingItemValueType.string));
-		list.add(new MappingItem("管理者", "controllerList", MappingItemValueType.stringList));
-		return list;
-	}
-
-	public static List<MappingItem> personMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = personMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> groupMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		list.add(new MappingItem("人员成员", "personList", MappingItemValueType.stringList));
-		list.add(new MappingItem("群组成员", "groupList", MappingItemValueType.stringList));
-		return list;
-	}
-
-	public static List<MappingItem> groupMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = groupMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> roleMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		list.add(new MappingItem("人员成员", "personList", MappingItemValueType.stringList));
-		list.add(new MappingItem("群组成员", "groupList", MappingItemValueType.stringList));
-		return list;
-	}
-
-	public static List<MappingItem> roleMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = roleMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> companyMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("简称", "shortName", MappingItemValueType.string));
-		list.add(new MappingItem("上级公司", "superior", MappingItemValueType.string));
-		list.add(new MappingItem("级别", "level", MappingItemValueType.integer));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		list.add(new MappingItem("管理者", "controllerList", MappingItemValueType.stringList));
-		return list;
-	}
-
-	public static List<MappingItem> companyMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = companyMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> departmentMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("简称", "shortName", MappingItemValueType.string));
-		list.add(new MappingItem("上级部门", "superior", MappingItemValueType.string));
-		list.add(new MappingItem("所属公司", "company", MappingItemValueType.string));
-		list.add(new MappingItem("级别", "level", MappingItemValueType.integer));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> departmentMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = departmentMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> identityMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("显示名", "display", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("所属人员", "person", MappingItemValueType.string));
-		list.add(new MappingItem("所属部门", "department", MappingItemValueType.string));
-		list.add(new MappingItem("排序号", "orderNumber", MappingItemValueType.integer));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("下属身份", "juniorList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> identityMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = identityMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> personAttributeMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("人员", "person", MappingItemValueType.string));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("属性值", "attributeList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> personAttributeMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = personAttributeMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> companyAttributeMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("公司", "company", MappingItemValueType.string));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("属性值", "attributeList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> companyAttributeMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = companyAttributeMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> companyDutyMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("公司", "company", MappingItemValueType.string));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("成员", "identityList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> companyDutyMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = companyDutyMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> departmentAttributeMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("部门", "department", MappingItemValueType.string));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("属性值", "attributeList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> departmentAttributeMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = departmentAttributeMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	public static List<MappingItem> departmentDutyMappings() {
-		List<MappingItem> list = new ArrayList<>();
-		list.add(new MappingItem("名称", "name", MappingItemValueType.string));
-		list.add(new MappingItem("唯一编码", "unique", MappingItemValueType.string));
-		list.add(new MappingItem("部门", "department", MappingItemValueType.string));
-		list.add(new MappingItem("标识", "id", MappingItemValueType.string));
-		list.add(new MappingItem("成员", "identityList", MappingItemValueType.stringList));
-		list.add(new MappingItem("创建时间", "createTime", MappingItemValueType.date));
-		return list;
-	}
-
-	public static List<MappingItem> departmentDutyMappings(Sheet sheet) throws Exception {
-		List<MappingItem> list = departmentDutyMappings();
-		mappingColumns(list, sheet);
-		return list;
-	}
-
-	private static void mappingColumns(List<MappingItem> list, Sheet sheet) {
-		Row row = sheet.getRow(sheet.getFirstRowNum());
-		if (null != row) {
-			Cell cell = null;
-			for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
-				cell = row.getCell(i);
-				if (null != cell) {
-					String str = cell.getStringCellValue();
-					for (MappingItem o : list) {
-						if (StringUtils.equalsIgnoreCase(o.getName(), str)) {
-							o.setColumn(i);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	public static Integer getResultColumnNum(Sheet sheet) {
-		Row row = sheet.getRow(sheet.getFirstRowNum());
-		if (null != row) {
-			Cell cell = null;
-			for (int i = row.getFirstCellNum() + 1; i < row.getLastCellNum(); i++) {
-				cell = row.getCell(i);
-				if (null != cell) {
-					String str = cell.getStringCellValue();
-					if (StringUtils.isEmpty(str) || StringUtils.equals(str, "结果")
-							|| StringUtils.equals(str, "result")) {
-						return i;
-					}
-				}
-			}
-			return (int) row.getLastCellNum();
-		}
-		return null;
-	}
-
-	private String name;
-	private String field;
-	private MappingItemValueType type;
-	private Integer column;
-
-	public MappingItem(String name, String field, MappingItemValueType type) {
-		this.name = name;
-		this.field = field;
-		this.type = type;
-		this.column = -1;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getField() {
-		return field;
-	}
-
-	public void setField(String field) {
-		this.field = field;
-	}
-
-	public MappingItemValueType getType() {
-		return type;
-	}
-
-	public void setType(MappingItemValueType type) {
-		this.type = type;
-	}
-
-	public Integer getColumn() {
-		return column;
-	}
-
-	public void setColumn(Integer column) {
-		this.column = column;
-	}
-}

+ 0 - 5
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/MappingItemValueType.java

@@ -1,5 +0,0 @@
-package com.x.organization.assemble.control;
-
-public enum MappingItemValueType {
-	string, stringList, date, integer, genderType
-}

+ 0 - 30
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/ThisApplication.java

@@ -1,30 +0,0 @@
-package com.x.organization.assemble.control;
-
-import com.x.base.core.project.Context;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.logger.LoggerFactory;
-
-public class ThisApplication {
-
-	protected static Context context;
-
-	public static Context context() {
-		return context;
-	}
-
-	public static void init() {
-		try {
-			LoggerFactory.setLevel(Config.logLevel().x_organization_assemble_control());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static void destroy() {
-		try {
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}

+ 0 - 240
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/GroupFactory.java

@@ -1,240 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.collections4.set.ListOrderedSet;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Person;
-
-import net.sf.ehcache.Element;
-
-public class GroupFactory extends AbstractFactory {
-
-	public GroupFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(Group.class);
-	}
-
-	public Group pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Group o = null;
-
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Group) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	public List<Group> pick(List<String> flags) throws Exception {
-		List<Group> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Group) element.getObjectValue());
-				}
-			} else {
-				Group o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	private Group pickObject(String flag) throws Exception {
-		Group o = this.entityManagerContainer().flag(flag, Group.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Group.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Group.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Group.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Group.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Group.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-				Root<Group> root = cq.from(Group.class);
-				Predicate p = cb.equal(root.get(Group_.name), name);
-				List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public <T extends Group> List<T> sort(List<T> list) {
-		list = list.stream().sorted(
-				Comparator.comparing(Group::getOrderNumber, Comparator.nullsLast(Integer::compareTo)).thenComparing(
-						Comparator.comparing(Group::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	public List<Group> listSupDirectObject(Group group) throws Exception {
-		List<String> ids = this.listSupDirect(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定指定群组所在的群组.")
-	public List<String> listSupDirect(String id) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.isMember(id, root.get(Group_.groupList));
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	// @MethodDescribe("获取指定指定群组所在的群组,并递归其上级群组.")
-	public List<String> listSupNested(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<>();
-		this.supNested(id, set);
-		return set.asList();
-	}
-
-	public List<Group> listSupNestedObject(Group group) throws Exception {
-		List<String> ids = this.listSupNested(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("上级群组循环递归.")
-	private void supNested(String id, ListOrderedSet<String> set) throws Exception {
-		List<String> list = new ArrayList<String>();
-		for (String str : this.listSupDirect(id)) {
-			if (!set.contains(str)) {
-				list.add(str);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.supNested(str, set);
-			}
-		}
-	}
-
-	public List<Group> listSupDirectWithPersonObject(Person person) throws Exception {
-		List<String> ids = this.listSupDirectWithPerson(person.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定个人直接所在的群组.")
-	public List<String> listSupDirectWithPerson(String id) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.isMember(id, root.get(Group_.personList));
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	public List<Group> listSupNestedWithPersonObject(Person person) throws Exception {
-		List<String> ids = this.listSupNestedWithPerson(person.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("获取指定个人所在的群组,并递归其上级群组.")
-	public List<String> listSupNestedWithPerson(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<>();
-		List<String> list = new ArrayList<>();
-		for (String o : this.listSupDirectWithPerson(id)) {
-			if (!set.contains(o)) {
-				list.add(o);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.supNested(str, set);
-			}
-		}
-		return set.asList();
-	}
-
-	public List<Group> listSubDirectObject(Group group) throws Exception {
-		List<String> ids = this.listSubDirect(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	public List<Group> listSubNestedObject(Group group) throws Exception {
-		List<String> ids = this.listSubNested(group.getId());
-		return this.entityManagerContainer().list(Group.class, ids);
-	}
-
-	// @MethodDescribe("查找群组的直接群组成员.")
-	public List<String> listSubDirect(String id) throws Exception {
-		Group group = this.entityManagerContainer().find(id, Group.class, ExceptionWhen.none);
-		EntityManager em = this.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = root.get(Group_.id).in(group.getGroupList());
-		cq.select(root.get(Group_.id)).where(p);
-		return em.createQuery(cq).getResultList();
-	}
-
-	// @MethodDescribe("查找群组的全部群组成员,包括嵌套的群组成员.")
-	public List<String> listSubNested(String id) throws Exception {
-		ListOrderedSet<String> set = new ListOrderedSet<String>();
-		this.subNested(id, set);
-		return set.asList();
-	}
-
-	// @MethodDescribe("递归循环调用群组查找。.")
-	private void subNested(String id, ListOrderedSet<String> set) throws Exception {
-		List<String> list = new ArrayList<String>();
-		for (String str : this.listSubDirect(id)) {
-			if (!set.contains(str)) {
-				list.add(str);
-			}
-		}
-		if (!list.isEmpty()) {
-			set.addAll(list);
-			for (String str : list) {
-				this.subNested(str, set);
-			}
-		}
-	}
-
-}

+ 0 - 108
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/IdentityFactory.java

@@ -1,108 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Identity_;
-import com.x.organization.core.entity.PersistenceProperties;
-
-import net.sf.ehcache.Element;
-
-public class IdentityFactory extends AbstractFactory {
-
-	public IdentityFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(Identity.class);
-	}
-
-	public Identity pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Identity o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Identity) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Identity pickObject(String flag) throws Exception {
-		Identity o = this.entityManagerContainer().flag(flag, Identity.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Identity.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Identity.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Identity.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Identity.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Identity.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
-				Root<Identity> root = cq.from(Identity.class);
-				Predicate p = cb.equal(root.get(Identity_.name), name);
-				List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Identity> pick(List<String> flags) throws Exception {
-		List<Identity> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Identity) element.getObjectValue());
-				}
-			} else {
-				Identity o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Identity> List<T> sort(List<T> list) {
-		list = list.stream().sorted(
-				Comparator.comparing(Identity::getOrderNumber, Comparator.nullsLast(Integer::compareTo)).thenComparing(
-						Comparator.comparing(Identity::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-}

+ 0 - 110
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/PersonAttributeFactory.java

@@ -1,110 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.PersonAttribute;
-import com.x.organization.core.entity.PersonAttribute_;
-
-import net.sf.ehcache.Element;
-
-public class PersonAttributeFactory extends AbstractFactory {
-
-	public PersonAttributeFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(PersonAttribute.class);
-	}
-
-	public PersonAttribute pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		PersonAttribute o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (PersonAttribute) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private PersonAttribute pickObject(String flag) throws Exception {
-		PersonAttribute o = this.entityManagerContainer().flag(flag, PersonAttribute.class);
-		if (o != null) {
-			this.entityManagerContainer().get(PersonAttribute.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.PersonAttribute.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, PersonAttribute.class);
-				if (null != o) {
-					this.entityManagerContainer().get(PersonAttribute.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(PersonAttribute.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
-				Root<PersonAttribute> root = cq.from(PersonAttribute.class);
-				Predicate p = cb.equal(root.get(PersonAttribute_.name), name);
-				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<PersonAttribute> pick(List<String> flags) throws Exception {
-		List<PersonAttribute> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((PersonAttribute) element.getObjectValue());
-				}
-			} else {
-				PersonAttribute o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends PersonAttribute> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(PersonAttribute::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(PersonAttribute::getName, Comparator.nullsFirst(String::compareTo))
-										.reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-}

+ 0 - 230
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/PersonFactory.java

@@ -1,230 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.entity.tools.JpaObjectTools;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.tools.Crypto;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.Person_;
-
-import net.sf.ehcache.Element;
-
-public class PersonFactory extends AbstractFactory {
-
-	public PersonFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(Person.class);
-	}
-
-	public Person pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Person o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Person) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Person pickObject(String flag) throws Exception {
-		Person o = this.entityManagerContainer().flag(flag, Person.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Person.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Person.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Person.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Person.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Person.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-				Root<Person> root = cq.from(Person.class);
-				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Person> pick(List<String> flags) throws Exception {
-		List<Person> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Person) element.getObjectValue());
-				}
-			} else {
-				Person o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Person> List<T> sort(List<T> list) {
-		list = list.stream().sorted(
-				Comparator.comparing(Person::getOrderNumber, Comparator.nullsLast(Integer::compareTo)).thenComparing(
-						Comparator.comparing(Person::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	public String getWithName(String name, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(name)
-				|| (!JpaObjectTools.withinDefinedLength(name, Person.class, Person.name_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.name_FIELDNAME, name,
-				Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithMobile(String mobile, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(mobile)
-				|| (!JpaObjectTools.withinDefinedLength(mobile, Person.class, Person.mobile_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.mobile_FIELDNAME,
-				mobile, Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithEmployee(String employee, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(employee)
-				|| (!JpaObjectTools.withinDefinedLength(employee, Person.class, Person.employee_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.employee_FIELDNAME,
-				employee, Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithUnique(String unique, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(unique)
-				|| (!JpaObjectTools.withinDefinedLength(unique, Person.class, Person.unique_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.unique_FIELDNAME,
-				unique, Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithQq(String qq, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(qq) || (!JpaObjectTools.withinDefinedLength(qq, Person.class, Person.qq_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.qq_FIELDNAME, qq,
-				Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithMail(String mail, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(mail)
-				|| (!JpaObjectTools.withinDefinedLength(mail, Person.class, Person.mail_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.mail_FIELDNAME, mail,
-				Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	public String getWithWeixin(String weixin, String excludeId) throws Exception {
-		if (StringUtils.isEmpty(weixin)
-				|| (!JpaObjectTools.withinDefinedLength(weixin, Person.class, Person.weixin_FIELDNAME))) {
-			return null;
-		}
-		List<String> list = this.entityManagerContainer().idsEqualAndNotEqual(Person.class, Person.mail_FIELDNAME,
-				weixin, Person.id_FIELDNAME, excludeId);
-		return this.returnNotDuplicateId(list);
-	}
-
-	private String returnNotDuplicateId(List<String> list) throws Exception {
-		if (list.isEmpty()) {
-			return null;
-		} else if (list.size() == 1) {
-			return list.get(0);
-		}
-		throw new Exception("find duplicate value{" + StringUtils.join(list, ",") + "}");
-	}
-
-	public void setPassword(Person person, String password) throws Exception {
-		Calendar cal = Calendar.getInstance();
-		person.setChangePasswordTime(cal.getTime());
-		person.setPassword(Crypto.encrypt(password, Config.token().getKey()));
-		Integer passwordPeriod = Config.person().getPasswordPeriod();
-		if (passwordPeriod == null || passwordPeriod <= 0) {
-			person.setPasswordExpiredTime(null);
-		} else {
-			cal.add(Calendar.DATE, passwordPeriod);
-			person.setPasswordExpiredTime(cal.getTime());
-		}
-	}
-
-//	public Person getWi1thDingdingIdObject(String dingdingId) throws Exception {
-//		EntityManager em = this.entityManagerContainer().get(Person.class);
-//		CriteriaBuilder cb = em.getCriteriaBuilder();
-//		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-//		Root<Person> root = cq.from(Person.class);
-//		Predicate p = cb.equal(root.get(Person_.dingdingId), dingdingId);
-//		List<Person> os = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-//		if (os.isEmpty()) {
-//			return null;
-//		} else {
-//			return os.get(0);
-//		}
-//	}
-//
-//	public Person getWithQiyeweixinIdObject(String dingdingId) throws Exception {
-//		EntityManager em = this.entityManagerContainer().get(Person.class);
-//		CriteriaBuilder cb = em.getCriteriaBuilder();
-//		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-//		Root<Person> root = cq.from(Person.class);
-//		Predicate p = cb.equal(root.get(Person_.qiyeweixinId), dingdingId);
-//		List<Person> os = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-//		if (os.isEmpty()) {
-//			return null;
-//		} else {
-//			return os.get(0);
-//		}
-//	}
-}

+ 0 - 110
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/RoleFactory.java

@@ -1,110 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Role;
-import com.x.organization.core.entity.Role_;
-
-import net.sf.ehcache.Element;
-
-public class RoleFactory extends AbstractFactory {
-
-	public RoleFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(Role.class);
-	}
-
-	public Role pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Role o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Role) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Role pickObject(String flag) throws Exception {
-		Role o = this.entityManagerContainer().flag(flag, Role.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Role.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Role.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Role.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Role.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Role.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Role> cq = cb.createQuery(Role.class);
-				Root<Role> root = cq.from(Role.class);
-				Predicate p = cb.equal(root.get(Role_.name), name);
-				List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Role> pick(List<String> flags) throws Exception {
-		List<Role> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Role) element.getObjectValue());
-				}
-			} else {
-				Role o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Role> List<T> sort(List<T> list) {
-		list = list
-				.stream().sorted(
-						Comparator.comparing(Role::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-								.thenComparing(Comparator
-										.comparing(Role::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-}

+ 0 - 109
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitAttributeFactory.java

@@ -1,109 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.UnitAttribute;
-import com.x.organization.core.entity.UnitAttribute_;
-
-import net.sf.ehcache.Element;
-
-public class UnitAttributeFactory extends AbstractFactory {
-
-	public UnitAttributeFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(UnitAttribute.class);
-	}
-
-	public UnitAttribute pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		UnitAttribute o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (UnitAttribute) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private UnitAttribute pickObject(String flag) throws Exception {
-		UnitAttribute o = this.entityManagerContainer().flag(flag, UnitAttribute.class);
-		if (o != null) {
-			this.entityManagerContainer().get(UnitAttribute.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.UnitAttribute.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, UnitAttribute.class);
-				if (null != o) {
-					this.entityManagerContainer().get(UnitAttribute.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(UnitAttribute.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
-				Root<UnitAttribute> root = cq.from(UnitAttribute.class);
-				Predicate p = cb.equal(root.get(UnitAttribute_.name), name);
-				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<UnitAttribute> pick(List<String> flags) throws Exception {
-		List<UnitAttribute> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((UnitAttribute) element.getObjectValue());
-				}
-			} else {
-				UnitAttribute o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends UnitAttribute> List<T> sort(List<T> list) {
-		list = list.stream()
-				.sorted(Comparator.comparing(UnitAttribute::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(UnitAttribute::getName, Comparator.nullsFirst(String::compareTo))
-										.reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-}

+ 0 - 107
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitDutyFactory.java

@@ -1,107 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.UnitDuty;
-import com.x.organization.core.entity.UnitDuty_;
-
-import net.sf.ehcache.Element;
-
-public class UnitDutyFactory extends AbstractFactory {
-
-	public UnitDutyFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(UnitDuty.class);
-	}
-
-	public UnitDuty pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		UnitDuty o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (UnitDuty) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private UnitDuty pickObject(String flag) throws Exception {
-		UnitDuty o = this.entityManagerContainer().flag(flag, UnitDuty.class);
-		if (o != null) {
-			this.entityManagerContainer().get(UnitDuty.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.UnitDuty.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, UnitDuty.class);
-				if (null != o) {
-					this.entityManagerContainer().get(UnitDuty.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(UnitDuty.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
-				Root<UnitDuty> root = cq.from(UnitDuty.class);
-				Predicate p = cb.equal(root.get(UnitDuty_.name), name);
-				List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<UnitDuty> pick(List<String> flags) throws Exception {
-		List<UnitDuty> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((UnitDuty) element.getObjectValue());
-				}
-			} else {
-				UnitDuty o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends UnitDuty> List<T> sort(List<T> list) {
-		list = list.stream().sorted(
-				Comparator.comparing(UnitDuty::getOrderNumber, Comparator.nullsLast(Integer::compareTo)).thenComparing(
-						Comparator.comparing(UnitDuty::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return list;
-	}
-}

+ 0 - 333
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/factory/UnitFactory.java

@@ -1,333 +0,0 @@
-package com.x.organization.assemble.control.factory;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.AbstractFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.PersistenceProperties;
-import com.x.organization.core.entity.Unit;
-import com.x.organization.core.entity.Unit_;
-
-import net.sf.ehcache.Element;
-
-public class UnitFactory extends AbstractFactory {
-
-	public UnitFactory(Business business) throws Exception {
-		super(business);
-		cache = ApplicationCache.instance().getCache(Unit.class);
-	}
-
-	public Unit pick(String flag) throws Exception {
-		if (StringUtils.isEmpty(flag)) {
-			return null;
-		}
-		Unit o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Unit) element.getObjectValue();
-			}
-		} else {
-			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
-		}
-		return o;
-	}
-
-	private Unit pickObject(String flag) throws Exception {
-		Unit o = this.entityManagerContainer().flag(flag, Unit.class);
-		if (o != null) {
-			this.entityManagerContainer().get(Unit.class).detach(o);
-		} else {
-			String name = flag;
-			Matcher matcher = PersistenceProperties.Unit.distinguishedName_pattern.matcher(flag);
-			if (matcher.find()) {
-				name = matcher.group(1);
-				String unique = matcher.group(2);
-				o = this.entityManagerContainer().flag(unique, Unit.class);
-				if (null != o) {
-					this.entityManagerContainer().get(Unit.class).detach(o);
-				}
-			}
-			if (null == o) {
-				EntityManager em = this.entityManagerContainer().get(Unit.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-				Root<Unit> root = cq.from(Unit.class);
-				Predicate p = cb.equal(root.get(Unit_.name), name);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				if (os.size() == 1) {
-					o = os.get(0);
-					em.detach(o);
-				}
-			}
-			if (null == o && StringUtils.contains(flag, PersistenceProperties.Unit.levelNameSplit)) {
-				List<String> list = Arrays.asList(StringUtils.split(flag, PersistenceProperties.Unit.levelNameSplit));
-				EntityManager em = this.entityManagerContainer().get(Unit.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-				Root<Unit> root = cq.from(Unit.class);
-				Predicate p = cb.and(cb.equal(root.get(Unit_.name), Objects.toString(ListTools.last(list), "")),
-						cb.equal(root.get(Unit_.level), list.size()));
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-				for (Unit unit : os) {
-					if (StringUtils.equalsIgnoreCase(unit.getLevelName(), flag)) {
-						o = unit;
-						em.detach(o);
-						break;
-					}
-				}
-			}
-		}
-		return o;
-	}
-
-	public List<Unit> pick(List<String> flags) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Unit) element.getObjectValue());
-				}
-			} else {
-				Unit o = this.pickObject(str);
-				cache.put(new Element(str, o));
-				if (null != o) {
-					list.add(o);
-				}
-			}
-		}
-		return list;
-	}
-
-	public <T extends Unit> List<T> sort(List<T> list) {
-		List<T> os = list.stream().sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo))
-				.thenComparing(Comparator.comparing(Unit::getOrderNumber, Comparator.nullsLast(Integer::compareTo)))
-				.thenComparing(
-						Comparator.comparing(Unit::getName, Comparator.nullsFirst(String::compareTo)).reversed()))
-				.collect(Collectors.toList());
-		return os;
-	}
-
-	public String getSupDirect(String id) throws Exception {
-		if (StringUtils.isEmpty(id)) {
-			return null;
-		}
-		Unit unit = this.pick(id);
-		if (null == unit) {
-			return null;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return null;
-		}
-		Unit superior = this.pick(unit.getSuperior());
-		if (null == superior) {
-			return null;
-		}
-		return superior.getId();
-	}
-
-	/** 递归的上级组织,从底层到顶层 */
-	public List<String> listSupNested(String id) throws Exception {
-		List<String> list = new ArrayList<>();
-		this.supNested(id, list);
-		return list;
-	}
-
-	private void supNested(String id, List<String> list) throws Exception {
-		String superiorId = this.getSupDirect(id);
-		if (StringUtils.isNotEmpty(superiorId) && (!list.contains(superiorId))) {
-			list.add(superiorId);
-			this.supNested(superiorId, list);
-		}
-	}
-
-	public Unit getSupDirectObject(Unit unit) throws Exception {
-		if (null == unit) {
-			return null;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return null;
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.id), unit.getSuperior());
-		List<Unit> list = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-		if (!list.isEmpty()) {
-			return list.get(0);
-		} else {
-			return null;
-		}
-	}
-
-	/** 递归的上级组织,从底层到顶层 */
-	public List<Unit> listSupNestedObject(Unit unit) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		if (unit == null) {
-			return list;
-		}
-		if (StringUtils.isEmpty(unit.getSuperior())) {
-			return list;
-		}
-		this.supNestedObject(unit, list);
-		list = list.stream().sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo)))
-				.collect(Collectors.toList());
-		return list;
-	}
-
-	private void supNestedObject(Unit unit, List<Unit> list) throws Exception {
-		Unit superior = this.getSupDirectObject(unit);
-		if ((null != superior) && (!list.contains(superior))) {
-			list.add(superior);
-			this.supNestedObject(superior, list);
-		}
-	}
-
-	public void adjustInherit(Unit unit) throws Exception {
-		List<Unit> os = new ArrayList<>();
-		os.add(unit);
-		os.addAll(this.listSubNestedObject(unit));
-		for (Unit o : os) {
-			List<Unit> list = this.listSupNestedObject(o);
-			/** 级别从1开始 */
-			o.setLevel(list.size() + 1);
-			List<String> names = ListTools.extractProperty(list, "name", String.class, false, false);
-			// Collections.reverse(names);
-			names.add(o.getName());
-			o.setLevelName(StringUtils.join(names, PersistenceProperties.Unit.levelNameSplit));
-			List<String> inheritControllerList = new ArrayList<>();
-			for (Unit u : list) {
-				if (ListTools.isNotEmpty(u.getControllerList())) {
-					inheritControllerList.addAll(u.getControllerList());
-				}
-			}
-			o.setInheritedControllerList(ListTools.trim(inheritControllerList, true, true));
-		}
-	}
-
-	public List<String> listSubNested(String id) throws Exception {
-		List<String> list = new ArrayList<>();
-		this.subNested(id, list);
-		return list;
-	}
-
-	private void subNested(String id, List<String> list) throws Exception {
-		List<String> os = new ArrayList<>();
-		for (String o : this.listSubDirect(id)) {
-			if (!list.contains(o)) {
-				os.add(o);
-			}
-		}
-		if (!os.isEmpty()) {
-			list.addAll(os);
-			for (String o : os) {
-				this.subNested(o, list);
-			}
-		}
-	}
-
-	public List<String> listSubDirect(String id) throws Exception {
-		if (StringUtils.isEmpty(id)) {
-			return new ArrayList<String>();
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.superior), id);
-		return em.createQuery(cq.select(root.get(Unit_.id)).where(p)).getResultList();
-	}
-
-	public List<Unit> listSubNestedObject(Unit unit) throws Exception {
-		List<Unit> list = new ArrayList<>();
-		this.subNestedObject(unit, list);
-		return list;
-	}
-
-	private void subNestedObject(Unit unit, List<Unit> list) throws Exception {
-		List<Unit> os = new ArrayList<>();
-		for (Unit o : this.listSubDirectObject(unit)) {
-			if (!list.contains(o)) {
-				os.add(o);
-			}
-		}
-		if (!os.isEmpty()) {
-			list.addAll(os);
-			for (Unit o : os) {
-				this.subNestedObject(o, list);
-			}
-		}
-	}
-
-	public List<Unit> listSubDirectObject(Unit unit) throws Exception {
-		if (null == unit) {
-			return new ArrayList<Unit>();
-		}
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.superior), unit.getId());
-		return em.createQuery(cq.select(root).where(p)).getResultList();
-	}
-
-	public List<Unit> listTopObject() throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.level), 0);
-		List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		os = os.stream().sorted(Comparator.comparing(Unit::getOrderNumber, Comparator.nullsLast(Integer::compareTo)))
-				.collect(Collectors.toList());
-		return os;
-	}
-
-	public Unit getWithDingdingIdObject(String dingdingId) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.dingdingId), dingdingId);
-		List<Unit> os = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-		if (os.isEmpty()) {
-			return null;
-		} else {
-			return os.get(0);
-		}
-	}
-
-	public Unit getWithQiyeweixinIdObject(String dingdingId) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.equal(root.get(Unit_.qiyeweixinId), dingdingId);
-		List<Unit> os = em.createQuery(cq.select(root).where(p)).setMaxResults(1).getResultList();
-		if (os.isEmpty()) {
-			return null;
-		} else {
-			return os.get(0);
-		}
-	}
-
-}

+ 0 - 44
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/ActionApplication.java

@@ -1,44 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import java.util.Set;
-
-import javax.ws.rs.ApplicationPath;
-
-import com.x.base.core.project.jaxrs.AbstractActionApplication;
-import com.x.organization.assemble.control.jaxrs.export.ExportAction;
-import com.x.organization.assemble.control.jaxrs.function.FunctionAction;
-import com.x.organization.assemble.control.jaxrs.group.GroupAction;
-import com.x.organization.assemble.control.jaxrs.identity.IdentityAction;
-import com.x.organization.assemble.control.jaxrs.inputperson.InputPersonAction;
-import com.x.organization.assemble.control.jaxrs.loginrecord.LoginRecordAction;
-import com.x.organization.assemble.control.jaxrs.permissionsetting.PermissionSettingAction;
-import com.x.organization.assemble.control.jaxrs.person.PersonAction;
-import com.x.organization.assemble.control.jaxrs.personattribute.PersonAttributeAction;
-import com.x.organization.assemble.control.jaxrs.personcard.PersonCardAction;
-import com.x.organization.assemble.control.jaxrs.role.RoleAction;
-import com.x.organization.assemble.control.jaxrs.unit.UnitAction;
-import com.x.organization.assemble.control.jaxrs.unitattribute.UnitAttributeAction;
-import com.x.organization.assemble.control.jaxrs.unitduty.UnitDutyAction;
-
-@ApplicationPath("jaxrs")
-public class ActionApplication extends AbstractActionApplication {
-
-	public Set<Class<?>> getClasses() {
-		classes.add(PersonAction.class);
-		classes.add(PersonAttributeAction.class);
-		classes.add(IdentityAction.class);
-		classes.add(GroupAction.class);
-		classes.add(RoleAction.class);
-		classes.add(FunctionAction.class);
-		classes.add(LoginRecordAction.class);
-		classes.add(InputPersonAction.class);
-		classes.add(UnitAction.class);
-		classes.add(UnitAttributeAction.class);
-		classes.add(UnitDutyAction.class);
-		classes.add(ExportAction.class);
-		classes.add(PersonCardAction.class);
-		classes.add(PermissionSettingAction.class);
-		return classes;
-	}
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/ExportJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/export/*", asyncSupported = true)
-public class ExportJaxrsFilter extends CipherManagerJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/FunctionJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/function/*", asyncSupported = true)
-public class FunctionJaxrsFilter extends CipherManagerJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/GroupJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/group/*", asyncSupported = true)
-public class GroupJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/IdentityJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/identity/*", asyncSupported = true)
-public class IdentityJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/InputPersonFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/inputperson/*", asyncSupported = true)
-public class InputPersonFilter extends CipherManagerJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/LoginRecordFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/loginrecord/*", asyncSupported = true)
-public class LoginRecordFilter extends CipherManagerJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/PersonAttributeJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/personattribute/*", asyncSupported = true)
-public class PersonAttributeJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/PersonJaxrsFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/person/*", asyncSupported = true)
-public class PersonJaxrsFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/RoleFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.ManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/role/*", asyncSupported = true)
-public class RoleFilter extends ManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/TestFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.AnonymousCipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/test/*", asyncSupported = true)
-public class TestFilter extends AnonymousCipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitAttributeFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/unitattribute/*", asyncSupported = true)
-public class UnitAttributeFilter extends CipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitDutyFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/unitduty/*", asyncSupported = true)
-public class UnitDutyFilter extends CipherManagerUserJaxrsFilter {
-
-}

+ 0 - 10
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/UnitFilter.java

@@ -1,10 +0,0 @@
-package com.x.organization.assemble.control.jaxrs;
-
-import javax.servlet.annotation.WebFilter;
-
-import com.x.base.core.project.jaxrs.CipherManagerUserJaxrsFilter;
-
-@WebFilter(urlPatterns = "/jaxrs/unit/*", asyncSupported = true)
-public class UnitFilter extends CipherManagerUserJaxrsFilter {
-
-}

+ 0 - 36
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ActionGetResult.java

@@ -1,36 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.export;
-
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoFile;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-import net.sf.ehcache.Element;
-
-class ActionGetResult extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionGetResult.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception {
-		logger.debug(effectivePerson, "flag:{}.", flag);
-		ActionResult<Wo> result = new ActionResult<>();
-		Element element = cache.get(flag);
-		if (null == element || (null == element.getObjectValue())) {
-			throw new ExceptionResultNotFound(flag);
-		}
-		CacheFileResult o = (CacheFileResult) element.getObjectValue();
-		Wo wo = new Wo(o.getBytes(), this.contentType(true, o.getName()), this.contentDisposition(true, o.getName()));
-		result.setData(wo);
-		return result;
-	}
-
-	public static class Wo extends WoFile {
-
-		public Wo(byte[] bytes, String contentType, String contentDisposition) {
-			super(bytes, contentType, contentDisposition);
-		}
-
-	}
-
-}

+ 0 - 223
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ActionZhengwuDingdingPerson.java

@@ -1,223 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.export;
-
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Identity;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.Unit;
-
-import net.sf.ehcache.Element;
-
-class ActionZhengwuDingdingPerson extends BaseAction {
-
-	private List<Unit> allUnit;
-	private List<Person> allPerson;
-	private List<Identity> allIdentity;
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create();
-				ByteArrayOutputStream baos = new ByteArrayOutputStream();
-				Workbook workBook = new XSSFWorkbook()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			allUnit = this.listUnit(business);
-			allPerson = this.listPerson(business);
-			allIdentity = emc.listAll(Identity.class);
-			List<Person> sortedPerson = new ArrayList<>();
-			for (Unit u : this.allUnit) {
-				List<Person> os = this.listPersonWithUnit(u);
-				for (Person p : os) {
-					if (!sortedPerson.contains(p)) {
-						sortedPerson.add(p);
-					}
-				}
-			}
-			List<User> users = new ArrayList<>();
-			for (Person person : sortedPerson) {
-				List<Unit> units = this.listUnitWithPerson(person);
-				User user = new User();
-				user.setName(person.getName());
-				user.setZhengwuDingdingId(person.getZhengwuDingdingId());
-				user.setMobile(person.getMobile());
-				user.setUnitList(ListTools.extractProperty(units, Unit.name_FIELDNAME, String.class, true, false));
-				users.add(user);
-			}
-			Sheet sheet = workBook.createSheet("政务钉钉人员");
-			Row row = sheet.createRow(0);
-			row.createCell(0).setCellValue("姓名");
-			row.createCell(1).setCellValue("手机");
-			row.createCell(2).setCellValue("政务钉钉ID");
-			for (int i = 0; i < users.size(); i++) {
-				User user = users.get(i);
-				row = sheet.createRow(i + 1);
-				row.createCell(0).setCellValue(user.getName());
-				row.createCell(1).setCellValue(user.getMobile());
-				row.createCell(2).setCellValue(user.getZhengwuDingdingId());
-				for (int j = 0; j < user.getUnitList().size(); j++) {
-					row.createCell(j + 3).setCellValue(user.getUnitList().get(j));
-				}
-			}
-			workBook.write(baos);
-			CacheFileResult cacheFileResult = new CacheFileResult();
-			cacheFileResult.setBytes(baos.toByteArray());
-			cacheFileResult.setName("政务钉钉人员.xlsx");
-			Wo wo = new Wo();
-			wo.setFlag(StringTools.uniqueToken());
-			this.cache.put(new Element(wo.getFlag(), cacheFileResult));
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private List<Person> listPerson(Business business) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-		Root<Person> root = cq.from(Person.class);
-		Predicate p = cb.isNotEmpty(root.get(Person.zhengwuDingdingId_FIELDNAME));
-		List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-		return os;
-	}
-
-	private List<Unit> listUnit(Business business) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Unit.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
-		Root<Unit> root = cq.from(Unit.class);
-		Predicate p = cb.isNotEmpty(root.get(Unit.zhengwuDingdingId_FIELDNAME));
-		List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-		os = os.stream().sorted(Comparator.comparing(Unit::getOrderNumber, Comparator.nullsLast(Integer::compareTo)))
-				.collect(Collectors.toList());
-		return os;
-	}
-
-	private List<Person> listPersonWithUnit(Unit unit) throws Exception {
-		List<Identity> identities = this.listIdentityWithUnit(unit);
-		return this.listWithIdentity(identities);
-	}
-
-	private List<Identity> listIdentityWithUnit(Unit unit) throws Exception {
-		List<Identity> os = allIdentity.stream().filter(o -> {
-			return StringUtils.equals(unit.getId(), o.getUnit());
-		}).collect(Collectors.toList());
-		return os;
-	}
-
-	private List<Person> listWithIdentity(List<Identity> identities) throws Exception {
-		final List<String> ids = ListTools.extractProperty(identities, Identity.person_FIELDNAME, String.class, true,
-				true);
-		List<Person> os = allPerson.stream().filter(o -> {
-			return ListTools.contains(ids, o.getId());
-		}).collect(Collectors.toList());
-		return os;
-	}
-
-	private List<Unit> listUnitWithPerson(Person person) throws Exception {
-		List<Identity> identities = this.listIdentityWithPerson(person);
-		final List<String> ids = ListTools.extractProperty(identities, Identity.unit_FIELDNAME, String.class, true,
-				true);
-		List<Unit> os = allUnit.stream().filter(o -> {
-			return ListTools.contains(ids, o.getId());
-		}).collect(Collectors.toList());
-		return os;
-	}
-
-	private List<Identity> listIdentityWithPerson(Person person) {
-		List<Identity> os = allIdentity.stream().filter(o -> {
-			return StringUtils.equals(o.getPerson(), person.getId());
-		}).collect(Collectors.toList());
-		return os;
-	}
-
-	public static class Wo extends GsonPropertyObject {
-
-		@FieldDescribe("返回的结果标识")
-		private String flag;
-
-		public String getFlag() {
-			return flag;
-		}
-
-		public void setFlag(String flag) {
-			this.flag = flag;
-		}
-
-	}
-
-	public static class User extends GsonPropertyObject {
-		private String name;
-
-		private String mobile;
-
-		private String zhengwuDingdingId;
-
-		private String zhengwuDingdingTitle;
-
-		private List<String> unitList;
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-
-		public String getMobile() {
-			return mobile;
-		}
-
-		public void setMobile(String mobile) {
-			this.mobile = mobile;
-		}
-
-		public String getZhengwuDingdingId() {
-			return zhengwuDingdingId;
-		}
-
-		public void setZhengwuDingdingId(String zhengwuDingdingId) {
-			this.zhengwuDingdingId = zhengwuDingdingId;
-		}
-
-		public String getZhengwuDingdingTitle() {
-			return zhengwuDingdingTitle;
-		}
-
-		public void setZhengwuDingdingTitle(String zhengwuDingdingTitle) {
-			this.zhengwuDingdingTitle = zhengwuDingdingTitle;
-		}
-
-		public List<String> getUnitList() {
-			return unitList;
-		}
-
-		public void setUnitList(List<String> unitList) {
-			this.unitList = unitList;
-		}
-	}
-}

+ 0 - 35
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/BaseAction.java

@@ -1,35 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.export;
-
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-
-import net.sf.ehcache.Ehcache;
-
-abstract class BaseAction extends StandardJaxrsAction {
-
-	protected Ehcache cache = ApplicationCache.instance().getCache(CacheFileResult.class);
-
-	public static class CacheFileResult {
-
-		private String name;
-
-		private byte[] bytes;
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-
-		public byte[] getBytes() {
-			return bytes;
-		}
-
-		public void setBytes(byte[] bytes) {
-			this.bytes = bytes;
-		}
-
-	}
-}

+ 0 - 12
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ExceptionResultNotFound.java

@@ -1,12 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.export;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionResultNotFound extends PromptException {
-
-	private static final long serialVersionUID = -2139584911736169462L;
-
-	ExceptionResultNotFound(String flag) {
-		super("找不到导入结果:{}.", flag);
-	}
-}

+ 0 - 65
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/export/ExportAction.java

@@ -1,65 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.export;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-
-import com.x.base.core.project.annotation.JaxrsDescribe;
-import com.x.base.core.project.annotation.JaxrsMethodDescribe;
-import com.x.base.core.project.annotation.JaxrsParameterDescribe;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-
-@Path("export")
-@JaxrsDescribe("导出")
-public class ExportAction extends StandardJaxrsAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ExportAction.class);
-
-	@JaxrsMethodDescribe(value = "获取政务钉钉人员.", action = ActionZhengwuDingdingPerson.class)
-	@GET
-	@Path("zhengwudingding/person")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void zhengwuDingdingPerson(@Suspended final AsyncResponse asyncResponse,
-			@Context HttpServletRequest request) {
-		ActionResult<ActionZhengwuDingdingPerson.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionZhengwuDingdingPerson().execute(effectivePerson);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	@JaxrsMethodDescribe(value = "获取导出结果.", action = ActionGetResult.class)
-	@GET
-	@Path("result/flag/{flag}")
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void getResult(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@JaxrsParameterDescribe("导入文件返回的结果标记") @PathParam("flag") String flag) {
-		ActionResult<ActionGetResult.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionGetResult().execute(effectivePerson, flag);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 55
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionCreatePassword.java

@@ -1,55 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.function;
-
-import java.util.List;
-import java.util.Objects;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.WrapOutCount;
-import com.x.base.core.project.tools.Crypto;
-import com.x.organization.core.entity.Person;
-
-public class ActionCreatePassword {
-
-	protected ActionResult<WrapOutCount> execute(String attribute) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<WrapOutCount> result = new ActionResult<>();
-			if (!StringUtils.equals(attribute, "password")) {
-				EntityManager em = emc.beginTransaction(Person.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-				Root<Person> root = cq.from(Person.class);
-				cq.select(root);
-				List<Person> list = em.createQuery(cq).getResultList();
-				for (Person o : list) {
-					Object obj = PropertyUtils.getProperty(o, attribute);
-					if (null == obj) {
-						throw new Exception("person{name:" + o.getName() + "} can not create password.");
-					}
-					String str = Objects.toString(obj);
-					if (StringUtils.isEmpty(str)) {
-						throw new Exception("person{name:" + o.getName() + "} can not create empty password.");
-					}
-					String value = Crypto.encrypt(str, Config.token().getKey());
-					PropertyUtils.setProperty(o, "password", value);
-				}
-				emc.commit();
-				WrapOutCount wrap = new WrapOutCount();
-				wrap.setCount(list.size());
-				result.setData(wrap);
-			}
-			return result;
-		}
-	}
-
-}

+ 0 - 35
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionListAllPersonName.java

@@ -1,35 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.function;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Tuple;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.Selection;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.project.http.WrapInStringList;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Person;
-
-public class ActionListAllPersonName {
-
-	protected List<Tuple> execute(Business business, WrapInStringList wrapIn) throws Exception {
-		EntityManagerContainer emc = business.entityManagerContainer();
-		EntityManager em = emc.get(Person.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
-		Root<Person> root = cq.from(Person.class);
-		List<Selection<?>> selections = new ArrayList<>();
-		for (String str : wrapIn.getValueList()) {
-			selections.add(root.get(str));
-		}
-		cq.multiselect(selections);
-		List<Tuple> wraps = em.createQuery(cq).getResultList();
-		return wraps;
-	}
-
-}

+ 0 - 39
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionSetPassword.java

@@ -1,39 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.function;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.exception.ExceptionWhen;
-import com.x.base.core.project.http.WrapInString;
-import com.x.base.core.project.http.WrapOutId;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Person;
-
-public class ActionSetPassword {
-
-	protected WrapOutId execute(Business business, String name, WrapInString wrapIn) throws Exception {
-		EntityManagerContainer emc = business.entityManagerContainer();
-		String personId = business.person().getWithName(name, null);
-		if (StringUtils.isEmpty(personId)) {
-			personId = business.person().getWithUnique(name, null);
-		}
-		if (StringUtils.isEmpty(personId)) {
-			throw new Exception("can not find person:" + name);
-		} else {
-			if (StringUtils.isEmpty(wrapIn.getValue())) {
-				throw new Exception("new password is empty");
-			}
-			Person person = emc.find(personId, Person.class, ExceptionWhen.not_found);
-			emc.beginTransaction(Person.class);
-			business.person().setPassword(person, wrapIn.getValue());
-			emc.check(person, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Person.class);
-			WrapOutId wrap = new WrapOutId(person.getId());
-			return wrap;
-		}
-	}
-
-}

+ 0 - 45
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/ActionSetText.java

@@ -1,45 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.function;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.WrapOutCount;
-import com.x.base.core.project.tools.Crypto;
-import com.x.organization.core.entity.Person;
-
-public class ActionSetText {
-
-	protected ActionResult<WrapOutCount> execute(String attribute, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<WrapOutCount> result = new ActionResult<>();
-			if (!StringUtils.equals(attribute, "password")) {
-				EntityManager em = emc.beginTransaction(Person.class);
-				CriteriaBuilder cb = em.getCriteriaBuilder();
-				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
-				Root<Person> root = cq.from(Person.class);
-				cq.select(root);
-				List<Person> list = em.createQuery(cq).getResultList();
-				for (Person o : list) {
-					String value = Crypto.decrypt(o.getPassword(), key);
-					PropertyUtils.setProperty(o, attribute, value);
-				}
-				emc.commit();
-				WrapOutCount wrap = new WrapOutCount();
-				wrap.setCount(list.size());
-				result.setData(wrap);
-			}
-			return result;
-		}
-	}
-
-}

+ 0 - 110
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/function/FunctionAction.java

@@ -1,110 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.function;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.Tuple;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.container.AsyncResponse;
-import javax.ws.rs.container.Suspended;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.HttpMediaType;
-import com.x.base.core.project.http.WrapInString;
-import com.x.base.core.project.http.WrapInStringList;
-import com.x.base.core.project.http.WrapOutCount;
-import com.x.base.core.project.http.WrapOutId;
-import com.x.base.core.project.jaxrs.ResponseFactory;
-import com.x.base.core.project.jaxrs.StandardJaxrsAction;
-import com.x.organization.assemble.control.Business;
-
-@Path("function")
-public class FunctionAction extends StandardJaxrsAction {
-
-	// @HttpMethodDescribe(value = "获取人员指定信息.", response = WrapOutStringList.class)
-	@POST
-	@Path("list/person")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void listAllPersonName(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			WrapInStringList wrapIn) {
-		ActionResult<List<Tuple>> result = new ActionResult<>();
-		List<Tuple> wraps = new ArrayList<>();
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			wraps = new ActionListAllPersonName().execute(business, wrapIn);
-			result.setData(wraps);
-		} catch (Throwable th) {
-			th.printStackTrace();
-			result.error(th);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	// @HttpMethodDescribe(value = "更新指定Person的Password.", request =
-	// WrapInString.class, response = WrapOutId.class)
-	@PUT
-	@Path("person/{name}/set/password")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void setPassword(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@PathParam("name") String name, WrapInString wrapIn) {
-		ActionResult<WrapOutId> result = new ActionResult<>();
-		WrapOutId wrap = null;
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			wrap = new ActionSetPassword().execute(business, name, wrapIn);
-			result.setData(wrap);
-		} catch (Throwable th) {
-			th.printStackTrace();
-			result.error(th);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	// @HttpMethodDescribe(response = WrapOutCount.class, value = "set text")
-	@GET
-	@Path("person/set/text/{attribute}/{key}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void setText(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@PathParam("attribute") String attribute, @PathParam("key") String key) {
-		ActionResult<WrapOutCount> result = new ActionResult<>();
-		try {
-			result = new ActionSetText().execute(attribute, key);
-		} catch (Throwable th) {
-			th.printStackTrace();
-			result.error(th);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
-	// @HttpMethodDescribe(response = WrapOutCount.class, value = "create password")
-	@GET
-	@Path("person/create/password/{attribute}")
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	@Consumes(MediaType.APPLICATION_JSON)
-	public void createPassword(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-			@PathParam("attribute") String attribute) {
-		ActionResult<WrapOutCount> result = new ActionResult<>();
-		try {
-			result = new ActionCreatePassword().execute(attribute);
-		} catch (Throwable th) {
-			th.printStackTrace();
-			result.error(th);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-}

+ 0 - 78
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionAddMember.java

@@ -1,78 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.List;
-
-import org.apache.commons.collections4.ListUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-class ActionAddMember extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Group group = business.group().pick(flag);
-			if (null == group) {
-				throw new ExceptionGroupNotExist(flag);
-			}
-			if (!business.editable(effectivePerson, group)) {
-				throw new ExceptionDenyEditGroup(effectivePerson, flag);
-			}
-			emc.beginTransaction(Group.class);
-			group = emc.find(group.getId(), Group.class);
-			if (ListTools.isNotEmpty(wi.getPersonList())) {
-				List<String> person_add_ids = ListTools.extractProperty(
-						business.person().pick(ListTools.trim(wi.getPersonList(), true, true)), JpaObject.id_FIELDNAME,
-						String.class, true, true);
-				if (ListTools.isNotEmpty(person_add_ids)) {
-					group.setPersonList(
-							ListTools.trim(ListUtils.sum(group.getPersonList(), person_add_ids), true, true));
-				}
-			}
-			if (ListTools.isNotEmpty(wi.getGroupList())) {
-				List<String> group_add_ids = ListTools.extractProperty(
-						business.group().pick(ListTools.trim(wi.getGroupList(), true, true)), JpaObject.id_FIELDNAME,
-						String.class, true, true);
-				if (ListTools.isNotEmpty(group_add_ids)) {
-					group.setGroupList(ListTools.trim(ListUtils.sum(group.getGroupList(), group_add_ids), true, true));
-				}
-			}
-			emc.check(group, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Group.class);
-			Wo wo = new Wo();
-			wo.setId(group.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Group {
-
-		private static final long serialVersionUID = -6314932919066148113L;
-
-		static WrapCopier<Wi, Group> copier = WrapCopierFactory.wi(Wi.class, Group.class,
-				ListTools.toList(JpaObject.FieldsUnmodify, Group.personList_FIELDNAME, Group.groupList_FIELDNAME),
-				null);
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 83
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionCreate.java

@@ -1,83 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.x_message_assemble_communicate;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.connection.ActionResponse;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.assemble.control.ThisApplication;
-import com.x.organization.assemble.control.message.OrgBodyMessage;
-import com.x.organization.assemble.control.message.OrgMessage;
-import com.x.organization.assemble.control.message.OrgMessageFactory;
-import com.x.organization.core.entity.Group;
-
-class ActionCreate extends BaseAction {
-	private static Logger logger = LoggerFactory.getLogger(ActionCreate.class);
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Group group = Wi.copier.copy(wi);
-			/** 如果唯一标识不为空,要检查唯一标识是否唯一 */
-			if (this.uniqueDuplicateWhenNotEmpty(business, group)) {
-				throw new ExceptionDuplicateUnique(group.getName(), group.getUnique());
-			}
-			if (!business.editable(effectivePerson, group)) {
-				throw new ExceptionDenyCreateGroup(effectivePerson, group.getName());
-			}
-			if (StringUtils.isEmpty(wi.getName())) {
-				throw new ExceptionNameEmpty();
-			}
-			group.setPersonList(
-					ListTools.extractProperty(business.person().pick(ListTools.trim(group.getPersonList(), true, true)),
-							JpaObject.id_FIELDNAME, String.class, true, true));
-			group.setGroupList(
-					ListTools.extractProperty(business.group().pick(ListTools.trim(group.getGroupList(), true, true)),
-							JpaObject.id_FIELDNAME, String.class, true, true));
-			emc.beginTransaction(Group.class);
-			emc.persist(group, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Group.class);
-			
-			/**创建 组织变更org消息通信 */
-			OrgMessageFactory  orgMessageFactory = new OrgMessageFactory();
-			orgMessageFactory.createMessageCommunicate("add", "group", group, effectivePerson);
-			
-			
-			Wo wo = new Wo();
-			wo.setId(group.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Group {
-
-		private static final long serialVersionUID = -6314932919066148113L;
-
-		static WrapCopier<Wi, Group> copier = WrapCopierFactory.wi(Wi.class, Group.class, null,
-				ListTools.toList(JpaObject.FieldsUnmodify, "pinyin", "pinyinInitial"));
-	}
-
-	public static class Wo extends WoId {
-
-	}
-	
-
-}

+ 0 - 99
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionDelete.java

@@ -1,99 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import com.google.gson.Gson;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckRemoveType;
-import com.x.base.core.project.x_message_assemble_communicate;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.connection.ActionResponse;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.assemble.control.ThisApplication;
-import com.x.organization.assemble.control.message.OrgBodyMessage;
-import com.x.organization.assemble.control.message.OrgMessage;
-import com.x.organization.assemble.control.message.OrgMessageFactory;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-import com.x.organization.core.entity.Role;
-import com.x.organization.core.entity.Role_;
-
-class ActionDelete extends BaseAction {
-	private static Logger logger = LoggerFactory.getLogger(ActionDelete.class);
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String groupFlag) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Group group = business.group().pick(groupFlag);
-			if (null == group) {
-				throw new ExceptionGroupNotExist(groupFlag);
-			}
-			if (!business.editable(effectivePerson, group)) {
-				throw new ExceptionDenyDeleteGroup(effectivePerson, groupFlag);
-			}
-			// if (emc.listIsMember(Group.class,Group., value))
-
-			emc.beginTransaction(Group.class);
-			group = emc.find(group.getId(), Group.class);
-			emc.beginTransaction(Role.class);
-			/** 删除有群组成员的群组和角色成员 */
-			this.removeGroupMember(business, group);
-			this.removeRoleMember(business, group);
-			emc.remove(group, CheckRemoveType.all);
-			emc.commit();
-			ApplicationCache.notify(Group.class);
-			
-			/**创建 组织变更org消息通信 */			
-			OrgMessageFactory  orgMessageFactory = new OrgMessageFactory();
-			orgMessageFactory.createMessageCommunicate("delete", "group", group, effectivePerson);
-			
-			
-			Wo wo = new Wo();
-			wo.setId(group.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	private void removeGroupMember(Business business, Group group) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.isMember(group.getId(), root.get(Group_.groupList));
-		List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		for (Group o : os) {
-			o.getGroupList().remove(group.getId());
-		}
-	}
-
-	private void removeRoleMember(Business business, Group group) throws Exception {
-		EntityManager em = business.entityManagerContainer().get(Role.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Role> cq = cb.createQuery(Role.class);
-		Root<Role> root = cq.from(Role.class);
-		Predicate p = cb.isMember(group.getId(), root.get(Role_.groupList));
-		List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		for (Role o : os) {
-			o.getGroupList().remove(group.getId());
-		}
-	}
-
-	public static class Wo extends WoId {
-
-	}
-	
-	
-}

+ 0 - 77
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionDeleteMember.java

@@ -1,77 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.List;
-
-import org.apache.commons.collections4.ListUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-class ActionDeleteMember extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Group group = business.group().pick(flag);
-			if (null == group) {
-				throw new ExceptionGroupNotExist(flag);
-			}
-			if (!business.editable(effectivePerson, group)) {
-				throw new ExceptionDenyEditGroup(effectivePerson, flag);
-			}
-			emc.beginTransaction(Group.class);
-			group = emc.find(group.getId(), Group.class);
-			if (ListTools.isNotEmpty(wi.getPersonList())) {
-				List<String> person_remove_ids = ListTools.extractProperty(
-						business.person().pick(ListTools.trim(wi.getPersonList(), true, true)), JpaObject.id_FIELDNAME,
-						String.class, true, true);
-				if (ListTools.isNotEmpty(person_remove_ids)) {
-					group.setPersonList(ListUtils.subtract(group.getPersonList(), person_remove_ids));
-				}
-			}
-			if (ListTools.isNotEmpty(wi.getGroupList())) {
-				List<String> group_remove_ids = ListTools.extractProperty(
-						business.group().pick(ListTools.trim(wi.getGroupList(), true, true)), JpaObject.id_FIELDNAME,
-						String.class, true, true);
-				if (ListTools.isNotEmpty(group_remove_ids)) {
-					group.setGroupList(ListUtils.union(group.getGroupList(), group_remove_ids));
-				}
-			}
-			emc.check(group, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Group.class);
-			Wo wo = new Wo();
-			wo.setId(group.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Group {
-
-		private static final long serialVersionUID = -6314932919066148113L;
-
-		static WrapCopier<Wi, Group> copier = WrapCopierFactory.wi(Wi.class, Group.class,
-				ListTools.toList(JpaObject.FieldsUnmodify, Group.personList_FIELDNAME, Group.groupList_FIELDNAME),
-				null);
-	}
-
-	public static class Wo extends WoId {
-
-	}
-
-}

+ 0 - 91
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionEdit.java

@@ -1,91 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.entity.annotation.CheckPersistType;
-import com.x.base.core.project.x_message_assemble_communicate;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.connection.ActionResponse;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WoId;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.assemble.control.ThisApplication;
-import com.x.organization.assemble.control.message.OrgBodyMessage;
-import com.x.organization.assemble.control.message.OrgMessage;
-import com.x.organization.assemble.control.message.OrgMessageFactory;
-import com.x.organization.core.entity.Group;
-
-class ActionEdit extends BaseAction {
-	private static Logger logger = LoggerFactory.getLogger(ActionEdit.class);
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Group group = business.group().pick(flag);
-			if (null == group) {
-				throw new ExceptionGroupNotExist(flag);
-			}
-			if (!business.editable(effectivePerson, group)) {
-				throw new ExceptionDenyEditGroup(effectivePerson, flag);
-			}
-			if (StringUtils.isEmpty(wi.getName())) {
-				throw new ExceptionNameEmpty();
-			}
-			emc.beginTransaction(Group.class);
-			group = emc.find(group.getId(), Group.class);
-			
-			Gson gsontool = new Gson();
-			String strGroup = gsontool.toJson(group);
-			
-			Wi.copier.copy(wi, group);
-			/** 如果唯一标识不为空,要检查唯一标识是否唯一 */
-			if (this.uniqueDuplicateWhenNotEmpty(business, group)) {
-				throw new ExceptionDuplicateUnique(group.getName(), group.getUnique());
-			}
-			group.setPersonList(
-					ListTools.extractProperty(business.person().pick(ListTools.trim(group.getPersonList(), true, true)),
-							JpaObject.id_FIELDNAME, String.class, true, true));
-			group.setGroupList(
-					ListTools.extractProperty(business.group().pick(ListTools.trim(group.getGroupList(), true, true)),
-							JpaObject.id_FIELDNAME, String.class, true, true));
-			emc.check(group, CheckPersistType.all);
-			emc.commit();
-			ApplicationCache.notify(Group.class);
-			
-			/**创建 组织变更org消息通信 */
-			OrgMessageFactory  orgMessageFactory = new OrgMessageFactory();
-			orgMessageFactory.createMessageCommunicate("modfiy", "group",strGroup, group, effectivePerson);
-			
-			Wo wo = new Wo();
-			wo.setId(group.getId());
-			result.setData(wo);
-			return result;
-		}
-	}
-
-	public static class Wi extends Group {
-
-		private static final long serialVersionUID = -6314932919066148113L;
-
-		static WrapCopier<Wi, Group> copier = WrapCopierFactory.wi(Wi.class, Group.class, null,
-				ListTools.toList(JpaObject.FieldsUnmodify, "pinyin", "pinyinInitial"));
-	}
-
-	public static class Wo extends WoId {
-
-	}
-	
-
-}

+ 0 - 157
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionGet.java

@@ -1,157 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Person;
-import com.x.organization.core.entity.Unit;
-
-import net.sf.ehcache.Element;
-
-class ActionGet extends BaseAction {
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, String flag) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<Wo> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), flag);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((Wo) element.getObjectValue());
-			} else {
-				Wo wo = this.get(business, flag);
-				business.cache().put(new Element(cacheKey, wo));
-				result.setData(wo);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private Wo get(Business business, String flag) throws Exception {
-		Group group = business.group().pick(flag);
-		if (null == group) {
-			throw new ExceptionGroupNotExist(flag);
-		}
-		Wo wo = Wo.copier.copy(group);
-		this.referenceGroup(business, wo);
-		this.referencePerson(business, wo);
-		this.referenceUnit(business, wo);
-		return wo;
-	}
-
-	private void referenceGroup(Business business, Wo wo) throws Exception {
-		List<Wo> wos = new ArrayList<>();
-		if (ListTools.isNotEmpty(wo.getGroupList())) {
-			List<Group> os = business.group().pick(wo.getGroupList());
-			wos = Wo.copier.copy(os);
-		}
-		/*wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());*/
-		wo.setWoGroupList(wos);
-	}
-
-	private void referencePerson(Business business, Wo wo) throws Exception {
-		List<WoPerson> wos = new ArrayList<>();
-		if (ListTools.isNotEmpty(wo.getPersonList())) {
-			List<Person> os = business.person().pick(wo.getPersonList());
-			wos = WoPerson.copier.copy(os);
-		}
-		/*wos = wos.stream()
-				.sorted(Comparator.comparing(WoPerson::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(
-								Comparator.comparing(WoPerson::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());*/
-		wo.setWoPersonList(wos);
-	}
-
-	private void referenceUnit(Business business, Wo wo) throws Exception {
-		List<WoUnit> wos = new ArrayList<>();
-		if (ListTools.isNotEmpty(wo.getUnitList())) {
-			List<Unit> os = business.unit().pick(wo.getUnitList());
-			wos = WoUnit.copier.copy(os);
-		}
-		/*wos = wos.stream()
-				.sorted(Comparator.comparing(WoUnit::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(WoUnit::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());*/
-		wo.setWoUnitList(wos);
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		@FieldDescribe("成员群组对象")
-		private List<Wo> woGroupList = new ArrayList<>();
-
-		@FieldDescribe("成员个人对象")
-		private List<WoPerson> woPersonList = new ArrayList<>();
-
-		@FieldDescribe("成员组织对象")
-		private List<WoUnit> woUnitList = new ArrayList<>();
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				ListTools.toList(JpaObject.FieldsInvisible));
-
-		public List<Wo> getWoGroupList() {
-			return woGroupList;
-		}
-
-		public void setWoGroupList(List<Wo> woGroupList) {
-			this.woGroupList = woGroupList;
-		}
-
-		public List<WoPerson> getWoPersonList() {
-			return woPersonList;
-		}
-
-		public void setWoPersonList(List<WoPerson> woPersonList) {
-			this.woPersonList = woPersonList;
-		}
-
-		public List<WoUnit> getWoUnitList() {
-			return woUnitList;
-		}
-
-		public void setWoUnitList(List<WoUnit> woUnitList) {
-			this.woUnitList = woUnitList;
-		}
-
-	}
-
-	public static class WoPerson extends Person {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Person, WoPerson> copier = WrapCopierFactory.wo(Person.class, WoPerson.class, null,
-				ListTools.toList(JpaObject.FieldsInvisible, "password", "icon"));
-
-	}
-
-	public static class WoUnit extends Unit {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Unit, WoUnit> copier = WrapCopierFactory.wo(Unit.class, WoUnit.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 123
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListLike.java

@@ -1,123 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-
-import net.sf.ehcache.Element;
-
-class ActionListLike extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), wi.getKey(),
-					StringUtils.join(wi.getGroupList(), ","), StringUtils.join(wi.getRoleList(), ","));
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, wi);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	public static class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("搜索关键字")
-		private String key;
-		@FieldDescribe("搜索群组范围,为空则不限定")
-		private List<String> groupList = new ArrayList<>();
-		@FieldDescribe("搜索角色范围,为空则不限定")
-		private List<String> roleList = new ArrayList<>();
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-		public List<String> getGroupList() {
-			return groupList;
-		}
-
-		public void setGroupList(List<String> groupList) {
-			this.groupList = groupList;
-		}
-
-		public List<String> getRoleList() {
-			return roleList;
-		}
-
-		public void setRoleList(List<String> roleList) {
-			this.roleList = roleList;
-		}
-
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				ListTools.toList(JpaObject.FieldsInvisible));
-	}
-
-	private List<Wo> list(Business business, Wi wi) throws Exception {
-		List<Wo> wos = new ArrayList<>();
-		if (StringUtils.isEmpty(wi.getKey())) {
-			return wos;
-		}
-		List<String> groupIds = business.expendGroupRoleToGroup(wi.getGroupList(), wi.getRoleList());
-		String str = StringUtils.lowerCase(StringTools.escapeSqlLikeKey(wi.getKey()));
-		EntityManager em = business.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.like(cb.lower(root.get(Group_.name)), "%" + str + "%", StringTools.SQL_ESCAPE_CHAR);
-		p = cb.or(p, cb.like(cb.lower(root.get(Group_.unique)), "%" + str + "%", StringTools.SQL_ESCAPE_CHAR));
-		p = cb.or(p, cb.like(cb.lower(root.get(Group_.pinyin)), str + "%", StringTools.SQL_ESCAPE_CHAR));
-		p = cb.or(p, cb.like(cb.lower(root.get(Group_.pinyinInitial)), str + "%", StringTools.SQL_ESCAPE_CHAR));
-		p = cb.or(p, cb.like(cb.lower(root.get(Group_.distinguishedName)), str + "%", StringTools.SQL_ESCAPE_CHAR));
-		if (ListTools.isNotEmpty(groupIds)) {
-			p = cb.and(p, root.get(Group_.id).in(groupIds));
-		}
-		List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		wos = Wo.copier.copy(os);
-		wos = business.group().sort(wos);
-		return wos;
-	}
-
-}

+ 0 - 121
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListLikePinyin.java

@@ -1,121 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-
-import net.sf.ehcache.Element;
-
-class ActionListLikePinyin extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), wi.getKey(),
-					StringUtils.join(wi.getGroupList(), ","), StringUtils.join(wi.getRoleList(), ","));
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, wi);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	public static class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("搜索关键字")
-		private String key;
-		@FieldDescribe("搜索群组范围,为空则不限定")
-		private List<String> groupList = new ArrayList<>();
-		@FieldDescribe("搜索角色范围,为空则不限定")
-		private List<String> roleList = new ArrayList<>();
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-		public List<String> getGroupList() {
-			return groupList;
-		}
-
-		public void setGroupList(List<String> groupList) {
-			this.groupList = groupList;
-		}
-
-		public List<String> getRoleList() {
-			return roleList;
-		}
-
-		public void setRoleList(List<String> roleList) {
-			this.roleList = roleList;
-		}
-
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				ListTools.toList(JpaObject.FieldsInvisible));
-
-	}
-
-	private List<Wo> list(Business business, Wi wi) throws Exception {
-		List<Wo> wos = new ArrayList<>();
-		if (StringUtils.isEmpty(wi.getKey())) {
-			return wos;
-		}
-		List<String> groupIds = business.expendGroupRoleToGroup(wi.getGroupList(), wi.getRoleList());
-		String str = StringUtils.lowerCase(StringTools.escapeSqlLikeKey(wi.getKey()));
-		EntityManager em = business.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.like(root.get(Group_.pinyin), str + "%");
-		p = cb.or(p, cb.like(root.get(Group_.pinyinInitial), str + "%"));
-		if (ListTools.isNotEmpty(groupIds)) {
-			p = cb.and(p, root.get(Group_.id).in(groupIds));
-		}
-		List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		wos = Wo.copier.copy(os);
-		wos = business.group().sort(wos);
-		return wos;
-	}
-
-}

+ 0 - 100
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListNext.java

@@ -1,100 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListNext extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String flag, Integer count) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), flag, count);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && null != element.getObjectValue()) {
-				Co co = (Co) element.getObjectValue();
-				result.setData(co.getWos());
-				result.setCount(co.getCount());
-			} else {
-				String id = EMPTY_SYMBOL;
-				/** 如果不是空位标志位 */
-				if (!StringUtils.equals(EMPTY_SYMBOL, flag)) {
-					Group o = business.group().pick(flag);
-					if (null == o) {
-						throw new ExceptionGroupNotExist(flag);
-					}
-					id = o.getId();
-				}
-				result = this.standardListNext(Wo.copier, id, count,  JpaObject.sequence_FIELDNAME, null, null, null, null, null, null,
-						null, null, true, DESC);
-				Co co = new Co(result.getData(), result.getCount());
-				business.cache().put(new Element(cacheKey, co));
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	public static class Co extends GsonPropertyObject {
-
-		public Co(List<Wo> wos, Long count) {
-			this.wos = wos;
-			this.count = count;
-		}
-
-		List<Wo> wos;
-		Long count;
-
-		public Long getCount() {
-			return count;
-		}
-
-		public void setCount(Long count) {
-			this.count = count;
-		}
-
-		public List<Wo> getWos() {
-			return wos;
-		}
-
-		public void setWos(List<Wo> wos) {
-			this.wos = wos;
-		}
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		@FieldDescribe("排序号")
-		private Long rank;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class,
-				JpaObject.singularAttributeField(Group.class, true, true), null);
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 120
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListPinyinInitial.java

@@ -1,120 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.gson.JsonElement;
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.base.core.project.tools.StringTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Group_;
-
-import net.sf.ehcache.Element;
-
-class ActionListPinyinInitial extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), wi.getKey(),
-					StringUtils.join(wi.getGroupList(), ","), StringUtils.join(wi.getRoleList(), ","));
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, wi);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	public static class Wi extends GsonPropertyObject {
-
-		@FieldDescribe("搜索关键字")
-		private String key;
-		@FieldDescribe("搜索群组范围,为空则不限定")
-		private List<String> groupList = new ArrayList<>();
-		@FieldDescribe("搜索角色范围,为空则不限定")
-		private List<String> roleList = new ArrayList<>();
-
-		public String getKey() {
-			return key;
-		}
-
-		public void setKey(String key) {
-			this.key = key;
-		}
-
-		public List<String> getGroupList() {
-			return groupList;
-		}
-
-		public void setGroupList(List<String> groupList) {
-			this.groupList = groupList;
-		}
-
-		public List<String> getRoleList() {
-			return roleList;
-		}
-
-		public void setRoleList(List<String> roleList) {
-			this.roleList = roleList;
-		}
-
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-	private List<Wo> list(Business business, Wi wi) throws Exception {
-		List<Wo> wos = new ArrayList<>();
-		if (StringUtils.isEmpty(wi.getKey())) {
-			return wos;
-		}
-		List<String> groupIds = business.expendGroupRoleToGroup(wi.getGroupList(), wi.getRoleList());
-		String str = StringUtils.lowerCase(StringTools.escapeSqlLikeKey(wi.getKey()));
-		EntityManager em = business.entityManagerContainer().get(Group.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
-		Root<Group> root = cq.from(Group.class);
-		Predicate p = cb.like(root.get(Group_.pinyinInitial), str + "%", StringTools.SQL_ESCAPE_CHAR);
-		if (ListTools.isNotEmpty(groupIds)) {
-			p = cb.and(p, root.get(Group_.id).in(groupIds));
-		}
-		List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
-		wos = Wo.copier.copy(os);
-		wos = business.group().sort(wos);
-		return wos;
-	}
-
-}

+ 0 - 100
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListPrev.java

@@ -1,100 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.gson.GsonPropertyObject;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListPrev extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String flag, Integer count) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), flag, count);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && null != element.getObjectValue()) {
-				Co co = (Co) element.getObjectValue();
-				result.setData(co.getWos());
-				result.setCount(co.getCount());
-			} else {
-				String id = EMPTY_SYMBOL;
-				/** 如果不是空位标志位 */
-				if (!StringUtils.equals(EMPTY_SYMBOL, flag)) {
-					Group o = business.group().pick(flag);
-					if (null == o) {
-						throw new ExceptionGroupNotExist(flag);
-					}
-					id = o.getId();
-				}
-				result = this.standardListPrev(Wo.copier, id, count,  JpaObject.sequence_FIELDNAME, null, null, null, null, null, null,
-						null, null, true, DESC);
-				Co co = new Co(result.getData(), result.getCount());
-				business.cache().put(new Element(cacheKey, co));
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	public static class Co extends GsonPropertyObject {
-
-		public Co(List<Wo> wos, Long count) {
-			this.wos = wos;
-			this.count = count;
-		}
-
-		List<Wo> wos;
-		Long count;
-
-		public Long getCount() {
-			return count;
-		}
-
-		public void setCount(Long count) {
-			this.count = count;
-		}
-
-		public List<Wo> getWos() {
-			return wos;
-		}
-
-		public void setWos(List<Wo> wos) {
-			this.wos = wos;
-		}
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		@FieldDescribe("身份")
-		private Long rank;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class,
-				JpaObject.singularAttributeField(Group.class, true, true), null);
-
-		public Long getRank() {
-			return rank;
-		}
-
-		public void setRank(Long rank) {
-			this.rank = rank;
-		}
-
-	}
-}

+ 0 - 63
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSubDirect.java

@@ -1,63 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListSubDirect extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String flag) throws Exception {
-		Group group = business.group().pick(flag);
-		if (null == group) {
-			throw new ExceptionGroupNotExist(flag);
-		}
-		List<Group> os = business.group().listSubDirectObject(group);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 63
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSubNested.java

@@ -1,63 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListSubNested extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String flag) throws Exception {
-		Group group = business.group().pick(flag);
-		if (null == group) {
-			throw new ExceptionGroupNotExist(flag);
-		}
-		List<Group> os = business.group().listSubNestedObject(group);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 63
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupDirect.java

@@ -1,63 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListSupDirect extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String flag) throws Exception {
-		Group group = business.group().pick(flag);
-		if (null == group) {
-			throw new ExceptionGroupNotExist(flag);
-		}
-		List<Group> os = business.group().listSupDirectObject(group);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 64
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupDirectWithPerson.java

@@ -1,64 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Person;
-
-import net.sf.ehcache.Element;
-
-class ActionListSupDirectWithPerson extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String personFlag) throws Exception {
-		Person person = business.person().pick(personFlag);
-		if (null == person) {
-			throw new ExceptionPersonNotExist(personFlag);
-		}
-		List<Group> os = business.group().listSupDirectWithPersonObject(person);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 63
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupNested.java

@@ -1,63 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-
-import net.sf.ehcache.Element;
-
-class ActionListSupNested extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String flag) throws Exception {
-		Group group = business.group().pick(flag);
-		if (null == group) {
-			throw new ExceptionGroupNotExist(flag);
-		}
-		List<Group> os = business.group().listSupNestedObject(group);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 64
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListSupNestedWithPerson.java

@@ -1,64 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Person;
-
-import net.sf.ehcache.Element;
-
-class ActionListSupNestedWithPerson extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String key) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), key);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, key);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String personFlag) throws Exception {
-		Person person = business.person().pick(personFlag);
-		if (null == person) {
-			throw new ExceptionPersonNotExist(personFlag);
-		}
-		List<Group> os = business.group().listSupNestedWithPersonObject(person);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Comparator.comparing(Wo::getName, Comparator.nullsLast(String::compareTo))))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				JpaObject.FieldsInvisible);
-
-	}
-
-}

+ 0 - 66
o2server/x_organization_assemble_control/src/main/webapp/describe/sources/com/x/organization/assemble/control/jaxrs/group/ActionListWithRole.java

@@ -1,66 +0,0 @@
-package com.x.organization.assemble.control.jaxrs.group;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.JpaObject;
-import com.x.base.core.project.bean.WrapCopier;
-import com.x.base.core.project.bean.WrapCopierFactory;
-import com.x.base.core.project.cache.ApplicationCache;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.tools.ListTools;
-import com.x.organization.assemble.control.Business;
-import com.x.organization.core.entity.Group;
-import com.x.organization.core.entity.Role;
-
-import net.sf.ehcache.Element;
-
-class ActionListWithRole extends BaseAction {
-
-	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, String roleFlag) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			ActionResult<List<Wo>> result = new ActionResult<>();
-			Business business = new Business(emc);
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), roleFlag);
-			Element element = business.cache().get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				result.setData((List<Wo>) element.getObjectValue());
-			} else {
-				List<Wo> wos = this.list(business, roleFlag);
-				business.cache().put(new Element(cacheKey, wos));
-				result.setData(wos);
-			}
-			this.updateControl(effectivePerson, business, result.getData());
-			return result;
-		}
-	}
-
-	private List<Wo> list(Business business, String roleFlag) throws Exception {
-		Role o = business.role().pick(roleFlag);
-		if (null == o) {
-			throw new ExceptionRoleNotExist(roleFlag);
-		}
-		List<String> ids = o.getGroupList();
-		List<Group> os = business.group().pick(ids);
-		List<Wo> wos = Wo.copier.copy(os);
-		wos = wos.stream()
-				.sorted(Comparator.comparing(Wo::getOrderNumber, Comparator.nullsLast(Integer::compareTo))
-						.thenComparing(Wo::getName, Comparator.nullsLast(String::compareTo)))
-				.collect(Collectors.toList());
-		return wos;
-	}
-
-	public static class Wo extends WoGroupAbstract {
-
-		private static final long serialVersionUID = -125007357898871894L;
-
-		static WrapCopier<Group, Wo> copier = WrapCopierFactory.wo(Group.class, Wo.class, null,
-				ListTools.toList(JpaObject.FieldsInvisible));
-
-	}
-
-}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff