根结点树,增加部门节点数据
This commit is contained in:
parent
50b7845f26
commit
a6b10dcd8e
|
|
@ -89,6 +89,7 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
// 根结点
|
||||
String root = Util.null2String(params.get("root"));
|
||||
root = StringUtils.isBlank(root) ? "0" : root;
|
||||
boolean isDepartment = root.startsWith("d");
|
||||
|
||||
// 维度
|
||||
String dimension = Util.null2String(params.get("fclass"));
|
||||
|
|
@ -524,6 +525,19 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
public Map<String, Object> getDepartmentTree(Map<String, Object> params) {
|
||||
Map<String, Object> result = new HashMap<>(2);
|
||||
|
||||
List<CompanyTreePO> departmentTree = getDepartmentTreeList(params);
|
||||
result.put("departmentTree", departmentTree);
|
||||
result.put("api_status", true);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取部门树集合
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
public static List<CompanyTreePO> getDepartmentTreeList(Map<String, Object> params) {
|
||||
RecordSet rs = new RecordSet();
|
||||
List<CompanyTreePO> departmentTree = new ArrayList<>();
|
||||
String subCompany = Util.null2String(params.get("subcompany"));
|
||||
|
|
@ -535,11 +549,9 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).disabled(!rs.getString("id").startsWith("d")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build());
|
||||
departmentTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).disabled(false).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(versionId, dimension, rs.getString("id"))).build());
|
||||
}
|
||||
result.put("departmentTree", departmentTree);
|
||||
result.put("api_status", true);
|
||||
return result;
|
||||
return departmentTree;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -1654,7 +1666,7 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
* @param subCompany 上级Id
|
||||
* @return SQL
|
||||
*/
|
||||
private String getDepartmentTreeSql(String versionId, String dimension, String subCompany) {
|
||||
private static String getDepartmentTreeSql(String versionId, String dimension, String subCompany) {
|
||||
// 是否展示当前数据
|
||||
boolean isSearchCurrent = StringUtils.isBlank(versionId) || "0".equals(versionId);
|
||||
boolean isCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension);
|
||||
|
|
@ -1716,7 +1728,7 @@ public class ChartServiceImpl extends Service implements ChartService {
|
|||
* @param subCompany 上级元素ID
|
||||
* @return
|
||||
*/
|
||||
private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
|
||||
private static boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
|
||||
RecordSet recordSet = new RecordSet();
|
||||
String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
|
||||
recordSet.executeQuery(sql);
|
||||
|
|
|
|||
|
|
@ -58,54 +58,29 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
item.put("companyname", rs.getString("companyname"));
|
||||
fclasslist.add(item);
|
||||
}
|
||||
|
||||
List<CompanyTreePO> companyTree = new ArrayList<>();
|
||||
String sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '0'";
|
||||
// 一级分部数据分权处理
|
||||
String dimension = Util.null2String(request2Map.get("fclass"));
|
||||
//版本id
|
||||
String id = Util.null2String(request2Map.get("id"));
|
||||
boolean isRealDimension = StringUtils.isBlank(dimension) || "0".equals(dimension);
|
||||
boolean isRealTime = StringUtils.isBlank(id) || "0".equals(id);
|
||||
if (isRealTime && user.getUID() != 1 && isRealDimension) {
|
||||
DetachUtil detachUtil = new DetachUtil(user);
|
||||
if(detachUtil.isDETACH()) {
|
||||
String ids = detachUtil.getJclRoleLevels();
|
||||
sql = sql + " and id in (" + ids + ")";
|
||||
}
|
||||
}
|
||||
|
||||
rs.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf("select id from hrmsubcompany where (canceled is null or canceled != '1') and supsubcomid = ?", rs.getString("id"))).build());
|
||||
}
|
||||
result.put("api_status", true);
|
||||
result.put("fclasslist", fclasslist);
|
||||
result.put("companyTree", companyTree);
|
||||
Map<String, Object> subCompanyTree = getSubCompanyTree(request2Map);
|
||||
result.putAll(subCompanyTree);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getSubCompanyTree(Map<String, Object> params) {
|
||||
Map<String, Object> result = new HashMap<>(2);
|
||||
List<CompanyTreePO> departmentTree = ChartServiceImpl.getDepartmentTreeList(params);
|
||||
result.put("companyTree", departmentTree);
|
||||
return result;
|
||||
}
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
List<CompanyTreePO> companyTree = new ArrayList<>();
|
||||
String subcompany = Util.null2String(params.get("subcompany"));
|
||||
if (StringUtils.isBlank(subcompany)) {
|
||||
subcompany = "0";
|
||||
}
|
||||
String fclass = Util.null2String(params.get("fclass"));
|
||||
String id = Util.null2String(params.get("id"));
|
||||
private String getSubCompanyTreeSql(String id, String fclass, String subcompany) {
|
||||
// 是否展示当前数据
|
||||
boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id);
|
||||
String sql;
|
||||
String judgeTreeLeafSql;
|
||||
if (isSearchCurrent) {
|
||||
sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = ? ";
|
||||
boolean isRealDimension = StringUtils.isBlank(fclass) || "0".equals(fclass);
|
||||
boolean isRealTime = StringUtils.isBlank(id) || "0".equals(id);
|
||||
judgeTreeLeafSql = sql;
|
||||
if (isRealTime && user.getUID() != 1 && isRealDimension) {
|
||||
DetachUtil detachUtil = new DetachUtil(user);
|
||||
if (detachUtil.isDETACH()) {
|
||||
|
|
@ -125,14 +100,8 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
}
|
||||
// 添加时间轴条件
|
||||
sql += " and versionid = " + id;
|
||||
judgeTreeLeafSql = sql;
|
||||
}
|
||||
rs.executeQuery(sql, subcompany);
|
||||
while (rs.next()) {
|
||||
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(judgeTreeLeafSql, rs.getString("id"))).build());
|
||||
}
|
||||
result.put("companyTree", companyTree);
|
||||
return result;
|
||||
return sql;
|
||||
}
|
||||
|
||||
private String companyDateWhereSql(Map<String, Object> request2Map) {
|
||||
|
|
@ -705,16 +674,19 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|||
return fieldname;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断树是否为叶子节点
|
||||
*
|
||||
* @param sql 查询下级元素SQL
|
||||
* @param treeId 当前元素ID
|
||||
* @param versionId
|
||||
* @param dimension
|
||||
* @param subCompany
|
||||
* @return
|
||||
*/
|
||||
private boolean judgeTreeLeaf(String sql, String treeId) {
|
||||
private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
|
||||
RecordSet recordSet = new RecordSet();
|
||||
recordSet.executeQuery(sql, treeId);
|
||||
String sql = getSubCompanyTreeSql(versionId, dimension, subCompany);
|
||||
recordSet.executeQuery(sql, subCompany);
|
||||
return !recordSet.next();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue