Ver Fonte

blade-manager、blade-manager-api源码

liuyc há 3 anos atrás
pai
commit
46d64ff9ab
48 ficheiros alterados com 2098 adições e 4 exclusões
  1. 2 0
      .idea/.gitignore
  2. 101 0
      .idea/compiler.xml
  3. 48 0
      .idea/encodings.xml
  4. 15 0
      .idea/misc.xml
  5. 39 0
      .idea/modules.xml
  6. 6 0
      .idea/vcs.xml
  7. 3 0
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  8. 3 1
      blade-ops/blade-flow/blade-flow.iml
  9. 1 1
      blade-service-api/blade-manager-api/blade-manager-api.iml
  10. 17 0
      blade-service-api/blade-manager-api/pom.xml
  11. 38 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsFormElementDTO.java
  12. 35 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsInfoDTO.java
  13. 103 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsTreeDTO.java
  14. 57 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsFormElement.java
  15. 47 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsInfo.java
  16. 100 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsTree.java
  17. 35 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsFormElementVO.java
  18. 35 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsInfoVO.java
  19. 46 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsNodeTableVO.java
  20. 92 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsTreeVO.java
  21. 2 2
      blade-service/blade-manager/blade-manager.iml
  22. 45 0
      blade-service/blade-manager/pom.xml
  23. 37 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/ManagerApplication.java
  24. 103 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsFormElementController.java
  25. 136 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java
  26. 185 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java
  27. 44 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsFormElementMapper.java
  28. 0 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsFormElementMapper.xml
  29. 43 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsInfoMapper.java
  30. 0 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsInfoMapper.xml
  31. 90 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.java
  32. 0 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.xml
  33. 47 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsFormElementService.java
  34. 42 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsInfoService.java
  35. 97 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeService.java
  36. 49 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java
  37. 41 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsInfoServiceImpl.java
  38. 126 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  39. 50 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsFormElementWrapper.java
  40. 50 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsInfoWrapper.java
  41. 50 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsTreeWrapper.java
  42. 10 0
      blade-service/blade-manager/src/main/java/sql/wbsformelement.menu.sql
  43. 10 0
      blade-service/blade-manager/src/main/java/sql/wbsinfo.menu.sql
  44. 10 0
      blade-service/blade-manager/src/main/java/sql/wbstree.menu.sql
  45. 0 0
      blade-service/blade-manager/src/main/resources/application-dev.yml
  46. 0 0
      blade-service/blade-manager/src/main/resources/application-prod.yml
  47. 0 0
      blade-service/blade-manager/src/main/resources/application-test.yml
  48. 8 0
      pom.xml

+ 2 - 0
.idea/.gitignore

@@ -0,0 +1,2 @@
+# Default ignored files
+/workspace.xml

+ 101 - 0
.idea/compiler.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="blade-user" />
+        <module name="blade-xxljob" />
+        <module name="blade-manager-api" />
+        <module name="blade-turbine" />
+        <module name="blade-swagger" />
+        <module name="blade-admin" />
+        <module name="blade-system" />
+        <module name="blade-common" />
+        <module name="blade-manager" />
+        <module name="blade-flow" />
+        <module name="blade-desk-api" />
+        <module name="blade-xxljob-admin" />
+        <module name="blade-desk" />
+        <module name="blade-flow-api" />
+        <module name="blade-develop" />
+        <module name="blade-report" />
+        <module name="blade-system-api" />
+        <module name="blade-auth" />
+        <module name="blade-scope-api" />
+        <module name="blade-log" />
+        <module name="blade-gateway" />
+        <module name="blade-user-api" />
+        <module name="blade-resource" />
+        <module name="blade-dict-api" />
+        <module name="blade-resource-api" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel target="8">
+      <module name="blade-admin" target="1.8" />
+      <module name="blade-auth" target="1.8" />
+      <module name="blade-common" target="1.8" />
+      <module name="blade-desk" target="1.8" />
+      <module name="blade-desk-api" target="1.8" />
+      <module name="blade-develop" target="1.8" />
+      <module name="blade-dict-api" target="1.8" />
+      <module name="blade-flow" target="1.8" />
+      <module name="blade-flow-api" target="1.8" />
+      <module name="blade-gateway" target="1.8" />
+      <module name="blade-log" target="1.8" />
+      <module name="blade-manager" target="1.8" />
+      <module name="blade-manager-api" target="1.8" />
+      <module name="blade-ops" target="1.8" />
+      <module name="blade-ops-api" target="1.8" />
+      <module name="blade-plugin" target="1.8" />
+      <module name="blade-plugin-api" target="1.8" />
+      <module name="blade-report" target="1.8" />
+      <module name="blade-resource" target="1.8" />
+      <module name="blade-resource-api" target="1.8" />
+      <module name="blade-scope-api" target="1.8" />
+      <module name="blade-service" target="1.8" />
+      <module name="blade-service-api" target="1.8" />
+      <module name="blade-swagger" target="1.8" />
+      <module name="blade-system" target="1.8" />
+      <module name="blade-system-api" target="1.8" />
+      <module name="blade-turbine" target="1.8" />
+      <module name="blade-user" target="1.8" />
+      <module name="blade-user-api" target="1.8" />
+      <module name="blade-xxljob" target="1.8" />
+      <module name="blade-xxljob-admin" target="1.8" />
+      <module name="bladex" target="1.8" />
+    </bytecodeTargetLevel>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="blade-admin" options="-parameters" />
+      <module name="blade-auth" options="-parameters" />
+      <module name="blade-common" options="-parameters" />
+      <module name="blade-desk" options="-parameters" />
+      <module name="blade-desk-api" options="-parameters" />
+      <module name="blade-develop" options="-parameters" />
+      <module name="blade-dict-api" options="-parameters" />
+      <module name="blade-flow" options="-parameters" />
+      <module name="blade-flow-api" options="-parameters" />
+      <module name="blade-gateway" options="-parameters" />
+      <module name="blade-log" options="-parameters" />
+      <module name="blade-manager" options="-parameters" />
+      <module name="blade-manager-api" options="-parameters" />
+      <module name="blade-report" options="-parameters" />
+      <module name="blade-resource" options="-parameters" />
+      <module name="blade-resource-api" options="-parameters" />
+      <module name="blade-scope-api" options="-parameters" />
+      <module name="blade-swagger" options="-parameters" />
+      <module name="blade-system" options="-parameters" />
+      <module name="blade-system-api" options="-parameters" />
+      <module name="blade-turbine" options="-parameters" />
+      <module name="blade-user" options="-parameters" />
+      <module name="blade-user-api" options="-parameters" />
+      <module name="blade-xxljob" options="-parameters" />
+      <module name="blade-xxljob-admin" options="-parameters" />
+    </option>
+  </component>
+</project>

