Prechádzať zdrojové kódy

********labsl VS meiku***********************************
蜡笔森林 添加注释
美库 添加注释

zhangweixin 4 rokov pred
rodič
commit
55836ff3c6
35 zmenil súbory, kde vykonal 685 pridanie a 585 odobranie
  1. 2 0
      gradle.properties
  2. 4 16
      labsl/src/main/kotlin/com/persagy/labsl/LaBSLApp.kt
  3. 17 0
      labsl/src/main/kotlin/com/persagy/labsl/Opts.kt
  4. 0 79
      labsl/src/main/kotlin/com/persagy/labsl/Swagger2Config.kt
  5. 1 26
      labsl/src/main/kotlin/com/persagy/labsl/Swagger3Config.kt
  6. 3 3
      labsl/src/main/kotlin/com/persagy/labsl/controller/GraphCategoryController.kt
  7. 3 4
      labsl/src/main/kotlin/com/persagy/labsl/controller/GraphController.kt
  8. 5 5
      labsl/src/main/kotlin/com/persagy/labsl/controller/MarkersController.kt
  9. 0 94
      labsl/src/main/kotlin/com/persagy/labsl/controller/PictureController.kt
  10. 5 5
      labsl/src/main/kotlin/com/persagy/labsl/controller/RelationController.kt
  11. 1 2
      labsl/src/main/kotlin/com/persagy/labsl/services/AnchorService.kt
  12. 1 3
      labsl/src/main/kotlin/com/persagy/labsl/services/AttachObjectIdsServices.kt
  13. 3 3
      labsl/src/main/kotlin/com/persagy/labsl/services/CustomService.kt
  14. 67 8
      labsl/src/main/kotlin/com/persagy/labsl/services/GraphCategoryService.kt
  15. 326 137
      labsl/src/main/kotlin/com/persagy/labsl/services/GraphService.kt
  16. 8 6
      labsl/src/main/kotlin/com/persagy/labsl/services/MarkersService.kt
  17. 10 7
      labsl/src/main/kotlin/com/persagy/labsl/services/NodeService.kt
  18. 10 6
      labsl/src/main/kotlin/com/persagy/labsl/services/RelationService.kt
  19. 0 21
      labsl/src/main/kotlin/com/persagy/labsl/services/pic/PictureService.kt
  20. 1 1
      labsl/src/main/kotlin/com/persagy/labsl/utils/IdUtils.kt
  21. 0 98
      labsl/src/main/kotlin/com/persagy/labsl/utils/LoggerUtils.kt
  22. 3 3
      labsl/src/main/resources/application-prod.yml
  23. 3 0
      meiku/build.gradle
  24. 11 3
      meiku/src/main/kotlin/com/persagy/meiku/Swagger3Config.kt
  25. 6 8
      meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuAnchorController.kt
  26. 8 10
      meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuController.kt
  27. 6 6
      meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuStateController.kt
  28. 5 4
      meiku/src/main/kotlin/com/persagy/meiku/controller/PipelineController.kt
  29. 0 14
      meiku/src/main/kotlin/com/persagy/meiku/controller/Test/Controller.kt
  30. 61 0
      meiku/src/main/kotlin/com/persagy/meiku/controller/UmlController.kt
  31. 9 1
      meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuAnchorService.kt
  32. 76 8
      meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuService.kt
  33. 10 3
      meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuStateService.kt
  34. 18 0
      meiku/src/main/kotlin/com/persagy/meiku/services/PipelineCategoryService.kt
  35. 2 1
      meiku/src/main/resources/application-prod.yml

+ 2 - 0
gradle.properties

@@ -120,6 +120,8 @@ LOMBOK_VERSION = 1.16.16
 
 # https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui
 SPRING_DOC_VERSION = 1.4.8
+# https://mvnrepository.com/artifact/com.credibledoc/plantuml-core
+PLANTUML_VERSION = 1.0.24
 
 #SPRING_DOC_VERSION = 3.0.0
 

+ 4 - 16
labsl/src/main/kotlin/com/persagy/labsl/LaBSLApp.kt

@@ -41,7 +41,7 @@ open class LaBSLApp : SpringBootServletInitializer() {
     companion object {
         // 日志
         private val logger = LoggerFactory.getLogger(LaBSLApp::class.java)
-    } // Companion object
+    }
 
     /**
      * 配置应用
@@ -50,21 +50,9 @@ open class LaBSLApp : SpringBootServletInitializer() {
      */
     override fun configure(application: SpringApplicationBuilder): SpringApplicationBuilder {
         return application.sources(LaBSLApp::class.java)
-    } // Function configure
+    }
 
-//    /**
-//     * 配置FastJson
-//     *
-//     * @return  HttpMessageConverters
-//     */
-//    @Bean
-//    @Suppress("MoveLambdaOutsideParentheses")
-//    open fun jsonHttpMessageConverters(): SJsonHttpMessageConverter {
-//        val fastConverter = SJsonHttpMessageConverter()
-//        fastConverter.propertyNamingStrategy = com.alibaba.fastjson.PropertyNamingStrategy.CamelCase
-//        return fastConverter
-//    } // Function fastJsonHttpMessageConverters()
-} // Class Application
+}
 
 /**
  * Web应用入口
@@ -74,4 +62,4 @@ open class LaBSLApp : SpringBootServletInitializer() {
 fun main(args: Array<String>) {
     SpringApplication.run(LaBSLApp::class.java, *args)
     return
-} // Function main()
+}

+ 17 - 0
labsl/src/main/kotlin/com/persagy/labsl/Opts.kt

@@ -0,0 +1,17 @@
+package com.persagy.labsl
+
+import com.persagy.service.SPageContext
+
+/**
+ * 常量池
+ *
+ * @author wx  <zhangweixin@sagacloud.com>
+ * @date  2020/11/16 9:23
+ */
+object Opts {
+
+    /** 项目 id */
+    val projectId: String?
+        get() = SPageContext.getHeader("projectId")
+
+}

+ 0 - 79
labsl/src/main/kotlin/com/persagy/labsl/Swagger2Config.kt

