From f89d8418c223c2a63463f37258caabd62c752897 Mon Sep 17 00:00:00 2001
From: nnnjjj123 <494715143@qq.com>
Date: Sat, 30 Jan 2021 15:43:05 +0800
Subject: [PATCH] 1.设备树状图

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.java            |    4 ++
 blade-service/blade-jfpts/pom.xml                                                                         |    2 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java    |   12 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/entitly/catalog.java                 |    5 +-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/vo/catalogVO.java                    |   41 ++++++++++++++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/impl/CatalogServiceImpl.java |    6 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.xml             |   34 +++++++++++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/catalogService.java          |    2 +
 blade-service/blade-jfpts/src/main/resources/application-dev.yml                                          |    2 
 9 files changed, 103 insertions(+), 5 deletions(-)

diff --git a/blade-service/blade-jfpts/pom.xml b/blade-service/blade-jfpts/pom.xml
index 8ff2d3c..6bd268e 100644
--- a/blade-service/blade-jfpts/pom.xml
+++ b/blade-service/blade-jfpts/pom.xml
@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>jfpt</artifactId>
+    <artifactId>blade-jfpts</artifactId>
    <name>${project.artifactId}</name>
     <version>${bladex.project.version</version>
     <packaging>jar</packaging>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
index 8cca2a2..1aac3b0 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
@@ -25,11 +25,13 @@
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.jfpt.catalog.entitly.catalog;
 import org.springblade.jfpt.catalog.service.catalogService;
 import org.springblade.jfpt.catalog.vo.catalogVO;
+import org.springblade.system.vo.DeptVO;
 import org.springframework.web.bind.annotation.*;
 import org.springblade.jfpt.catalog.wrapper.catalogWrapper;
 
@@ -244,4 +246,14 @@
 		String result = format.format(today);
 		return result;
 	}
+
+
+	/**
+	 * 懒加载获取部门树形结构
+	 */
+	@GetMapping("/lazy-tree")
+	public R<List<catalogVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
+		List<catalogVO> tree = catalogService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+		return R.data(tree);
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/entitly/catalog.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/entitly/catalog.java
index 373ec0a..48aed0f 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/entitly/catalog.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/entitly/catalog.java
@@ -36,13 +36,14 @@
 
 	private static final long serialVersionUID = 1L;
 
-	private Integer id;
+	private Long id;
 	@TableField("name")
 	private String name;
 	@TableField("pId")
-	private Integer pId;
+	private Long pId;
 	@TableField("eqid")
 	private String eqid;
+	private String tenant_id;
 
 
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.java
index d157ac9..cc48181 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.java
@@ -18,6 +18,8 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springblade.jfpt.catalog.entitly.catalog;
+import org.springblade.jfpt.catalog.vo.catalogVO;
+import org.springblade.system.vo.DeptVO;
 
 import java.util.List;
 import java.util.Map;
@@ -36,4 +38,6 @@
 	List<Map<String, Object>> selectWar(String beginTime,String endTime);
 
 	List selectCatalogEqNUmber(String pid);
+
+	List<catalogVO> lazyTree(String tenantId, Long parentId);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.xml
index 9e719e8..646d90d 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/mapper/catalogMapper.xml
@@ -8,6 +8,16 @@
         <result column="name" property="name"/>
         <result column="pId" property="pId"/>
         <result column="eqid" property="eqid"/>
+        <result column="tenant_id" property="tenant_id"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+        <result column="has_children" property="hasChildren"/>
     </resultMap>
 
 
@@ -72,4 +82,28 @@
      SELECT COUNT(*) as cou,waringType FROM `sys_alarm` where DATE_FORMAT(alarmTime,'%Y-%m-%d')&gt;=#{beginTime} and DATE_FORMAT(alarmTime,'%Y-%m-%d')&lt;=#{endTime} GROUP BY waringType ORDER BY cou desc
     </select>
 
+    <select id="lazyTree" resultMap="treeNodeResultMap" >
+        SELECT
+        dept.id,
+        dept.pId as parent_id,
+        dept.name AS title,
+        dept.eqid AS "value",
+        dept.eqid AS "key",
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        sys_catalog
+        WHERE
+        pId = dept.id
+        ) AS "has_children"
+        FROM
+        sys_catalog dept
+        WHERE
+        dept.pId = #{param2}
+        <if test="param1!=null and param1!=''">
+            and dept.tenant_id = #{param1}
+        </if>
+    </select>
+
 </mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/catalogService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/catalogService.java
index 1864677..259276d 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/catalogService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/catalogService.java
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.jfpt.catalog.entitly.catalog;
+import org.springblade.jfpt.catalog.vo.catalogVO;
 
 import java.util.List;
 import java.util.Map;
@@ -35,4 +36,5 @@
 	List<Map<String, Object>> selectAddvcd();
 	List<Map<String, Object>> selectEq();
 	List<Map<String, Object>> selectWar(String beginTime,String endTime);
+	List<catalogVO> lazyTree(String tenantId, Long parentId);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/impl/CatalogServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/impl/CatalogServiceImpl.java
index 41ef1e3..8206486 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/impl/CatalogServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/service/impl/CatalogServiceImpl.java
@@ -21,6 +21,7 @@
 import org.springblade.jfpt.catalog.entitly.catalog;
 import org.springblade.jfpt.catalog.mapper.catalogMapper;
 import org.springblade.jfpt.catalog.service.catalogService;
+import org.springblade.jfpt.catalog.vo.catalogVO;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -64,4 +65,9 @@
 	public List<Map<String, Object>> selectWar(String beginTime,String endTime) {
 		return baseMapper.selectWar(beginTime, endTime);
 	}
+
+	@Override
+	public List<catalogVO> lazyTree(String tenantId, Long parentId) {
+		return baseMapper.lazyTree(tenantId, parentId);
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/vo/catalogVO.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/vo/catalogVO.java
index 57f788b..1e15bf3 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/vo/catalogVO.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/vo/catalogVO.java
@@ -16,10 +16,18 @@
  */
 package org.springblade.jfpt.catalog.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
 import org.springblade.jfpt.catalog.entitly.catalog;
+import org.springblade.system.vo.DeptVO;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 视图实体类
@@ -30,7 +38,38 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ApiModel(value = "catalogVO对象", description = "catalogVO对象")
-public class catalogVO extends catalog {
+public class catalogVO extends catalog implements INode<catalogVO> {
 	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<catalogVO> children;
+
+	/**
+	 * 是否有子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Boolean hasChildren;
+
+	@Override
+	public List<catalogVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/resources/application-dev.yml b/blade-service/blade-jfpts/src/main/resources/application-dev.yml
index a133a89..d9839f9 100644
--- a/blade-service/blade-jfpts/src/main/resources/application-dev.yml
+++ b/blade-service/blade-jfpts/src/main/resources/application-dev.yml
@@ -1,6 +1,6 @@
 #服务器端口
 server:
-  port: 9101
+  port: 89
 
 #数据源配置
 spring:

--
Gitblit v1.9.3