diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index 4672f22..cbd9521 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -199,6 +199,46 @@ public class AreaCountFacade { return false; } + + + public boolean hasPermissions2(String id,Integer addType,List permissionsModels) + { + + if (CollectionUtils.isNotEmpty(permissionsModels) && StringUtils.isNotEmpty(permissionsModels.get(0).getAreaPermission())) + { + List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); + if (CollectionUtils.isEmpty(addressBeanList)) + { + return false; + } + + for (AddressBean bean : addressBeanList) + { + if (addType == 1) { + if (id != null && id.equals(bean.getP())) { + return true; + } + } + else if (addType == 2) + { + if (id != null && id.equals(bean.getC())) + { + return true; + } + } + else if (addType == 3) + { + if (id != null && id.equals(bean.getA())) + { + return true; + } + } + } + } + return false; + } + + /** * 产检节点统计 * diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java index f3c7d6a..189685b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java @@ -1150,7 +1150,7 @@ public class SieveFacade { List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); //获取地址列表 List dataConfigs = basicConfigService.queryBasicConfig(basicQuery); - if (CollectionUtils.isNotEmpty(configList)) { + if (CollectionUtils.isNotEmpty(dataConfigs)) { for (BasicConfig addr : dataConfigs) { if (areaCountFacade.hasPermissions(addr.getId(),addrType,permissionsModels)) { @@ -1339,7 +1339,7 @@ public class SieveFacade { private AreaCountFacade areaCountFacade; - private List> getSieveDatas(List hospitalIds,String[] dates,String cityId) + private List> getSieveDatas(List hospitalIds,String[] dates,String cityId,Integer userId) { List> list = new ArrayList<>(); @@ -1349,10 +1349,22 @@ public class SieveFacade { basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); basicQuery.setParentId(cityId); + List configList = new ArrayList<>(); - + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); //获取地址列表 - List configList = basicConfigService.queryBasicConfig(basicQuery); + List dataConfigs = basicConfigService.queryBasicConfig(basicQuery); + if (CollectionUtils.isNotEmpty(dataConfigs)) { + for (BasicConfig addr : dataConfigs) { + if (areaCountFacade.hasPermissions(addr.getId(),2,permissionsModels)) + { + configList.add(addr); + } + } + } + for (BasicConfig bc : configList) { int ySieveCount = 0; @@ -1607,7 +1619,7 @@ public class SieveFacade { dates = cqSieveQueryRequest.getTime().split(" - "); titleName+=cqSieveQueryRequest.getTime(); } - List> list = getSieveDatas(currentUserHospPermissions, dates, cqSieveQueryRequest.getCityId()); + List> list = getSieveDatas(currentUserHospPermissions, dates, cqSieveQueryRequest.getCityId(),userId); response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(("孕妇产前筛查和诊断情况月报表.xls").getBytes("UTF-8"), "ISO-8859-1")); String path = this.getClass().getResource("/").getPath()+ "whfy_sieve.xls"; @@ -1632,10 +1644,29 @@ public class SieveFacade { h1+=" "+cqSieveQueryRequest.getTime(); } - //获取用户权限医院和筛选条件的交集 - List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(), - cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); - List> list = getDiaDatas(currentUserHospPermissions, dates); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + + + boolean hasPermission = false; + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getProvinceId())) { + hasPermission = areaCountFacade.hasPermissions2(cqSieveQueryRequest.getProvinceId(), 1, permissionsModels); + } + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getCityId())) { + hasPermission = areaCountFacade.hasPermissions2(cqSieveQueryRequest.getProvinceId(), 2, permissionsModels); + } + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getAreaId())) { + hasPermission = areaCountFacade.hasPermissions2(cqSieveQueryRequest.getProvinceId(), 3, permissionsModels); + } + List> list = new ArrayList<>(); + if (hasPermission) + { + //获取用户权限医院和筛选条件的交集 + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(), + cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); + list = getDiaDatas(currentUserHospPermissions, dates); + } response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(("产前诊断及新生儿疾病筛查工作情况表.xls").getBytes("UTF-8"), "ISO-8859-1")); String path = this.getClass().getResource("/").getPath()+ "whfy_diagnosis.xls";