@@ -1,79 +0,0 @@
-///*
-// * ********************************************************************************************************************
-// *
-// *                     :*$@@%$*:                         ;:                ;;    ;;
-// *                   :@@%!  :!@@%:                       %!             ;%%@@%$ =@@@@@@@%;     @%@@@%%%%@@@@@
-// *                  :@%;       :$=                       %%$$$%$$         ;$$  ;$@=   !@$
-// *                  =@!                                  %!              @ $=;%   !@@@%:      !$$$$$$$$$$$$$$=
-// *                  =@*                                  %!              @ $= % %@=   =%@!      %=
-// *             *$%%! @@=        ;=$%%%$*:                %!              @ $= % =%%%%%%@$      *%:         =%
-// *           %@@!:    !@@@%=$@@@@%!  :*@@$:              %!              @ $= % $*     ;@      @*          :%*
-// *         ;@@!          ;!!!;:         ;@%:      =======@%========*     @ $$ % $%*****$@     :@$=*********=@$
-// *         $@*   ;@@@%=!:                *@*
-// *         =@$    ;;;!=%@@@@=!           =@!
-// *          %@$:      =@%: :*@@@*       %@=                    Copyright (c) 2016-2019.  北京上格云技术有限公司
-// *           ;%@@$=$@@%*       *@@@$=%@@%;
-// *              ::;::             ::;::                                              All rights reserved.
-// *
-// * ********************************************************************************************************************
-// */
-//
-//package com.persagy.labsl
-//
-//import org.slf4j.LoggerFactory
-//import org.springframework.context.annotation.Bean
-//import org.springframework.context.annotation.Configuration
-//
-//
-///**
-// * RESTful API文档生成器Swagger2配置
-// *
-// * @author  PLX
-// */
-//@Configuration
-//@EnableSwagger2
-//open class Swagger2Config {
-//    companion object {
-//        // 日志
-//        private val logger = LoggerFactory.getLogger(Swagger2Config::class.java)
-//    } // Companion object
-//
-//    /**
-//     * 创建RestApi文档生成器
-//     *
-//     * @return  返回文档生成器对象
-//     */
-//    @Bean
-//    open fun createRestApi(): Docket {
-//        logger.debug("createRestApi")
-//        val builder = ParameterBuilder()
-//        val builderComming = ParameterBuilder()
-//        val pars = ArrayList<Parameter>()
-//        builderComming.name("coming").description("应用来源").modelRef(ModelRef("string")).parameterType("header").required(false)
-//        builder.name("projectId").description("项目ID").modelRef(ModelRef("string")).parameterType("header").required(false)
-//        pars.add(builder.build())
-//        pars.add(builderComming.build())
-//        return Docket(DocumentationType.SWAGGER_2)
-//                .apiInfo(apiInfo())
-//                .select()
-//                .apis(RequestHandlerSelectors.basePackage("com.persagy"))
-//                .paths(PathSelectors.any())
-//                .build()
-//                .globalOperationParameters(pars)
-//    } // Function createRestApi()
-//
-//    /**
-//     * 返回API信息基本
-//     *
-//     * @return  返回Api基本信息
-//     */
-//    private fun apiInfo(): ApiInfo {
-//        return ApiInfoBuilder()
-//                .title("蜡笔森林-图形API")
-//                .description("")
-//                .termsOfServiceUrl("http://www.persagy.com/")
-//                .contact(Contact("张维新", "", "plx3000@163.com"))
-//                .version("2.0")
-//                .build()
-//    } // Function apiInfo()
-//} // Class Swagger2Config

+ 1 - 26
labsl/src/main/kotlin/com/persagy/labsl/Swagger3Config.kt

@@ -54,11 +54,9 @@ open class Swagger3Config {
     private val title = "蜡笔森林(系统图) API"
     /** API 版本号 */
     private val version = "1.0"
-
+    /** 请求头对象 */
     val operationCustomizer = GlobalHeaderOperationCustomizer()
 
-
-
     /**
      * API 信息
      */
@@ -91,29 +89,6 @@ open class Swagger3Config {
             .build()
     }
 
-    /**
-     * 字典 API 组
-     */
-//    @Bean
-//    open fun dictApiGroup(): GroupedOpenApi {
-//        return GroupedOpenApi.builder().group("asf").pathsToMatch("")
-//            .build()
-//
-//    }
-
-//    /**
-//     * 对象 API 组
-//     */
-//    @Bean
-//    open fun objectApiGroup(): GroupedOpenApi {
-//        return GroupedOpenApi.builder()
-//            .group("对象")
-//            .pathsToMatch("/object/**")
-//            .addOperationCustomizer(operationCustomizer)
-//            .build()
-//    }
-
-
 
 } // Class Swagger2Config
 

+ 3 - 3
labsl/src/main/kotlin/com/persagy/labsl/controller/GraphCategoryController.kt

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController
 /**
  * 类型
  *
- * @author wx  <zhangweixin@sagacloud.com>
+ * @author wx <zhangweixin@sagacloud.com>
  * @date  2020/9/15 11:40
  */
 @Tag(name = "005、系统图类型")
@@ -32,6 +32,6 @@ class GraphCategoryController {
     @PostMapping(value = ["/query"])
     fun graphCategoryQuery(@RequestBody request: GraphCategoryRequest): SQueryResponse<GraphCategory> {
         return GraphCategoryService.graphCategoryQuery(request)
-    } // Fun graphCategoryQuery()
+    }
 
-} // Class GraphCategoryController
+}

+ 3 - 4
labsl/src/main/kotlin/com/persagy/labsl/controller/GraphController.kt

@@ -1,6 +1,7 @@
 package com.persagy.labsl.controller
 
 import com.persagy.database.SFilter
+import com.persagy.labsl.Opts
 import com.persagy.labsl.models.entities.Graph
 import com.persagy.labsl.models.entities.pub.GraphPub
 import com.persagy.labsl.models.response.SCommonResponse
