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 d86f24a2..add7bc57 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 @@ -184,6 +184,16 @@ public interface IDepartmentBaseService { */ List listZTreeByAreaCodeAndParentId(String areaCode, String parentId); + /** + * 部门列表 + * + * @param departmentAreaCode 地区ID + * @param departmentParentId 上级部门ID,0为查询地区下部门,其他为地区下所有下级部门 + * @param departmentType 部门类型,1:机构,2:部门 + * @return + */ + List listZTreeByAreaCodeAndParentIdAndType(String departmentAreaCode, String departmentParentId, Integer departmentType); + /** * 部门ID列表 * 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 0793b079..d25ead6b 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 @@ -42,6 +42,9 @@ public interface IDepartmentRemoteService { @RemoteGetMethod("/list-id") List listId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); + @RemoteGetMethod("/list-ztree/area-code/{departmentAreaCode}/parent-id/{departmentParentId}/type/{departmentType}") + List listZTreeByAreaCodeAndParentIdAndType(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentAreaCode") String departmentAreaCode, @RemotePathParams("departmentParentId") String departmentParentId, @RemotePathParams("departmentType") Integer departmentType); + @RemoteGetMethod("/count") SuccessResultData count(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteQueryParamsMap Map params); 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 6ee9d4cf..01eed024 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 @@ -167,6 +167,20 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return listZTree(params); } + @Override + public List listZTreeByAreaCodeAndParentIdAndType(String departmentAreaCode, String departmentParentId, Integer departmentType) { + if (StringUtils.isBlank(departmentAreaCode)) { + return new ArrayList<>(); + } + if (StringUtils.isBlank(departmentParentId)) { + return new ArrayList<>(); + } + if (departmentType == null) { + return new ArrayList<>(); + } + return departmentRemoteService.listZTreeByAreaCodeAndParentIdAndType(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), departmentAreaCode, departmentParentId, departmentType); + } + @Override public List listId(Map params) { return departmentRemoteService.listId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), params); diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java index 819278fd..89f472b5 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentController.java @@ -20,7 +20,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.*; @@ -156,6 +155,20 @@ public class DepartmentController extends DefaultBaseController { return departmentService.listZTree(departmentParentId, params); } + @ApiOperation(value = "组织部门zTree列表", notes = "通过地区编码、部门上级ID和部门类型组织部门zTree列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentAreaCode", value = "地区编码", paramType = "path"), + @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path"), + @ApiImplicitParam(name = "departmentType", value = "部门类型,1:机构,2:部门", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-ztree/area-code/{departmentAreaCode}/parent-id/{departmentParentId}/type/{departmentType}") + public List listByAreaCodeAndParentIdAndType(@PathVariable("departmentAreaCode") String departmentAreaCode, + @PathVariable("departmentParentId") String departmentParentId, + @PathVariable("departmentType") Integer departmentType) { + return departmentService.listZTreeByAreaCodeAndParentIdAndType(departmentAreaCode, departmentParentId, departmentType); + } + @ApiOperation(value = "组织部门详情", notes = "组织部门详情接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/app/api/DepartmentAppController.java b/service-department/src/main/java/ink/wgink/service/department/controller/app/api/DepartmentAppController.java index bd3caf97..624c849d 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/app/api/DepartmentAppController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/app/api/DepartmentAppController.java @@ -55,7 +55,7 @@ public class DepartmentAppController extends DefaultBaseController { @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @GetMapping("list-all/{departmentParentId}") public List listAll(@RequestHeader("token") String token, - @PathVariable("departmentParentId") String departmentParentId) { + @PathVariable("departmentParentId") String departmentParentId) { Map params = new HashMap<>(0); params.put("departmentParentId", departmentParentId); return departmentService.listAll(params); @@ -77,6 +77,22 @@ public class DepartmentAppController extends DefaultBaseController { return departmentService.listZTree(departmentParentId, params); } + @ApiOperation(value = "组织部门zTree列表", notes = "通过地区编码、部门上级ID和部门类型组织部门zTree列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", paramType = "header"), + @ApiImplicitParam(name = "departmentAreaCode", value = "地区编码", paramType = "path"), + @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path"), + @ApiImplicitParam(name = "departmentType", value = "部门类型,1:机构,2:部门", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-ztree/area-code/{departmentAreaCode}/parent-id/{departmentParentId}/type/{departmentType}") + public List listByAreaCodeAndParentIdAndType(@RequestHeader("token") String token, + @PathVariable("departmentAreaCode") String departmentAreaCode, + @PathVariable("departmentParentId") String departmentParentId, + @PathVariable("departmentType") Integer departmentType) { + return departmentService.listZTreeByAreaCodeAndParentIdAndType(departmentAreaCode, departmentParentId, departmentType); + } + @ApiOperation(value = "组织部门详情", notes = "组织部门详情接口") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", paramType = "header"), 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 b437ba5c..42d38af1 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 @@ -83,6 +83,20 @@ public class DepartmentResourceController extends DefaultBaseController { return departmentService.listZTree(departmentParentId, params); } + @ApiOperation(value = "组织部门zTree列表", notes = "通过地区编码、部门上级ID和部门类型组织部门zTree列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentAreaCode", value = "地区编码", paramType = "path"), + @ApiImplicitParam(name = "departmentParentId", value = "组织部门上级ID", paramType = "path"), + @ApiImplicitParam(name = "departmentType", value = "部门类型,1:机构,2:部门", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-ztree/area-code/{departmentAreaCode}/parent-id/{departmentParentId}/type/{departmentType}") + public List listByAreaCodeAndParentIdAndType(@PathVariable("departmentAreaCode") String departmentAreaCode, + @PathVariable("departmentParentId") String departmentParentId, + @PathVariable("departmentType") Integer departmentType) { + return departmentService.listZTreeByAreaCodeAndParentIdAndType(departmentAreaCode, departmentParentId, departmentType); + } + @ApiOperation(value = "组织部门详情", notes = "组织部门详情接口") @ApiImplicitParams({ @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path") 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 0d094522..a6b9f25d 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 @@ -335,6 +335,19 @@ public class DepartmentServiceImpl extends DefaultBaseService implements IDepart return listZTree(params); } + @Override + public List listZTreeByAreaCodeAndParentIdAndType(String departmentAreaCode, String departmentParentId, Integer departmentType) { + Map params = getHashMap(8); + if (StringUtils.isBlank(departmentParentId) || StringUtils.equals(departmentParentId, "0")) { + params.put("departmentAreaCode", departmentAreaCode); + } else { + params.put("departmentAreaCodeLike", WStringUtil.cutContinuityRepeatCharDesc(departmentAreaCode, '0')); + params.put("departmentParentId", departmentParentId); + } + params.put("departmentType", departmentType); + return departmentDao.listZTree(params); + } + @Override public List listZTreeByAreaCodeAndParentId(String departmentAreaCode, String departmentParentId) { Map params = getHashMap(4); diff --git a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml index 38f046db..6f0b5237 100644 --- a/service-department/src/main/resources/mybatis/mapper/department-mapper.xml +++ b/service-department/src/main/resources/mybatis/mapper/department-mapper.xml @@ -293,10 +293,18 @@ AND department_area_code = #{departmentAreaCode} - + + AND + department_area_code LIKE CONCAT(#{departmentAreaCodeLike}, '%') + + AND department_type = #{departmentType} + + AND + department_area_code != #{excludeDepartmentAreaCode} + ORDER BY department_order @@ -389,6 +397,10 @@ AND department_no LIKE CONCAT(#{departmentNo}, '%') + + AND + department_type = #{departmentType} + AND department_id IN