diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 323ad9d6..8bb6e732 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -100,6 +100,13 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { String sql; 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); + if (isRealTime && user.getUID() != 1 && isRealDimension) { + DetachUtil detachUtil = new DetachUtil(user); + String ids = detachUtil.getJclRoleLevels(); + sql = sql + " and id in ("+ids+")"; + } 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") + " = ? and companyid = '" + fclass + "'"; }