diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java index ea9298c..d476a9b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java @@ -2190,8 +2190,8 @@ public class PremaritalCheckupFacade { } - //婚检统计 - public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ + //婚检导出 + public BaseResponse queryPremaritalExcel(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ //获取用户权限医院和筛选条件的交集 List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, provinceId, cityId, areaId); @@ -2428,7 +2428,6 @@ public class PremaritalCheckupFacade { } else { woman = 1; } - xAxis.add(orgs.get(0).getName()); if(man == 1){ hjList.add("0"); item.add("0"); @@ -2470,7 +2469,7 @@ public class PremaritalCheckupFacade { result.add(item); } hjMap.put("data",hjList); - hqwsMap.put("data",hqwsList); + hqwsMap.put("data", hqwsList); series.add(hjMap); series.add(hqwsMap); } @@ -2487,6 +2486,253 @@ public class PremaritalCheckupFacade { + //婚检统计 + public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ + //获取用户权限医院和筛选条件的交集 + List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, provinceId, + cityId, areaId); + int xuhao = 1; + //图标数据 + List> series = new LinkedList<>(); + Map hjTotalMap = new HashMap(); + hjTotalMap.put("name","总数"); + hjTotalMap.put("type","bar"); + Map hjManMap = new HashMap(); + hjManMap.put("name","男"); + hjManMap.put("type","bar"); + Map hjWomanMap = new HashMap(); + hjWomanMap.put("name","女"); + hjWomanMap.put("type","bar"); + List hjManList = new ArrayList(); + List hjWomanList = new ArrayList(); + List hjTotalList = new ArrayList(); + List> result = new ArrayList<>(); + //标题名称 + List titleItems = new LinkedList<>(); + titleItems.add("总数"); + titleItems.add("男"); + titleItems.add("女"); + //x轴标题数据 + List xAxis = new ArrayList<>(); + String[] dates = null; + if (StringUtils.isNotEmpty(time)) { + dates = time.split(" - "); + } + if(StringUtils.isNotEmpty(areaId)){//按照医院统计 + + for(String hospitalId : currentUserHospPermissions){ + List item = new ArrayList(); + //查询X轴标题数据 + OrganizationQuery idQuery = new OrganizationQuery(); + idQuery.setYn(YnEnums.YES.getId()); + idQuery.setId(Integer.parseInt(hospitalId)); + List orgs = organizationService.queryOrganization(idQuery); + //序号 + item.add(String.valueOf(xuhao)); + item.add(orgs.get(0).getName()); + item.add("1"); + + PremaritalCheckupQuery query = new PremaritalCheckupQuery(); + if (dates != null) { + query.setPremaritalUpTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + query.setPremaritalUpTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + query.setHospitalId(hospitalId); + query.setSexType(2);//男性 + List dataNan = premaritalCheckupService.queryPremaritalCheckup(query); + int totalMan = 0; + int totalWoman = 0; + if (dataNan != null && dataNan.size() > 0) { + hjManList.add(String.valueOf(dataNan.size())); + totalMan=dataNan.size(); + } else { + hjManList.add("0"); + } + + query.setSexType(1);//女性 + List dataNv = premaritalCheckupService.queryPremaritalCheckup(query); + if (dataNv != null && dataNv.size() > 0) { + hjWomanList.add(String.valueOf(dataNv.size())); + totalWoman=dataNv.size(); + }else { + hjWomanList.add("0"); + } + xuhao++; + item.add(String.valueOf(totalMan+totalWoman)); + if(dataNan != null && dataNan.size() > 0){ + item.add(String.valueOf(dataNan.size())); + }else{ + item.add("0"); + } + if(dataNv != null && dataNv.size() > 0){ + item.add(String.valueOf(dataNv.size())); + }else{ + item.add("0"); + } + hjTotalList.add(String.valueOf(totalMan+totalWoman)); + xAxis.add(orgs.get(0).getName()); + result.add(item); + } + hjTotalMap.put("data",hjTotalList); + hjManMap.put("data",hjManList); + hjWomanMap.put("data", hjWomanList); + series.add(hjTotalMap); + series.add(hjManMap); + series.add(hjWomanMap); + }else{ + BasicConfigQuery basicQuery = new BasicConfigQuery(); + basicQuery.setYn(YnEnums.YES.getId()); + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); + //用来存放省、市、县的ID的集合 + List ids = new ArrayList<>(); + //查询当前登录用户管辖的所有医院 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + + int addrType = 0; + if (StringUtils.isNotEmpty(provinceId)) { + 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 != null && bean.getP() != null && bean.getP().equals(provinceId) && StringUtils.isNotEmpty(bean.getC())) + { + //省不为空,赋值所有市的id + ids.add(bean.getC()); + } + } + } + } + basicQuery.setIds(ids); + addrType = 1; + } + if (StringUtils.isNotEmpty(cityId)) { + 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 != null && bean.getC() != null && bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA())) + { + //市不为空,赋值所有县的id + ids.add(bean.getA()); + } + } + } + } + basicQuery.setIds(ids); + addrType = 2; + } + + //获取地址列表 + List configList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(ids)) + { + configList = basicConfigService.queryBasicConfig(basicQuery); + } + if (CollectionUtils.isNotEmpty(configList)) { + for (BasicConfig addr : configList) { + xAxis.add(addr.getName()); + } + } + + if (CollectionUtils.isNotEmpty(configList)) { + + + for (BasicConfig c : configList) { + List item = new ArrayList(); + OrganizationQuery idQuery = new OrganizationQuery(); + idQuery.setYn(YnEnums.YES.getId()); + //序号 + item.add(String.valueOf(xuhao)); + item.add(c.getName()); + + //查询机构数 + if (addrType == 1) { + idQuery.setCityId(c.getId()); + } else if (addrType == 2) { + idQuery.setAreaId(c.getId()); + } + List orgs = organizationService.queryOrganization(idQuery); + //机构总数 + int orgSize = CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0; + item.add(String.valueOf(orgSize)); + + List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); + + if (CollectionUtils.isNotEmpty(hids)) { + + PremaritalCheckupQuery query = new PremaritalCheckupQuery(); + if (dates != null) { + query.setPremaritalUpTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + query.setPremaritalUpTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + query.setHospitalIds(hids); + query.setSexType(2);//男性 + List dataNan = premaritalCheckupService.queryPremaritalCheckup(query); + int totalMan = 0; + int totalWoman = 0; + if (dataNan != null && dataNan.size() > 0) { + hjManList.add(String.valueOf(dataNan.size())); + totalMan=dataNan.size(); + } else { + hjManList.add("0"); + } + + query.setSexType(1);//女性 + List dataNv = premaritalCheckupService.queryPremaritalCheckup(query); + if (dataNv != null && dataNv.size() > 0) { + hjWomanList.add(String.valueOf(dataNv.size())); + totalWoman=dataNv.size(); + } else { + hjWomanList.add("0"); + } + item.add(String.valueOf(totalMan+totalWoman)); + if(dataNan != null && dataNan.size() > 0){ + item.add(String.valueOf(dataNan.size())); + }else{ + item.add("0"); + } + if(dataNv != null && dataNv.size() > 0){ + item.add(String.valueOf(dataNv.size())); + }else{ + item.add("0"); + } + hjTotalList.add(String.valueOf(totalMan+totalWoman)); + } + xuhao++; + result.add(item); + } + hjTotalMap.put("data",hjTotalList); + hjManMap.put("data",hjManList); + hjWomanMap.put("data", hjWomanList); + series.add(hjTotalMap); + series.add(hjManMap); + series.add(hjWomanMap); + } + } + + Map datas = new HashMap<>(); + datas.put("legend",titleItems); + datas.put("series", series); + datas.put("tableDatas",result); + datas.put("xAxis", xAxis); + return new BaseObjectResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas); + + } + + + private String strPj(String dstStr,String str) { String result = "";