+ 48 - 0
.idea/encodings.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/blade-auth/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-auth/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-common/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-common/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-gateway/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-gateway/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops-api/blade-flow-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops-api/blade-resource-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-admin/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-admin/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-develop/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-develop/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-flow/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-flow/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-log/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-log/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-report/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-report/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-resource/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-resource/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-swagger/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-swagger/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-turbine/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-turbine/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-xxljob-admin/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-xxljob-admin/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-xxljob/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-ops/blade-xxljob/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-desk-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-dict-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-manager-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-manager-api/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-scope-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-system-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service-api/blade-user-api/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-desk/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-desk/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-manager/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-manager/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-system/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-system/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-user/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/blade-service/blade-user/src/main/resources" charset="UTF-8" />
+  </component>
+</project>

+ 15 - 0
.idea/misc.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+        <option value="$PROJECT_DIR$/blade-service-api/blade-manager-api/pom.xml" />
+        <option value="$PROJECT_DIR$/blade-service/blade-manager/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_13" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 39 - 0
.idea/modules.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-admin/blade-admin.iml" filepath="$PROJECT_DIR$/blade-ops/blade-admin/blade-admin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-auth/blade-auth.iml" filepath="$PROJECT_DIR$/blade-auth/blade-auth.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-common/blade-common.iml" filepath="$PROJECT_DIR$/blade-common/blade-common.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-desk/blade-desk.iml" filepath="$PROJECT_DIR$/blade-service/blade-desk/blade-desk.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-desk-api/blade-desk-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-desk-api/blade-desk-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-develop/blade-develop.iml" filepath="$PROJECT_DIR$/blade-ops/blade-develop/blade-develop.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-dict-api/blade-dict-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-dict-api/blade-dict-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-flow/blade-flow.iml" filepath="$PROJECT_DIR$/blade-ops/blade-flow/blade-flow.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops-api/blade-flow-api/blade-flow-api.iml" filepath="$PROJECT_DIR$/blade-ops-api/blade-flow-api/blade-flow-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-gateway/blade-gateway.iml" filepath="$PROJECT_DIR$/blade-gateway/blade-gateway.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-log/blade-log.iml" filepath="$PROJECT_DIR$/blade-ops/blade-log/blade-log.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-manager/blade-manager.iml" filepath="$PROJECT_DIR$/blade-service/blade-manager/blade-manager.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-manager-api/blade-manager-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-manager-api/blade-manager-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-ops.iml" filepath="$PROJECT_DIR$/blade-ops/blade-ops.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops-api/blade-ops-api.iml" filepath="$PROJECT_DIR$/blade-ops-api/blade-ops-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-plugin/blade-plugin.iml" filepath="$PROJECT_DIR$/blade-plugin/blade-plugin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-plugin-api/blade-plugin-api.iml" filepath="$PROJECT_DIR$/blade-plugin-api/blade-plugin-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-report/blade-report.iml" filepath="$PROJECT_DIR$/blade-ops/blade-report/blade-report.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-resource/blade-resource.iml" filepath="$PROJECT_DIR$/blade-ops/blade-resource/blade-resource.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops-api/blade-resource-api/blade-resource-api.iml" filepath="$PROJECT_DIR$/blade-ops-api/blade-resource-api/blade-resource-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-scope-api/blade-scope-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-scope-api/blade-scope-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-service.iml" filepath="$PROJECT_DIR$/blade-service/blade-service.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-service-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-service-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-swagger/blade-swagger.iml" filepath="$PROJECT_DIR$/blade-ops/blade-swagger/blade-swagger.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-system/blade-system.iml" filepath="$PROJECT_DIR$/blade-service/blade-system/blade-system.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-system-api/blade-system-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-system-api/blade-system-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-turbine/blade-turbine.iml" filepath="$PROJECT_DIR$/blade-ops/blade-turbine/blade-turbine.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service/blade-user/blade-user.iml" filepath="$PROJECT_DIR$/blade-service/blade-user/blade-user.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-service-api/blade-user-api/blade-user-api.iml" filepath="$PROJECT_DIR$/blade-service-api/blade-user-api/blade-user-api.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-xxljob/blade-xxljob.iml" filepath="$PROJECT_DIR$/blade-ops/blade-xxljob/blade-xxljob.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blade-ops/blade-xxljob-admin/blade-xxljob-admin.iml" filepath="$PROJECT_DIR$/blade-ops/blade-xxljob-admin/blade-xxljob-admin.iml" />
+      <module fileurl="file://$PROJECT_DIR$/bladex.iml" filepath="$PROJECT_DIR$/bladex.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 3 - 0
blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@@ -27,6 +27,9 @@ import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_
  */
 public interface LauncherConstant {
 
+
+	String APPLICATION_MANAGER_NAME = APPLICATION_NAME_PREFIX + "MANAGER";
+
 	/**
 	 * xxljob
 	 */

+ 3 - 1
blade-ops/blade-flow/blade-flow.iml

@@ -4,7 +4,9 @@
     <facet type="jpa" name="JPA">
       <configuration>
         <setting name="validation-enabled" value="true" />
-        <datasource-mapping />
+        <datasource-mapping>
+          <factory-entry name="Entities" />
+        </datasource-mapping>
         <naming-strategy-map />
       </configuration>
     </facet>

+ 1 - 1
blade-service-api/blade-manager-api/blade-manager-api.iml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
   <component name="FacetManager">
     <facet type="Spring" name="Spring">
       <configuration />

+ 17 - 0
blade-service-api/blade-manager-api/pom.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>2.9.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>blade-manager-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+</project>

+ 38 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsFormElementDTO.java

@@ -0,0 +1,38 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+
+
+/**
+ * wbs表单元素数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsFormElementDTO extends WbsFormElement {
+	private static final long serialVersionUID = 1L;
+
+
+
+}

+ 35 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsInfoDTO.java

@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.wbs.entity.WbsInfo;
+
+
+/**
+ * wbs动态库信息数据传输对象实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsInfoDTO extends WbsInfo {
+	private static final long serialVersionUID = 1L;
+
+}

+ 103 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/dto/WbsTreeDTO.java

@@ -0,0 +1,103 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.wbs.entity.WbsTree;
+
+import java.util.Date;
+
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsTreeDTO extends WbsTree {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户id
+	 */
+	@ApiModelProperty(value = "租户id",required = true)
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@ApiModelProperty(value = "父主键id",required = true)
+	private Long parentId;
+
+	/**
+	 * 部门类型
+	 */
+	@ApiModelProperty(value = "节点类型",required = true)
+	private Integer deptCategory;
+
+	/**
+	 * '1'节点 '2'表单
+	 */
+	@ApiModelProperty(value = "'1'节点 '2'表单",required = true)
+	private Integer type;
+
+	/**
+	 * 部门名
+	 */
+	@ApiModelProperty(value = "节点名称",required = true)
+	private String deptName;
+	/**
+	 * 部门全称
+	 */
+	@ApiModelProperty(value = "节点全称",hidden = true)
+	private String fullName;
+
+	/**
+	 * 表单类型
+	 */
+	@ApiModelProperty(value = "表单类型",required = true)
+	private Integer tableType;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序",required = true)
+	private Integer sort;
+
+	/**
+	 * 祖级列表
+	 */
+	@ApiModelProperty(value = "祖级id列表",hidden = true)
+	private String ancestors;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注",hidden = true)
+	private String remark;
+
+
+
+
+}

