diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java index d3e44b4..4caeddd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java @@ -83,7 +83,7 @@ public class BabyBuildController extends BaseController { @ResponseBody public BaseResponse deleteBabyBuildById(@PathVariable("id") String id, HttpServletRequest request) { - return babyBookbuildingFacade.deleteBabyBuildById(id,getUserId(request)); + return babyBookbuildingFacade.deleteBabyBuildById(id, getUserId(request)); } @@ -337,7 +337,7 @@ public class BabyBuildController extends BaseController { // 是否区域 request.setIsArea(isArea); - babyBookbuildingFacade.exportChilds(request,loginState.getId(),httpServletResponse); + babyBookbuildingFacade.exportChilds(request, loginState.getId(), httpServletResponse); } @@ -485,4 +485,30 @@ public class BabyBuildController extends BaseController { + + + /** + * 围产儿统计报表 + * @param request + * @param response + * @param time + * @param ageType 1, <= 20 2, 20-=25 3,25-=30, 4,30-=35 5, >35 + * @param lievType 1 城镇 2 农业 + * @return + */ + @ResponseBody + @RequestMapping(value = "/queryWcBabyReport",method = RequestMethod.GET) + @TokenRequired + public BaseResponse queryWcBabyReport(HttpServletRequest request,HttpServletResponse response, + @RequestParam(required = false)String time, + @RequestParam(required = false)Integer ageType, + @RequestParam(required = false)Integer lievType, + @RequestParam(required = false)String provinceId, + @RequestParam(required = false)String cityId + ){ + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyBookbuildingFacade.queryWcBabyReport(loginState.getId(), time, ageType,lievType ,provinceId,cityId); + } + + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java index cfbc00f..d64ac37 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java @@ -325,4 +325,5 @@ public class SieveController extends BaseController { } + } \ No newline at end of file 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 069aa63..4672f22 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 @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.facade; +import com.lyms.platform.beans.AddressBean; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.YnEnums; @@ -161,6 +162,43 @@ public class AreaCountFacade { } + public boolean hasPermissions(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.getC())) { + return true; + } + } + else if (addType == 2) + { + if (id != null && id.equals(bean.getA())) + { + return true; + } + } + else if (addType == 3) + { + if (id != null && id.equals(bean.getS())) + { + return true; + } + } + } + } + return false; + } + /** * 产检节点统计 * diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index e0c3cf1..69a0e40 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -6,6 +6,7 @@ import com.lyms.hospitalapi.lcdcf.LcdcfHisService; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; import com.lyms.hospitalapi.qinglongxian.QingLongXianHisService; import com.lyms.hospitalapi.v2.HisService; +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; @@ -15,6 +16,7 @@ import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.ITrackDownService; @@ -31,6 +33,7 @@ import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.*; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -119,6 +122,10 @@ public class BabyBookbuildingFacade { @Autowired private SyncDataService syncDataService; + + @Autowired + private AreaCountFacade areaCountFacade; + @Autowired private SmsConfigFacade smsConfigFacade; @@ -3214,4 +3221,171 @@ public class BabyBookbuildingFacade { public void deleteFmHistoryRecord(MongoQuery mongoQuery) { babyBookbuildingService.deleteFmHistoryRecord(mongoQuery); } + + public BaseResponse queryWcBabyReport(Integer userId, String time, Integer ageType, Integer lievType, String provinceId, String cityId) { + + //获取用户权限医院和筛选条件的交集 + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, provinceId, + cityId, null); + + String[] dates = null; + if (org.apache.commons.lang.StringUtils.isNotEmpty(time)) { + dates = time.split(" - "); + } + + BasicConfigQuery basicQuery = new BasicConfigQuery(); + basicQuery.setYn(YnEnums.YES.getId()); + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); + + int addrType = 0; + if (org.apache.commons.lang.StringUtils.isNotEmpty(provinceId)) { + basicQuery.setParentId(provinceId); + addrType = 1; + } + if (org.apache.commons.lang.StringUtils.isNotEmpty(cityId)) { + basicQuery.setParentId(cityId); + addrType = 2; + } + + + //x轴标题数据 + List xAxis = new ArrayList<>(); + + +// DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); +// dataPermissionsModelQuery.setUserId(userId); +// List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + + + //获取地址列表 + List configList = basicConfigService.queryBasicConfig(basicQuery); + + if (CollectionUtils.isNotEmpty(configList)) { + for (BasicConfig addr : configList) { + xAxis.add(addr.getName()); + } + } + + //分类标题 + List titleItems = new LinkedList<>(); + titleItems.add("总数"); + titleItems.add("男"); + titleItems.add("女"); + + //图标数据 + List> series = new LinkedList<>(); + + if (CollectionUtils.isNotEmpty(configList)) { + Map map = new HashMap(); + map.put("name", "总数"); + map.put("type", "bar"); + + Map manMap = new HashMap(); + manMap.put("name", "男"); + manMap.put("type", "bar"); + + Map womanMap = new HashMap(); + womanMap.put("name", "女"); + womanMap.put("type", "bar"); + + List zsItems = new ArrayList<>(); + List manItems = new ArrayList<>(); + List womanItems = new ArrayList<>(); + for (BasicConfig c : configList) { + + OrganizationQuery idQuery = new OrganizationQuery(); + idQuery.setYn(YnEnums.YES.getId()); + + //查询机构数 + if (addrType == 1) { + idQuery.setCityId(c.getId()); + } else if (addrType == 2) { + idQuery.setAreaId(c.getId()); + } + List orgs = organizationService.queryOrganization(idQuery); + List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); + + if (CollectionUtils.isNotEmpty(hids)) + { + zsItems.add("0"); + manItems.add("0"); + womanItems.add("0"); + } + else + { + zsItems.add("0"); + manItems.add("0"); + womanItems.add("0"); + } + } + map.put("data", zsItems); + series.add(map); + + manMap.put("data", manItems); + series.add(manMap); + + womanMap.put("data", womanItems); + series.add(womanMap); + } + + + List> result = new ArrayList<>(); + + int num = 1; + if (CollectionUtils.isNotEmpty(configList)) + { + for (BasicConfig c : configList) { + + List items = new ArrayList<>(); + items.add(String.valueOf(num)); + items.add(c.getName()); + + OrganizationQuery query = new OrganizationQuery(); + query.setYn(YnEnums.YES.getId()); + if (addrType == 1) { + query.setCityId(c.getId()); + } else if (addrType == 2) { + query.setAreaId(c.getId()); + } + //查询机构数 + List orgs = organizationService.queryOrganization(query); + int orgSize = CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0; + items.add(String.valueOf(orgSize)); + + + List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); + if (CollectionUtils.isNotEmpty(hids)) { + } + else + { + items.add("0"); + items.add("0"); + items.add("0"); + } + num++; + result.add(items); + } + } + + Map datas = new HashMap<>(); + datas.put("series", series); + datas.put("xAxis", xAxis); + datas.put("legend", titleItems); + datas.put("tableDatas", result); + return new BaseObjectResponse() + .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas); + } + + + + private List getConditionHospitalIds(List currentUserHospPermissions, List conditionHospitals) { + List hids = new ArrayList<>(); + for (Organization org : conditionHospitals) { + hids.add(String.valueOf(org.getId())); + } + hids.retainAll(currentUserHospPermissions); + + return hids; + } + } \ No newline at end of file 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 790484b..f3c7d6a 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 @@ -1143,12 +1143,20 @@ public class SieveFacade { //x轴标题数据 List xAxis = new ArrayList<>(); - //获取地址列表 - List configList = basicConfigService.queryBasicConfig(basicQuery); + List configList = new ArrayList<>(); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + //获取地址列表 + List dataConfigs = basicConfigService.queryBasicConfig(basicQuery); if (CollectionUtils.isNotEmpty(configList)) { - for (BasicConfig addr : configList) { - xAxis.add(addr.getName()); + for (BasicConfig addr : dataConfigs) { + if (areaCountFacade.hasPermissions(addr.getId(),addrType,permissionsModels)) + { + configList.add(addr); + xAxis.add(addr.getName()); + } } } @@ -1290,7 +1298,6 @@ public class SieveFacade { diagnosisQuery1.setResultDateEnd(DateUtil.parseYMDHMS(dates[1])); } } - System.out.println("diagnosisQuery1==="+diagnosisQuery1.convertToQuery().convertToMongoQuery()); int diagnosisCountAll = diagnosisService.queryDiagnosisCount(diagnosisQuery1); items.add(String.valueOf(diagnosisCountAll)); } @@ -1326,7 +1333,8 @@ public class SieveFacade { @Autowired private BasicConfigService basicConfigService; - + @Autowired + private DataPermissionService dataPermissionService; @Autowired private AreaCountFacade areaCountFacade; @@ -1599,11 +1607,11 @@ public class SieveFacade { dates = cqSieveQueryRequest.getTime().split(" - "); titleName+=cqSieveQueryRequest.getTime(); } - List> list = getSieveDatas(currentUserHospPermissions,dates,cqSieveQueryRequest.getCityId()); + List> list = getSieveDatas(currentUserHospPermissions, dates, cqSieveQueryRequest.getCityId()); 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"; - ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list,titleName); + ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list, titleName); } catch (Exception e) { ExceptionUtils.catchException(e, "exportSieveReportExcl error"); @@ -2024,4 +2032,5 @@ public class SieveFacade { list.add(dataMap); } + } \ No newline at end of file