From 032ec6490c2079efe664fd8332e243ba375f569b Mon Sep 17 00:00:00 2001 From: liuxinxin Date: Wed, 1 Mar 2023 09:15:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=88=97=E8=A1=A8=E6=A0=91?= =?UTF-8?q?=E5=BD=A2=E6=8E=A5=E5=8F=A3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/config/DingOrganizationProperties.java | 19 +++++++++ .../pmapi/ding/task/EmployeeBatchGetTask.java | 1 - .../controller/ExpertAvoidCompanyController.java | 5 +-- .../pmapi/expert/entity/ExpertUserFullInfo.java | 2 +- .../controller/DingOrganizationController.java | 14 +++++-- .../organization/manage/OrganizationManage.java | 47 ++++++++++++++++++++++ .../organization/model/vo/OrganizationTreeVO.java | 43 ++++++++++++++++++++ .../pmapi/sys/controller/MenuController.java | 7 ++-- pmapi/src/main/resources/application-dev.yml | 4 ++ 9 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/common/config/DingOrganizationProperties.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/OrganizationTreeVO.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/config/DingOrganizationProperties.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/DingOrganizationProperties.java new file mode 100644 index 0000000..d6cd0e7 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/DingOrganizationProperties.java @@ -0,0 +1,19 @@ +package com.ningdatech.pmapi.common.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author liuxinxin + * @date 2022/9/9 下午5:37 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "organization") +public class DingOrganizationProperties { + private List deptVisibleScopes = new ArrayList<>(); +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java index 4798e83..2e7de02 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java @@ -71,7 +71,6 @@ public class EmployeeBatchGetTask { GenericResult> firstPageGenericResult = zwddClient.pageOrganizationEmployeePositions(query); Page data = firstPageGenericResult.getData(); if (CollUtil.isNotEmpty(data.getData())) { - allOrganizationEmployeePositionList.addAll(data.getData()); } Long totalSize = data.getTotalSize(); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertAvoidCompanyController.java b/pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertAvoidCompanyController.java index e078e71..a5c4ef5 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertAvoidCompanyController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertAvoidCompanyController.java @@ -1,13 +1,12 @@ package com.ningdatech.pmapi.expert.controller; -import org.springframework.web.bind.annotation.RequestMapping; - import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; /** *

- * 前端控制器 + * 前端控制器 *

* * @author Liuxinxin diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/expert/entity/ExpertUserFullInfo.java b/pmapi/src/main/java/com/ningdatech/pmapi/expert/entity/ExpertUserFullInfo.java index e89563e..0516acb 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/expert/entity/ExpertUserFullInfo.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/expert/entity/ExpertUserFullInfo.java @@ -11,7 +11,7 @@ import java.time.LocalDateTime; /** *

- * + * *

* * @author Liuxinxin diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java index 1268dd4..8c70934 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java @@ -4,18 +4,18 @@ package com.ningdatech.pmapi.organization.controller; import com.ningdatech.basic.model.PageVo; import com.ningdatech.pmapi.organization.manage.OrganizationManage; import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO; +import com.ningdatech.pmapi.organization.model.vo.OrganizationTreeVO; import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.List; /** *

@@ -42,4 +42,10 @@ public class DingOrganizationController { return organizationManage.organizationList(reqOrganizationListPO); } + @PostMapping("/get-child-list") + @ApiOperation("获取组织架构的树状结构(单位筛选列表)") + public List getChildOrganizationList(@RequestParam(value = "parentCode", required = false) String parentCode) { + return organizationManage.getChildOrganizationList(parentCode); + } + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java index 69e314a..2a2eb19 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java @@ -1,18 +1,24 @@ package com.ningdatech.pmapi.organization.manage; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ningdatech.basic.model.PageVo; +import com.ningdatech.pmapi.common.config.DingOrganizationProperties; +import com.ningdatech.pmapi.common.util.StrUtils; import com.ningdatech.pmapi.organization.model.entity.DingOrganization; import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO; +import com.ningdatech.pmapi.organization.model.vo.OrganizationTreeVO; import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO; import com.ningdatech.pmapi.organization.service.IDingOrganizationService; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -26,6 +32,8 @@ public class OrganizationManage { private final IDingOrganizationService iDingOrganizationService; + private final DingOrganizationProperties dingOrganizationProperties; + public PageVo organizationList(ReqOrganizationListPO reqOrganizationListPO) { String orgName = reqOrganizationListPO.getOrgName(); @@ -54,4 +62,43 @@ public class OrganizationManage { return pageVo; } + public List getChildOrganizationList(String parentCode) { + List parentCodeList = new ArrayList<>(); + List dingOrganizationList = new ArrayList<>(); + if (StrUtils.isBlank(parentCode)) { + parentCodeList = dingOrganizationProperties.getDeptVisibleScopes(); + dingOrganizationList = iDingOrganizationService.list(Wrappers.lambdaQuery(DingOrganization.class) + .in(DingOrganization::getOrganizationCode, parentCodeList)); + } else { + parentCodeList = CollectionUtil.toList(parentCode); + dingOrganizationList = iDingOrganizationService + .list(Wrappers.lambdaQuery(DingOrganization.class).in(DingOrganization::getParentCode, parentCodeList)); + } + + if (CollectionUtils.isEmpty(dingOrganizationList)) { + return new ArrayList<>(); + } + + dingOrganizationList.sort(Comparator.comparing(DingOrganization::getDisplayOrder)); + return dingOrganizationList.stream().map(r -> { + OrganizationTreeVO treeVO = new OrganizationTreeVO(); + treeVO.setId(r.getId()); + treeVO.setName(r.getOrganizationName()); +// Boolean enabled = "1".equals(r.get()); +// treeVO.setEnabled(enabled); + treeVO.setOrganizationCode(r.getOrganizationCode()); + treeVO.setParentCode(r.getParentCode()); +// treeVO.setSubCount(r.get()); +// Boolean isLeaf = true; +// Long subCount = r.getSubCount(); +// if (Objects.nonNull(subCount) && subCount > 0) { +// isLeaf = false; +// } +// treeVO.setIsLeaf(isLeaf); +// treeVO.setDeptSort(r.getDeptSort()); +// treeVO.setUnionCode(r.getName() + "##" + r.getOrganizationCode()); + return treeVO; + }).collect(Collectors.toList()); + } + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/OrganizationTreeVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/OrganizationTreeVO.java new file mode 100644 index 0000000..b2249b2 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/OrganizationTreeVO.java @@ -0,0 +1,43 @@ +package com.ningdatech.pmapi.organization.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author liuxinxin + * @date 2022/8/17 下午2:01 + */ +@Data +public class OrganizationTreeVO { + + private Long id; + + @ApiModelProperty("上级部门") + private String parentCode; + + @ApiModelProperty("浙政钉组织编号") + private String organizationCode; + +// @ApiModelProperty("子部门数目") +// private Long subCount; +// +// @ApiModelProperty("排序") +// private Long deptSort; +// +// @ApiModelProperty("状态(禁用,启用)") + private Boolean enabled; + + @ApiModelProperty("名称") + private String name; + +// @ApiModelProperty(value = "子节点") +// private List children; +// +// @ApiModelProperty(value = "是否为叶子节点") +// private Boolean isLeaf; +// +// @ApiModelProperty(value = "联合唯一字段方便页面使用(name##organizationCode)") +// private String unionCode; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java index 3674466..7c89151 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/controller/MenuController.java @@ -3,18 +3,17 @@ package com.ningdatech.pmapi.sys.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ningdatech.basic.auth.AbstractLoginUserUtil; import com.ningdatech.basic.util.CollUtils; import com.ningdatech.log.annotation.WebLog; import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; import com.ningdatech.pmapi.common.util.TreeUtil; -import com.ningdatech.pmapi.sys.model.entity.Menu; +import com.ningdatech.pmapi.sys.manage.MenuManage; import com.ningdatech.pmapi.sys.model.dto.MenuQueryDTO; import com.ningdatech.pmapi.sys.model.dto.MenuSaveDTO; import com.ningdatech.pmapi.sys.model.dto.MenuUpdateDTO; +import com.ningdatech.pmapi.sys.model.entity.Menu; import com.ningdatech.pmapi.sys.model.vo.MenuRoleVO; import com.ningdatech.pmapi.sys.model.vo.MenuVO; -import com.ningdatech.pmapi.sys.manage.MenuManage; import com.ningdatech.pmapi.sys.service.IMenuService; import com.ningdatech.pmapi.user.util.LoginUserUtil; import io.swagger.annotations.Api; @@ -93,7 +92,7 @@ public class MenuController { @PostMapping("/modify") @WebLog("编辑菜单") public MenuVO handlerUpdate(@RequestBody MenuUpdateDTO data) { - menuService.update(data, AbstractLoginUserUtil.getUserId()); + menuService.update(data, LoginUserUtil.getUserId()); return BeanUtil.toBean(data, MenuVO.class); } diff --git a/pmapi/src/main/resources/application-dev.yml b/pmapi/src/main/resources/application-dev.yml index fb43bdf..f2e6e8c 100644 --- a/pmapi/src/main/resources/application-dev.yml +++ b/pmapi/src/main/resources/application-dev.yml @@ -170,6 +170,10 @@ sa-token: token-style: uuid # 是否输出操作日志 is-log: false +#浙政钉公司顶级organizationCode +organization: + dept-visible-scopes: + - 430857a6-fa0b-49f6-89f8-5437b0e2d234 yxt: wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl