@@ -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<String> deptVisibleScopes = new ArrayList<>(); | |||||
} |
@@ -71,7 +71,6 @@ public class EmployeeBatchGetTask { | |||||
GenericResult<Page<OrganizationEmployeePosition>> firstPageGenericResult = zwddClient.pageOrganizationEmployeePositions(query); | GenericResult<Page<OrganizationEmployeePosition>> firstPageGenericResult = zwddClient.pageOrganizationEmployeePositions(query); | ||||
Page<OrganizationEmployeePosition> data = firstPageGenericResult.getData(); | Page<OrganizationEmployeePosition> data = firstPageGenericResult.getData(); | ||||
if (CollUtil.isNotEmpty(data.getData())) { | if (CollUtil.isNotEmpty(data.getData())) { | ||||
allOrganizationEmployeePositionList.addAll(data.getData()); | allOrganizationEmployeePositionList.addAll(data.getData()); | ||||
} | } | ||||
Long totalSize = data.getTotalSize(); | Long totalSize = data.getTotalSize(); | ||||
@@ -1,13 +1,12 @@ | |||||
package com.ningdatech.pmapi.expert.controller; | package com.ningdatech.pmapi.expert.controller; | ||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.stereotype.Controller; | import org.springframework.stereotype.Controller; | ||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 前端控制器 | |||||
* 前端控制器 | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author Liuxinxin | * @author Liuxinxin | ||||
@@ -11,7 +11,7 @@ import java.time.LocalDateTime; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* | |||||
* | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author Liuxinxin | * @author Liuxinxin | ||||
@@ -4,18 +4,18 @@ package com.ningdatech.pmapi.organization.controller; | |||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.pmapi.organization.manage.OrganizationManage; | import com.ningdatech.pmapi.organization.manage.OrganizationManage; | ||||
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO; | 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.model.vo.ResOrganizationListVO; | ||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import io.swagger.annotations.ApiOperation; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.validation.annotation.Validated; | 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 javax.validation.Valid; | ||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -42,4 +42,10 @@ public class DingOrganizationController { | |||||
return organizationManage.organizationList(reqOrganizationListPO); | return organizationManage.organizationList(reqOrganizationListPO); | ||||
} | } | ||||
@PostMapping("/get-child-list") | |||||
@ApiOperation("获取组织架构的树状结构(单位筛选列表)") | |||||
public List<OrganizationTreeVO> getChildOrganizationList(@RequestParam(value = "parentCode", required = false) String parentCode) { | |||||
return organizationManage.getChildOrganizationList(parentCode); | |||||
} | |||||
} | } |
@@ -1,18 +1,24 @@ | |||||
package com.ningdatech.pmapi.organization.manage; | package com.ningdatech.pmapi.organization.manage; | ||||
import cn.hutool.core.collection.CollUtil; | 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.StringUtils; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.model.PageVo; | 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.entity.DingOrganization; | ||||
import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO; | 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.model.vo.ResOrganizationListVO; | ||||
import com.ningdatech.pmapi.organization.service.IDingOrganizationService; | import com.ningdatech.pmapi.organization.service.IDingOrganizationService; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Comparator; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
@@ -26,6 +32,8 @@ public class OrganizationManage { | |||||
private final IDingOrganizationService iDingOrganizationService; | private final IDingOrganizationService iDingOrganizationService; | ||||
private final DingOrganizationProperties dingOrganizationProperties; | |||||
public PageVo<ResOrganizationListVO> organizationList(ReqOrganizationListPO reqOrganizationListPO) { | public PageVo<ResOrganizationListVO> organizationList(ReqOrganizationListPO reqOrganizationListPO) { | ||||
String orgName = reqOrganizationListPO.getOrgName(); | String orgName = reqOrganizationListPO.getOrgName(); | ||||
@@ -54,4 +62,43 @@ public class OrganizationManage { | |||||
return pageVo; | return pageVo; | ||||
} | } | ||||
public List<OrganizationTreeVO> getChildOrganizationList(String parentCode) { | |||||
List<String> parentCodeList = new ArrayList<>(); | |||||
List<DingOrganization> 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()); | |||||
} | |||||
} | } |
@@ -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<OrganizationTreeVO> children; | |||||
// | |||||
// @ApiModelProperty(value = "是否为叶子节点") | |||||
// private Boolean isLeaf; | |||||
// | |||||
// @ApiModelProperty(value = "联合唯一字段方便页面使用(name##organizationCode)") | |||||
// private String unionCode; | |||||
} |
@@ -3,18 +3,17 @@ package com.ningdatech.pmapi.sys.controller; | |||||
import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.auth.AbstractLoginUserUtil; | |||||
import com.ningdatech.basic.util.CollUtils; | import com.ningdatech.basic.util.CollUtils; | ||||
import com.ningdatech.log.annotation.WebLog; | import com.ningdatech.log.annotation.WebLog; | ||||
import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; | import com.ningdatech.pmapi.common.model.entity.MenuTreeEntity; | ||||
import com.ningdatech.pmapi.common.util.TreeUtil; | 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.MenuQueryDTO; | ||||
import com.ningdatech.pmapi.sys.model.dto.MenuSaveDTO; | import com.ningdatech.pmapi.sys.model.dto.MenuSaveDTO; | ||||
import com.ningdatech.pmapi.sys.model.dto.MenuUpdateDTO; | 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.MenuRoleVO; | ||||
import com.ningdatech.pmapi.sys.model.vo.MenuVO; | 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.sys.service.IMenuService; | ||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
@@ -93,7 +92,7 @@ public class MenuController { | |||||
@PostMapping("/modify") | @PostMapping("/modify") | ||||
@WebLog("编辑菜单") | @WebLog("编辑菜单") | ||||
public MenuVO handlerUpdate(@RequestBody MenuUpdateDTO data) { | public MenuVO handlerUpdate(@RequestBody MenuUpdateDTO data) { | ||||
menuService.update(data, AbstractLoginUserUtil.getUserId()); | |||||
menuService.update(data, LoginUserUtil.getUserId()); | |||||
return BeanUtil.toBean(data, MenuVO.class); | return BeanUtil.toBean(data, MenuVO.class); | ||||
} | } | ||||
@@ -170,6 +170,10 @@ sa-token: | |||||
token-style: uuid | token-style: uuid | ||||
# 是否输出操作日志 | # 是否输出操作日志 | ||||
is-log: false | is-log: false | ||||
#浙政钉公司顶级organizationCode | |||||
organization: | |||||
dept-visible-scopes: | |||||
- 430857a6-fa0b-49f6-89f8-5437b0e2d234 | |||||
yxt: | yxt: | ||||
wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl | wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl | ||||