Commit 743ceb4b authored by 李腾威's avatar 李腾威

机构单位人员接口

parent fdaa3411
......@@ -16,4 +16,23 @@ public interface CommonConstant {
public final static String RESULT_FAILURE = "FAILURE";
public final static String X_ACCESS_TOKEN = "X-Access-Token";
/**
* 机构/部门/人员表中 机构类型
*/
public final static String BIZ_ORG_TYPE_DEPARTMENT = "DEPARTMENT";
public final static String BIZ_ORG_TYPE_COMPANY = "COMPANY";
public final static String BIZ_ORG_TYPE_PERSON = "PERSON";
/**
* 未被删除
*/
public final static String IS_DELETE_00 = "0";
/**
* 已被删除
*/
public final static String IS_DELETE_01 = "1";
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author fengwang
* @date 2021-06-18.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsr对象", description="部门信息")
public class OrgDepartmentDto extends BaseEntity {
@ApiModelProperty(value = "部门名称")
private String bizOrgName;
@ApiModelProperty(value = "部门编码")
private String bizOrgCode;
@ApiModelProperty(value = "amos中公司/部门ID")
private String amosOrgId;
@ApiModelProperty(value = "amos中公司/部门编码")
private String amosOrgCode;
@ApiModelProperty(value = "机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)")
private String bizOrgType = CommonConstant.BIZ_ORG_TYPE_DEPARTMENT;
@ApiModelProperty(value = "所属建筑名称")
private String buildName;
@ApiModelProperty(value = "所属建筑ID")
private String buildId;
@ApiModelProperty(value = "归属机构/部门/人员")
private String parentId;
@ApiModelProperty(value = "扩展属性1")
private String orgExpandAttr1;
@ApiModelProperty(value = "扩展属性2")
private String orgExpandAttr2;
@ApiModelProperty(value = "扩展属性3")
private String orgExpandAttr3;
@ApiModelProperty(value = "扩展属性4")
private String orgExpandAttr4;
private String orgExpandAttr5;
private String orgExpandAttr6;
private String orgExpandAttr7;
private String orgExpandAttr8;
@ApiModelProperty(value = "更新人")
@TableField(fill= FieldFill.INSERT_UPDATE)
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author fengwang
* @date 2021-06-18.
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsr对象", description="人员信息")
public class OrgPersonDto extends BaseEntity {
@ApiModelProperty(value = "人员名称")
private String bizOrgName;
@ApiModelProperty(value = "人员编码")
private String bizOrgCode;
@ApiModelProperty(value = "amos中公司/部门ID")
private String amosOrgId;
@ApiModelProperty(value = "amos中公司/部门编码")
private String amosOrgCode;
@ApiModelProperty(value = "机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)")
private String bizOrgType = CommonConstant.BIZ_ORG_TYPE_PERSON;
@ApiModelProperty(value = "所属建筑名称")
private String buildName;
@ApiModelProperty(value = "所属建筑ID")
private String buildId;
@ApiModelProperty(value = "归属机构/部门/人员")
private String parentId;
@ApiModelProperty(value = "扩展属性1")
private String orgExpandAttr1;
@ApiModelProperty(value = "扩展属性2")
private String orgExpandAttr2;
@ApiModelProperty(value = "扩展属性3")
private String orgExpandAttr3;
@ApiModelProperty(value = "扩展属性4")
private String orgExpandAttr4;
private String orgExpandAttr5;
private String orgExpandAttr6;
private String orgExpandAttr7;
private String orgExpandAttr8;
@ApiModelProperty(value = "更新人")
@TableField(fill= FieldFill.INSERT_UPDATE)
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
......@@ -7,11 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
/**
* 机构/部门/人员表
*
......@@ -72,6 +70,7 @@ public class OrgUsrDto extends BaseEntity {
private String orgExpandAttr8;
@ApiModelProperty(value = "更新人")
@TableField(fill= FieldFill.INSERT_UPDATE)
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import java.util.List;
/**
* @author fengwang
* @date 2021-06-19.
*/
public class OrgMenu{
public Long key;
public String title;
public Long parentId;
public boolean isLeaf;
public List<OrgMenu> children;
public String bizOrgType;
public OrgMenu(Long key, String title, Long parentId, String bizOrgType, boolean isLeaf) {
super();
this.key = key;
this.title = title;
this.parentId = parentId;
this.bizOrgType = bizOrgType;
this.isLeaf = isLeaf;
}
public OrgMenu(Long key, String title, Long parentId, boolean isLeaf, List<OrgMenu> children, String bizOrgType) {
this.key = key;
this.title = title;
this.parentId = parentId;
this.isLeaf = isLeaf;
this.children = children;
this.bizOrgType = bizOrgType;
}
public Long getKey() {
return key;
}
public void setKey(Long key) {
this.key = key;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public List<OrgMenu> getChildren() {
return children;
}
public void setChildren(List<OrgMenu> children) {
this.children = children;
}
public String getBizOrgType() {
return bizOrgType;
}
public void setBizOrgType(String bizOrgType) {
this.bizOrgType = bizOrgType;
}
}
package com.yeejoin.amos.boot.module.jcs.api.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
/**
* 机构/部门/人员表
*
......@@ -22,11 +23,8 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsr对象", description="机构/部门/人员表")
public class OrgUsr extends BaseEntity {
@ApiModel(value="OrgUsr对象", description="部门信息")
public class OrgUsr extends BaseEntity implements Serializable {
@ApiModelProperty(value = "机构/部门名称")
private String bizOrgName;
......@@ -40,7 +38,7 @@ public class OrgUsr extends BaseEntity {
@ApiModelProperty(value = "amos中公司/部门编码")
private String amosOrgCode;
@ApiModelProperty(value = "机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)")
@ApiModelProperty(value = "机构类型`")
private String bizOrgType;
@ApiModelProperty(value = "所属建筑名称")
......@@ -73,6 +71,8 @@ public class OrgUsr extends BaseEntity {
private String orgExpandAttr8;
@ApiModelProperty(value = "更新人")
@TableField(fill=FieldFill.INSERT_UPDATE)
private String recUserName;
}
package com.yeejoin.amos.boot.module.jcs.api.service;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgMenu;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 机构/部门/人员表 服务类
*
......@@ -10,5 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @date 2021-06-18
*/
public interface IOrgUsrService extends IService<OrgUsr> {
List<OrgMenu> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception;
List<OrgMenu> getSub(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName,String OrgTypeMethodName) throws Exception;
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 机构/部门/人员表
*
* @author tb
* @date 2021-06-18
*/
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrVo", description="部门信息")
public class OrgDepartmentVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "部门人员信息")
private OrgUsr OrgUsr;
@ApiModelProperty(value = "动态表单值")
private List<AlertFormValue> alertFormValue;
public OrgDepartmentVo(OrgUsr orgUsr, List<AlertFormValue> alertFormValue) {
OrgUsr = orgUsr;
this.alertFormValue = alertFormValue;
}
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 机构/部门/人员表
*
* @author tb
* @date 2021-06-18
*/
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrVo", description="人员信息")
public class OrgPersonFormVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "人员基本信息")
private OrgUsr OrgUsr;
@ApiModelProperty(value = "动态表单值")
private List<FormValue> dynamicFormAlert;
public OrgPersonFormVo(OrgUsr orgUsr, List<FormValue> dynamicFormAlert) {
OrgUsr = orgUsr;
this.dynamicFormAlert = dynamicFormAlert;
}
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 机构/部门/人员表
*
* @author tb
* @date 2021-06-18
*/
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrVo", description="人员")
public class OrgPersonVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "人员基本信息")
private OrgUsr OrgUsr;
@ApiModelProperty(value = "动态表单值")
private List<AlertFormValue> alertFormValue;
public OrgPersonVo(OrgUsr orgUsr, List<AlertFormValue> alertFormValue) {
OrgUsr = orgUsr;
this.alertFormValue = alertFormValue;
}
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author fengwang
* @date 2021-06-21.
*/
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrDownloadTemplateVO", description="")
@ExcelTarget("OrgUsrDownloadTemplateVO")
public class OrgUsrDownloadTemplateVO {
@Excel(name = "机构名称",width = 30)
@ApiModelProperty(value = "机构/部门名称")
private String bizOrgName;
@Excel(name = "机构编码",width = 30)
@ApiModelProperty(value = "机构编码")
private String bizOrgCode;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "amos中公司/部门ID")
private String amosOrgId;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "amos中公司/部门编码")
private String amosOrgCode;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "机构类型(单位:COMPANY)")
private String bizOrgType = CommonConstant.BIZ_ORG_TYPE_COMPANY;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "所属建筑名称")
private String buildName;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "所属建筑ID")
private String buildId;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "归属机构/部门/人员")
private String parentId;
@Excel(name = "amos中公司/部门ID",width = 30)
@ApiModelProperty(value = "扩展属性1")
private String orgExpandAttr1;
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* 机构/部门/人员表
*
* @author tb
* @date 2021-06-18
*/
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrVo", description="机构/部门/人员表")
public class OrgUsrFormVo {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "机构/部门人员基本信息")
private OrgUsr OrgUsr;
@ApiModelProperty(value = "动态表单值")
private List<FormValue> dynamicFormAlert;
@ApiModelProperty(value = "单位人员信息值")
private List<OrgPersonFormVo> children;
public OrgUsrFormVo(OrgUsr orgUsr, List<FormValue> formValue) {
OrgUsr = orgUsr;
this.dynamicFormAlert = formValue;
}
public OrgUsrFormVo(OrgUsr orgUsr, List<FormValue> dynamicFormAlert, List<OrgPersonFormVo> children) {
this.OrgUsr = orgUsr;
this.dynamicFormAlert = dynamicFormAlert;
this.children = children;
}
}
package com.yeejoin.amos.boot.module.jcs.api.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.util.List;
/**
* 机构/部门/人员表
*
......@@ -21,57 +19,19 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@Data
@Accessors(chain = true)
@TableName("cb_org_usr")
@ApiModel(value="OrgUsrVo", description="机构/部门/人员表")
@ApiModel(value="OrgUsrVo", description="单位信息")
public class OrgUsrVo{
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位基本信息")
private OrgUsr OrgUsr;
@ApiModelProperty(value = "机构/部门名称")
private String bizOrgName;
@ApiModelProperty(value = "机构编码")
private String bizOrgCode;
@ApiModelProperty(value = "amos中公司/部门ID")
private String amosOrgId;
@ApiModelProperty(value = "amos中公司/部门编码")
private String amosOrgCode;
@ApiModelProperty(value = "机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)")
private String bizOrgType;
@ApiModelProperty(value = "所属建筑名称")
private String buildName;
@ApiModelProperty(value = "所属建筑ID")
private String buildId;
@ApiModelProperty(value = "归属机构/部门/人员")
private String parentId;
@ApiModelProperty(value = "扩展属性1")
private String orgExpandAttr1;
@ApiModelProperty(value = "扩展属性2")
private String orgExpandAttr2;
@ApiModelProperty(value = "扩展属性3")
private String orgExpandAttr3;
@ApiModelProperty(value = "扩展属性4")
private String orgExpandAttr4;
private String orgExpandAttr5;
private String orgExpandAttr6;
private String orgExpandAttr7;
private String orgExpandAttr8;
@ApiModelProperty(value = "更新人")
private String recUserName;
@ApiModelProperty(value = "单位动态表单值")
private List<AlertFormValue> alertFormValue;
public OrgUsrVo(OrgUsr orgUsr, List<AlertFormValue> alertFormValue) {
OrgUsr = orgUsr;
this.alertFormValue = alertFormValue;
}
}
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgMenu;
import com.yeejoin.amos.boot.module.jcs.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.jcs.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IOrgUsrService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* 机构/部门/人员表 服务实现类
......@@ -14,5 +19,104 @@ import org.springframework.stereotype.Service;
*/
@Service
public class OrgUsrServiceImpl extends ServiceImpl<OrgUsrMapper, OrgUsr> implements IOrgUsrService {
@Override
@SuppressWarnings("unchecked")
public List<OrgMenu> getTree(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception{
List<OrgMenu> resultList=new ArrayList<>();
Class clazz= Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) { case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
//获取顶层元素集合
Long parentId;
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId=PARENTIDMethodNameme.invoke(entity)!=null? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity))):null;
if(parentId==null||topId==parentId){
OrgMenu menu=new OrgMenu(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))), String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,String.valueOf(OrgTypeMethodNameme.invoke(entity)),false);
resultList.add(menu);
}
}
//获取每个顶层元素的子数据集合
for (OrgMenu entity : resultList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName,IDHierarchy, NAMEMethodName, PARENTIDMethodName, OrgTypeMethodName));
}
return resultList;
}
@Override
public List<OrgMenu> getSub(Long topId, Collection entityList, String packageURL, String IDMethodName, int IDHierarchy, String NAMEMethodName, String PARENTIDMethodName, String OrgTypeMethodName) throws Exception{
List<OrgMenu> childList=new ArrayList<>();
Class clazz= Class.forName(packageURL);
Method IDMethodNameme = null;
switch (IDHierarchy) {
case 1:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
case 2:
IDMethodNameme = clazz.getSuperclass().getDeclaredMethod(IDMethodName);
break;
case 3:
IDMethodNameme = clazz.getSuperclass().getSuperclass().getDeclaredMethod(IDMethodName);
break;
default:
IDMethodNameme = clazz.getDeclaredMethod(IDMethodName);
break;
}
Method OrgTypeMethodNameme = clazz.getDeclaredMethod(OrgTypeMethodName);
Method NAMEMethodNameme = clazz.getDeclaredMethod(NAMEMethodName);
Method PARENTIDMethodNameme = clazz.getDeclaredMethod(PARENTIDMethodName);
Long parentId;
//子集的直接子对象
for (Object ob : entityList) {
Object entity = clazz.cast(ob);
parentId=PARENTIDMethodNameme.invoke(entity)!=null? Long.valueOf(String.valueOf(PARENTIDMethodNameme.invoke(entity))):null;
if(parentId==null) {
if(topId==parentId){
OrgMenu menu=new OrgMenu(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))), String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,String.valueOf(OrgTypeMethodNameme.invoke(entity)),false);
childList.add(menu);
}
}else {
if(topId.longValue()==parentId.longValue()){
OrgMenu menu=new OrgMenu(Long.valueOf(String.valueOf(IDMethodNameme.invoke(entity))), String.valueOf(NAMEMethodNameme.invoke(entity)), parentId,String.valueOf(OrgTypeMethodNameme.invoke(entity)),true);
childList.add(menu);
}
}
}
//子集的间接子对象
for (OrgMenu entity : childList) {
entity.setChildren(getSub(entity.getKey(), entityList, packageURL, IDMethodName,IDHierarchy, NAMEMethodName, PARENTIDMethodName,OrgTypeMethodName));
}
//递归退出条件
if(childList.size()==0){
return null;
}
return childList;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment