diff --git a/modules/i3plus-core-api/pom.xml b/modules/i3plus-core-api/pom.xml
index bc1be0a..6e2cbcd 100644
--- a/modules/i3plus-core-api/pom.xml
+++ b/modules/i3plus-core-api/pom.xml
@@ -21,6 +21,10 @@
i3plus.pojo
i3plus-pojo-mes
+
+ i3plus.pojo
+ i3plus-pojo-model
+
diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java
index 50a49e9..85c0d43 100644
--- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java
+++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java
@@ -1,5 +1,7 @@
package cn.estsh.i3plus.core.api.iservice.busi;
+import cn.estsh.i3plus.pojo.base.bean.BaseBean;
+import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
@@ -28,7 +30,7 @@ public interface ICoreTreeService {
* @param id
* @return
*/
- SysPosition getSysPositionTreeByParentId(long id);
+ SysPosition getSysPositionTreeById(long id);
/**
* 生成子集树递归方法
@@ -55,7 +57,7 @@ public interface ICoreTreeService {
* @param id
* @return
*/
- SysDepartment getSysDepartmentTreeByParentId(long id);
+ SysDepartment getSysDepartmentTreeById(long id);
/**
* 生成子集树递归方法
@@ -82,7 +84,7 @@ public interface ICoreTreeService {
* @param id
* @return
*/
- SysOrganize getSysOrganizeTreeByParentId(long id);
+ SysOrganize getSysOrganizeTreeById(long id);
/**
* 生成子集树递归方法
@@ -109,7 +111,7 @@ public interface ICoreTreeService {
* @param id
* @return
*/
- SysMenu getSysMenuTreeByParentId(long id);
+ SysMenu getSysMenuTreeById(long id);
/**
* 生成子集树递归方法
@@ -124,4 +126,25 @@ public interface ICoreTreeService {
*/
void doValidatorSysMenuParentId(SysMenu menu) ;
+ /**
+ * 获取组织树
+ * @param parentId
+ * @return
+ */
+ List findOrganizeDepartment(long parentId);
+
+ /**
+ * 获取组织树
+ * @param id
+ * @return
+ */
+ CommonTreeModel getOrganizeById(long id);
+
+ /**
+ * 生成子集树递归方法
+ * @param parent 父类对象
+ * @param step 层级
+ */
+ void findOrganizeTreePack(CommonTreeModel parent, int step);
+
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTreeAndExceptionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTreeAndExceptionController.java
index 1b35020..1304de9 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTreeAndExceptionController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTreeAndExceptionController.java
@@ -43,7 +43,7 @@ public class DemoTreeAndExceptionController extends CoreBaseController{
@ApiOperation(value="查询部门树",notes="通过部门主键获取部门树,-1为根节点")
public ResultBean listDepartmentTree(long depParentId) {
try {
- SysDepartment department = coreTreeService.getSysDepartmentTreeByParentId(depParentId);
+ SysDepartment department = coreTreeService.getSysDepartmentTreeById(depParentId);
return ResultBean.success("查询部门树成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTreeController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTreeController.java
index 4369e7b..6e092c7 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTreeController.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTreeController.java
@@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
+import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
@@ -47,7 +48,7 @@ public class SysTreeController extends CoreBaseController {
@ApiOperation(value="查询岗位树",notes="通过部门主键获取岗位树,-1为根节点")
public ResultBean listSysPositionTree(@PathVariable("id") long id) {
try {
- SysPosition position = coreTreeService.getSysPositionTreeByParentId(id);
+ SysPosition position = coreTreeService.getSysPositionTreeById(id);
return ResultBean.success("查询部门树成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
@@ -84,7 +85,7 @@ public class SysTreeController extends CoreBaseController {
@ApiOperation(value="查询组织树",notes="通过部门主键获取组织树,-1为根节点")
public ResultBean listOrganizeTree(@PathVariable("id") long id) {
try {
- SysOrganize obj = coreTreeService.getSysOrganizeTreeByParentId(id);
+ SysOrganize obj = coreTreeService.getSysOrganizeTreeById(id);
return ResultBean.success("查询部门树成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
@@ -120,7 +121,7 @@ public class SysTreeController extends CoreBaseController {
@ApiOperation(value="部门树",notes="通过部门主键获取部门树,-1为根节点")
public ResultBean listDepartmentTree(@PathVariable("id") long id) {
try {
- SysDepartment obj = coreTreeService.getSysDepartmentTreeByParentId(id);
+ SysDepartment obj = coreTreeService.getSysDepartmentTreeById(id);
return ResultBean.success("查询部门树成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
@@ -157,7 +158,7 @@ public class SysTreeController extends CoreBaseController {
@ApiOperation(value="部门树",notes="通过部门主键获取部门树,-1为根节点")
public ResultBean listSysMenuTree(@PathVariable("id") long id) {
try {
- SysMenu obj = coreTreeService.getSysMenuTreeByParentId(id);
+ SysMenu obj = coreTreeService.getSysMenuTreeById(id);
return ResultBean.success("查询部门树成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
@@ -189,4 +190,21 @@ public class SysTreeController extends CoreBaseController {
}
}
+ @GetMapping(value="/organize-department/list/{parentId}")
+ @ApiOperation(value="查询组织-部门树",notes="通过部门主键获取组组织-部门,-1为根节点")
+ public ResultBean listOrganizeDepartmentListTree(@PathVariable("parentId") long parentId) {
+ try {
+ List resultList = coreTreeService.findOrganizeDepartment(parentId);
+
+ return ResultBean.success("查询组织-部门树成功")
+ .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
+ .setResultList(resultList);
+ }catch(ImppBusiException busExcep){
+ LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep);
+ return ResultBean.fail(busExcep.getErrorShow());
+ }catch(Exception e){
+ LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}",e.getMessage(),e);
+ return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
+ }
+ }
}
diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java
index 1e49117..0b37e2e 100644
--- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java
+++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java
@@ -1,7 +1,10 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService;
+import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
+import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil;
+import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
@@ -18,6 +21,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -59,7 +63,7 @@ public class CoreTreeService implements ICoreTreeService {
}
@Override
- public SysPosition getSysPositionTreeByParentId(long id) {
+ public SysPosition getSysPositionTreeById(long id) {
// 查找数据
SysPosition position = positionRDao.getById(id);
// 数据是否真实存在
@@ -107,7 +111,7 @@ public class CoreTreeService implements ICoreTreeService {
}
@Override
- public SysDepartment getSysDepartmentTreeByParentId(long id) {
+ public SysDepartment getSysDepartmentTreeById(long id) {
// 查找数据
SysDepartment department = departmentRDao.getById(id);
// 数据是否真实存在
@@ -155,7 +159,7 @@ public class CoreTreeService implements ICoreTreeService {
}
@Override
- public SysOrganize getSysOrganizeTreeByParentId(long id) {
+ public SysOrganize getSysOrganizeTreeById(long id) {
// 查找数据
SysOrganize organize = organizeRDao.getById(id);
// 数据是否真实存在
@@ -202,7 +206,7 @@ public class CoreTreeService implements ICoreTreeService {
}
@Override
- public SysMenu getSysMenuTreeByParentId(long id) {
+ public SysMenu getSysMenuTreeById(long id) {
// 查找数据
SysMenu menu = menuRDao.getById(id);
// 数据是否真实存在
@@ -305,4 +309,98 @@ public class CoreTreeService implements ICoreTreeService {
}
}
}
+
+ @Override
+ public List findOrganizeDepartment(long parentId) {
+ List result = new ArrayList<>();
+ List list = organizeRDao.findByProperty("parentId", parentId);
+
+ // 循环设置子集
+ if(list != null && list.size() > 0){
+ for (SysOrganize organize : list) {
+ CommonTreeModel treeModel = new CommonTreeModel();
+ treeModel.setBean(organize);
+ treeModel.setBeanType(ModelEnumUtil.COMMON_TREE_TYPE.TYPE_ORGANIZE.getValue());
+
+ findOrganizeTreePack(treeModel,0);
+
+ result.add(treeModel);
+ }
+ }
+
+
+ return result;
+ }
+
+ @Override
+ public CommonTreeModel getOrganizeById(long id) {
+ // 查找数据
+ SysOrganize organize = organizeRDao.getById(id);
+ // 数据是否真实存在
+ ValidatorBean.checkNotNull(organize,"不存在的组织信息");
+
+ CommonTreeModel treeModel = new CommonTreeModel();
+ treeModel.setBean(organize);
+ treeModel.setBeanType(ModelEnumUtil.COMMON_TREE_TYPE.TYPE_ORGANIZE.getValue());
+
+ // 递归查询子集
+ findOrganizeTreePack(treeModel, 0);
+ return treeModel;
+ }
+
+ @Override
+ public void findOrganizeTreePack(CommonTreeModel parent, int step) {
+ if(null != parent){
+ BaseBean bean = parent.getBean();
+ List childList = new ArrayList<>();
+ CommonTreeModel treeModel = null;
+ if(bean instanceof SysOrganize){
+ SysOrganize organize = (SysOrganize) bean;
+
+ List organizeList = organizeRDao.findByProperty("parentId", organize.getId());
+ if(organizeList != null && organizeList.size() > 0){
+ for (SysOrganize org : organizeList) {
+ treeModel = new CommonTreeModel();
+ treeModel.setBean(org);
+ treeModel.setBeanType(ModelEnumUtil.COMMON_TREE_TYPE.TYPE_ORGANIZE.getValue());
+
+ findOrganizeTreePack(treeModel,step);
+
+ childList.add(treeModel);
+ }
+ }
+
+ List departmentList = departmentRDao.findByProperty("organizeId", organize.getId());
+ if(departmentList != null && departmentList.size() > 0){
+ for (SysDepartment department : departmentList) {
+ if(department.getParentId() != null && department.getParentId() < 0){
+ treeModel = new CommonTreeModel();
+ treeModel.setBean(department);
+ treeModel.setBeanType(ModelEnumUtil.COMMON_TREE_TYPE.TYPE_DEPARTMENT.getValue());
+
+ findOrganizeTreePack(treeModel,step);
+
+ childList.add(treeModel);
+ }
+ }
+ }
+ LOGGER.info("【{}】包含子集:{},步长:{}", parent.getBean().getClass().getName(), parent.getChildList().size(), step);
+ }else if(bean instanceof SysDepartment){
+ SysDepartment department = (SysDepartment) bean;
+ List departmentList = departmentRDao.findByProperty("parentId", department.getId());
+ if(departmentList != null && departmentList.size() > 0){
+ for (SysDepartment dep : departmentList) {
+ treeModel = new CommonTreeModel();
+ treeModel.setBean(dep);
+ treeModel.setBeanType(ModelEnumUtil.COMMON_TREE_TYPE.TYPE_DEPARTMENT.getValue());
+
+ findOrganizeTreePack(treeModel,step);
+
+ childList.add(treeModel);
+ }
+ }
+ }
+ parent.setChildList(childList);
+ }
+ }
}