diff --git a/backend/src/main/java/com/stdproject/controller/AppOrganizationController.java b/backend/src/main/java/com/stdproject/controller/AppOrganizationController.java
index ca61aaf..9e16cf7 100644
--- a/backend/src/main/java/com/stdproject/controller/AppOrganizationController.java
+++ b/backend/src/main/java/com/stdproject/controller/AppOrganizationController.java
@@ -13,12 +13,15 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
+import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
+import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
*
@@ -42,18 +45,19 @@ public class AppOrganizationController {
@Operation(summary = "查询公司结构树")
@GetMapping("/getCompanyTree")
@OperationLog(type = "06", module = "组织管理", description = "查询公司结构树")
- public Result> getCompanyTree() {
+ public Result> getCompanyTree(@RequestParam String appId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("orgtype", "01");
+ queryWrapper.eq(StrUtil.isNotBlank(appId),"app_id", appId);
queryWrapper.eq("isvaild", "1");
queryWrapper.orderByAsc("orgcode");
List children = appOrganizationService.list(queryWrapper);
- return Result.success(children);
+ List organizationTreeNodes = buildOrganizationTree(children, "0");
+ return Result.success(organizationTreeNodes);
}
- @Operation(summary = "查询部门列表")
+ @Operation(summary = "查询公司/部门列表")
@GetMapping("/getDepartmentList")
- @OperationLog(type = "06", module = "组织管理", description = "查询部门列表")
+ @OperationLog(type = "06", module = "组织管理", description = "查询公司/部门列表")
public Result> getDepartmentList(@RequestParam String appId, @RequestParam String orgtype,
@RequestParam String parentid, @RequestParam String keystr) {
QueryWrapper queryWrapper = new QueryWrapper<>();
@@ -231,5 +235,99 @@ public class AppOrganizationController {
// 如果列表不为空,返回第一个记录的orgcode
return list.isEmpty() ? null : list.get(0).getOrgcode();
}
+ /**
+ * 构建菜单树
+ */
+ private List buildOrganizationTree(List allOrganizations, String parentId) {
+ return allOrganizations.stream()
+ .filter(organization -> parentId.equals(organization.getParentid()))
+ .map(organization -> {
+ OrganizationTreeNode node = new OrganizationTreeNode();
+ node.setId(organization.getId());
+ node.setAppId(organization.getAppId());
+ node.setOrgtype(organization.getOrgtype());
+ node.setOrgcode(organization.getOrgcode());
+ node.setOrgname(organization.getOrgname());
+ node.setParentid(organization.getParentid());
+ node.setManager(organization.getManager());
+ node.setDescription(organization.getDescription());
+ node.setAddress(organization.getAddress());
+ node.setContactPhone(organization.getContactPhone());
+ node.setContactPerson(organization.getContactPerson());
+ node.setIsvaild(organization.getIsvaild());
+ node.setChildren(buildOrganizationTree(allOrganizations, organization.getId()));
+ return node;
+ })
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 组织树节点
+ */
+ @Data
+ public static class OrganizationTreeNode {
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 应用ID 关联应用系统
+ */
+ private String appId;
+
+ /**
+ * 组织类型:01-公司 02-部门
+ */
+ private String orgtype;
+
+ /**
+ * 组织编号
+ */
+ private String orgcode;
+
+ /**
+ * 组织名称
+ */
+ private String orgname;
+
+ /**
+ * 上级ID
+ */
+ private String parentid;
+
+ /**
+ * 组织负责人
+ */
+ private String manager;
+
+ /**
+ * 组织详情
+ */
+ private String description;
+
+ /**
+ * 联系地址
+ */
+ private String address;
+
+ /**
+ * 联系电话
+ */
+ private String contactPhone;
+
+ /**
+ * 联系人
+ */
+ private String contactPerson;
+
+ /**
+ * 是否有效 1-是 0-否
+ */
+ private String isvaild;
+
+ private List children = new ArrayList<>();
+ }
}