diff --git a/src/com/engine/organization/service/impl/ChartServiceImpl.java b/src/com/engine/organization/service/impl/ChartServiceImpl.java index 1ad2d0b4..9c472bdf 100644 --- a/src/com/engine/organization/service/impl/ChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/ChartServiceImpl.java @@ -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 versionRecord(Map params, User user) { - - RecordSet rs = new RecordSet(); // 维度 @@ -479,7 +482,7 @@ public class ChartServiceImpl extends Service implements ChartService { List 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 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 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 expandedKeys,String expandedKeyStr) { + private void addParentTreeId(List 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 insertList; List> 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> insertParamList) { + private void insertData(RecordSetTrans recordSetTrans, String insertSql, List> 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 dataList, Integer selectDepth, String versionId) { + private void findChildData(ChartPO topChartPO, List 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 currentList, ChartPO chartPO, boolean hideDepartment) { + if (hideDepartment) { + if ("2".equals(chartPO.getFtype())) { + return; + } + + } + currentList.add(chartPO); + } }