组织架构图,BUG修复

pull/194/head
dxfeng 2 years ago
parent 725d64888c
commit d510f32bc5

@ -4,7 +4,6 @@ import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import weaver.conn.RecordSet;
/** /**
* @author:dxfeng * @author:dxfeng
@ -24,9 +23,7 @@ public class CompanyTreePO {
private String key; private String key;
public boolean getIsLeaf() { public boolean getIsLeaf() {
RecordSet rs = new RecordSet(); return isLeaf;
rs.executeQuery("select id from hrmsubcompany where (canceled is null or canceled != '1') and supsubcomid = ?",id);
return !rs.next();
} }
public String getpId() { public String getpId() {

@ -3,8 +3,6 @@ package com.engine.organization.service.impl;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.organization.entity.chart.ChartPO; import com.engine.organization.entity.chart.ChartPO;
import com.engine.organization.entity.chart.history.DepartmentHistory;
import com.engine.organization.entity.chart.history.SubcompanyHistory;
import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper;
import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
import com.engine.organization.service.ChartService; import com.engine.organization.service.ChartService;
@ -17,7 +15,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans; import weaver.conn.RecordSetTrans;
import weaver.general.StringUtil;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.hrm.resource.ResourceComInfo; import weaver.hrm.resource.ResourceComInfo;
@ -238,9 +235,9 @@ public class ChartServiceImpl extends Service implements ChartService {
} }
} else { } else {
if (hasVirtualFields) { if (hasVirtualFields) {
sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,fleader as bmfzr,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where a." + DEPARTMENT_ID + " = '" + departmentId + "' and versionid = " + versionId;
} else { } else {
sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name from " + DEPARTMENT_TABLE + " a where a.id = '" + departmentId + "' and versionid = " + versionId; sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name from " + DEPARTMENT_TABLE + " a where a." + DEPARTMENT_ID + " = '" + departmentId + "' and versionid = " + versionId;
} }
} }
rs.executeQuery(sql); rs.executeQuery(sql);
@ -386,7 +383,7 @@ public class ChartServiceImpl extends Service implements ChartService {
return "select id,companyname as name,'0' as type from " + COMPANY_TABLE; return "select id,companyname as name,'0' as type from " + COMPANY_TABLE;
} else { } else {
//查询其他维度集团版本信息 //查询其他维度集团版本信息
return "select id,companyname as name,'0' as type from " + COMPANY_TABLE + " where " + return "select companyvirtualid as id,companyname as name,'0' as type from " + COMPANY_TABLE + " where " +
" versionid = " + versionId + " and companyvirtualid = " + dimension; " versionid = " + versionId + " and companyvirtualid = " + dimension;
} }
} else { } else {
@ -560,16 +557,16 @@ public class ChartServiceImpl extends Service implements ChartService {
insertData(insertDeptSql,insertParamList); insertData(insertDeptSql,insertParamList);
//当前岗位版本存储 //当前岗位版本存储
rs.executeQuery("select a.id as jobid,a.job_name as jobname,a.ec_department as departmentid," + rs.executeQuery("select b.id as jobid,b.JOBTITLENAME as jobname,a.ec_department as departmentid," +
"c.departmentname as department,a.ec_company as subcompanyid,d.subcompanyname as subcompany," + "c.departmentname as department,a.ec_company as subcompanyid,d.subcompanyname as subcompany," +
"b.jobresponsibility,a.forbidden_tag as canceled,a.job_no as jobcode,a.description " + "b.jobresponsibility,a.forbidden_tag as canceled,a.job_no as jobcode,a.description " +
"from jcl_org_job a left join hrmjobtitles b on a.ec_jobtitle = b.id " + "from jcl_org_job a inner join hrmjobtitles b on a.ec_jobtitle = b.id " +
"left join hrmdepartment c on a.ec_department=c.id " + "left join hrmdepartment c on a.ec_department=c.id " +
"left join hrmsubcompany d on a.ec_company=d.id"); "left join hrmsubcompany d on a.ec_company=d.id");
insertParamList = new ArrayList<>(); insertParamList = new ArrayList<>();
while (rs.next()) { while (rs.next()) {
insertList = new ArrayList<>(); insertList = new ArrayList<>();
insertList.add(rs.getString("jobid")); insertList.add(StringUtils.isBlank(rs.getString("jobid"))?null:rs.getString("jobid"));
insertList.add(currentUser); insertList.add(currentUser);
insertList.add(rs.getString("jobname")); insertList.add(rs.getString("jobname"));
insertList.add(rs.getString("departmentid")); insertList.add(rs.getString("departmentid"));
@ -591,13 +588,12 @@ public class ChartServiceImpl extends Service implements ChartService {
//当前人员版本存储 //当前人员版本存储
rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," + rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," +
"loginid,maritalstatus,a.telephone,mobile,mobilecall,email,b.locationname,resourcetype,startdate," + "loginid,maritalstatus,a.telephone,mobile,mobilecall,email,b.locationname,resourcetype,startdate," +
"enddate,c.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,departmentid,e.departmentname as department," + "enddate,d.id as jobtitleid,d.JOBTITLENAME as jobtitle,joblevel,seclevel,departmentid,e.departmentname as department," +
"a.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,a.costcenterid as costcenter," + "a.subcompanyid1 as subcompanyid,f.subcompanyname as subcompany,a.costcenterid as costcenter," +
"a.managerid as manager,a.assistantid as assistant,workcode,classification,policy," + "a.managerid as manager,a.assistantid as assistant,workcode,classification,policy," +
"degree,a.lastname,a.companyworkyear from hrmresource a " + "degree,a.lastname,a.companyworkyear from hrmresource a " +
"left join hrmlocations b on a.locationid = b.id " + "left join hrmlocations b on a.locationid = b.id " +
"left join jcl_org_job c on a.jobtitle = c.id " + "left join hrmjobtitles d on a.jobtitle = d.id " +
"left join hrmjobtitles d on c.ec_jobtitle = d.id " +
"left join hrmdepartment e on a.departmentid = e.id " + "left join hrmdepartment e on a.departmentid = e.id " +
"left join hrmsubcompany f on a.subcompanyid1=f.id"); "left join hrmsubcompany f on a.subcompanyid1=f.id");
insertParamList = new ArrayList<>(); insertParamList = new ArrayList<>();
@ -605,7 +601,7 @@ public class ChartServiceImpl extends Service implements ChartService {
insertList = new ArrayList<>(); insertList = new ArrayList<>();
insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid")); insertList.add(StringUtils.isBlank(rs.getString("resourceid")) ? null : rs.getInt("resourceid"));
insertList.add(currentUser); insertList.add(currentUser);
insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getInt("workyear")); insertList.add(StringUtils.isBlank(rs.getString("workyear")) ? null : rs.getString("workyear"));
insertList.add(rs.getString("usekind")); insertList.add(rs.getString("usekind"));
insertList.add(rs.getString("managerstr")); insertList.add(rs.getString("managerstr"));
insertList.add(StringUtils.isBlank(rs.getString("status")) ? null : rs.getInt("status")); insertList.add(StringUtils.isBlank(rs.getString("status")) ? null : rs.getInt("status"));
@ -710,7 +706,7 @@ public class ChartServiceImpl extends Service implements ChartService {
insertParamList.add(insertList); insertParamList.add(insertList);
} }
String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " + String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " +
"subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcomid, company, companyid," + "subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcompanyid, company, companyid," +
"canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; "canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(insertVirtualSubComSql,insertParamList); insertData(insertVirtualSubComSql,insertParamList);
@ -719,7 +715,7 @@ public class ChartServiceImpl extends Service implements ChartService {
"b.DEPARTMENTNAME as supdeptment,b.SUPDEPID as supdepid,a.allsupdepid,c.SUBCOMPANYNAME as subcompany," + "b.DEPARTMENTNAME as supdeptment,b.SUPDEPID as supdepid,a.allsupdepid,c.SUBCOMPANYNAME as subcompany," +
"a.SUBCOMPANYID1 as subcompanyid,a.canceled,a.virtualtype,a.tlevel,a.showorder from hrmdepartmentvirtual a " + "a.SUBCOMPANYID1 as subcompanyid,a.canceled,a.virtualtype,a.tlevel,a.showorder from hrmdepartmentvirtual a " +
"left join hrmdepartmentvirtual b on a.SUPDEPID = b.id " + "left join hrmdepartmentvirtual b on a.SUPDEPID = b.id " +
"left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.companyid = ",fclass); "left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.virtualtype = ?",fclass);
insertParamList = new ArrayList<>(); insertParamList = new ArrayList<>();
while (rs.next()){ while (rs.next()){
insertList = new ArrayList<>(); insertList = new ArrayList<>();
@ -757,13 +753,15 @@ public class ChartServiceImpl extends Service implements ChartService {
insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid")); insertList.add(StringUtils.isBlank(rs.getString("subcompanyid")) ? null : rs.getInt("subcompanyid"));
insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid")); insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid"));
insertList.add(rs.getString("managerstr")); insertList.add(rs.getString("managerstr"));
insertList.add(rs.getString("virtualtype")); //insertList.add(rs.getString("virtualtype"));
insertList.add(currentDate); insertList.add(currentDate);
insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId)); insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId));
insertParamList.add(insertList); insertParamList.add(insertList);
} }
String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," + String insertVirtualHrmSql = "insert into jcl_chart_resource(resourceid,MANAGER,subcompanyid," +
"departmentid,managerstr,virtualtype,versiondate,versionid) values (?,?,?,?,?,?,?,?)"; "departmentid,managerstr," +
//"virtualtype," +
"versiondate,versionid) values (?,?,?,?,?,?,?)";
insertData(insertVirtualHrmSql,insertParamList); insertData(insertVirtualHrmSql,insertParamList);
} }
@ -911,7 +909,7 @@ public class ChartServiceImpl extends Service implements ChartService {
} }
} else { } else {
sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = " + versionId + sql = "select " + SUB_COMPANY_ID + " as id,a.subcompanyname as name,'1' as type from " + SUB_COMPANY_TABLE + " a where (canceled is null or canceled != '1') and supsubcompanyid = '" + fObjId + "' and versionid = " + versionId +
" union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepartmentid is null or supdepartmentid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId; " union select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (supdepid is null or supdepid = '0') and subcompanyid = '" + fObjId + "' and versionid = " + versionId;
} }
break; break;
case "2": case "2":
@ -922,7 +920,7 @@ public class ChartServiceImpl extends Service implements ChartService {
sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId; sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type ,isvirtual as isvitual from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and (isvirtual is null or isvirtual != '1') and a.supdepartmentid = '" + fObjId + "' and versionid = " + versionId;
} }
} else { } else {
sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepartmentid = '" + fObjId + "' and versionid = " + versionId; sql = "select " + DEPARTMENT_ID + " as id,a.departmentname as name,'2' as type from " + DEPARTMENT_TABLE + " a where (canceled is null or canceled != '1') and supdepid = '" + fObjId + "' and versionid = " + versionId;
} }
break; break;
default: default:

@ -86,7 +86,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
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'"; 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'";
rs.executeQuery(sql); rs.executeQuery(sql);
while (rs.next()) { while (rs.next()) {
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build()); 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);
@ -111,21 +111,21 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id); boolean isSearchCurrent = StringUtils.isBlank(id) || "0".equals(id);
String sql; String sql;
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") + " = '" + subcompany + "'"; 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") + " = ? ";
if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) {
sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; sql = "select id as id, id as value, subcompanyname as title, supsubcomid as pId from hrmsubcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcomid", "0") + " = ? and companyid = '" + fclass + "'";
} }
} else { } else {
sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "'"; sql = "select subcompanyid as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompany where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = ? ";
if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) { if (StringUtils.isNotBlank(fclass) && !"0".equals(fclass)) {
sql = "select id as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = '" + subcompany + "' and companyid = '" + fclass + "'"; sql = "select subcompanyvirtualid as id, id as value, subcompanyname as title, supsubcompanyid as pId from jcl_chart_subcompanyvirtual where (canceled is null or canceled != '1') and " + DBType.get(new RecordSet().getDBType()).ifNull("supsubcompanyid", "0") + " = ? and companyid = '" + fclass + "'";
} }
// 添加时间轴条件 // 添加时间轴条件
sql += " and versionid = " + id; sql += " and versionid = " + id;
} }
rs.executeQuery(sql); rs.executeQuery(sql,subcompany);
while (rs.next()) { while (rs.next()) {
companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).build()); companyTree.add(CompanyTreePO.builder().id(rs.getString("id")).pId(rs.getString("pId")).value(rs.getString("value")).title(rs.getString("title")).isLeaf(judgeTreeLeaf(sql, rs.getString("id"))).build());
} }
result.put("companyTree", companyTree); result.put("companyTree", companyTree);
return result; return result;
@ -701,6 +701,19 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
return fieldname; return fieldname;
} }
/**
*
*
* @param sql SQL
* @param treeId ID
* @return
*/
private boolean judgeTreeLeaf(String sql, String treeId) {
RecordSet recordSet = new RecordSet();
recordSet.executeQuery(sql, treeId);
return !recordSet.next();
}
static class OrgSelectItem { static class OrgSelectItem {
private Integer key; private Integer key;
private String id; private String id;

Loading…
Cancel
Save