组织架构图显示部门

pull/204/head
dxfeng 2 years ago
parent ec7bd987b2
commit 2bcc0ae131

@ -94,6 +94,8 @@ public class ChartServiceImpl extends Service implements ChartService {
//版本id
String id = Util.null2String(params.get("id"));
boolean hideDepartment = "1".equals(Util.null2String(params.get("hidedept")));
// 初始化表名
initTableNameByClass(dimension, id);
@ -121,12 +123,13 @@ public class ChartServiceImpl extends Service implements ChartService {
topChartPO.setExpand("1");
topChartPO.setFisvitual(rs.getString("isvitual"));
topChartPO.setHasChildren(getHasChildren(topChartPO.getFtype(), topChartPO.getFobjid()).toString());
dataList.add(topChartPO);
filterAndAddData(dataList, topChartPO, hideDepartment);
//dataList.add(topChartPO);
}
// 向下查询数据
if (null != topChartPO) {
findChildData(topChartPO, dataList, Integer.parseInt(depth), id);
findChildData(topChartPO, dataList, Integer.parseInt(depth), id, hideDepartment);
}
@ -148,6 +151,7 @@ public class ChartServiceImpl extends Service implements ChartService {
showVirtual = "1".equals(isVirtual);
//版本id
String versionId = Util.null2String(params.get("id"));
boolean hideDepartment = "1".equals(Util.null2String(params.get("hidedept")));
// 初始化表名
initTableNameByClass(dimension, versionId);
@ -184,7 +188,8 @@ public class ChartServiceImpl extends Service implements ChartService {
chartPO.setExpand("0");
chartPO.setFisvitual(rs.getString("isvitual"));
chartPO.setHasChildren(getHasChildren(chartPO.getFtype(), chartPO.getFobjid()).toString());
dataList.add(chartPO);
filterAndAddData(dataList, chartPO, hideDepartment);
//dataList.add(chartPO);
}
}
}
@ -404,8 +409,6 @@ public class ChartServiceImpl extends Service implements ChartService {
public Map<String, Object> versionRecord(Map<String, Object> params, User user) {
RecordSet rs = new RecordSet();
// 维度
@ -479,7 +482,7 @@ public class ChartServiceImpl extends Service implements ChartService {
List<String> expandedKeys = new ArrayList<>();
String showCanceled = Util.null2String(params.get("showCanceled"));
String expandedKeyStr = Util.null2String(params.get("expandedKeys"));
if(rs.next()){
if (rs.next()) {
companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).showCanceled(showCanceled).build();
expandedKeys.add(companyTree.getKey());
}
@ -499,12 +502,12 @@ public class ChartServiceImpl extends Service implements ChartService {
TreeSelect companyTree = null;
List<String> expandedKeys = new ArrayList<>();
String showCanceled = Util.null2String(params.get("showCanceled"));
if(rs.next()){
if (rs.next()) {
companyTree = TreeSelect.builder().key(rs.getString("id")).title(rs.getString("companyname")).type(TreeSelect.COMPANY).showCanceled(showCanceled).build();
expandedKeys = companyTree.getChildren().stream().filter(item -> CollectionUtils.isNotEmpty(item.getChildren())).map(TreeSelect::getKey).collect(Collectors.toList());
expandedKeys.add(companyTree.getKey());
}
disableTreeItem(Collections.singletonList(companyTree),TreeSelect.DEPARTMENT);
disableTreeItem(Collections.singletonList(companyTree), TreeSelect.DEPARTMENT);
Map<String, Object> result = new HashMap<>(3);
result.put("selectTree", companyTree);
result.put("expandedKeys", expandedKeys);
@ -518,7 +521,7 @@ public class ChartServiceImpl extends Service implements ChartService {
* @param expandedKeys ID
* @param expandedKeyStr ID
*/
private void addParentTreeId(List<String> expandedKeys,String expandedKeyStr) {
private void addParentTreeId(List<String> expandedKeys, String expandedKeyStr) {
if (StringUtils.isNotBlank(expandedKeyStr)) {
try {
if (expandedKeyStr.startsWith("d")) {
@ -585,12 +588,12 @@ public class ChartServiceImpl extends Service implements ChartService {
}
}
private void trueDimension(RecordSetTrans recordSetTrans,String versionId,String currentUser,String currentDate){
private void trueDimension(RecordSetTrans recordSetTrans, String versionId, String currentUser, String currentDate) {
RecordSet rs = new RecordSet();
rs.execute("delete from jcl_chart_subcompany where versionid = "+versionId);
rs.execute("delete from jcl_chart_department where versionid = "+versionId);
rs.execute("delete from jcl_chart_job where versionid = "+versionId);
rs.execute("delete from jcl_chart_resource where versionid = "+versionId);
rs.execute("delete from jcl_chart_subcompany where versionid = " + versionId);
rs.execute("delete from jcl_chart_department where versionid = " + versionId);
rs.execute("delete from jcl_chart_job where versionid = " + versionId);
rs.execute("delete from jcl_chart_resource where versionid = " + versionId);
String subCompanyQuerySql;//分部查询数据sql
String deptQuerySql;//部门查询数据sql
@ -618,7 +621,7 @@ public class ChartServiceImpl extends Service implements ChartService {
"left join hrmdepartment c on a.supdepid = c.id " +
"left join hrmdepartmentdefined d on a.id=d.deptid";
}else{
} else {
subCompanyQuerySql = "select a.id as subcompanyid,\n" +
" a.subcompanyname,\n" +
" a.subcompanydesc,\n" +
@ -667,7 +670,7 @@ public class ChartServiceImpl extends Service implements ChartService {
insertList.add(StringUtils.isBlank(rs.getString("limitusers")) ? null : rs.getInt("limitusers"));
insertList.add(StringUtils.isBlank(rs.getString("tlevel")) ? null : rs.getInt("tlevel"));
insertList.add(currentDate);
insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 0);
insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"), 0) : 0);
insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId));
insertParamList.add(insertList);
}
@ -675,12 +678,12 @@ public class ChartServiceImpl extends Service implements ChartService {
String insertSubSql = "insert into jcl_chart_subcompany(creater, subcompanyid, subcompanyname, subcompanydesc, company,\n" +
" supsubcompanyid, supsubcompany, canceled, subcompanycode, limitusers,\n" +
" tlevel, versiondate, isvirtual,versionId) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertSubSql,insertParamList);
insertData(recordSetTrans, insertSubSql, insertParamList);
//当前部门版本存储
rs.executeQuery(deptQuerySql);
insertParamList = new ArrayList<>();
while (rs.next()){
while (rs.next()) {
insertList = new ArrayList<>();
insertList.add(currentUser);
insertList.add(StringUtils.isBlank(rs.getString("departmentid")) ? null : rs.getInt("departmentid"));
@ -696,14 +699,14 @@ public class ChartServiceImpl extends Service implements ChartService {
// insertList.add(rs.getInt("tlevel"));
insertList.add(rs.getString("fleader"));
insertList.add(currentDate);
insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"),0) : 0);
insertList.add(virtualFlag ? Util.getIntValue(rs.getString("isvirtual"), 0) : 0);
insertList.add(StringUtils.isBlank(versionId) ? null : Util.getIntValue(versionId));
insertParamList.add(insertList);
}
String insertDeptSql = "insert into jcl_chart_department(creater, departmentid, departmentmark, departmentname, subcompanyid,\n" +
" subcompany, supdepartmentid, supdepartment, canceled, departmentcode,\n" +
" coadjutant, fleader,versiondate, isvirtual,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertDeptSql,insertParamList);
insertData(recordSetTrans, insertDeptSql, insertParamList);
//当前岗位版本存储
rs.executeQuery("select b.id as jobid,b.JOBTITLENAME as jobname,a.ec_department as departmentid," +
@ -715,7 +718,7 @@ public class ChartServiceImpl extends Service implements ChartService {
insertParamList = new ArrayList<>();
while (rs.next()) {
insertList = new ArrayList<>();
insertList.add(StringUtils.isBlank(rs.getString("jobid"))?null:rs.getString("jobid"));
insertList.add(StringUtils.isBlank(rs.getString("jobid")) ? null : rs.getString("jobid"));
insertList.add(currentUser);
insertList.add(rs.getString("jobname"));
insertList.add(rs.getString("departmentid"));
@ -732,7 +735,7 @@ public class ChartServiceImpl extends Service implements ChartService {
}
String insertJobSql = "insert into jcl_chart_job(jobid,creater,jobname,departmentid,department,subcompanyid," +
"subcompany,jobresponsibility,canceled,jobcode,description,versiondate,versionid)values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertJobSql,insertParamList);
insertData(recordSetTrans, insertJobSql, insertParamList);
//当前人员版本存储
rs.executeQuery("select a.id as resourceid,workyear,usekind,managerstr,status,sex,accounttype,belongto," +
@ -794,22 +797,22 @@ public class ChartServiceImpl extends Service implements ChartService {
"department, subcompanyid, subcompany, costcenter,manager, assistant, workcode, classification, " +
"versiondate, policy, degree,versionid,lastname,companyworkyear) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
"?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertResourceSql,insertParamList);
insertData(recordSetTrans, insertResourceSql, insertParamList);
}
private void virtualDimension(RecordSetTrans recordSetTrans,String versionId,String currentUser,String currentDate,String fclass){
private void virtualDimension(RecordSetTrans recordSetTrans, String versionId, String currentUser, String currentDate, String fclass) {
RecordSet rs = new RecordSet();
List<Object> insertList;
List<List<Object>> insertParamList = new ArrayList<>();
rs.execute("delete from jcl_chart_companyvirtual where versionid = "+versionId);
rs.execute("delete from jcl_chart_subcompanyvirtual where versionid = "+versionId);
rs.execute("delete from jcl_chart_departmentvirtual where versionid = "+versionId);
rs.execute("delete from jcl_chart_resource where versionid = "+versionId);
rs.execute("delete from jcl_chart_companyvirtual where versionid = " + versionId);
rs.execute("delete from jcl_chart_subcompanyvirtual where versionid = " + versionId);
rs.execute("delete from jcl_chart_departmentvirtual where versionid = " + versionId);
rs.execute("delete from jcl_chart_resource where versionid = " + versionId);
//虚拟总部存储
rs.executeQuery("select id as companyvirtualid,companyname,companycode,companydesc,showorder,canceled," +
"virtualtype,virtualtypedesc from hrmcompanyvirtual where id=?",fclass);
while (rs.next()){
"virtualtype,virtualtypedesc from hrmcompanyvirtual where id=?", fclass);
while (rs.next()) {
insertList = new ArrayList<>();
insertList.add(StringUtils.isBlank(rs.getString("companyvirtualid")) ? null : rs.getInt("companyvirtualid"));
insertList.add(currentUser);
@ -826,14 +829,14 @@ public class ChartServiceImpl extends Service implements ChartService {
}
String insertVirtualComSql = "insert into jcl_chart_companyvirtual(companyvirtualid,creater,companyname,companycode,companydesc,showorder,\n" +
"canceled,virtualtype,virtualtypedesc,versiondate,versionid) values(?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertVirtualComSql,insertParamList);
insertData(recordSetTrans, insertVirtualComSql, insertParamList);
//虚拟分部版本存储
rs.executeQuery("select a.id as subcompanyvirtualid,a.subcompanyname,a.subcompanycode,a.subcompanydesc," +
"b.subcompanyname as supsubcompany,a.supsubcomid,c.companyname as company,a.companyid,a.canceled," +
"a.virtualtypeid as virtualtype,a.tlevel,a.showorder from hrmsubcompanyvirtual a " +
"left join hrmsubcompanyvirtual b on a.supsubcomid = b.id\n" +
"left join hrmcompanyvirtual c on a.companyid = c.id where a.companyid=?",fclass);
"left join hrmcompanyvirtual c on a.companyid = c.id where a.companyid=?", fclass);
insertParamList = new ArrayList<>();
while (rs.next()) {
insertList = new ArrayList<>();
@ -857,16 +860,16 @@ public class ChartServiceImpl extends Service implements ChartService {
String insertVirtualSubComSql = "insert into jcl_chart_subcompanyvirtual(subcompanyvirtualid, creater, " +
"subcompanyname, subcompanycode,subcompanydesc, supsubcompany, supsubcompanyid, company, companyid," +
"canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertVirtualSubComSql,insertParamList);
insertData(recordSetTrans, insertVirtualSubComSql, insertParamList);
//虚拟部门版本存储
rs.executeQuery("select a.id as departmentvirtualid,a.departmentname,a.departmentcode,a.departmentmark," +
"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 " +
"left join hrmdepartmentvirtual b on a.SUPDEPID = b.id " +
"left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.virtualtype = ?",fclass);
"left join hrmsubcompanyvirtual c on a.SUBCOMPANYID1 = c.id where a.virtualtype = ?", fclass);
insertParamList = new ArrayList<>();
while (rs.next()){
while (rs.next()) {
insertList = new ArrayList<>();
insertList.add(StringUtils.isBlank(rs.getString("departmentvirtualid")) ? null : rs.getInt("departmentvirtualid"));
insertList.add(currentUser);
@ -889,7 +892,7 @@ public class ChartServiceImpl extends Service implements ChartService {
String insertVirtualDeptSql = "insert into jcl_chart_departmentvirtual(departmentvirtualid, creater, " +
"departmentname, departmentcode,departmentmark, supdeptment, supdepid, allsupdepid, subcompany, " +
"subcompanyid, canceled, virtualtype, tlevel, showorder, versiondate,versionid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertVirtualDeptSql,insertParamList);
insertData(recordSetTrans, insertVirtualDeptSql, insertParamList);
//虚拟人员版本存储
rs.executeQuery("select resourceid,workyear,usekind,a.managerstr,status,sex,accounttype,belongto,loginid," +
@ -902,7 +905,7 @@ public class ChartServiceImpl extends Service implements ChartService {
"left join hrmlocations c on b.locationid=c.id\n" +
"left join hrmjobtitles d on b.jobtitle=d.id\n" +
"left join hrmdepartmentvirtual e on a.DEPARTMENTID=e.id\n" +
"left join hrmsubcompanyvirtual f on a.SUBCOMPANYID=f.id where a.virtualtype=?",fclass);
"left join hrmsubcompanyvirtual f on a.SUBCOMPANYID=f.id where a.virtualtype=?", fclass);
insertParamList = new ArrayList<>();
while (rs.next()) {
insertList = new ArrayList<>();
@ -968,12 +971,12 @@ public class ChartServiceImpl extends Service implements ChartService {
// "departmentid,managerstr," +
// //"virtualtype," +
// "versiondate,versionid) values (?,?,?,?,?,?,?)";
insertData(recordSetTrans,insertVirtualHrmSql,insertParamList);
insertData(recordSetTrans, insertVirtualHrmSql, insertParamList);
}
private void insertData(RecordSetTrans recordSetTrans,String insertSql,List<List<Object>> insertParamList) {
private void insertData(RecordSetTrans recordSetTrans, String insertSql, List<List<Object>> insertParamList) {
try {
recordSetTrans.executeBatchSql(insertSql,insertParamList);
recordSetTrans.executeBatchSql(insertSql, insertParamList);
} catch (Exception e) {
recordSetTrans.rollback();
e.printStackTrace();
@ -1137,11 +1140,12 @@ public class ChartServiceImpl extends Service implements ChartService {
/**
* ,
*
* @param topChartPO
* @param dataList
* @param selectDepth
* @param topChartPO
* @param dataList
* @param selectDepth
* @param hideDepartment
*/
private void findChildData(ChartPO topChartPO, List<ChartPO> dataList, Integer selectDepth, String versionId) {
private void findChildData(ChartPO topChartPO, List<ChartPO> dataList, Integer selectDepth, String versionId, boolean hideDepartment) {
String fType = topChartPO.getFtype();
String fObjId = topChartPO.getFobjid();
String sql = "";
@ -1166,11 +1170,12 @@ public class ChartServiceImpl extends Service implements ChartService {
chartPO.setDepartmentDepth(getDepartmentDepth(chartPO, topChartPO));
// 小于、等于所选层级元素展开
chartPO.setExpand(inDepth(selectDepth, chartPO.getDepartmentDepth()) ? "1" : "0");
currentList.add(chartPO);
filterAndAddData(currentList, chartPO, hideDepartment);
//currentList.add(chartPO);
}
for (ChartPO chartPO : currentList) {
if (inDepth(selectDepth, chartPO.getDepartmentDepth())) {
findChildData(chartPO, dataList, selectDepth, versionId);
findChildData(chartPO, dataList, selectDepth, versionId, hideDepartment);
}
}
dataList.addAll(currentList);
@ -1390,8 +1395,9 @@ public class ChartServiceImpl extends Service implements ChartService {
/**
*
* @param versionId ID
* @param dimension
*
* @param versionId ID
* @param dimension
* @param subCompany ID
* @return
*/
@ -1401,4 +1407,22 @@ public class ChartServiceImpl extends Service implements ChartService {
recordSet.executeQuery(sql);
return !recordSet.next();
}
/**
*
*
* @param currentList
* @param chartPO
* @param hideDepartment
*/
private void filterAndAddData(List<ChartPO> currentList, ChartPO chartPO, boolean hideDepartment) {
if (hideDepartment) {
if ("2".equals(chartPO.getFtype())) {
return;
}
}
currentList.add(chartPO);
}
}

Loading…
Cancel
Save