+ 57 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsFormElement.java

@@ -0,0 +1,57 @@
+package org.springblade.manager.wbs.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * wbs动态库表单元素实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@TableName("m_wbs_form_element")
+@EqualsAndHashCode(callSuper = true)
+public class WbsFormElement extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+	/**
+	 *表单id
+	 */
+	@ApiModelProperty(value = "父id",required = true)
+	private String fId;
+
+	/**
+	 * 元素名称
+	 */
+	@ApiModelProperty(value = "元素名称",required = true)
+	private String eName;
+
+	/**
+	 * 元素类型
+	 */
+	@ApiModelProperty(value = "元素类型",required = true)
+	private Integer eType;
+
+	/**
+	 * 元素长度
+	 */
+	@ApiModelProperty(value = "元素长度",required = true)
+	private Integer eLength;
+
+	/**
+	 * 允许偏差值
+	 */
+	@ApiModelProperty(value = "允许偏差值",required = true)
+	private String eAllowDeviation;
+
+	/**
+	 * 检查方法
+	 */
+	@ApiModelProperty(value = "检查方法",required = true)
+	private String eInspectionMethod;
+}

+ 47 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsInfo.java

@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * wbs动态库信息实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@TableName("m_wbs_info")
+@EqualsAndHashCode(callSuper = true)
+public class WbsInfo extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	* wsb名称
+	*/
+		private String wbsName;
+	/**
+	* wsb属性
+	*/
+		private Integer wbsType;
+
+
+}

+ 100 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/entity/WbsTree.java

@@ -0,0 +1,100 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@TableName("m_wbs_tree")
+@EqualsAndHashCode(callSuper = true)
+public class WbsTree extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户id
+	 */
+	@ApiModelProperty(value = "租户id")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@ApiModelProperty(value = "父主键id")
+	private Long parentId;
+
+	/**
+	 * 部门类型
+	 */
+	@ApiModelProperty(value = "节点类型")
+	private Integer deptCategory;
+
+	/**
+	 * '1'节点 '2'表单
+	 */
+	@ApiModelProperty(value = "'1'节点 '2'表单")
+	private Integer type;
+
+	/**
+	 * 部门名
+	 */
+	@ApiModelProperty(value = "节点名称")
+	private String deptName;
+	/**
+	 * 部门全称
+	 */
+	@ApiModelProperty(value = "节点全称")
+	private String fullName;
+
+	/**
+	 * 表单类型
+	 */
+	@ApiModelProperty(value = "表单类型")
+	private Integer tableType;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 祖级列表
+	 */
+	@ApiModelProperty(value = "祖级id列表")
+	private String ancestors;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}

+ 35 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsFormElementVO.java

