Browse Source

空间管理-树状结构列表查询

LLL 1 year ago
parent
commit
4f045d74a2

+ 21 - 1
jeecg_module_ems/src/main/java/org/jeecg/modules/baseSpace/controller/SpaceController.java

@@ -8,6 +8,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.common.system.vo.SelectTreeModel;
 import org.jeecg.common.system.vo.SelectTreeModel;
+import org.jeecg.modules.baseSpace.convert.SpaceConvert;
 import org.jeecg.modules.baseSpace.entity.Space;
 import org.jeecg.modules.baseSpace.entity.Space;
 import org.jeecg.modules.baseSpace.service.ISpaceService;
 import org.jeecg.modules.baseSpace.service.ISpaceService;
 
 
@@ -16,6 +17,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 
 
+import org.jeecg.modules.baseSpace.vo.SpaceTreeNodeVO;
+import org.jeecg.modules.tpmEquipmentTree.convert.TpmEquipmentTreeConvert;
+import org.jeecg.modules.tpmEquipmentTree.entity.TpmEquipmentTree;
+import org.jeecg.modules.tpmEquipmentTree.vo.TpmEquipmentTreeNodeVO;
 import org.jeecg.modules.util.AutoCodeUtil;
 import org.jeecg.modules.util.AutoCodeUtil;
 import org.jeecg.modules.util.UserConstants;
 import org.jeecg.modules.util.UserConstants;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.base.controller.JeecgController;
@@ -42,9 +47,24 @@ public class SpaceController extends JeecgController<Space, ISpaceService>{
 	@Autowired
 	@Autowired
 	private AutoCodeUtil autoCodeUtil;
 	private AutoCodeUtil autoCodeUtil;
 
 
+	 @ApiOperation(value="空间管理-树状结构列表查询", notes="空间管理-树状结构列表查询")
+	 @GetMapping(value = "/treeList")
+	 public Result<List<SpaceTreeNodeVO>> treeList(Space space){
+		 if(space.getName()!=null && !"".equals(space.getName())){
+			 QueryWrapper<Space> queryWrapper = new QueryWrapper<>();
+			 queryWrapper.like(space.getName() != null && !space.getName().equals("name"),"name",space.getName());
+			 List<Space> list = spaceService.list(queryWrapper);
+			 List<SpaceTreeNodeVO> list1 = SpaceConvert.INSTANCE.convert(list);
+			 return Result.OK(list1);
+		 }else {
+			 List<SpaceTreeNodeVO> list = spaceService.getChildrenNode("0");
+			 return Result.OK(list);
+		 }
+	 }
+
 	 @ApiOperation(value="空间管理--列表查询", notes="空间管理--列表查询")
 	 @ApiOperation(value="空间管理--列表查询", notes="空间管理--列表查询")
 	 @GetMapping(value = "/list")
 	 @GetMapping(value = "/list")
-	 public Result<List<Space>> queryList(Space space,HttpServletRequest req){
+	 public Result<List<Space>> queryList(Space space){
 	 	QueryWrapper<Space> queryWrapper = new QueryWrapper<>();
 	 	QueryWrapper<Space> queryWrapper = new QueryWrapper<>();
 	 	queryWrapper.like(space.getName() != null && !space.getName().equals(""),"name",space.getName());
 	 	queryWrapper.like(space.getName() != null && !space.getName().equals(""),"name",space.getName());
 	 	List<Space> list = spaceService.list(queryWrapper);
 	 	List<Space> list = spaceService.list(queryWrapper);

+ 20 - 0
jeecg_module_ems/src/main/java/org/jeecg/modules/baseSpace/convert/SpaceConvert.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.baseSpace.convert;
+
+import org.jeecg.modules.baseSpace.entity.Space;
+import org.jeecg.modules.baseSpace.vo.SpaceTreeNodeVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE,imports ={ CollectionUtils.class, Collectors.class})
+public interface SpaceConvert {
+
+    SpaceConvert INSTANCE = Mappers.getMapper(SpaceConvert.class);
+
+    List<SpaceTreeNodeVO> convert(List<Space> spaceList);
+
+}

+ 7 - 0
jeecg_module_ems/src/main/java/org/jeecg/modules/baseSpace/service/ISpaceService.java

@@ -5,6 +5,8 @@ import org.jeecg.modules.baseSpace.entity.Space;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.exception.JeecgBootException;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.modules.baseSpace.vo.SpaceTreeNodeVO;
+
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -25,6 +27,11 @@ public interface ISpaceService extends IService<Space> {
 	public static final String NOCHILD = "0";
 	public static final String NOCHILD = "0";
 
 
 	/**
 	/**
+	 * 递归获取子节点下的子节点 	1是0否
+	 */
+	public List<SpaceTreeNodeVO> getChildrenNode(String pid);
+
+	/**
 	 * 新增节点
 	 * 新增节点
 	 *
 	 *
 	 * @param space
 	 * @param space

+ 40 - 4
jeecg_module_ems/src/main/java/org/jeecg/modules/baseSpace/service/impl/SpaceServiceImpl.java

@@ -1,21 +1,25 @@
 package org.jeecg.modules.baseSpace.service.impl;
 package org.jeecg.modules.baseSpace.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.exception.JeecgBootException;
-import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.common.system.vo.SelectTreeModel;
 import org.jeecg.common.system.vo.SelectTreeModel;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.baseSpace.convert.SpaceConvert;
 import org.jeecg.modules.baseSpace.entity.Space;
 import org.jeecg.modules.baseSpace.entity.Space;
 import org.jeecg.modules.baseSpace.mapper.SpaceMapper;
 import org.jeecg.modules.baseSpace.mapper.SpaceMapper;
 import org.jeecg.modules.baseSpace.service.ISpaceService;
 import org.jeecg.modules.baseSpace.service.ISpaceService;
+import org.jeecg.modules.baseSpace.vo.SpaceTreeNodeVO;
+import org.jeecg.modules.tpmEquipmentTree.convert.TpmEquipmentTreeConvert;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
 /**
 /**
  * @Description: 空间管理
  * @Description: 空间管理
  * @Author: jeecg-boot
  * @Author: jeecg-boot
@@ -25,6 +29,38 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 @Service
 public class SpaceServiceImpl extends ServiceImpl<SpaceMapper, Space> implements ISpaceService {
 public class SpaceServiceImpl extends ServiceImpl<SpaceMapper, Space> implements ISpaceService {
 
 
+    @Autowired
+    private SpaceMapper spaceMapper;
+
+    /**
+     * 递归获取子节点下的子节点 	1是0否
+     */
+    public List<SpaceTreeNodeVO> getChildrenNode(String pid){
+        List<SpaceTreeNodeVO> newTrees = new ArrayList<>();
+
+        Space equipmentTree = new Space();
+        equipmentTree.setParentid(pid);
+        QueryWrapper<Space> queryWrapper = new QueryWrapper(equipmentTree);
+        List<Space> list = spaceMapper.selectList(queryWrapper);
+
+        if(list!=null && list.size()>0){
+            List<SpaceTreeNodeVO> list1 = SpaceConvert.INSTANCE.convert(list);
+            for (SpaceTreeNodeVO vo :list1){
+                if("1".equals(vo.getHasChild())){//有子节点
+                    List<SpaceTreeNodeVO> children = getChildrenNode(vo.getId());//通过pid查询获取列表,递归
+                    vo.setChildren(children);
+                    newTrees.add(vo);
+                }else if("0".equals(vo.getHasChild())) {//无子节点
+                    newTrees.add(vo);
+                }
+            }
+        }
+
+
+        return newTrees;
+    }
+
+
 	@Override
 	@Override
 	public void addSpace(Space space) {
 	public void addSpace(Space space) {
 	   //新增时设置hasChild为0
 	   //新增时设置hasChild为0

+ 39 - 0
jeecg_module_ems/src/main/java/org/jeecg/modules/baseSpace/vo/SpaceTreeNodeVO.java

@@ -0,0 +1,39 @@
+package org.jeecg.modules.baseSpace.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class SpaceTreeNodeVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**主键*/
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private java.lang.String id;
+    /**上级id*/
+    @Excel(name = "上级id", width = 15)
+    @ApiModelProperty(value = "上级id")
+    private java.lang.String parentid;
+    /**名称*/
+    @Excel(name = "名称", width = 15)
+    @ApiModelProperty(value = "名称")
+    private java.lang.String name;
+    /**是否有子节点*/
+    @Excel(name = "是否有子节点", width = 15, dicCode = "yn")
+    @Dict(dicCode = "yn")
+    @ApiModelProperty(value = "是否有子节点")
+    private java.lang.String hasChild;
+
+    /**
+     * 子集
+     */
+    List<SpaceTreeNodeVO> children;
+}