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 a7e079a..0293d45 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 @@ -201,83 +201,83 @@ public class AreaCountFacade { -// public List getCurrentUserHospPermissions(Integer userId, String provinceId, String cityId, String areaId) { -// -// //权限医院列表 -// List perHoapitalList = new ArrayList<>(); -// DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); -// dataPermissionsModelQuery.setUserId(userId); -// List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); -// if (CollectionUtils.isNotEmpty(permissionsModels)) { -// Set set = permissionsModels.get(0).getData().keySet(); -// Iterator it = set.iterator(); -// while (it.hasNext()) { -// String id = it.next(); -// if (StringUtils.isNotEmpty(id)) { -// perHoapitalList.add(id); -// } -// } -// //区域查询到的医院 -// List areaHospitalList = new ArrayList<>(); -// if (StringUtils.isNotEmpty(permissionsModels.get(0).getAreaPermission())) -// { -// List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); -// if (CollectionUtils.isNotEmpty(addressBeanList)) -// { -// for (AddressBean bean : addressBeanList) -// { -// if (StringUtils.isNotEmpty(bean.getP())) { -// OrganizationQuery organizationQuery = new OrganizationQuery(); -// organizationQuery.setYn(YnEnums.YES.getId()); -// organizationQuery.setProvinceId(bean.getP()); -// if (StringUtils.isNotEmpty(bean.getC())) { -// organizationQuery.setCityId(bean.getC()); -// if (StringUtils.isNotEmpty(bean.getA())) { -// organizationQuery.setAreaId(bean.getA()); -// } -// } -// List organizations = organizationService.queryOrganization(organizationQuery); -// if (CollectionUtils.isNotEmpty(organizations)) { -// for (Organization org : organizations) { -// areaHospitalList.add(org.getId() + ""); -// } -// } -// organizations.clear(); -// } -// } -// } -// } -// //权限医院列表与区域列表查询到的医院交集 -// perHoapitalList.retainAll(areaHospitalList); -// } -// -// //条件查询到的医院 -// List conditionHospitalList = new ArrayList<>(); -// if (StringUtils.isNotEmpty(provinceId)) { -// OrganizationQuery organizationQuery = new OrganizationQuery(); -// organizationQuery.setYn(YnEnums.YES.getId()); -// -// organizationQuery.setProvinceId(provinceId); -// if (StringUtils.isNotEmpty(cityId)) { -// organizationQuery.setCityId(cityId); -// if (StringUtils.isNotEmpty(areaId)) { -// organizationQuery.setAreaId(areaId); -// } -// } -// List organizations = organizationService.queryOrganization(organizationQuery); -// if (CollectionUtils.isNotEmpty(organizations)) { -// for (Organization org : organizations) { -// if (null != org.getId()) { -// conditionHospitalList.add(org.getId() + ""); -// } -// } -// } -// organizations.clear(); -// } -// -// conditionHospitalList.retainAll(perHoapitalList); -// return conditionHospitalList; -// } + public List getCurrentUserHospPermissions2(Integer userId, String provinceId, String cityId, String areaId) { + + //权限医院列表 + List perHoapitalList = new ArrayList<>(); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + Set set = permissionsModels.get(0).getData().keySet(); + Iterator it = set.iterator(); + while (it.hasNext()) { + String id = it.next(); + if (StringUtils.isNotEmpty(id)) { + perHoapitalList.add(id); + } + } + //区域查询到的医院 + List areaHospitalList = new ArrayList<>(); + if (StringUtils.isNotEmpty(permissionsModels.get(0).getAreaPermission())) + { + List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); + if (CollectionUtils.isNotEmpty(addressBeanList)) + { + for (AddressBean bean : addressBeanList) + { + if (StringUtils.isNotEmpty(bean.getP())) { + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + organizationQuery.setProvinceId(bean.getP()); + if (StringUtils.isNotEmpty(bean.getC())) { + organizationQuery.setCityId(bean.getC()); + if (StringUtils.isNotEmpty(bean.getA())) { + organizationQuery.setAreaId(bean.getA()); + } + } + List organizations = organizationService.queryOrganization(organizationQuery); + if (CollectionUtils.isNotEmpty(organizations)) { + for (Organization org : organizations) { + areaHospitalList.add(org.getId() + ""); + } + } + organizations.clear(); + } + } + } + } + //权限医院列表与区域列表查询到的医院交集 + perHoapitalList.retainAll(areaHospitalList); + } + + //条件查询到的医院 + List conditionHospitalList = new ArrayList<>(); + if (StringUtils.isNotEmpty(provinceId)) { + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + + organizationQuery.setProvinceId(provinceId); + if (StringUtils.isNotEmpty(cityId)) { + organizationQuery.setCityId(cityId); + if (StringUtils.isNotEmpty(areaId)) { + organizationQuery.setAreaId(areaId); + } + } + List organizations = organizationService.queryOrganization(organizationQuery); + if (CollectionUtils.isNotEmpty(organizations)) { + for (Organization org : organizations) { + if (null != org.getId()) { + conditionHospitalList.add(org.getId() + ""); + } + } + } + organizations.clear(); + } + + conditionHospitalList.retainAll(perHoapitalList); + return conditionHospitalList; + } /** 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 f671f1a..cd3aa30 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 @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.beans.AddressBean; import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; @@ -1114,7 +1115,7 @@ public class SieveFacade { public BaseResponse queryCqsievesReport(CqSieveQueryRequest cqSieveQueryRequest, Integer userId) { //获取用户权限医院和筛选条件的交集 - List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(), + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, cqSieveQueryRequest.getProvinceId(), cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); String[] dates = null; @@ -1126,25 +1127,58 @@ public class SieveFacade { basicQuery.setYn(YnEnums.YES.getId()); basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); + + List ids = new ArrayList<>(); + + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + int addrType = 0; if (StringUtils.isNotEmpty(cqSieveQueryRequest.getProvinceId())) { - basicQuery.setParentId(cqSieveQueryRequest.getProvinceId()); + ids = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); + if (CollectionUtils.isNotEmpty(addressBeanList)) + { + for (AddressBean bean : addressBeanList) + { + if (bean.getP().equals(cqSieveQueryRequest.getProvinceId()) && StringUtils.isNotEmpty(bean.getC())) + { + ids.add(bean.getC()); + } + } + } + } + basicQuery.setIds(ids); addrType = 1; } if (StringUtils.isNotEmpty(cqSieveQueryRequest.getCityId())) { - basicQuery.setParentId(cqSieveQueryRequest.getCityId()); - addrType = 2; - } - if (StringUtils.isNotEmpty(cqSieveQueryRequest.getAreaId())) { - basicQuery.setParentId(cqSieveQueryRequest.getAreaId()); - addrType = 3; + ids = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); + if (CollectionUtils.isNotEmpty(addressBeanList)) + { + for (AddressBean bean : addressBeanList) + { + if (bean.getC().equals(cqSieveQueryRequest.getCityId()) && StringUtils.isNotEmpty(bean.getA())) + { + ids.add(bean.getA()); + } + } + } + } + basicQuery.setIds(ids); } //x轴标题数据 List xAxis = new ArrayList<>(); - //获取地址列表 - List configList = basicConfigService.queryBasicConfig(basicQuery); + List configList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(ids)) + { + configList = basicConfigService.queryBasicConfig(basicQuery); + } if (CollectionUtils.isNotEmpty(configList)) { for (BasicConfig addr : configList) { @@ -1330,8 +1364,11 @@ public class SieveFacade { @Autowired private AreaCountFacade areaCountFacade; + @Autowired + private DataPermissionService dataPermissionService; + - private List> getSieveDatas(List hospitalIds,String[] dates,String cityId) + private List> getSieveDatas(List hospitalIds,String[] dates,String cityId,Integer userId) { List> list = new ArrayList<>(); @@ -1341,7 +1378,25 @@ public class SieveFacade { basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); basicQuery.setParentId(cityId); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + List ids = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(permissionsModels)) { + List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); + if (CollectionUtils.isNotEmpty(addressBeanList)) + { + for (AddressBean bean : addressBeanList) + { + if (bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA())) + { + ids.add(bean.getA()); + } + } + } + } + basicQuery.setIds(ids); //获取地址列表 List configList = basicConfigService.queryBasicConfig(basicQuery); @@ -1591,7 +1646,7 @@ public class SieveFacade { try { //获取用户权限医院和筛选条件的交集 - List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(), + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, cqSieveQueryRequest.getProvinceId(), cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); String[] dates = null; String titleName = "孕妇产前筛查和诊断情况月报表"; @@ -1599,7 +1654,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";