@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+
+
+/**
+ * wbs表单元素视图实体类
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsFormElementVO extends WbsFormElement {
+	private static final long serialVersionUID = 1L;
+
+}

+ 35 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsInfoVO.java

@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.manager.wbs.entity.WbsInfo;
+
+
+/**
+ * wbs动态库信息视图实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsInfoVO extends WbsInfo {
+	private static final long serialVersionUID = 1L;
+
+}

+ 46 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsNodeTableVO.java

@@ -0,0 +1,46 @@
+package org.springblade.manager.wbs.vo;
+
+import lombok.Data;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * wbs动态库节点表单视图实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+public class WbsNodeTableVO implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * id
+	 */
+	private String id;
+
+	/**
+	 * 表单名称
+	 */
+	private String tableName;
+
+	/**
+	 * 表单类型
+	 */
+	private String tableType;
+
+	/**
+	 * 元素总数
+	 */
+	private Integer elementTotal;
+
+	/**
+	 * 是否创建表
+	 */
+	private Boolean isCreateTable = true;
+
+
+}

+ 92 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/wbs/vo/WbsTreeVO.java

@@ -0,0 +1,92 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wbs.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import org.springblade.manager.wbs.entity.WbsTree;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WbsTreeVO extends WbsTree implements INode<WbsTreeVO> {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<WbsTreeVO> children;
+
+	/**
+	 * 是否有子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Boolean hasChildren;
+
+	@Override
+	public List<WbsTreeVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级节点
+	 */
+	private String parentName;
+
+	/**
+	 * 节点类型名称
+	 */
+	private String deptCategoryName;
+
+	/**
+	 * 菜单||节点
+	 */
+	private Integer type;
+
+	/**
+	 * 表单类型
+	 */
+	private Integer tableType;
+}

+ 2 - 2
blade-service/blade-manager/blade-manager.iml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
   <component name="FacetManager">
     <facet type="Spring" name="Spring">
       <configuration />
@@ -18,9 +18,9 @@
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />

+ 45 - 0
blade-service/blade-manager/pom.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>2.9.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>blade-manager</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-manager-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13.1</version>
+            <scope>test</scope>
+        </dependency>
+
+
+    </dependencies>
+
+</project>

+ 37 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/ManagerApplication.java

@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager;
+
+import org.springblade.common.constant.LauncherConstant;
+import org.springblade.core.cloud.feign.EnableBladeFeign;
+import org.springblade.core.launch.BladeApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+
+/**
+ * manager启动器
+ *
+ * @author liuyc
+ */
+@EnableBladeFeign
+@SpringCloudApplication
+public class ManagerApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(LauncherConstant.APPLICATION_MANAGER_NAME, ManagerApplication.class, args);
+	}
+
+}

+ 103 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsFormElementController.java