@@ -112,8 +113,7 @@ class GraphController {
    @Operation(summary = "草稿箱-查询图形信息", description = "state 1(草稿箱),state 4(回收站) ,Id 和 GraphId 必填")
     @PostMapping(value = ["/drafts/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<Graph> {
-        val projectId = SPageContext.getHeader("projectId")
-        return GraphService.pageQuery(request, arrayListOf(SFilter.eq("projectId",projectId!!)))
+        return GraphService.pageQuery(request, arrayListOf(SFilter.eq("projectId",Opts.projectId!!)))
     } // Function query()
 
     /**
@@ -149,8 +149,7 @@ class GraphController {
    @Operation(summary = "已发布-查询图形信息", description = "Id 和 GraphId 必填")
     @PostMapping(value = ["/pub/query"])
     fun querPub(@RequestBody request: SQueryRequest): SQueryResponse<GraphPub> {
-        val projectId = SPageContext.getHeader("projectId")
-        return GraphPubService.pageQuery(request, arrayListOf(SFilter.eq("projectId",projectId!!)))
+        return GraphPubService.pageQuery(request, arrayListOf(SFilter.eq("projectId",Opts.projectId!!)))
     } // Function querPub()
 
     /**

+ 5 - 5
labsl/src/main/kotlin/com/persagy/labsl/controller/MarkersController.kt

@@ -35,7 +35,7 @@ class MarkersController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<Markers>): SCreateResponse<Markers> {
         return MarkersService.creates(request)
-    } // Function create()
+    }
 
     /**
      * 根据id删除图注释说明
@@ -47,7 +47,7 @@ class MarkersController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<Markers>): SBaseResponse {
         return MarkersService.deletes(idList)
-    } // Function delete()
+    }
 
     /**
      * 更新注释说明信息
@@ -59,7 +59,7 @@ class MarkersController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<Markers>): SBaseResponse {
         return MarkersService.updateList(request)
-    } // Function update()
+    }
 
     /**
      * 查询注释说明信息
@@ -71,6 +71,6 @@ class MarkersController {
     @PostMapping(value = ["/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<Markers> {
         return MarkersService.pageQuery(request)
-    } // Function query()
+    }
 
-} // Class NodeController
+}

+ 0 - 94
labsl/src/main/kotlin/com/persagy/labsl/controller/PictureController.kt

@@ -1,94 +0,0 @@
-//package com.persagy.server.labsl.controller
-//
-//import com.persagy.base.extensions.toJson
-//import com.persagy.database.SFilter
-//import com.persagy.server.labsl.models.entities.pic.Picture
-//import com.persagy.server.labsl.services.pic.PictureService
-//import com.persagy.service.models.enums.SResponseType
-//import com.persagy.service.models.responses.SBaseResponse
-//import com.persagy.service.models.responses.SCreateResponse
-//import io.swagger.annotations.Api
-//import io.swagger.annotations.ApiOperation
-//import lombok.extern.slf4j.Slf4j
-//import org.slf4j.LoggerFactory
-//import org.springframework.web.bind.annotation.*
-//import org.springframework.web.multipart.MultipartFile
-//import java.util.*
-//
-///**
-// * 图片接口
-// *
-// * @author wx
-// */
-//@Api(tags = ["006、图片接口"])
-//@RestController
-//@RequestMapping("/picture")
-//@Slf4j
-//class PictureController {
-//
-//    companion object {
-//        /** 日志 */
-//        private val logger = LoggerFactory.getLogger(PictureController::class.java)
-//    } // Companion object
-//
-//    /**
-//     * 上传图片
-//     *
-//     * @param   file         图片文件
-//     * @param   uid          图片id
-//     * @return              创建结果信息
-//     */
-//   @Operation(summary = "上传图片", notes = "")
-//    @PostMapping(value = ["/create"])
-//    fun create(@RequestParam(value = "file", required = true) file: MultipartFile, @RequestParam(required = false) uid: String?): SCreateResponse<String> {
-//        var response = SCreateResponse<String>()
-//        try {
-//            val picture = Picture()
-//            if(uid.isNullOrEmpty()){
-//                picture.id = UUID.randomUUID().toString().replace("-","")
-//            }else{
-//                PictureService.delete(SFilter.eq("id",uid!!))
-//                picture.id = uid
-//            }
-//            picture.pic = file.bytes
-//            logger.debug("name:"+file.name)
-//            logger.debug("长度:"+file.size)
-////            PictureService.insert(picture)
-//            response.result = SResponseType.success
-//            response.entityList = arrayListOf(picture.id!!)
-//        } catch (e: Exception) {
-//            response.result = SResponseType.failure
-//            response.message = e.message.toString()
-//            e.printStackTrace()
-//        }
-//        return response
-//    } // Function create()
-//
-//    /**
-//     * 根据id删除图片
-//     *
-//     * @param   idList      id数组
-//     * @return              删除的结果信息
-//     */
-//   @Operation(summary = "根据id删除图片信息", notes = "")
-//    @PostMapping(value = ["/delete"])
-//    fun delete(@RequestBody idList: ArrayList<Picture>): SBaseResponse {
-//        return PictureService.deleteByKeysList(idList)
-//    } // Function delete()
-//
-//    /**
-//     * 查询图片信息
-//     *
-//     * @param   id             查询条件id
-//     * @return                 查询结果
-//     */
-//   @Operation(summary = "查询图片信息", notes = "")
-//    @GetMapping(value = ["/query"])
-//    fun query(@RequestParam id: String) {
-//        val picture = PictureService.select(SFilter.eq("id", id)).entity()
-//
-//            logger.debug(picture?.toJson())
-//
-//    } // Function query()
-//
-//} //

+ 5 - 5
labsl/src/main/kotlin/com/persagy/labsl/controller/RelationController.kt

@@ -35,7 +35,7 @@ class RelationController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<Relation>): SCreateResponse<Relation> {
         return RelationService.creates(request)
-    } // Function create()
+    }
 
     /**
      * 根据id删除管线
@@ -47,7 +47,7 @@ class RelationController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<Relation>): SBaseResponse {
         return RelationService.deletes(idList)
-    } // Function delete()
+    }
 
     /**
      * 更新管线信息
@@ -59,7 +59,7 @@ class RelationController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<Relation>): SBaseResponse {
         return RelationService.updateList(request)
-    } // Function update()
+    }
 
     /**
      * 查询管线信息
@@ -71,6 +71,6 @@ class RelationController {
     @PostMapping(value = ["/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<Relation> {
         return RelationService.pageQuery(request)
-    } // Function query()
+    }
 
-} // Class NodeController
+}

+ 1 - 2
labsl/src/main/kotlin/com/persagy/labsl/services/AnchorService.kt

@@ -9,5 +9,4 @@ import com.persagy.service.SObjectService
  *
  * @author wx
  */
-object AnchorService  : SObjectService<Anchor>(SMybatisDao(Anchor::class.java)) {
-} // Object AnchorService
+object AnchorService  : SObjectService<Anchor>(SMybatisDao(Anchor::class.java))

+ 1 - 3
labsl/src/main/kotlin/com/persagy/labsl/services/AttachObjectIdsServices.kt

@@ -10,6 +10,4 @@ import com.persagy.service.SObjectService
  * @author  wx
  * @date  2020/9/17 17:02
  */
-object AttachObjectIdsServices : SObjectService<AttachObjectIds>(SMybatisDao(AttachObjectIds::class.java)){
-
-} // Object AttachObjectIdsServices
+object AttachObjectIdsServices : SObjectService<AttachObjectIds>(SMybatisDao(AttachObjectIds::class.java))

+ 3 - 3
labsl/src/main/kotlin/com/persagy/labsl/services/CustomService.kt

@@ -26,7 +26,7 @@ class CustomService {
      */
     fun draftsCategory(projectId: String): ArrayList<CategoryCode>?{
         return customMapper.calcAffected(projectId)
-    }  // Fun draftsCategory()
+    }
 
     /**
      * 已发布 类型
@@ -36,6 +36,6 @@ class CustomService {
      */
     fun pubCategory(projectId: String): ArrayList<CategoryCode>?{
         return customMapper.pubCategory(projectId)
-    } // Fun pubCategory()
+    }
 
-} // Class CustomService
+}

+ 67 - 8
labsl/src/main/kotlin/com/persagy/labsl/services/GraphCategoryService.kt

@@ -1,6 +1,7 @@
 package com.persagy.labsl.services
 
 import com.persagy.database.SFilter
+import com.persagy.labsl.Opts
 import com.persagy.labsl.models.entities.GraphCategory
 import com.persagy.labsl.models.request.GraphCategoryRequest
 import com.persagy.mybatis.SMybatisDao
