From d34744aed7c451b4a8a67acc851708bd05c223e6 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Tue, 20 Jan 2026 10:04:14 +0800
Subject: [PATCH] 1. 增加获取巡检分组树列表接口。

---
 ard-admin/src/main/java/com/ard/web/controller/inspection/BigFileUploadController.java          |   17 +++
 ard-inspection/src/main/java/com/ard/inspection/service/impl/ArdInspectionGroupServiceImpl.java |   99 +++++++++++++++++++
 ard-admin/src/main/java/com/ard/web/controller/inspection/ArdInspectionGroupController.java     |   15 ++
 ard-inspection/src/main/java/com/ard/inspection/domain/ArdInspectionGroup.java                  |   77 +++++++++++++-
 ard-inspection/src/main/java/com/ard/inspection/domain/GroupTreeSelect.java                     |   72 ++++++++++++++
 ard-inspection/src/main/java/com/ard/inspection/service/IArdInspectionGroupService.java         |   13 ++
 6 files changed, 280 insertions(+), 13 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/inspection/ArdInspectionGroupController.java b/ard-admin/src/main/java/com/ard/web/controller/inspection/ArdInspectionGroupController.java
index 06b8006..4eca2e6 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/inspection/ArdInspectionGroupController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/inspection/ArdInspectionGroupController.java
@@ -1,14 +1,11 @@
 package com.ard.web.controller.inspection;
 
 import java.util.List;
-import javax.servlet.http.HttpServletResponse;
 
 import com.ard.common.annotation.Log;
 import com.ard.common.core.controller.BaseController;
 import com.ard.common.core.domain.AjaxResult;
-import com.ard.common.core.page.TableDataInfo;
 import com.ard.common.enums.BusinessType;
-import com.ard.common.utils.poi.ExcelUtil;
 import com.ard.inspection.domain.ArdInspectionGroup;
 import com.ard.inspection.service.IArdInspectionGroupService;
 import io.swagger.annotations.Api;
@@ -68,7 +65,7 @@
     @Log(title = "精细化巡检分组", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ArdInspectionGroup ardInspectionGroup) {
-        if (ardInspectionGroupService.checkInspectionGroupNameUnique(ardInspectionGroup)){
+        if (!ardInspectionGroupService.checkInspectionGroupNameUnique(ardInspectionGroup)){
             return error("新增分组'" + ardInspectionGroup.getGroupName() + "'失败,分组名称已存在");
         }
         ardInspectionGroup.setCreateBy(getUsername());
@@ -112,4 +109,14 @@
         return toAjax(ardInspectionGroupService.deleteArdInspectionGroupByGroupId(groupId));
     }
 
+    /**
+     * 获取巡检分组树列表
+     */
+    @ApiOperation("获取巡检分组树列表")
+    @PreAuthorize("@ss.hasPermi('inspection:group:groupTree')")
+    @GetMapping("/groupTree")
+    public AjaxResult deptTree(ArdInspectionGroup ardInspectionGroup) {
+        return success(ardInspectionGroupService.selectGroupTreeList(ardInspectionGroup));
+    }
+
 }
diff --git a/ard-admin/src/main/java/com/ard/web/controller/inspection/BigFileUploadController.java b/ard-admin/src/main/java/com/ard/web/controller/inspection/BigFileUploadController.java
new file mode 100644
index 0000000..dee3e85
--- /dev/null
+++ b/ard-admin/src/main/java/com/ard/web/controller/inspection/BigFileUploadController.java
@@ -0,0 +1,17 @@
+package com.ard.web.controller.inspection;
+
+import io.lettuce.core.dynamic.annotation.Value;
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "大文件上传")
+@RestController
+@RequestMapping("/inspection/bigfile")
+public class BigFileUploadController {
+
+    /** 若依文件上传根目录(从配置文件读取) */
+    //@Value("${ruoyi.profile}")
+    private String uploadRootDir;
+
+}
diff --git a/ard-inspection/src/main/java/com/ard/inspection/domain/ArdInspectionGroup.java b/ard-inspection/src/main/java/com/ard/inspection/domain/ArdInspectionGroup.java
index a0701c5..bf9a137 100644
--- a/ard-inspection/src/main/java/com/ard/inspection/domain/ArdInspectionGroup.java
+++ b/ard-inspection/src/main/java/com/ard/inspection/domain/ArdInspectionGroup.java
@@ -1,8 +1,10 @@
 package com.ard.inspection.domain;
 
-import com.ard.common.annotation.Excel;
 import com.ard.common.core.domain.BaseEntity;
-import lombok.Data;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 精细化巡检分组对象 ard_inspection_group
@@ -10,7 +12,6 @@
  * @author xia
  * @date 2026-01-15
  */
-@Data
 public class ArdInspectionGroup extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
@@ -19,19 +20,79 @@
     private Long groupId;
 
     /** 分组父部门id */
-    @Excel(name = "分组父部门id")
     private Long groupParentId;
 
     /** 祖级列表 */
-    @Excel(name = "祖级列表")
     private String ancestors;
 
     /** 分组名称 */
-    @Excel(name = "分组名称")
     private String groupName;
 
     /** 显示顺序 */
-    @Excel(name = "显示顺序")
-    private Long orderNum;
+    private Integer orderNum;
+
+    /** 父部门名称 */
+    private String parentName;
+
+    /** 子部门 */
+    private List<ArdInspectionGroup> children = new ArrayList<ArdInspectionGroup>();
+
+    public Long getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
+    }
+
+    public Long getGroupParentId() {
+        return groupParentId;
+    }
+
+    public void setGroupParentId(Long groupParentId) {
+        this.groupParentId = groupParentId;
+    }
+
+    public String getAncestors() {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors) {
+        this.ancestors = ancestors;
+    }
+
+    @NotBlank(message = "分组名称不能为空")
+    @Size(min = 0, max = 30, message = "分组名称长度不能超过30个字符")
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public String getParentName() {
+        return parentName;
+    }
+
+    public void setParentName(String parentName) {
+        this.parentName = parentName;
+    }
+
+    public List<ArdInspectionGroup> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<ArdInspectionGroup> children) {
+        this.children = children;
+    }
 
 }
diff --git a/ard-inspection/src/main/java/com/ard/inspection/domain/GroupTreeSelect.java b/ard-inspection/src/main/java/com/ard/inspection/domain/GroupTreeSelect.java
new file mode 100644
index 0000000..811d5e7
--- /dev/null
+++ b/ard-inspection/src/main/java/com/ard/inspection/domain/GroupTreeSelect.java
@@ -0,0 +1,72 @@
+package com.ard.inspection.domain;
+
+import com.ard.common.core.domain.entity.SysMenu;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class GroupTreeSelect implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 节点ID */
+    private Long id;
+
+    /** 节点名称 */
+    private String label;
+
+    /** 子节点 */
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private List<GroupTreeSelect> children;
+
+    public GroupTreeSelect()
+    {
+
+    }
+
+    public GroupTreeSelect(ArdInspectionGroup group)
+    {
+        this.id = group.getGroupId();
+        this.label = group.getGroupName();
+        this.children = group.getChildren().stream().map(GroupTreeSelect::new).collect(Collectors.toList());
+    }
+
+    public GroupTreeSelect(SysMenu menu)
+    {
+        this.id = menu.getMenuId();
+        this.label = menu.getMenuName();
+        this.children = menu.getChildren().stream().map(GroupTreeSelect::new).collect(Collectors.toList());
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public String getLabel()
+    {
+        return label;
+    }
+
+    public void setLabel(String label)
+    {
+        this.label = label;
+    }
+
+    public List<GroupTreeSelect> getChildren()
+    {
+        return children;
+    }
+
+    public void setChildren(List<GroupTreeSelect> children)
+    {
+        this.children = children;
+    }
+
+}
diff --git a/ard-inspection/src/main/java/com/ard/inspection/service/IArdInspectionGroupService.java b/ard-inspection/src/main/java/com/ard/inspection/service/IArdInspectionGroupService.java
index 4373fcd..fb3496b 100644
--- a/ard-inspection/src/main/java/com/ard/inspection/service/IArdInspectionGroupService.java
+++ b/ard-inspection/src/main/java/com/ard/inspection/service/IArdInspectionGroupService.java
@@ -1,6 +1,7 @@
 package com.ard.inspection.service;
 
 import com.ard.inspection.domain.ArdInspectionGroup;
+import com.ard.inspection.domain.GroupTreeSelect;
 
 import java.util.List;
 
@@ -83,4 +84,16 @@
      */
     public boolean checkInspectionGroupExistUser(Long groupId);
 
+    /**
+     * 查询分组树结构信息
+     *
+     * @param ardInspectionGroup 精细化巡检分组
+     * @return 分组树信息集合
+     */
+    public List<GroupTreeSelect> selectGroupTreeList(ArdInspectionGroup ardInspectionGroup);
+
+    public List<GroupTreeSelect> buildGroupTreeSelect(List<ArdInspectionGroup> groups);
+
+    public List<ArdInspectionGroup> buildGroupTree(List<ArdInspectionGroup> groups);
+
 }