@@ -0,0 +1,103 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.*;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.wbs.dto.WbsFormElementDTO;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.vo.WbsFormElementVO;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springblade.manager.wrapper.WbsFormElementWrapper;
+import org.springblade.manager.service.IWbsFormElementService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * wbs表单元素 控制器
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/wbsFormElement")
+@Api(value = "wbs表单元素", tags = "wbs表单元素接口")
+public class WbsFormElementController extends BladeController {
+
+	private final IWbsFormElementService wbsFormElementService;
+
+	/**
+	 * 新增 wbs表单元素
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "新增", notes = "传入wbsFormElement")
+	/*@ApiImplicitParams(value = {
+		@ApiImplicitParam(name = "fId",value = "父id",required = true),
+		@ApiImplicitParam(name = "eName",value = "元素名称",required = true),
+		@ApiImplicitParam(name = "eType",value = "元素类型",required = true),
+		@ApiImplicitParam(name = "eLength",value = "元素长度",required = true),
+		@ApiImplicitParam(name = "eAllowDeviation",value = "允许偏差值",required = true),
+		@ApiImplicitParam(name = "eInspectionMethod",value = "检查方法",required = true)
+	})*/
+	public R save(@Valid @RequestBody WbsFormElementDTO wbsFormElement) {
+		return R.status(wbsFormElementService.save(wbsFormElement));
+	}
+
+
+	/**
+	 * 修改 wbs表单元素
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "修改", notes = "传入wbsFormElement")
+	public R update(@Valid @RequestBody WbsFormElement wbsFormElement) {
+		return R.status(wbsFormElementService.updateById(wbsFormElement));
+	}
+
+
+	/**
+	 * 新增或修改 wbs表单元素
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增或修改", notes = "传入wbsFormElement")
+	public R submit(@Valid @RequestBody WbsFormElement wbsFormElement) {
+		return R.status(wbsFormElementService.saveOrUpdate(wbsFormElement));
+	}
+
+	/**
+	 * 删除 wbs表单元素
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(wbsFormElementService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}

+ 136 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsInfoController.java

@@ -0,0 +1,136 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.controller;
+
+import io.swagger.annotations.*;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.wbs.entity.WbsInfo;
+import org.springblade.manager.wbs.vo.WbsInfoVO;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.wrapper.WbsInfoWrapper;
+import org.springblade.manager.service.IWbsInfoService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * wbs动态库信息 控制器
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/wbsInfo")
+@Api(value = "wbs动态库信息", tags = "wbs动态库信息")
+public class WbsInfoController extends BladeController {
+
+	private final IWbsInfoService wbsInfoService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入id")
+	@ApiImplicitParam(name = "id", value = "id", required = true)
+	public R<WbsInfoVO> detail(WbsInfo wbsInfo) {
+		WbsInfo detail = wbsInfoService.getOne(Condition.getQueryWrapper(wbsInfo));
+		return R.data(WbsInfoWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页 wbs动态库信息
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入wbsInfo")
+	public R<IPage<WbsInfoVO>> list(WbsInfo wbsInfo, Query query) {
+		IPage<WbsInfo> pages = wbsInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(wbsInfo));
+		return R.data(WbsInfoWrapper.build().pageVO(pages));
+	}
+
+
+	/**
+	 * 自定义分页 wbs动态库信息
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "自定义分页", notes = "传入wbsInfo")
+	@ApiImplicitParams(value = {
+		@ApiImplicitParam(name = "current", value = "当前页", required = true),
+		@ApiImplicitParam(name = "size", value = "每页的数量", required = true)
+	})
+	public R<IPage<WbsInfoVO>> page(WbsInfoVO wbsInfo, Query query) {
+		IPage<WbsInfoVO> pages = wbsInfoService.selectWbsInfoPage(Condition.getPage(query), wbsInfo);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 wbs动态库信息
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入wbsInfo")
+	@ApiImplicitParam(value = "id",name = "id",required = true)
+	public R save(@Valid @RequestBody WbsInfo wbsInfo) {
+		return R.status(wbsInfoService.save(wbsInfo));
+	}
+
+	/**
+	 * 修改 wbs动态库信息
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入wbsInfo")
+	@ApiImplicitParam(value = "id",name = "id",required = true)
+	public R update(@Valid @RequestBody WbsInfo wbsInfo) {
+		return R.status(wbsInfoService.updateById(wbsInfo));
+	}
+
+	/**
+	 * 新增或修改 wbs动态库信息
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入wbsInfo")
+	@ApiImplicitParam(value = "id",name = "id",required = true)
+	public R submit(@Valid @RequestBody WbsInfo wbsInfo) {
+		return R.status(wbsInfoService.saveOrUpdate(wbsInfo));
+	}
+
+
+	/**
+	 * 删除 wbs动态库信息
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(wbsInfoService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}

+ 185 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -0,0 +1,185 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.controller;
+
+
+import io.swagger.annotations.*;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.wbs.dto.WbsTreeDTO;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.entity.WbsTree;
+import org.springblade.manager.wbs.vo.WbsNodeTableVO;
+import org.springblade.manager.wbs.vo.WbsTreeVO;
+import org.springblade.system.cache.DictCache;
+import org.springblade.system.enums.DictEnum;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springblade.manager.wrapper.WbsTreeWrapper;
+import org.springblade.manager.service.IWbsTreeService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/wbsTree")
+@Api(value = "WBS动态库节点", tags = "WBS动态库节点")
+public class WbsTreeController extends BladeController {
+
+	private final IWbsTreeService wbsTreeService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入WbsTreeId,请求头token")
+	@ApiImplicitParam(name = "id", value = "id", required = true)
+	public R<WbsTreeVO> detail(WbsTree wbsTree) {
+		WbsTree detail = wbsTreeService.getOne(Condition.getQueryWrapper(wbsTree));
+		if (detail != null) {
+			return R.data(WbsTreeWrapper.build().entityVO(detail));
+		}
+		return R.fail(200, "未查询到信息");
+	}
+
+	/**
+	 * 懒加载获取项目节点树形结构
+	 */
+	@GetMapping("/lazy-tree")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "懒加载节点树形结构", notes = "传入tenantId,parentId,请求头token")
+	@ApiImplicitParams(value = {
+		@ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
+		@ApiImplicitParam(name = "parentId", value = "父级id", required = true),
+	})
+	public R<List<WbsTreeVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
+		List<WbsTreeVO> tree = wbsTreeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+		if (tree != null && tree.size() > 0) {
+			return R.data(tree);
+		}
+		return R.fail(200, "未查询到信息");
+	}
+
+	/**
+	 * 获取项目节点树形结构 (新增、修改加载)
+	 *
+	 * @return
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "节点树形结构", notes = "传入tenantId,请求头token")
+	@ApiImplicitParams(value = {
+		@ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
+	})
+	public R<List<WbsTreeVO>> tree(String tenantId, BladeUser bladeUser) {
+		List<WbsTreeVO> tree = wbsTreeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+		if (tree != null && tree.size() > 0) {
+			return R.data(tree);
+		}
+		return R.fail(200, "未查询到信息");
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增或修改", notes = "WbsTreeDTO")
+	public R submit(@RequestBody WbsTreeDTO WbsTreeDTO) {
+		if (wbsTreeService.submit(WbsTreeDTO)) {
+			CacheUtil.clear(SYS_CACHE);
+			// 返回懒加载树更新节点所需字段
+			Kv kv = Kv.create().set("id", String.valueOf(WbsTreeDTO.getId())).set("tenantId", WbsTreeDTO.getTenantId())
+				.set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, WbsTreeDTO.getDeptCategory()));
+			return R.data(kv);
+		}
+		return R.fail("操作失败");
+	}
+
+	/**
+	 * 逻辑删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(wbsTreeService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+	/**
+	 * 表单查询(根据节点ID查询当前表单)
+	 */
+	@GetMapping("/selectByNodeTable")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "表单查询", notes = "传入父节点id")
+	public R<List<WbsNodeTableVO>> selectByNodeTable(@ApiParam(value = "父节点id", required = true) @RequestParam String id) {
+		List<WbsNodeTableVO> rs = wbsTreeService.selectByNodeTable(id);
+		if (!("").equals(rs) && rs.size() > 0) {
+			return R.data(rs);
+		}
+		return R.fail(200, "未查询到元素");
+	}
+
+	/**
+	 * 删除表单
+	 */
+	@GetMapping("/removeTableById")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "表单删除", notes = "传入id")
+	@ApiImplicitParam(name = "id",value = "表单id",required = true)
+	public R removeTableById(@RequestParam("id") String id) {
+		boolean restul = wbsTreeService.removeTableById(id);
+		if (restul){
+			return R.success("删除成功");
+		}
+		return R.fail("删除失败");
+	}
+
+	/**
+	 * 表单元素列表
+	 */
+	@GetMapping("/selectFormElements")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "表单元素列表", notes = "传入表单id")
+	@ApiImplicitParam(name = "id",value = "表单id",required = true)
+	public R<List<WbsFormElement>> selectFormElements(@RequestParam("id") String id) {
+		List<WbsFormElement> wbsFormElements = wbsTreeService.selectFormElements(id);
+		if (wbsFormElements.size()>0 && !"".equals(wbsFormElements)){
+			return R.data(wbsFormElements);
+		}
+		return R.data(wbsFormElements,"未查询到元素");
+	}
+}
+
+