@@ -21,7 +22,7 @@ object GraphCategoryService : SObjectService<GraphCategory>(SMybatisDao(GraphCat
     /** 自定义sql */
     private val customMapper by lazy {
         SSpringContextUtil.getBean(CustomService::class.java) as CustomService
-    } // customMapper
+    }
 
     /**
      * 系统图分类查询
@@ -30,59 +31,93 @@ object GraphCategoryService : SObjectService<GraphCategory>(SMybatisDao(GraphCat
      * @return 查询结果
      */
     fun graphCategoryQuery(request: GraphCategoryRequest): SQueryResponse<GraphCategory> {
-        /** 项目id */
-        val projectId = SPageContext.getHeader("projectId")
+        /** 返回结果 */
         val sQueryResponse = SQueryResponse<GraphCategory>()
         return try {
+            /** true 获取所有图类型,false 获取已有图类型 */
             if (request.switch) {
+                /** 查询图类型的父节点 */
                 val graphCategoryList = select(SFilter.isNull("parentId")).exec()
+                /** 遍历父节点图类型 */
                 for (graphCategory in graphCategoryList) {
+                    /** 递归获取子节点 */
                     val treeClimate = treeClimate(graphCategory.id!!, true)
+                    /** 子节点列表不可以为空 */
                     if (treeClimate.size > 0) {
+                        /** 赋值子节点列表 */
                         graphCategory.categoryList = treeClimate
                     }
                 }
+                /** 列表赋值 */
                 sQueryResponse.content = graphCategoryList
+                /** 列表长度 */
                 sQueryResponse.total = graphCategoryList.size.toLong()
+                /** 反馈标志 */
                 sQueryResponse.result = SResponseType.success
+                /** 返回的对象 */
                 sQueryResponse
             } else {
-                val calcAffectedList = customMapper.draftsCategory(projectId!!)
-                val pubCategoryList = customMapper.pubCategory(projectId)
+                /** 草稿箱类型统计 */
+                val calcAffectedList = customMapper.draftsCategory(Opts.projectId!!)
+                /** 已发布类型统计 */
+                val pubCategoryList = customMapper.pubCategory(Opts.projectId!!)
+                /** 类型数组 */
                 val set = HashSet<String>()
+                /** 草稿箱或已发布不可以为空 */
                 if (!pubCategoryList.isNullOrEmpty() || !calcAffectedList.isNullOrEmpty()) {
+                    /** 已发布类型不可以为空 */
                     if (!pubCategoryList.isNullOrEmpty()) {
+                        /** 遍历已发布类型 */
                         for (pubCategory in pubCategoryList) {
                             set.add(pubCategory.categoryId!!)
                         }
                     }
+
+                    /** 草稿箱已发布类型不可以为空 */
                     if (!calcAffectedList.isNullOrEmpty()) {
+                        /** 遍历草稿箱类型 */
                         for (calcAffected in calcAffectedList) {
                             set.add(calcAffected.categoryId!!)
                         }
                     }
+
+                    /** 查询主分类 */
                     val graphCategoryList = select(SFilter.isNull("parentId")).exec()
+                    /** 遍历主分类 */
                     for (graphCategory in graphCategoryList) {
+                        /** 递归查询子分类 */
                         val treeClimate = treeClimate(graphCategory.id!!, true)
+                        /** 子分类数量大于0 */
                         if (treeClimate.size > 0) {
+                            /** 子分类列表赋值 */
                             graphCategory.categoryList = treeClimate
                         }
                     }
+
+                    /** 遍历分类列表 */
                     for (id in set) {
+                        /** 遍历分类列表 */
                         for (graphCategory in graphCategoryList) {
+                            /** 相等的做标记 */
                             if (graphCategory.id == id) {
                                 graphCategory.sign = true
                             }
+                            /** 子分类不为空 */
                             if (!graphCategory.categoryList.isNullOrEmpty()) {
                                 val categoryList = graphCategory.categoryList!!
+                                /** 遍历分类 */
                                 for (category in categoryList) {
+                                    /** 相等的做标记 */
                                     if (category.id == id) {
                                         category.sign = true
                                         graphCategory.sign = true
                                     }
+                                    /** 分类列表不为空 */
                                     if (!category.categoryList.isNullOrEmpty()) {
                                         val categoryList1 = category.categoryList!!
+                                        /** 遍历列表 */
                                         for (category2 in categoryList1) {
+                                            /** id相等的做标记 */
                                             if (category2.id == id) {
                                                 category2.sign = true
                                                 category.sign = true
@@ -94,47 +129,65 @@ object GraphCategoryService : SObjectService<GraphCategory>(SMybatisDao(GraphCat
                             }
                         }
                     }
+
                     val iterator = graphCategoryList.iterator()
+                    /** 遍历分类 */
                     while (iterator.hasNext()) {
                         val next = iterator.next()
+                        /** 标记为true */
                         if (next.sign) {
+                            /** 列表不为空 */
                             if (!next.categoryList.isNullOrEmpty()) {
                                 val iterator1 = next.categoryList!!.iterator()
+                                /** 遍历子列表 */
                                 while (iterator1.hasNext()) {
                                     val next1 = iterator1.next()
+                                    /** 标记为 true */
                                     if (next1.sign) {
                                         if (!next1.categoryList.isNullOrEmpty()) {
                                             val iterator2 = next1.categoryList!!.iterator()
+                                            /** 遍历子列表 */
                                             while (iterator2.hasNext()) {
                                                 val next2 = iterator2.next()
+                                                /** 标记为 true 删除 */
                                                 if (!next2.sign) {
+                                                    /** 删除 */
                                                     iterator2.remove()
                                                 }
                                             }
                                         }
                                     } else {
+                                        /** 删除 */
                                         iterator1.remove()
                                     }
                                 }
                             }
                         } else {
+                            /** 删除 */
                             iterator.remove()
                         }
                     }
+
+                    /** 赋值分类列表 */
                     sQueryResponse.content = graphCategoryList
+                    /** 列表长度 */
                     sQueryResponse.total = graphCategoryList.size.toLong()
                 } else {
+                    /** 赋值分类列表 */
                     sQueryResponse.content = ArrayList()
                 }
+                /** 返回标记 */
                 sQueryResponse.result = SResponseType.success
+                /** 返回对象 */
                 sQueryResponse
             }
         } catch (e: Exception) {
             e.printStackTrace()
             sQueryResponse.result = SResponseType.failure
+            sQueryResponse.message = e.message!!
             sQueryResponse
         }
-    } // Fun graphCategoryQuery()
+    }
 
     /**
      * 气候区 递归查询
@@ -144,12 +197,18 @@ object GraphCategoryService : SObjectService<GraphCategory>(SMybatisDao(GraphCat
      * @return 类型列表
      */
     private fun treeClimate(parent: String, hasChildren: Boolean = true): ArrayList<GraphCategory> {
+        /** 父指针为空的分类 */
         val content = select("parentId" to parent).exec()
+        /** 是否查询子列表 */
         if (hasChildren) {
+            /** 遍历父指针 */
             for (item in content) {
                 try {
+                    /** 调用本方法 */
                     val children = treeClimate(item.id!!)
+                    /** 子列表大于0 */
                     if (children.size > 0) {
+                        /** 赋值 */
                         item.categoryList = children
                     }
                 } catch (e: Exception) {
@@ -158,6 +217,6 @@ object GraphCategoryService : SObjectService<GraphCategory>(SMybatisDao(GraphCat
             }
         }
         return content
-    } // Function treeClimate()
+    }
 
-} // Object GraphCategoryService
+}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 326 - 137
labsl/src/main/kotlin/com/persagy/labsl/services/GraphService.kt


+ 8 - 6
labsl/src/main/kotlin/com/persagy/labsl/services/MarkersService.kt

@@ -29,8 +29,6 @@ object MarkersService : SObjectService<Markers>(SMybatisDao(Markers::class.java)
         /** 返回结果中的状态 */
         sCreateResponse.result = SResponseType.failure
         return try {
-            /** 项目 id */
-//            val projectId = SPageContext.getHeader("projectId")
             /** 列表不可以为空 */
             if (!request.content.isNullOrEmpty()) {
                 /** 遍历标记列表 */
@@ -61,12 +59,16 @@ object MarkersService : SObjectService<Markers>(SMybatisDao(Markers::class.java)
                     /** 插入数据 */
                     insert(markers)
                 }
-
+                /** 对象列表 */
                 sCreateResponse.entityList = request.content
+                /** 状态 */
                 sCreateResponse.result = SResponseType.success
+                /** 对象 */
                 sCreateResponse
             } else {
+                /** 描述 */
                 sCreateResponse.message = "不可以传空列表"
+                /** 对象 */
                 return sCreateResponse
             }
         } catch (e: Exception) {
@@ -74,7 +76,7 @@ object MarkersService : SObjectService<Markers>(SMybatisDao(Markers::class.java)
             sCreateResponse.message = e.message!!
             sCreateResponse
         }
-    } // Fun creates()
+    }
 
     /**
      * 批量删除标识信息
@@ -115,6 +117,6 @@ object MarkersService : SObjectService<Markers>(SMybatisDao(Markers::class.java)
             /** 返回结果,状态、以及报错信息 */
             SBaseResponse(SResponseType.failure,e.message!!)
         }
-    } // Fun deletes()
+    }
 
-} // Object MarkersService
+}

+ 10 - 7
labsl/src/main/kotlin/com/persagy/labsl/services/NodeService.kt

@@ -24,9 +24,10 @@ object NodeService : SObjectService<Node>(SMybatisDao(Node::class.java)) {
      * @return 是否处理
      */
     override fun onCreateBefore(entity: Node): Boolean {
+        /** id 赋值 */
         entity.id = UUID.randomUUID().toString().replace("-", "")
         return super.onCreateBefore(entity)
-    } // Fun onCreateBefore()
+    }
 
     /**
      * 创建设备节点
@@ -40,8 +41,6 @@ object NodeService : SObjectService<Node>(SMybatisDao(Node::class.java)) {
         /** 返回结果中的状态 */
         sCreateResponse.result = SResponseType.failure
         return try {
-            /** 项目 id */
-//            val projectId = SPageContext.getHeader("projectId")
             /** 列表不可以为空 */
             if (!request.content.isNullOrEmpty()) {
                 /** 遍历标记列表 */
@@ -72,12 +71,16 @@ object NodeService : SObjectService<Node>(SMybatisDao(Node::class.java)) {
                     /** 插入数据 */
                    insert(node)
                 }
-
+                /** 对象列表 */
                 sCreateResponse.entityList = request.content
+                /** 标志 */
                 sCreateResponse.result = SResponseType.success
+                /** 对象 */
                 sCreateResponse
             } else {
+                /** 描述 */
                 sCreateResponse.message = "不可以传空列表"
+                /** 对象 */
                 return sCreateResponse
             }
         } catch (e: Exception) {
@@ -85,7 +88,7 @@ object NodeService : SObjectService<Node>(SMybatisDao(Node::class.java)) {
             sCreateResponse.message = e.message!!
             sCreateResponse
         }
-    } // Fun creates()
+    }
 
     /**
      * 批量删除设备节点
@@ -126,7 +129,7 @@ object NodeService : SObjectService<Node>(SMybatisDao(Node::class.java)) {
             /** 返回结果,状态、以及报错信息 */
             SBaseResponse(SResponseType.failure,e.message!!)
         }
