diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Office.java b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Office.java index b48356e2..636ef5af 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Office.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Office.java @@ -123,6 +123,14 @@ public class Office extends TreeEntity { this.officeType = officeType; } + public String[] getOfficeType_in(){ + return sqlMap.getWhere().getValue("office_type", QueryType.IN); + } + + public void setOfficeType_in(String[] officeTypes){ + sqlMap.getWhere().and("office_type", QueryType.IN, officeTypes); + } + @Length(min=0, max=100, message="负责人长度不能超过 100 个字符") public String getLeader() { return leader; diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java index 10079ba4..1b2e9372 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OfficeController.java @@ -235,6 +235,15 @@ public class OfficeController extends BaseController { if (!(isAll != null && isAll) || Global.isStrictMode()){ officeService.addDataScopeFilter(where, ctrlPermi); } + // 根据父节点过滤数据 + if (StringUtils.isNotBlank(parentCode)){ + where.setParentCode(parentCode); + where.setParentCodes(","+parentCode+","); + } + // 根据部门类型过滤数据 + if (StringUtils.isNotBlank(officeTypes)){ + where.setOfficeType_in(officeTypes.split(",")); + } List list = officeService.findList(where); for (int i = 0; i < list.size(); i++) { Office e = list.get(i); @@ -251,21 +260,6 @@ public class OfficeController extends BaseController { continue; } } - // 根据父节点过滤数据 - if (StringUtils.isNotBlank(parentCode)){ - if (!e.getOfficeCode().equals(parentCode)){ - continue; - } - if (!e.getParentCodes().contains("," + parentCode + ",")){ - continue; - } - } - // 根据部门类型过滤数据 - if (StringUtils.isNotBlank(officeTypes)){ - if (!StringUtils.inString(e.getOfficeType(), officeTypes.split(","))){ - continue; - } - } Map map = MapUtils.newHashMap(); map.put("id", e.getId()); map.put("pId", e.getParentCode());