+ 44 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsFormElementMapper.java

@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.vo.WbsFormElementVO;
+
+import java.util.List;
+
+/**
+ * wbs表单元素 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+public interface WbsFormElementMapper extends BaseMapper<WbsFormElement> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsFormElement
+	 * @return
+	 */
+	List<WbsFormElementVO> selectWbsFormElementPage(IPage page, WbsFormElementVO wbsFormElement);
+
+}

+ 0 - 0
blade-service/blade-manager/target/classes/org/springblade/manager/mapper/WbsFormElementMapper.xml → blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsFormElementMapper.xml


+ 43 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsInfoMapper.java

@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.wbs.entity.WbsInfo;
+import org.springblade.manager.wbs.vo.WbsInfoVO;
+
+import java.util.List;
+
+/**
+ * wbs动态库信息 Mapper 接口
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public interface WbsInfoMapper extends BaseMapper<WbsInfo> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsInfo
+	 * @return
+	 */
+	List<WbsInfoVO> selectWbsInfoPage(IPage page, WbsInfoVO wbsInfo);
+
+}

+ 0 - 0
blade-service/blade-manager/target/classes/org/springblade/manager/mapper/WbsInfoMapper.xml → blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsInfoMapper.xml


+ 90 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.java

@@ -0,0 +1,90 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.entity.WbsTree;
+import org.springblade.manager.wbs.vo.WbsNodeTableVO;
+import org.springblade.manager.wbs.vo.WbsTreeVO;
+
+import java.util.List;
+
+/**
+ *  Mapper 接口
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public interface WbsTreeMapper extends BaseMapper<WbsTree> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsTree
+	 * @return
+	 */
+	List<WbsTreeVO> selectWbsTreePage(IPage page, WbsTreeVO wbsTree);
+
+
+	/**
+	 * 懒加载获取树形节点
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @return
+	 */
+	List<WbsTreeVO> lazyTree(String tenantId, Long parentId);
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<WbsTreeVO> tree(String tenantId);
+
+
+	/**
+	 *表单查询(根据节点ID查询当前表单)
+	 */
+	List<WbsNodeTableVO> selectByNodeTable(@Param("id") String id);
+
+	/**
+	 * 根据Ids查询元素
+	 */
+	List<String> selectByElementsTotal(@Param("ids") List<String> ids);
+
+	/**
+	 * 表单删除
+	 */
+	Integer removeTableById(String id);
+
+	/**
+	 * 表单元素
+	 */
+	List<WbsFormElement> selectFormElements(@Param("id") String id);
+
+	/**
+	 * 新增元素
+	 */
+	boolean addFormElement(WbsFormElement wbsFormElement);
+
+}

+ 0 - 0
blade-service/blade-manager/target/classes/org/springblade/manager/mapper/WbsTreeMapper.xml → blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.xml


+ 47 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsFormElementService.java

@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service;
+
+
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.vo.WbsFormElementVO;
+
+/**
+ * wbs表单元素 服务类
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+public interface IWbsFormElementService extends BaseService<WbsFormElement> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsFormElement
+	 * @return
+	 */
+	IPage<WbsFormElementVO> selectWbsFormElementPage(IPage<WbsFormElementVO> page, WbsFormElementVO wbsFormElement);
+
+	/**
+	 * 元素新增
+	 */
+	boolean addFormElement (WbsFormElement wbsFormElement);
+
+}

+ 42 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsInfoService.java

@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service;
+
+
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.manager.wbs.entity.WbsInfo;
+import org.springblade.manager.wbs.vo.WbsInfoVO;
+
+/**
+ * wbs动态库信息 服务类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public interface IWbsInfoService extends BaseService<WbsInfo> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsInfo
+	 * @return
+	 */
+	IPage<WbsInfoVO> selectWbsInfoPage(IPage<WbsInfoVO> page, WbsInfoVO wbsInfo);
+
+}

+ 97 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeService.java

@@ -0,0 +1,97 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.tool.api.R;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.entity.WbsTree;
+import org.springblade.manager.wbs.vo.WbsNodeTableVO;
+import org.springblade.manager.wbs.vo.WbsTreeVO;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ *  服务类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public interface IWbsTreeService extends BaseService<WbsTree> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param wbsTree
+	 * @return
+	 */
+	IPage<WbsTreeVO> selectWbsTreePage(IPage<WbsTreeVO> page, WbsTreeVO wbsTree);
+
+	/**
+	 * 懒加载树形结构
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @return
+	 */
+	List<WbsTreeVO> lazyTree(String tenantId, Long parentId);
+
+	/**
+	 * 树形结构
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<WbsTreeVO> tree(String tenantId);
+
+
+	/**
+	 * 提交
+	 *
+	 * @param dept
+	 * @return
+	 */
+	boolean submit(WbsTree dept);
+
+
+	/**
+	 *表单查询(根据节点ID查询当前表单)
+	 */
+	List<WbsNodeTableVO> selectByNodeTable(String id);
+
+
+	/**
+	 * 删除表单
+	 */
+	boolean removeTableById(String id);
+
+	/**
+	 * 表单元素列表
+	 */
+	List<WbsFormElement> selectFormElements(String id);
+
+
+
+}

