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<>(); + } }