-    } // Fun deletes()
+    }
 
 
-} // Object NodeService
+}

+ 10 - 6
labsl/src/main/kotlin/com/persagy/labsl/services/RelationService.kt

@@ -24,6 +24,7 @@ object RelationService : SObjectService<Relation>(SMybatisDao(Relation::class.ja
      * @return 是否处理
      */
     override fun onCreateBefore(entity: Relation): Boolean {
+        /** id 赋值 */
         entity.id = UUID.randomUUID().toString().replace("-", "")
         return super.onCreateBefore(entity)
     } //
@@ -41,8 +42,7 @@ object RelationService : SObjectService<Relation>(SMybatisDao(Relation::class.ja
         /** 返回结果中的状态 */
         sCreateResponse.result = SResponseType.failure
         return try {
-            /** 项目 id */
-//            val projectId = SPageContext.getHeader("projectId")
+
             /** 列表不可以为空 */
             if (!request.content.isNullOrEmpty()) {
                 /** 遍历管线列表 */
@@ -73,12 +73,16 @@ object RelationService : SObjectService<Relation>(SMybatisDao(Relation::class.ja
                     /** 插入数据 */
                     insert(relation)
                 }
-
+                /** 对象列表 */
                 sCreateResponse.entityList = request.content
+                /** 状态 */
                 sCreateResponse.result = SResponseType.success
+                /** 对象 */
                 sCreateResponse
             } else {
+                /** 描述 */
                 sCreateResponse.message = "不可以传空列表"
+                /** 对象 */
                 return sCreateResponse
             }
         } catch (e: Exception) {
@@ -86,7 +90,7 @@ object RelationService : SObjectService<Relation>(SMybatisDao(Relation::class.ja
             sCreateResponse.message = e.message!!
             sCreateResponse
         }
-    } // Fun creates()
+    }
 
     /**
      * 批量删除管线信息
@@ -127,7 +131,7 @@ object RelationService : SObjectService<Relation>(SMybatisDao(Relation::class.ja
             /** 返回结果,状态、以及报错信息 */
             SBaseResponse(SResponseType.failure,e.message!!)
         }
-    } // Fun deletes()
+    }
 
 
-} // Object RelationService
+}

+ 0 - 21
labsl/src/main/kotlin/com/persagy/labsl/services/pic/PictureService.kt

@@ -1,21 +0,0 @@
-package com.persagy.labsl.services.pic
-
-import com.persagy.labsl.models.entities.pic.Picture
-import com.persagy.mybatis.SMybatisDao
-import com.persagy.service.SObjectService
-import java.util.*
-
-/**
- *
- * @author  wx
- * @date  2020/9/9 16:28
- */
-object PictureService :  SObjectService<Picture>(SMybatisDao(Picture::class.java)) {
-
-    override fun onCreateBefore(entity: Picture): Boolean {
-        entity.id = UUID.randomUUID().toString().replace("-","")
-        return super.onCreateBefore(entity)
-    } // Fun
-
-
-} // Object PictureService

+ 1 - 1
labsl/src/main/kotlin/com/persagy/labsl/utils/IdUtils.kt

@@ -1,4 +1,4 @@
-package cn.sagacloud.server.datacenter.utils
+package com.persagy.labsl.utils
 
 import java.text.SimpleDateFormat
 import java.util.*

+ 0 - 98
labsl/src/main/kotlin/com/persagy/labsl/utils/LoggerUtils.kt

@@ -1,98 +0,0 @@
-package com.persagy.labsl.utils
-
-import org.slf4j.LoggerFactory
-
-/**
- * 日志工具
- *
- * @author  wx
- * @date  2020/9/9 16:47
- */
-object LoggerUtils {
-
-      var logSign = true
-    /**
-     * debug 模式日志
-     */
-    fun debug( clazz: Class<Any>,content: String){
-        if (logSign){
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.debug(content)
-        }
-    } // Fun
-
-    /**
-     * debug 模式日志
-     */
-    fun debug( clazz: Class<Any>,key: String, content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.debug(key, content)
-        }
-    } // Fun
-
-    /**
-     * error 模式日志
-     */
-    fun error( clazz: Class<Any>,content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.error(content)
-        }
-    } // Fun
-
-    /**
-     * error 模式日志
-     */
-    fun error( clazz: Class<Any>,key: String, content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.error(key, content)
-        }
-    } // Fun
-
-    /**
-     * info 模式日志
-     */
-    fun info( clazz: Class<Any>,content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.info(content)
-        }
-    } // Fun
-
-    /**
-     * info 模式日志
-     */
-    fun info( clazz: Class<Any>,key: String, content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.info(key, content)
-        }
-    } // Fun
-
-    /**
-     * warn 模式日志
-     */
-    fun warn( clazz: Class<Any>,content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.warn(content)
-        }
-    } // Fun
-
-    /**
-     * warn 模式日志
-     */
-    fun warn( clazz: Class<Any>,key: String, content: String){
-        if (logSign) {
-            val logger = LoggerFactory.getLogger(clazz)
-            logger.warn(key, content)
-        }
-    } // Fun
-
-
-
-
-
-} // Object LoggerUtils

+ 3 - 3
labsl/src/main/resources/application-prod.yml

@@ -5,7 +5,8 @@ spring:
 #  datasource:
 #    url:                                jdbc:postgresql://172.17.11.228:5432/datacenter
 #    username:                           postgres
-#    password:                           123qwe!@#
+##    password:                           123qwe!@#
+#    password:                           cGVyc2FneV8yMDIwcXdlIUAj
 
   datasource:
     url:                                jdbc:postgresql://172.17.100.16:5432/datacenter
@@ -13,5 +14,4 @@ spring:
 #    password:                           persagy_2020qwe!@#
     password:                           cGVyc2FneV8yMDIwcXdlIUAj
 
-  activemq:
-    broker-url:                         tcp://activemq:61616
+

+ 3 - 0
meiku/build.gradle