+ 49 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service.impl;
+
+import org.springblade.manager.mapper.WbsFormElementMapper;
+import org.springblade.manager.service.IWbsFormElementService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.vo.WbsFormElementVO;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * wbs表单元素 服务实现类
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+@Service
+public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMapper, WbsFormElement> implements IWbsFormElementService {
+
+	@Override
+	public IPage<WbsFormElementVO> selectWbsFormElementPage(IPage<WbsFormElementVO> page, WbsFormElementVO wbsFormElement) {
+		return page.setRecords(baseMapper.selectWbsFormElementPage(page, wbsFormElement));
+	}
+
+	@Override
+	public boolean addFormElement(WbsFormElement wbsFormElement) {
+		int insert1 = baseMapper.insert(wbsFormElement);
+		if (insert1 > 0) {
+			return true;
+		}
+		return false;
+	}
+}

+ 41 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsInfoServiceImpl.java

@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service.impl;
+
+import org.springblade.manager.mapper.WbsInfoMapper;
+import org.springblade.manager.service.IWbsInfoService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.wbs.entity.WbsInfo;
+import org.springblade.manager.wbs.vo.WbsInfoVO;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * wbs动态库信息 服务实现类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Service
+public class WbsInfoServiceImpl extends BaseServiceImpl<WbsInfoMapper, WbsInfo> implements IWbsInfoService {
+
+	@Override
+	public IPage<WbsInfoVO> selectWbsInfoPage(IPage<WbsInfoVO> page, WbsInfoVO wbsInfo) {
+		return page.setRecords(baseMapper.selectWbsInfoPage(page, wbsInfo));
+	}
+
+}

+ 126 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -0,0 +1,126 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.manager.mapper.WbsTreeMapper;
+import org.springblade.manager.service.IWbsTreeService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.entity.WbsTree;
+import org.springblade.manager.wbs.vo.WbsNodeTableVO;
+import org.springblade.manager.wbs.vo.WbsTreeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import javax.annotation.Resource;
+import java.lang.reflect.Array;
+import java.util.*;
+
+/**
+ *  服务实现类
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+@Service
+public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper,WbsTree> implements IWbsTreeService {
+
+	@Resource
+	private WbsTreeMapper wbsTreeMapper;
+
+	@Override
+	public IPage<WbsTreeVO> selectWbsTreePage(IPage<WbsTreeVO> page, WbsTreeVO wbsTree) {
+		return page.setRecords(baseMapper.selectWbsTreePage(page, wbsTree));
+	}
+
+	@Override
+	public List<WbsTreeVO> lazyTree(String tenantId, Long parentId) {
+		if (AuthUtil.isAdministrator()) {
+			tenantId = StringPool.EMPTY;
+		}
+		return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+	}
+
+	@Override
+	public List<WbsTreeVO> tree(String tenantId) {
+		return ForestNodeMerger.merge(baseMapper.tree(tenantId));
+	}
+
+	@Override
+	public boolean submit(WbsTree dept) {
+		if (Func.isEmpty(dept.getParentId())) {
+			dept.setTenantId(AuthUtil.getTenantId());
+			dept.setParentId(BladeConstant.TOP_PARENT_ID);
+			dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+		}
+		if (dept.getParentId() > 0) {
+			WbsTree parent = getById(dept.getParentId());
+			if (Func.toLong(dept.getParentId()) == Func.toLong(dept.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			dept.setTenantId(parent.getTenantId());
+			String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId();
+			dept.setAncestors(ancestors);
+		}
+		dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		return saveOrUpdate(dept);
+	}
+
+	@Override
+	public List<WbsNodeTableVO> selectByNodeTable(String id) {
+		//查询节点下的所有表单
+		List<WbsNodeTableVO> wbsNodeTableVOS = wbsTreeMapper.selectByNodeTable(id);
+		/*List<String> ids = new ArrayList<>();
+		for (int i = 0; i < wbsNodeTableVOS.size(); i++) {
+			String id1 = wbsNodeTableVOS.get(i).getId();
+			ids.add(id1+",");
+			if ( i == (wbsNodeTableVOS.size()-1)){
+				ids.remove(",");
+			}
+		}
+		//根据ID查询元素
+		List<String> strings = wbsTreeMapper.selectByElementsTotal(ids);*/
+		return wbsNodeTableVOS;
+	}
+
+	@Override
+	public boolean removeTableById(String id) {
+		Integer integer = wbsTreeMapper.removeTableById(id);
+		if (integer > 0){
+			return true;
+		}
+		return false;
+	}
+
+	@Override
+	public List<WbsFormElement> selectFormElements(String id) {
+		List<WbsFormElement> wbsFormElements = wbsTreeMapper.selectFormElements(id);
+		return wbsFormElements;
+	}
+
+
+
+
+}

+ 50 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsFormElementWrapper.java

@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.manager.wbs.entity.WbsFormElement;
+import org.springblade.manager.wbs.vo.WbsFormElementVO;
+
+import java.util.Objects;
+
+/**
+ * wbs表单元素包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2022-04-27
+ */
+public class WbsFormElementWrapper extends BaseEntityWrapper<WbsFormElement, WbsFormElementVO>  {
+
+	public static WbsFormElementWrapper build() {
+		return new WbsFormElementWrapper();
+ 	}
+
+	@Override
+	public WbsFormElementVO entityVO(WbsFormElement wbsFormElement) {
+		WbsFormElementVO wbsFormElementVO = Objects.requireNonNull(BeanUtil.copy(wbsFormElement, WbsFormElementVO.class));
+
+		//User createUser = UserCache.getUser(wbsFormElement.getCreateUser());
+		//User updateUser = UserCache.getUser(wbsFormElement.getUpdateUser());
+		//wbsFormElementVO.setCreateUserName(createUser.getName());
+		//wbsFormElementVO.setUpdateUserName(updateUser.getName());
+
+		return wbsFormElementVO;
+	}
+
+}

+ 50 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsInfoWrapper.java

