diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java index add7bc57..b98504ec 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentBaseService.java @@ -30,6 +30,14 @@ public interface IDepartmentBaseService { */ List list(Map params); + /** + * 部门列表 + * + * @param ids + * @return + */ + List listByIds(List ids); + /** * 部门列表 * @@ -309,4 +317,5 @@ public interface IDepartmentBaseService { * @return */ Integer countAllByAreaCode(String areaCode); + } diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java index f609859b..5b70319f 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java @@ -1,6 +1,7 @@ package ink.wgink.interfaces.department; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.result.SuccessResultList; @@ -111,4 +112,18 @@ public interface IDepartmentUserBaseService { */ void setUser(List departmentUserDTOs); + /** + * 部门列表 + * + * @return + */ + List listDepartmentBySelf(); + + /** + * 部门列表 + * + * @param userId 用户ID + * @return + */ + List listDepartmentByUserId(String userId); } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentController.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentController.java index c29cc1c5..d71f3d08 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentController.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentController.java @@ -1,6 +1,7 @@ package ink.wgink.login.oauth2.client.controller.apis.department; import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.login.oauth2.client.service.department.IDepartmentService; import ink.wgink.pojo.ListPage; @@ -9,6 +10,7 @@ import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResultData; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; import io.swagger.annotations.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +49,16 @@ public class DepartmentController extends DefaultBaseController { return departmentService.listAll(params); } + @ApiOperation(value = "组织部门列表", notes = "组织部门列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list/ids") + public List listByIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return departmentService.listByIds(idsVO.getIds()); + } + @ApiOperation(value = "组织部门zTree列表", notes = "组织部门zTree列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "父ID", paramType = "query", dataType = "String") diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentUserController.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentUserController.java index 2e7c278a..dc526719 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentUserController.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/apis/department/DepartmentUserController.java @@ -4,15 +4,17 @@ import ink.wgink.common.base.DefaultBaseController; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.login.oauth2.client.service.department.IDepartmentUserService; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.result.ErrorResult; -import ink.wgink.pojo.result.SuccessResult; import ink.wgink.pojo.result.SuccessResultList; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -59,4 +61,21 @@ public class DepartmentUserController extends DefaultBaseController { return departmentUserService.listUserId(departmentId); } + @ApiOperation(value = "自己的部门列表", notes = "自己的部门列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-department/self") + public List listDepartmentBySelf() { + return departmentUserService.listDepartmentBySelf(); + } + + @ApiOperation(value = "组织部门用户ID列表", notes = "组织部门用户ID列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-department/user-id/{userId}") + public List listDepartmentByUserId(@PathVariable("userId") String userId) { + return departmentUserService.listDepartmentByUserId(userId); + } + } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentRouteController.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentRouteController.java new file mode 100644 index 00000000..8c0167e8 --- /dev/null +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentRouteController.java @@ -0,0 +1,27 @@ +package ink.wgink.login.oauth2.client.controller.route.department; + +import ink.wgink.interfaces.consts.ISystemConstant; +import io.swagger.annotations.Api; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +/** + * @ClassName: DepartmentRouteController + * @Description: 部门接口 + * @Author: wanggeng + * @Date: 2022/1/11 10:14 PM + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "组织部门接口") +@Controller +@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/department") +public class DepartmentRouteController { + + @GetMapping("list-tree-check") + public ModelAndView selectUser() { + return new ModelAndView("department/list-tree-check"); + } + +} diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentUserRouteController.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentUserRouteController.java index a0c49e57..4504c7b6 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentUserRouteController.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/controller/route/department/DepartmentUserRouteController.java @@ -17,7 +17,7 @@ import org.springframework.web.servlet.ModelAndView; * @Date: 2021/2/13 12:03 下午 * @Version: 1.0 */ -@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "组织部门接口") +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "组织部门用户接口") @Controller @RequestMapping(ISystemConstant.ROUTE_PREFIX + "/department/user") public class DepartmentUserRouteController { diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentRemoteService.java index d25ead6b..420b84fa 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentRemoteService.java @@ -27,6 +27,9 @@ public interface IDepartmentRemoteService { @RemoteGetMethod("/list") List list(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); + @RemotePostMethod("/list/ids") + List listByIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO); + @RemoteGetMethod("/get/{departmentId}") DepartmentDTO get(@RemoteServerParams String userCenter, @RemotePathParams("departmentId") String departmentId, @RemoteQueryParams("access_token") String accessToken); diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java index d4afb8c0..05db47ee 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java @@ -4,6 +4,7 @@ import ink.wgink.annotation.rpc.rest.RemoteService; import ink.wgink.annotation.rpc.rest.method.RemoteGetMethod; import ink.wgink.annotation.rpc.rest.method.RemotePostMethod; import ink.wgink.annotation.rpc.rest.params.*; +import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; @@ -51,4 +52,6 @@ public interface IDepartmentUserRemoteService { @RemoteGetMethod("/list/{departmentId}") List list(@RemoteServerParams String userCenter, @RemotePathParams("departmentId") String departmentId, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); + @RemoteGetMethod("/list-department/user-id/{userId}") + List listDepartmentByUserId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("userId") String userId); } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentServiceImpl.java index 01eed024..be5ea1a9 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentServiceImpl.java @@ -43,6 +43,13 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return departmentRemoteService.list(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); } + @Override + public List listByIds(List ids) { + IdsVO idsVO = new IdsVO(); + idsVO.setIds(ids); + return departmentRemoteService.listByIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO); + } + @Override public List listByParentId(String departmentParentId) { Map params = getHashMap(2); diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java index a54a3e16..6449048e 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java @@ -6,12 +6,15 @@ import ink.wgink.login.oauth2.client.remote.department.IDepartmentUserRemoteServ import ink.wgink.login.oauth2.client.service.department.IDepartmentUserService; import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentDTO; +import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.vos.IdsVO; import ink.wgink.properties.ApiPathProperties; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -115,4 +118,21 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe } } + @Override + public List listDepartmentBySelf() { + List departmentDTOs = new ArrayList<>(); + List departmentSimpleDTOs = securityComponent.getCurrentUser().getDepartments(); + departmentSimpleDTOs.forEach(departmentSimpleDTO -> { + DepartmentDTO departmentDTO = new DepartmentDTO(); + BeanUtils.copyProperties(departmentSimpleDTO, departmentDTO); + departmentDTOs.add(departmentDTO); + }); + return departmentDTOs; + } + + @Override + public List listDepartmentByUserId(String userId) { + return departmentUserRemoteService.listDepartmentByUserId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), userId); + } + } diff --git a/login-oauth2-client/src/main/resources/templates/department/list-tree-check.html b/login-oauth2-client/src/main/resources/templates/department/list-tree-check.html new file mode 100644 index 00000000..1898a600 --- /dev/null +++ b/login-oauth2-client/src/main/resources/templates/department/list-tree-check.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + +
+
+
+
+
+
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentResourceController.java b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentResourceController.java index 42d38af1..f7d53b04 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentResourceController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentResourceController.java @@ -1,6 +1,7 @@ package ink.wgink.service.department.controller.resources; import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.dtos.ZTreeDTO; @@ -45,6 +46,19 @@ public class DepartmentResourceController extends DefaultBaseController { return departmentService.list(params); } + @ApiOperation(value = "组织部门列表", notes = "组织部门列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PostMapping("list/ids") + public List listByIds(@RequestBody IdsVO idsVO) { + if (idsVO.getIds().isEmpty()) { + throw new ParamsException("id列表不能为空"); + } + return departmentService.listByIds(idsVO.getIds()); + } + @ApiOperation(value = "组织部门列表", notes = "组织部门列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path") diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java index eca0d1af..1bce9c18 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java @@ -3,6 +3,7 @@ package ink.wgink.service.department.controller.resources; import ink.wgink.common.base.DefaultBaseController; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.result.ErrorResult; import ink.wgink.pojo.result.SuccessResultList; @@ -116,4 +117,22 @@ public class DepartmentUserResourceController extends DefaultBaseController { return departmentUserService.listPage(departmentId, page); } + + @ApiOperation(value = "自己的部门列表", notes = "自己的部门列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-department/self") + public List listDepartmentBySelf() { + return departmentUserService.listDepartmentBySelf(); + } + + @ApiOperation(value = "组织部门用户ID列表", notes = "组织部门用户ID列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-department/user-id/{userId}") + public List listDepartmentByUserId(@PathVariable("userId") String userId) { + return departmentUserService.listDepartmentByUserId(userId); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java index cc04fc13..704c5eb7 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/route/DepartmentRouteController.java @@ -92,6 +92,11 @@ public class DepartmentRouteController { return new ModelAndView("department/list-tree-select"); } + @GetMapping("list-tree-check") + public ModelAndView listTreeCheck() { + return new ModelAndView("department/list-tree-check"); + } + @GetMapping("list-tree-user") public ModelAndView listTreeUser() { return new ModelAndView("department/list-tree-user"); diff --git a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java index 8f054f43..fc5deee4 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentServiceImpl.java @@ -190,6 +190,13 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return destDepartmentDTOs; } + @Override + public List listByIds(List ids) { + Map params = getHashMap(2); + params.put("departmentIds", ids); + return list(params); + } + @Override public List listByParentId(String departmentParentId) { Map params = getHashMap(2); diff --git a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java index dffe65e8..5542cee3 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java @@ -5,6 +5,7 @@ import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; @@ -16,6 +17,7 @@ import ink.wgink.service.department.service.IDepartmentAdjustmentService; import ink.wgink.service.department.service.IDepartmentService; import ink.wgink.service.department.service.IDepartmentUserService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -384,4 +386,27 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe } } + @Override + public List listDepartmentBySelf() { + List departmentDTOs = new ArrayList<>(); + List departmentSimpleDTOs = securityComponent.getCurrentUser().getDepartments(); + departmentSimpleDTOs.forEach(departmentSimpleDTO -> { + DepartmentDTO departmentDTO = new DepartmentDTO(); + BeanUtils.copyProperties(departmentSimpleDTO, departmentDTO); + departmentDTOs.add(departmentDTO); + }); + return departmentDTOs; + } + + @Override + public List listDepartmentByUserId(String userId) { + Map params = getHashMap(2); + params.put("userId", userId); + List departmentIds = departmentUserDao.listDepartmentId(params); + if (departmentIds.isEmpty()) { + return new ArrayList<>(); + } + return departmentService.listByIds(departmentIds); + } + } diff --git a/service-department/src/main/resources/templates/department/list-tree-check.html b/service-department/src/main/resources/templates/department/list-tree-check.html new file mode 100644 index 00000000..1898a600 --- /dev/null +++ b/service-department/src/main/resources/templates/department/list-tree-check.html @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
      +
      +
      +
      +
      +
      + +
      +
      +
      +
      +
      + + + + \ No newline at end of file