diff --git a/pom.xml b/pom.xml index 8698c818..4786dcb2 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.31 + 3.0.33 17 ${java.version} diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index fc27fc71..c9f860f3 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -26,7 +26,7 @@ https://github.com/YunaiV/ruoyi-vue-pro - 3.0.31 + 3.0.33 1.6.0 3.4.5 diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java index 8ec28735..43b1dffc 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java @@ -46,6 +46,10 @@ public interface DeptApi { @Operation(summary = "获得公司精简信息列表") CommonResult> getSimpleCompanyList(); + @GetMapping(PREFIX + "/all-company-list") + @Operation(summary = "获得所有公司精简信息列表") + CommonResult> getAllCompanyList(); + @GetMapping(PREFIX + "/get") @Operation(summary = "获得部门信息") @Parameter(name = "id", description = "部门编号", example = "1024", required = true) diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java index 55fac3b6..6dadbe08 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java @@ -66,6 +66,17 @@ public class DeptApiImpl implements DeptApi { return success(BeanUtils.toBean(companies, DeptSimpleRespDTO.class)); } + @Override + public CommonResult> getAllCompanyList() { + List allCompanies = deptService.getAllCompanyList(); + // 还需要把用户归属的公司加上 + List userCompanyList = deptService.getUserCompanyList(); + allCompanies.addAll(userCompanyList); + // 去重 + List companies = allCompanies.stream().distinct().toList(); + return success(BeanUtils.toBean(companies, DeptSimpleRespDTO.class)); + } + @Override public CommonResult getDept(Long id) { DeptDO dept = deptService.getDept(id); diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java index 7d764c0e..6e65ad3f 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java @@ -2,8 +2,10 @@ package cn.iocoder.yudao.module.system.controller.admin.dept; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.CompanyDeptInfo; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.system.api.dept.dto.CompanyDeptInfoRespDTO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO; @@ -20,6 +22,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -78,12 +81,27 @@ public class DeptController { } @GetMapping(value = {"/list-company-simple", "/simple-company-list"}) - @Operation(summary = "获取公司精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项") + @Operation(summary = "获取用户所属公司精简信息列表", description = "只包含被开启的部门,主要用于前端的下拉选项") public CommonResult> getSimpleCompanyList() { List list = deptService.getUserCompanyList(); return success(BeanUtils.toBean(list, DeptSimpleRespVO.class)); } + @GetMapping(value = {"/list-all-company", "/all-company-list"}) + @Operation(summary = "获取所有公司精简信息列表", description = "只包含被开启的公司部门,主要用于前端的下拉选项") + @PreAuthorize("@ss.hasPermission('system:dept:query')") + public CommonResult> getAllCompanyList() { + List list = deptService.getAllCompanyList(); + // 还需要把用户归属的公司加上 + List userCompanyList = deptService.getUserCompanyList(); + list.addAll(userCompanyList); + // 去重 + list = list.stream().distinct().toList(); + return success(BeanUtils.toBean(list, DeptSimpleRespVO.class)); + } + + + @GetMapping("/top-level-list") @Operation(summary = "获取顶级部门列表", description = "用于懒加载,只返回没有父部门的顶级部门") @PreAuthorize("@ss.hasPermission('system:dept:query')") @@ -110,4 +128,13 @@ public class DeptController { return success(BeanUtils.toBean(dept, DeptRespVO.class)); } + @GetMapping("/company-dept-info") + @Operation(summary = "获得指定用户的公司部门信息") + @Parameter(name = "userId", description = "用户编号", required = true, example = "1") + @PreAuthorize("@ss.hasPermission('system:dept:query')") + public CommonResult> getCompanyDeptInfoListByUserId(@RequestParam("userId") Long userId) { + Set companyDeptInfos = deptService.getCompanyDeptInfoListByUserId(userId); + return success(BeanUtils.toBean(companyDeptInfos, CompanyDeptInfoRespDTO.class)); + } + } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java index 2bbcbf76..5d8aca05 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java @@ -98,4 +98,18 @@ public interface DeptMapper extends BaseMapperX { return selectOne(DeptDO::getCode, code); } + /** + * 查询所有公司列表 + * + * @param status 状态 + * @return 公司列表 + */ + default List selectAllCompanyList(Integer status) { + return selectList(new LambdaQueryWrapperX() + .eq(DeptDO::getIsCompany, true) + .eqIfPresent(DeptDO::getStatus, status) + .orderByAsc(DeptDO::getSort) + ); + } + } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java index 0641c18b..883f9815 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -135,4 +135,11 @@ public interface DeptService { * @return 直接子部门列表 */ List getDirectChildDeptList(Long parentId); + + /** + * 获取所有公司列表 + * + * @return 公司列表 + */ + List getAllCompanyList(); } diff --git a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index dbca17ea..91368b61 100644 --- a/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-server/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -347,4 +347,10 @@ public class DeptServiceImpl implements DeptService { return deptMapper.selectListByParentId(parentId, CommonStatusEnum.ENABLE.getStatus()); } + @Override + public List getAllCompanyList() { + // 查询所有启用状态的公司部门 + return deptMapper.selectAllCompanyList(CommonStatusEnum.ENABLE.getStatus()); + } + }