@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.manager.wbs.entity.WbsInfo;
+import org.springblade.manager.wbs.vo.WbsInfoVO;
+
+import java.util.Objects;
+
+/**
+ * wbs动态库信息包装类,返回视图层所需的字段
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public class WbsInfoWrapper extends BaseEntityWrapper<WbsInfo, WbsInfoVO>  {
+
+	public static WbsInfoWrapper build() {
+		return new WbsInfoWrapper();
+ 	}
+
+	@Override
+	public WbsInfoVO entityVO(WbsInfo wbsInfo) {
+		WbsInfoVO wbsInfoVO = Objects.requireNonNull(BeanUtil.copy(wbsInfo, WbsInfoVO.class));
+
+		//User createUser = UserCache.getUser(wbsInfo.getCreateUser());
+		//User updateUser = UserCache.getUser(wbsInfo.getUpdateUser());
+		//wbsInfoVO.setCreateUserName(createUser.getName());
+		//wbsInfoVO.setUpdateUserName(updateUser.getName());
+
+		return wbsInfoVO;
+	}
+
+}

+ 50 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/WbsTreeWrapper.java

@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.manager.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.manager.wbs.entity.WbsTree;
+import org.springblade.manager.wbs.vo.WbsTreeVO;
+
+import java.util.Objects;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author liuyc
+ * @since 2022-04-25
+ */
+public class WbsTreeWrapper extends BaseEntityWrapper<WbsTree, WbsTreeVO>  {
+
+	public static WbsTreeWrapper build() {
+		return new WbsTreeWrapper();
+ 	}
+
+	@Override
+	public WbsTreeVO entityVO(WbsTree wbsTree) {
+		WbsTreeVO wbsTreeVO = Objects.requireNonNull(BeanUtil.copy(wbsTree, WbsTreeVO.class));
+
+		//User createUser = UserCache.getUser(wbsTree.getCreateUser());
+		//User updateUser = UserCache.getUser(wbsTree.getUpdateUser());
+		//wbsTreeVO.setCreateUserName(createUser.getName());
+		//wbsTreeVO.setUpdateUserName(updateUser.getName());
+
+		return wbsTreeVO;
+	}
+
+}

+ 10 - 0
blade-service/blade-manager/src/main/java/sql/wbsformelement.menu.sql

@@ -0,0 +1,10 @@
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1519234988585414657', 1123598815738675201, 'wbsformelement', '表单元素', 'menu', '/manager/wbsformelement', NULL, 1, 1, 0, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1519234988585414658', '1519234988585414657', 'wbsformelement_add', '新增', 'add', '/manager/wbsformelement/add', 'plus', 1, 2, 1, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1519234988585414659', '1519234988585414657', 'wbsformelement_edit', '修改', 'edit', '/manager/wbsformelement/edit', 'form', 2, 2, 2, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1519234988585414660', '1519234988585414657', 'wbsformelement_delete', '删除', 'delete', '/api/blade-manager/wbsformelement/remove', 'delete', 3, 2, 3, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1519234988585414661', '1519234988585414657', 'wbsformelement_view', '查看', 'view', '/manager/wbsformelement/view', 'file-text', 4, 2, 2, 1, NULL, 0);

+ 10 - 0
blade-service/blade-manager/src/main/java/sql/wbsinfo.menu.sql

@@ -0,0 +1,10 @@
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518497399985291265', 1123598815738675201, 'wbsinfo', 'WBS动态库', 'menu', '/manager/wbsinfo', NULL, 1, 1, 0, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518497399985291266', '1518497399985291265', 'wbsinfo_add', '新增', 'add', '/manager/wbsinfo/add', 'plus', 1, 2, 1, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518497399985291267', '1518497399985291265', 'wbsinfo_edit', '修改', 'edit', '/manager/wbsinfo/edit', 'form', 2, 2, 2, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518497399985291268', '1518497399985291265', 'wbsinfo_delete', '删除', 'delete', '/api/blade-manager/wbsinfo/remove', 'delete', 3, 2, 3, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518497399985291269', '1518497399985291265', 'wbsinfo_view', '查看', 'view', '/manager/wbsinfo/view', 'file-text', 4, 2, 2, 1, NULL, 0);

+ 10 - 0
blade-service/blade-manager/src/main/java/sql/wbstree.menu.sql

@@ -0,0 +1,10 @@
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518503218952945665', 1123598815738675201, 'wbstree', '项目节点', 'menu', '/manager/wbstree', NULL, 1, 1, 0, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518503218952945666', '1518503218952945665', 'wbstree_add', '新增', 'add', '/manager/wbstree/add', 'plus', 1, 2, 1, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518503218952945667', '1518503218952945665', 'wbstree_edit', '修改', 'edit', '/manager/wbstree/edit', 'form', 2, 2, 2, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518503218952945668', '1518503218952945665', 'wbstree_delete', '删除', 'delete', '/api/blade-manager/wbstree/remove', 'delete', 3, 2, 3, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1518503218952945669', '1518503218952945665', 'wbstree_view', '查看', 'view', '/manager/wbstree/view', 'file-text', 4, 2, 2, 1, NULL, 0);

+ 0 - 0
blade-service/blade-manager/target/classes/application-dev.yml → blade-service/blade-manager/src/main/resources/application-dev.yml


+ 0 - 0
blade-service/blade-manager/target/classes/application-prod.yml → blade-service/blade-manager/src/main/resources/application-prod.yml


+ 0 - 0
blade-service/blade-manager/target/classes/application-test.yml → blade-service/blade-manager/src/main/resources/application-test.yml


+ 8 - 0
pom.xml

@@ -102,6 +102,14 @@
         </resources>
         <pluginManagement>
             <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.4.2</version>
+                    <configuration>
+                        <skipTests>true</skipTests>
+                    </configuration>
+                </plugin>
                 <plugin>
                     <groupId>org.springframework.boot</groupId>
                     <artifactId>spring-boot-maven-plugin</artifactId>