diff --git a/ard-inspection/src/main/java/com/ard/inspection/service/impl/ArdInspectionGroupServiceImpl.java b/ard-inspection/src/main/java/com/ard/inspection/service/impl/ArdInspectionGroupServiceImpl.java
index bd73c0c..57ce7f7 100644
--- a/ard-inspection/src/main/java/com/ard/inspection/service/impl/ArdInspectionGroupServiceImpl.java
+++ b/ard-inspection/src/main/java/com/ard/inspection/service/impl/ArdInspectionGroupServiceImpl.java
@@ -1,8 +1,10 @@
 package com.ard.inspection.service.impl;
 
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
+import java.util.stream.Collectors;
 
-import com.ard.common.annotation.DataScope;
 import com.ard.common.constant.UserConstants;
 import com.ard.common.core.domain.entity.SysUser;
 import com.ard.common.exception.ServiceException;
@@ -11,6 +13,7 @@
 import com.ard.common.utils.StringUtils;
 import com.ard.common.utils.spring.SpringUtils;
 import com.ard.inspection.domain.ArdInspectionGroup;
+import com.ard.inspection.domain.GroupTreeSelect;
 import com.ard.inspection.mapper.ArdInspectionGroupMapper;
 import com.ard.inspection.service.IArdInspectionGroupService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -170,4 +173,98 @@
         return result > 0;
     }
 
+    /**
+     * 查询分组树结构信息
+     *
+     * @param ardInspectionGroup 精细化巡检分组
+     * @return 分组树信息集合
+     */
+    @Override
+    public List<GroupTreeSelect> selectGroupTreeList(ArdInspectionGroup ardInspectionGroup)
+    {
+        List<ArdInspectionGroup> groups = selectArdInspectionGroupList(ardInspectionGroup);
+        return buildGroupTreeSelect(groups);
+    }
+
+    /**
+     * 构建前端所需要下拉树结构
+     *
+     * @param groups 分组列表
+     * @return 下拉树结构列表
+     */
+    @Override
+    public List<GroupTreeSelect> buildGroupTreeSelect(List<ArdInspectionGroup> groups){
+        List<ArdInspectionGroup> groupTrees = buildGroupTree(groups);
+        return groupTrees.stream().map(GroupTreeSelect::new).collect(Collectors.toList());
+    }
+
+    /**
+     * 构建前端所需要树结构
+     *
+     * @param groups 分组列表
+     * @return 树结构列表
+     */
+    @Override
+    public List<ArdInspectionGroup> buildGroupTree(List<ArdInspectionGroup> groups){
+        List<ArdInspectionGroup> returnList = new ArrayList<ArdInspectionGroup>();
+        List<Long> tempList = groups.stream().map(ArdInspectionGroup::getGroupId).collect(Collectors.toList());
+        for (ArdInspectionGroup group : groups)
+        {
+            // 如果是顶级节点, 遍历该父节点的所有子节点
+            if (!tempList.contains(group.getGroupParentId()))
+            {
+                recursionFn(groups, group);
+                returnList.add(group);
+            }
+        }
+        if (returnList.isEmpty())
+        {
+            returnList = groups;
+        }
+        return returnList;
+    }
+
+    /**
+     * 递归列表
+     */
+    private void recursionFn(List<ArdInspectionGroup> list, ArdInspectionGroup t)
+    {
+        // 得到子节点列表
+        List<ArdInspectionGroup> childList = getChildList(list, t);
+        t.setChildren(childList);
+        for (ArdInspectionGroup tChild : childList)
+        {
+            if (hasChild(list, tChild))
+            {
+                recursionFn(list, tChild);
+            }
+        }
+    }
+
+    /**
+     * 得到子节点列表
+     */
+    private List<ArdInspectionGroup> getChildList(List<ArdInspectionGroup> list, ArdInspectionGroup t)
+    {
+        List<ArdInspectionGroup> tlist = new ArrayList<ArdInspectionGroup>();
+        Iterator<ArdInspectionGroup> it = list.iterator();
+        while (it.hasNext())
+        {
+            ArdInspectionGroup n = (ArdInspectionGroup) it.next();
+            if (StringUtils.isNotNull(n.getGroupParentId()) && n.getGroupParentId().longValue() == t.getGroupId().longValue())
+            {
+                tlist.add(n);
+            }
+        }
+        return tlist;
+    }
+
+    /**
+     * 判断是否有子节点
+     */
+    private boolean hasChild(List<ArdInspectionGroup> list, ArdInspectionGroup t)
+    {
+        return getChildList(list, t).size() > 0;
+    }
+
 }

--
Gitblit v1.9.3