@@ -76,6 +76,9 @@ dependencies {
     compile group: 'org.springdoc', name: 'springdoc-openapi-ui', version: SPRING_DOC_VERSION
 //     https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-common
     compile group: "org.springdoc", name: "springdoc-openapi-common", version: SPRING_DOC_VERSION
+    // PlantUML
+    // https://mvnrepository.com/artifact/com.credibledoc/plantuml-core
+    compile group: "com.credibledoc", name: "plantuml-core", version: PLANTUML_VERSION
 
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     // persagy依赖

+ 11 - 3
meiku/src/main/kotlin/com/persagy/meiku/Swagger3Config.kt

@@ -92,9 +92,17 @@ open class Swagger3Config {
     }
 
 
-    /**
-     * 字典 API 组
-     */
+    @Bean
+    open fun umlApi(): GroupedOpenApi? {
+        return GroupedOpenApi.builder()
+            .group("uml")
+            .pathsToMatch("/uml/**")
+            .build()
+    }
+
+//    /**
+//     * 字典 API 组
+//     */
 //    @Bean
 //    open fun dictApiGroup(): GroupedOpenApi {
 //        return GroupedOpenApi.builder().group("asf").pathsToMatch("")

+ 6 - 8
meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuAnchorController.kt

@@ -35,7 +35,7 @@ class MeiKuAnchorController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<MeiKuAnchor>): SCreateResponse<MeiKuAnchor> {
         return MeiKuAnchorService.createList(request)
-    } // Function create()
+    }
 
     /**
      * 更新锚点
@@ -44,7 +44,7 @@ class MeiKuAnchorController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<MeiKuAnchor>): SBaseResponse {
         return MeiKuAnchorService.updateList(request)
-    } // Function update()
+    }
 
     /**
      * 根据id删除锚点
@@ -53,7 +53,7 @@ class MeiKuAnchorController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<MeiKuAnchor>): SBaseResponse {
         return MeiKuAnchorService.deleteByKeysList(idList)
-    } // Function delete()
+    }
 
     /**
      * 查询锚点信息
@@ -62,13 +62,11 @@ class MeiKuAnchorController {
     @PostMapping(value = ["/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<MeiKuAnchor> {
         return MeiKuAnchorService.pageQuery(request)
-    } // Function query()
+    }
 
     @Operation(summary = "查询锚点统计", description = "")
     @PostMapping(value = ["/count"])
     fun count(@RequestBody request: SCountRequest): SCountResponse {
         return MeiKuAnchorService.count(request)
-    } // Function count()
-
-
-} // Class MeiKuAnchorController
+    }
+}

+ 8 - 10
meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuController.kt

@@ -34,7 +34,7 @@ class MeiKuController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<MeiKu>): SCreateResponse<MeiKu> {
         return MeiKuService.createList(request)
-    } // Function create()
+    }
 
     /**
      * 创建图例-单个
@@ -43,7 +43,7 @@ class MeiKuController {
     @PostMapping("/save")
     fun save(@RequestBody meiku: MeiKu): SCreateResponse<MeiKu> {
         return MeiKuService.save(meiku)
-    } // Function create()
+    }
 
     /**
      * 更新图例
@@ -52,13 +52,13 @@ class MeiKuController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<MeiKu>): SBaseResponse {
         return MeiKuService.updateList(request)
-    } // Function update()
+    }
 
     @Operation(summary = "图例修改-单个", description = "包含状态和锚点")
     @PostMapping(value = ["/revise"])
     fun revise(@RequestBody meiku: MeiKu): SBaseResponse{
         return MeiKuService.revise(meiku)
-    } // revise
+    }
 
     /**
      * 根据id删除图形
@@ -67,7 +67,7 @@ class MeiKuController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<MeiKu>): SBaseResponse {
         return MeiKuService.deleteByKeysList(idList)
-    } // Function delete()
+    }
 
     /**
      * 查询图形信息
@@ -76,13 +76,11 @@ class MeiKuController {
     @PostMapping(value = ["/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<MeiKu> {
         return MeiKuService.pageQuery(request)
-    } // Function query()
+    }
 
     @Operation(summary = "查询图例-单量", description = "包含状态和锚点")
     @PostMapping(value = ["/read"])
     fun read(@RequestBody meiku: MeiKu): SCommonResponse<MeiKu> {
         return  MeiKuService.read(meiku)
-    } //
-
-
-} // Class MeiKuController
+    }
+}

+ 6 - 6
meiku/src/main/kotlin/com/persagy/meiku/controller/MeiKuStateController.kt

@@ -35,7 +35,7 @@ class MeiKuStateController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<MeiKuState>): SCreateResponse<MeiKuState> {
         return MeiKuStateService.createList(request)
-    } // Function create()
+    }
 
     /**
      * 更新状态
@@ -44,7 +44,7 @@ class MeiKuStateController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<MeiKuState>): SBaseResponse {
         return MeiKuStateService.updateList(request)
-    } // Function update()
+    }
 
     /**
      * 根据id删除状态
@@ -53,7 +53,7 @@ class MeiKuStateController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<MeiKuState>): SBaseResponse {
         return MeiKuStateService.deleteByKeysList(idList)
-    } // Function delete()
+    }
 
     /**
      * 查询状态信息
@@ -62,12 +62,12 @@ class MeiKuStateController {
     @PostMapping(value = ["/query"])
     fun query(@RequestBody request: SQueryRequest): SQueryResponse<MeiKuState> {
         return MeiKuStateService.pageQuery(request)
-    } // Function query()
+    }
 
     @Operation(summary = "查询状态统计", description = "")
     @PostMapping(value = ["/count"])
     fun count(@RequestBody request: SCountRequest): SCountResponse {
         return MeiKuStateService.count(request)
-    } // Function count()
+    }
 
-} // Class MeiKuStateController
+}

+ 5 - 4
meiku/src/main/kotlin/com/persagy/meiku/controller/PipelineController.kt

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController
 
 /**
  * 管线接口
+ *
  * @author wx  <zhangweixin@sagacloud.com>
  * @date  2020/11/5 10:12
  */
@@ -35,7 +36,7 @@ class PipelineController {
     @PostMapping("/create")
     fun create(@RequestBody request: SCreateRequest<PipelineCategory>): SCreateResponse<PipelineCategory> {
         return PipelineCategoryService.createList(request)
-    } // Function create()
+    }
 
     /**
      * 根据id删除管线
@@ -47,7 +48,7 @@ class PipelineController {
     @PostMapping(value = ["/delete"])
     fun delete(@RequestBody idList: ArrayList<PipelineCategory>): SBaseResponse {
         return PipelineCategoryService.deleteByKeysList(idList)
-    } // Function delete()
+    }
 
     /**
      * 更新管线
@@ -59,7 +60,7 @@ class PipelineController {
     @PostMapping(value = ["/update"])
     fun update(@RequestBody request: SUpdateRequest<PipelineCategory>): SBaseResponse {
         return PipelineCategoryService.updateList(request)
-    } // Function update()
+    }
 
     /**
      * 查询管线
@@ -70,6 +71,6 @@ class PipelineController {
     @PostMapping(value = ["/query"])
     fun query(): SQueryResponse<PipelineCategory> {
         return PipelineCategoryService.categoryQuery()
-    } // Function query()
+    }
 
 }

+ 0 - 14
meiku/src/main/kotlin/com/persagy/meiku/controller/Test/Controller.kt

@@ -1,14 +0,0 @@
-package com.persagy.meiku.controller.Test
-
-import org.springframework.web.bind.annotation.RequestMapping
-import org.springframework.web.bind.annotation.RestController
-
-/**
- *
- * @author wx  <zhangweixin@sagacloud.com>
- * @date  2020/10/31 18:00
- */
-@RestController
-@RequestMapping("/test")
-class Controller {
-}

