根结点树,增加部门节点数据

pull/274/head
dxfeng 9 months ago
parent 50b7845f26
commit a6b10dcd8e

@ -89,6 +89,7 @@ public class ChartServiceImpl extends Service implements ChartService {
// 根结点 // 根结点
String root = Util.null2String(params.get("root")); String root = Util.null2String(params.get("root"));
root = StringUtils.isBlank(root) ? "0" : root; root = StringUtils.isBlank(root) ? "0" : root;
boolean isDepartment = root.startsWith("d");
// 维度 // 维度
String dimension = Util.null2String(params.get("fclass")); 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) { public Map<String, Object> getDepartmentTree(Map<String, Object> params) {
Map<String, Object> result = new HashMap<>(2); 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(); RecordSet rs = new RecordSet();
List<CompanyTreePO> departmentTree = new ArrayList<>(); List<CompanyTreePO> departmentTree = new ArrayList<>();
String subCompany = Util.null2String(params.get("subcompany")); String subCompany = Util.null2String(params.get("subcompany"));
@ -535,11 +549,9 @@ public class ChartServiceImpl extends Service implements ChartService {
String sql = getDepartmentTreeSql(versionId, dimension, subCompany); String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
rs.executeQuery(sql); rs.executeQuery(sql);
while (rs.next()) { 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); return departmentTree;
result.put("api_status", true);
return result;
} }
@Override @Override
@ -1654,7 +1666,7 @@ public class ChartServiceImpl extends Service implements ChartService {
* @param subCompany Id * @param subCompany Id
* @return SQL * @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 isSearchCurrent = StringUtils.isBlank(versionId) || "0".equals(versionId);
boolean isCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension); boolean isCurrentDimension = StringUtils.isNotBlank(dimension) && !"0".equals(dimension);
@ -1716,7 +1728,7 @@ public class ChartServiceImpl extends Service implements ChartService {
* @param subCompany ID * @param subCompany ID
* @return * @return
*/ */
private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) { private static boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
String sql = getDepartmentTreeSql(versionId, dimension, subCompany); String sql = getDepartmentTreeSql(versionId, dimension, subCompany);
recordSet.executeQuery(sql); recordSet.executeQuery(sql);

@ -58,54 +58,29 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
item.put("companyname", rs.getString("companyname")); item.put("companyname", rs.getString("companyname"));
fclasslist.add(item); 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("api_status", true);
result.put("fclasslist", fclasslist); result.put("fclasslist", fclasslist);
result.put("companyTree", companyTree); Map<String, Object> subCompanyTree = getSubCompanyTree(request2Map);
result.putAll(subCompanyTree);
return result; return result;
} }
@Override @Override
public Map<String, Object> getSubCompanyTree(Map<String, Object> params) { public Map<String, Object> getSubCompanyTree(Map<String, Object> params) {
Map<String, Object> result = new HashMap<>(2); Map<String, Object> result = new HashMap<>(2);
List<CompanyTreePO> departmentTree = ChartServiceImpl.getDepartmentTreeList(params);
RecordSet rs = new RecordSet(); result.put("companyTree", departmentTree);
List<CompanyTreePO> companyTree = new ArrayList<>(); return result;
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); boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id);
String sql; String sql;
String judgeTreeLeafSql;
if (isSearchCurrent) { 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") + " = ? "; 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 isRealDimension = StringUtils.isBlank(fclass) || "0".equals(fclass);
boolean isRealTime = StringUtils.isBlank(id) || "0".equals(id); boolean isRealTime = StringUtils.isBlank(id) || "0".equals(id);
judgeTreeLeafSql = sql;
if (isRealTime && user.getUID() != 1 && isRealDimension) { if (isRealTime && user.getUID() != 1 && isRealDimension) {
DetachUtil detachUtil = new DetachUtil(user); DetachUtil detachUtil = new DetachUtil(user);
if (detachUtil.isDETACH()) { if (detachUtil.isDETACH()) {
@ -125,14 +100,8 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
} }
// 添加时间轴条件 // 添加时间轴条件
sql += " and versionid = " + id; sql += " and versionid = " + id;
judgeTreeLeafSql = sql;
} }
rs.executeQuery(sql, subcompany); return 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(judgeTreeLeafSql, rs.getString("id"))).build());
}
result.put("companyTree", companyTree);
return result;
} }
private String companyDateWhereSql(Map<String, Object> request2Map) { private String companyDateWhereSql(Map<String, Object> request2Map) {
@ -705,16 +674,19 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
return fieldname; return fieldname;
} }
/** /**
* *
* *
* @param sql SQL * @param versionId
* @param treeId ID * @param dimension
* @param subCompany
* @return * @return
*/ */
private boolean judgeTreeLeaf(String sql, String treeId) { private boolean judgeTreeLeaf(String versionId, String dimension, String subCompany) {
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
recordSet.executeQuery(sql, treeId); String sql = getSubCompanyTreeSql(versionId, dimension, subCompany);
recordSet.executeQuery(sql, subCompany);
return !recordSet.next(); return !recordSet.next();
} }

Loading…
Cancel
Save