+ 61 - 0
meiku/src/main/kotlin/com/persagy/meiku/controller/UmlController.kt

@@ -0,0 +1,61 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *               iFHS7.
+ *              ;BBMBMBMc                  rZMBMBR              BMB
+ *              MBEr:;PBM,               7MBMMEOBB:             BBB                       RBW
+ *     XK:      BO     SB.     :SZ       MBM.       c;;     ir  BBM :FFr       :SSF:    ;xBMB:r   iuGXv.    i:. iF2;
+ *     DBBM0r.  :D     S7   ;XMBMB       GMBMu.     MBM:   BMB  MBMBBBMBMS   WMBMBMBBK  MBMBMBM  BMBRBMBW  .MBMBMBMBB
+ *      :JMRMMD  ..    ,  1MMRM1;         ;MBMBBR:   MBM  ;MB:  BMB:   MBM. RMBr   sBMH   BM0         UMB,  BMB.  KMBv
+ *     ;.   XOW  B1; :uM: 1RE,   i           .2BMBs  rMB. MBO   MBO    JMB; MBB     MBM   BBS    7MBMBOBM:  MBW   :BMc
+ *     OBRJ.SEE  MRDOWOR, 3DE:7OBM       .     ;BMB   RMR7BM    BMB    MBB. BMB    ,BMR  .BBZ   MMB   rMB,  BMM   rMB7
+ *     :FBRO0D0  RKXSXPR. JOKOOMPi       BMBSSWBMB;    BMBB:    MBMB0ZMBMS  .BMBOXRBMB    MBMDE RBM2;SMBM;  MBB   xBM2
+ *         iZGE  O0SHSPO. uGZ7.          sBMBMBDL      :BMO     OZu:BMBK,     rRBMB0;     ,EBMB  xBMBr:ER.  RDU   :OO;
+ *     ,BZ, 1D0  RPSFHXR. xWZ .SMr                  . .BBB
+ *      :0BMRDG  RESSSKR. 2WOMBW;                   BMBMR
+ *         i0BM: SWKHKGO  MBDv
+ *           .UB  OOGDM. MK,                                          Copyright (c) 2015-2020.  斯伯坦机器人
+ *              ,  XMW  ..
+ *                  r                                                                     All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+package com.persagy.meiku.controller
+
+import com.credibledoc.plantuml.svggenerator.SvgGeneratorService
+import io.swagger.v3.oas.annotations.Operation
+import io.swagger.v3.oas.annotations.Parameter
+import io.swagger.v3.oas.annotations.tags.Tag
+import org.springframework.web.bind.annotation.*
+import javax.servlet.http.HttpServletResponse
+
+/**
+ * UML 接口
+ *
+ * @author  庞利祥 <sybotan@126.com>
+ */
+@Tag(name = "Uml", description = "UML 图")
+@RestController
+@RequestMapping("/uml/")
+open class UmlController {
+    /**
+     * 获得图像
+     *
+     * @param   plantUml        内容
+     * @param   response        http 应答消息体
+     */
+    @Operation(summary = "UML 的 svg 图")
+    @PostMapping(value = ["/svg"])
+    fun svg(
+            @Parameter(description = "PlantUML 描述")
+            @RequestBody plantUml: String,
+            response: HttpServletResponse) {
+        val svg = SvgGeneratorService.getInstance().generateSvgFromPlantUml(plantUml)
+        response.setHeader("Pragma", "no-cache")
+        response.setHeader("Cache-Control", "no-cache")
+        response.setDateHeader("Expires", 0)
+        response.contentType = "image/svg+xml"
+        response.outputStream.write(svg.toByteArray())
+    }
+}

+ 9 - 1
meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuAnchorService.kt

@@ -6,17 +6,25 @@ import com.persagy.service.SObjectService
 import java.util.*
 
 /**
+ * 锚点服务
  *
  * @author  wx
  * @date  2020/9/21 11:31
  */
 object MeiKuAnchorService: SObjectService<MeiKuAnchor>(SMybatisDao(MeiKuAnchor::class.java)) {
 
+    /**
+     * 创建之前操作
+     *
+     * @param entity    锚点对象
+     * @return 是否执行
+     */
     override fun onCreateBefore(entity: MeiKuAnchor): Boolean {
+        /** id 为空赋值 */
         if (entity.id.isNullOrEmpty()){
             entity.id = UUID.randomUUID().toString().replace("-", "")
         }
         return super.onCreateBefore(entity)
     }
 
-} // Object MeiKuAnchorService
+}

+ 76 - 8
meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuService.kt

@@ -17,7 +17,14 @@ import java.util.*
  */
 object MeiKuService : SObjectService<MeiKu>(SMybatisDao(MeiKu::class.java)) {
 
+    /**
+     * 创建之前操作
+     *
+     * @param entity    图例对象
+     * @return 是否执行
+     */
     override fun onCreateBefore(entity: MeiKu): Boolean {
+        /** id 为空,赋值  */
         if (entity.id.isNullOrEmpty()) {
             entity.id = UUID.randomUUID().toString().replace("-", "")
         }
@@ -26,79 +33,121 @@ object MeiKuService : SObjectService<MeiKu>(SMybatisDao(MeiKu::class.java)) {
 
     /**
      * 保存
+     *
+     * @param meiKu     图例对象
+     * @return 返回结果
      */
     fun save(meiKu: MeiKu): SCreateResponse<MeiKu> {
+        /** 返回对象 */
         val sCreateResponse = SCreateResponse<MeiKu>()
         return try {
+            /** id 为空赋值 */
             if (meiKu.id.isNullOrEmpty()) {
                 meiKu.id = UUID.randomUUID().toString().replace("-", "")
             }
+            /** 插入数据 */
             val insert = insert(meiKu)
+            /** 锚点列表不为空 */
             if (!meiKu.anchorList.isNullOrEmpty()) {
+                /** 遍历列表 */
                 for (anchor in meiKu.anchorList!!) {
+                    /** 图例 id */
                     anchor.meiKuId = meiKu.id
+                    /** 锚点 id 为空赋值 */
                     if (anchor.id.isNullOrEmpty()) {
                         anchor.id = UUID.randomUUID().toString().replace("-", "")
                     }
+                    /** 插入锚点数据 */
                     val insert1 = MeiKuAnchorService.insert(anchor)
                 }
             }
+
+            /** 状态 */
             if (!meiKu.state .isNullOrEmpty()) {
                 val stateList = meiKu.state
+                /** 遍历状态 */
                 for (state in stateList!!){
+                    /** 图例 id */
                     state!!.meiKuId = meiKu.id
+                    /** 状态 id 为空赋值 */
                     if (state!!.id.isNullOrEmpty()) {
                         state!!.id = UUID.randomUUID().toString().replace("-", "")
                     }
+
+                    /** 插入数据 */
                     MeiKuStateService.insert(state)
                 }
-
             }
+            /** 对象列表 */
             sCreateResponse.entityList = arrayListOf(meiKu)
+            /** 标志 */
             sCreateResponse.result = SResponseType.success
+            /** 对象 */
             sCreateResponse
         } catch (e: Exception) {
             e.printStackTrace()
             sCreateResponse.result = SResponseType.failure
             sCreateResponse
         }
-    } // Fun save()
+    }
 
     /**
      * 单个对象修改,包括下面节点
+     *
+     * @param meiKu     图例对象
+     * @return 返回结果
      */
     fun revise(meiKu: MeiKu): SBaseResponse {
+        /** 返回对象 */
         val sBaseResponse = SBaseResponse()
         return try {
+            /** 图例id不为空 */
             if (!meiKu.id.isNullOrEmpty()) {
+                /** 删除图例 */
                 delete(SFilter.eq("id", meiKu.id!!))
+                /** 删除锚点 */
                 MeiKuAnchorService.delete(SFilter.eq("id", meiKu.id!!))
+                /** 删除状态 */
                 MeiKuStateService.delete(SFilter.eq("id", meiKu.id!!))
+                /** 插入数据 */
                 val insert = insert(meiKu)
+                /** 锚点列表不为空 */
                 if (!meiKu.anchorList.isNullOrEmpty()){
+                    /** 遍历 */
                     for (anchor in meiKu.anchorList!!) {
+                        /** 图例 id */
                         anchor.meiKuId = meiKu.id
+                        /** 锚点 id 为空赋值 */
                         if (anchor.id.isNullOrEmpty()) {
                             anchor.id = UUID.randomUUID().toString().replace("-", "")
                         }
+                        /** 插入 */
                         val insert1 = MeiKuAnchorService.insert(anchor)
                     }
                 }
+                /** 标志不为空 */
                 if (!meiKu.state.isNullOrEmpty()) {
                     val stateList = meiKu.state
+                    /** 遍历列表 */
                     for (state in stateList!!){
+
                         state!!.meiKuId = meiKu.id
+                        /** 标志 id 为空赋值 */
                         if (state!!.id.isNullOrEmpty()) {
                             state!!.id = UUID.randomUUID().toString().replace("-", "")
                         }
+                        /** 插入数据 */
                         val insert1 = MeiKuStateService.insert(state)
                     }
-
                 }
+                /** 状态 */
                 sBaseResponse.result = SResponseType.success
             } else {
+                /** 状态 */
                 sBaseResponse.result = SResponseType.failure
             }
+
+            /** 对象 */
             sBaseResponse
         } catch (e: Exception) {
             e.printStackTrace()
@@ -106,14 +155,17 @@ object MeiKuService : SObjectService<MeiKu>(SMybatisDao(MeiKu::class.java)) {
             sBaseResponse.message = e.message.toString()
             sBaseResponse
         }
-    } // Fun revise()
+    }
 
     /**
      * 清除节点
      */
     override fun onDeleteSuccess(entityList: ArrayList<MeiKu>) {
+        /** 遍历清除的图例 */
         for (entity in entityList){
+            /** 清除图例下的锚点 */
             MeiKuAnchorService.delete(SFilter.eq("id", entity.id!!))
+            /** 清除图例下的状态 */
             MeiKuStateService.delete(SFilter.eq("id", entity.id!!))
         }
         super.onDeleteSuccess(entityList)
@@ -121,37 +173,53 @@ object MeiKuService : SObjectService<MeiKu>(SMybatisDao(MeiKu::class.java)) {
 
     /**
      * 读取图下面所有节点
+     *
+     * @param meiKu     图例对象
+     * @return 返回结果
      */
     fun read(meiKu: MeiKu): SCommonResponse<MeiKu> {
+        /** 返回对象 */
         val sQueryResponse = SCommonResponse<MeiKu>()
         return try {
+            /** 图例 id 不可以为空 */
             if (!meiKu.id.isNullOrEmpty()){
+                /** 查询图例 */
                 val entity = select(SFilter.eq("id", meiKu.id!!)).entity()
+                /** 图例对象不为空 */
                 if (entity!=null){
+                    /** 锚点查询 */
                     val meiKuAnchorList = MeiKuAnchorService.select(SFilter.eq("id", meiKu.id!!)).exec()
                     if (meiKuAnchorList.size>0){
                         entity.anchorList = meiKuAnchorList
                     }
+
+                    /** 状态查询 */
                     val meiKuState = MeiKuStateService.select(SFilter.eq("id", meiKu.id!!)).exec()
                     if (!meiKuState.isNullOrEmpty()){
                         entity.state = meiKuState
                     }
+
+                    /** 对象赋值 */
                     sQueryResponse.content = entity
+                    /** 状态 */
                     sQueryResponse.result = SResponseType.success
                 }else{
+                    /** 状态 */
                     sQueryResponse.result = SResponseType.failure
                 }
             }else{
+                /** 状态 */
                 sQueryResponse.result = SResponseType.failure
             }
-             sQueryResponse
+
+            /** 返回的对象 */
+            sQueryResponse
         } catch (e: Exception) {
             e.printStackTrace()
             sQueryResponse.result = SResponseType.failure
             sQueryResponse.message = e.message.toString()
             sQueryResponse
         }
-    } // read()
-
+    }
 
-} // Object MeiKuService
+}

+ 10 - 3
meiku/src/main/kotlin/com/persagy/meiku/services/MeiKuStateService.kt

@@ -7,15 +7,22 @@ import java.util.*
 
 /**
  * 状态
+ *
  * @author  wx
  * @date  2020/9/21 11:35
  */
 object MeiKuStateService : SObjectService<MeiKuState>(SMybatisDao(MeiKuState::class.java)) {
-
+    /**
+     * 创建之前操作
+     *
+     * @param entity    状态对象
+     * @return 是否执行
+     */
     override fun onCreateBefore(entity: MeiKuState): Boolean {
+        /** id 为空赋值 */
         if (entity.id.isNullOrEmpty()){
             entity.id = UUID.randomUUID().toString().replace("-", "")
         }
         return super.onCreateBefore(entity)
-    } //
-} // Object MeiKuStateService
+    }
+}

+ 18 - 0
meiku/src/main/kotlin/com/persagy/meiku/services/PipelineCategoryService.kt

@@ -19,17 +19,28 @@ object PipelineCategoryService: SObjectService<PipelineCategory>(SMybatisDao(Pip
 
     /**
      * 查询管线类型
+     *
+     * @return 返回结果
      */
     fun categoryQuery(): SQueryResponse<PipelineCategory>  {
         return try {
+            /** 返回对象 */
             val sQueryResponse = SQueryResponse<PipelineCategory>()
+            /** 查询一级节点 */
             val pipelineCategoryList = select(SFilter.isNull("parentId")).exec()
+            /** 遍历节点 */
             for (pipelineCategory in pipelineCategoryList){
+                /** 查询子节点 */
                 pipelineCategory.categoryList = select(SFilter.eq("parentId",pipelineCategory.id!!)).exec()
             }
+
+            /** 类型列表 */
             sQueryResponse.content = pipelineCategoryList
+            /** 类型长度 */
             sQueryResponse.total = pipelineCategoryList.size.toLong()
+            /** 类型标志 */
             sQueryResponse.result = SResponseType.success
+            /** 返回的对象 */
             sQueryResponse
         } catch (e: Exception) {
             e.printStackTrace()
@@ -37,7 +48,14 @@ object PipelineCategoryService: SObjectService<PipelineCategory>(SMybatisDao(Pip
         }
     }
 
+    /**
+     * 创建之前操作
+     *
+     * @param entity    管线类型对象
+     * @return 是否执行
+     */
     override fun onCreateBefore(entity: PipelineCategory): Boolean {
+        /** id 为空赋值 */
         if (entity.id.isNullOrEmpty()){
             entity.id = UUID.randomUUID().toString().replace("-", "")
         }

+ 2 - 1
meiku/src/main/resources/application-prod.yml

@@ -5,7 +5,8 @@ spring:
 #  datasource:
 #    url:                                jdbc:postgresql://172.17.11.228:5432/datacenter
 #    username:                           postgres
-#    password:                           123qwe!@#
+##    password:                           123qwe!@#
+#    password:                           cGVyc2FneV8yMDIwcXdlIUAj
 
   datasource:
     url:                                jdbc:postgresql://172.17.100.16:5432/datacenter