Commit 89035385221deb09fe2c315dc49797f319b1a152

Authored by liquanyu
1 parent 41d1632b10

筛查统计

Showing 5 changed files with 258 additions and 10 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java View file @ 8903538
... ... @@ -83,7 +83,7 @@
83 83 @ResponseBody
84 84 public BaseResponse deleteBabyBuildById(@PathVariable("id") String id, HttpServletRequest request) {
85 85  
86   - return babyBookbuildingFacade.deleteBabyBuildById(id,getUserId(request));
  86 + return babyBookbuildingFacade.deleteBabyBuildById(id, getUserId(request));
87 87  
88 88 }
89 89  
... ... @@ -337,7 +337,7 @@
337 337 // 是否区域
338 338 request.setIsArea(isArea);
339 339  
340   - babyBookbuildingFacade.exportChilds(request,loginState.getId(),httpServletResponse);
  340 + babyBookbuildingFacade.exportChilds(request, loginState.getId(), httpServletResponse);
341 341 }
342 342  
343 343  
... ... @@ -483,6 +483,32 @@
483 483 babyBookbuildingFacade.exportBabyGrowthRightList(babyManageRequest, loginState.getId(), httpServletResponse);
484 484 }
485 485  
  486 +
  487 +
  488 +
  489 +
  490 + /**
  491 + * 围产儿统计报表
  492 + * @param request
  493 + * @param response
  494 + * @param time
  495 + * @param ageType 1, <= 20 2, 20-=25 3,25-=30, 4,30-=35 5, >35
  496 + * @param lievType 1 城镇 2 农业
  497 + * @return
  498 + */
  499 + @ResponseBody
  500 + @RequestMapping(value = "/queryWcBabyReport",method = RequestMethod.GET)
  501 + @TokenRequired
  502 + public BaseResponse queryWcBabyReport(HttpServletRequest request,HttpServletResponse response,
  503 + @RequestParam(required = false)String time,
  504 + @RequestParam(required = false)Integer ageType,
  505 + @RequestParam(required = false)Integer lievType,
  506 + @RequestParam(required = false)String provinceId,
  507 + @RequestParam(required = false)String cityId
  508 + ){
  509 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  510 + return babyBookbuildingFacade.queryWcBabyReport(loginState.getId(), time, ageType,lievType ,provinceId,cityId);
  511 + }
486 512  
487 513  
488 514 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java View file @ 8903538
... ... @@ -325,5 +325,6 @@
325 325  
326 326 }
327 327  
  328 +
328 329 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java View file @ 8903538
1 1 package com.lyms.platform.operate.web.facade;
2 2  
3 3  
  4 +import com.lyms.platform.beans.AddressBean;
4 5 import com.lyms.platform.biz.service.*;
5 6 import com.lyms.platform.common.constants.ErrorCodeConstants;
6 7 import com.lyms.platform.common.enums.YnEnums;
... ... @@ -160,6 +161,43 @@
160 161 return hospitalList;
161 162 }
162 163  
  164 +
  165 + public boolean hasPermissions(String id,Integer addType,List<DataPermissionsModel> permissionsModels)
  166 + {
  167 +
  168 + if (CollectionUtils.isNotEmpty(permissionsModels) && StringUtils.isNotEmpty(permissionsModels.get(0).getAreaPermission()))
  169 + {
  170 + List<AddressBean> addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class);
  171 + if (CollectionUtils.isEmpty(addressBeanList))
  172 + {
  173 + return false;
  174 + }
  175 +
  176 + for (AddressBean bean : addressBeanList)
  177 + {
  178 + if (addType == 1) {
  179 + if (id != null && id.equals(bean.getC())) {
  180 + return true;
  181 + }
  182 + }
  183 + else if (addType == 2)
  184 + {
  185 + if (id != null && id.equals(bean.getA()))
  186 + {
  187 + return true;
  188 + }
  189 + }
  190 + else if (addType == 3)
  191 + {
  192 + if (id != null && id.equals(bean.getS()))
  193 + {
  194 + return true;
  195 + }
  196 + }
  197 + }
  198 + }
  199 + return false;
  200 + }
163 201  
164 202 /**
165 203 * 产检节点统计
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java View file @ 8903538
... ... @@ -6,6 +6,7 @@
6 6 import com.lyms.hospitalapi.qhdfy.QhdfyHisService;
7 7 import com.lyms.hospitalapi.qinglongxian.QingLongXianHisService;
8 8 import com.lyms.hospitalapi.v2.HisService;
  9 +import com.lyms.platform.beans.AddressBean;
9 10 import com.lyms.platform.beans.MsgRequest;
10 11 import com.lyms.platform.biz.service.*;
11 12 import com.lyms.platform.common.constants.ErrorCodeConstants;
... ... @@ -15,6 +16,7 @@
15 16 import com.lyms.platform.common.result.BaseObjectResponse;
16 17 import com.lyms.platform.common.result.BaseResponse;
17 18 import com.lyms.platform.common.utils.*;
  19 +import com.lyms.platform.common.utils.StringUtils;
18 20 import com.lyms.platform.operate.web.request.*;
19 21 import com.lyms.platform.operate.web.result.*;
20 22 import com.lyms.platform.operate.web.service.ITrackDownService;
... ... @@ -31,6 +33,7 @@
31 33 import com.lyms.platform.pojo.*;
32 34 import com.lyms.platform.query.*;
33 35 import org.apache.commons.collections.CollectionUtils;
  36 +import org.apache.commons.lang.*;
34 37 import org.apache.commons.lang.math.NumberUtils;
35 38 import org.springframework.beans.factory.annotation.Autowired;
36 39 import org.springframework.beans.factory.annotation.Qualifier;
37 40  
... ... @@ -119,7 +122,11 @@
119 122 @Autowired
120 123 private SyncDataService syncDataService;
121 124  
  125 +
122 126 @Autowired
  127 + private AreaCountFacade areaCountFacade;
  128 +
  129 + @Autowired
123 130 private SmsConfigFacade smsConfigFacade;
124 131  
125 132 @Autowired
... ... @@ -3214,5 +3221,172 @@
3214 3221 public void deleteFmHistoryRecord(MongoQuery mongoQuery) {
3215 3222 babyBookbuildingService.deleteFmHistoryRecord(mongoQuery);
3216 3223 }
  3224 +
  3225 + public BaseResponse queryWcBabyReport(Integer userId, String time, Integer ageType, Integer lievType, String provinceId, String cityId) {
  3226 +
  3227 + //获取用户权限医院和筛选条件的交集
  3228 + List<String> currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, provinceId,
  3229 + cityId, null);
  3230 +
  3231 + String[] dates = null;
  3232 + if (org.apache.commons.lang.StringUtils.isNotEmpty(time)) {
  3233 + dates = time.split(" - ");
  3234 + }
  3235 +
  3236 + BasicConfigQuery basicQuery = new BasicConfigQuery();
  3237 + basicQuery.setYn(YnEnums.YES.getId());
  3238 + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd");
  3239 +
  3240 + int addrType = 0;
  3241 + if (org.apache.commons.lang.StringUtils.isNotEmpty(provinceId)) {
  3242 + basicQuery.setParentId(provinceId);
  3243 + addrType = 1;
  3244 + }
  3245 + if (org.apache.commons.lang.StringUtils.isNotEmpty(cityId)) {
  3246 + basicQuery.setParentId(cityId);
  3247 + addrType = 2;
  3248 + }
  3249 +
  3250 +
  3251 + //x轴标题数据
  3252 + List<String> xAxis = new ArrayList<>();
  3253 +
  3254 +
  3255 +// DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  3256 +// dataPermissionsModelQuery.setUserId(userId);
  3257 +// List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  3258 +
  3259 +
  3260 + //获取地址列表
  3261 + List<BasicConfig> configList = basicConfigService.queryBasicConfig(basicQuery);
  3262 +
  3263 + if (CollectionUtils.isNotEmpty(configList)) {
  3264 + for (BasicConfig addr : configList) {
  3265 + xAxis.add(addr.getName());
  3266 + }
  3267 + }
  3268 +
  3269 + //分类标题
  3270 + List<String> titleItems = new LinkedList<>();
  3271 + titleItems.add("总数");
  3272 + titleItems.add("男");
  3273 + titleItems.add("女");
  3274 +
  3275 + //图标数据
  3276 + List<Map<String, Object>> series = new LinkedList<>();
  3277 +
  3278 + if (CollectionUtils.isNotEmpty(configList)) {
  3279 + Map<String, Object> map = new HashMap();
  3280 + map.put("name", "总数");
  3281 + map.put("type", "bar");
  3282 +
  3283 + Map<String, Object> manMap = new HashMap();
  3284 + manMap.put("name", "男");
  3285 + manMap.put("type", "bar");
  3286 +
  3287 + Map<String, Object> womanMap = new HashMap();
  3288 + womanMap.put("name", "女");
  3289 + womanMap.put("type", "bar");
  3290 +
  3291 + List<String> zsItems = new ArrayList<>();
  3292 + List<String> manItems = new ArrayList<>();
  3293 + List<String> womanItems = new ArrayList<>();
  3294 + for (BasicConfig c : configList) {
  3295 +
  3296 + OrganizationQuery idQuery = new OrganizationQuery();
  3297 + idQuery.setYn(YnEnums.YES.getId());
  3298 +
  3299 + //查询机构数
  3300 + if (addrType == 1) {
  3301 + idQuery.setCityId(c.getId());
  3302 + } else if (addrType == 2) {
  3303 + idQuery.setAreaId(c.getId());
  3304 + }
  3305 + List<Organization> orgs = organizationService.queryOrganization(idQuery);
  3306 + List<String> hids = getConditionHospitalIds(currentUserHospPermissions, orgs);
  3307 +
  3308 + if (CollectionUtils.isNotEmpty(hids))
  3309 + {
  3310 + zsItems.add("0");
  3311 + manItems.add("0");
  3312 + womanItems.add("0");
  3313 + }
  3314 + else
  3315 + {
  3316 + zsItems.add("0");
  3317 + manItems.add("0");
  3318 + womanItems.add("0");
  3319 + }
  3320 + }
  3321 + map.put("data", zsItems);
  3322 + series.add(map);
  3323 +
  3324 + manMap.put("data", manItems);
  3325 + series.add(manMap);
  3326 +
  3327 + womanMap.put("data", womanItems);
  3328 + series.add(womanMap);
  3329 + }
  3330 +
  3331 +
  3332 + List<List<String>> result = new ArrayList<>();
  3333 +
  3334 + int num = 1;
  3335 + if (CollectionUtils.isNotEmpty(configList))
  3336 + {
  3337 + for (BasicConfig c : configList) {
  3338 +
  3339 + List<String> items = new ArrayList<>();
  3340 + items.add(String.valueOf(num));
  3341 + items.add(c.getName());
  3342 +
  3343 + OrganizationQuery query = new OrganizationQuery();
  3344 + query.setYn(YnEnums.YES.getId());
  3345 + if (addrType == 1) {
  3346 + query.setCityId(c.getId());
  3347 + } else if (addrType == 2) {
  3348 + query.setAreaId(c.getId());
  3349 + }
  3350 + //查询机构数
  3351 + List<Organization> orgs = organizationService.queryOrganization(query);
  3352 + int orgSize = CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0;
  3353 + items.add(String.valueOf(orgSize));
  3354 +
  3355 +
  3356 + List<String> hids = getConditionHospitalIds(currentUserHospPermissions, orgs);
  3357 + if (CollectionUtils.isNotEmpty(hids)) {
  3358 + }
  3359 + else
  3360 + {
  3361 + items.add("0");
  3362 + items.add("0");
  3363 + items.add("0");
  3364 + }
  3365 + num++;
  3366 + result.add(items);
  3367 + }
  3368 + }
  3369 +
  3370 + Map<String, Object> datas = new HashMap<>();
  3371 + datas.put("series", series);
  3372 + datas.put("xAxis", xAxis);
  3373 + datas.put("legend", titleItems);
  3374 + datas.put("tableDatas", result);
  3375 + return new BaseObjectResponse()
  3376 + .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas);
  3377 + }
  3378 +
  3379 +
  3380 +
  3381 + private List<String> getConditionHospitalIds(List<String> currentUserHospPermissions, List<Organization> conditionHospitals) {
  3382 + List<String> hids = new ArrayList<>();
  3383 + for (Organization org : conditionHospitals) {
  3384 + hids.add(String.valueOf(org.getId()));
  3385 + }
  3386 + hids.retainAll(currentUserHospPermissions);
  3387 +
  3388 + return hids;
  3389 + }
  3390 +
3217 3391 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java View file @ 8903538
... ... @@ -1143,12 +1143,20 @@
1143 1143 //x轴标题数据
1144 1144 List<String> xAxis = new ArrayList<>();
1145 1145  
1146   - //获取地址列表
1147   - List<BasicConfig> configList = basicConfigService.queryBasicConfig(basicQuery);
  1146 + List<BasicConfig> configList = new ArrayList<>();
1148 1147  
  1148 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  1149 + dataPermissionsModelQuery.setUserId(userId);
  1150 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  1151 + //获取地址列表
  1152 + List<BasicConfig> dataConfigs = basicConfigService.queryBasicConfig(basicQuery);
1149 1153 if (CollectionUtils.isNotEmpty(configList)) {
1150   - for (BasicConfig addr : configList) {
1151   - xAxis.add(addr.getName());
  1154 + for (BasicConfig addr : dataConfigs) {
  1155 + if (areaCountFacade.hasPermissions(addr.getId(),addrType,permissionsModels))
  1156 + {
  1157 + configList.add(addr);
  1158 + xAxis.add(addr.getName());
  1159 + }
1152 1160 }
1153 1161 }
1154 1162  
... ... @@ -1290,7 +1298,6 @@
1290 1298 diagnosisQuery1.setResultDateEnd(DateUtil.parseYMDHMS(dates[1]));
1291 1299 }
1292 1300 }
1293   - System.out.println("diagnosisQuery1==="+diagnosisQuery1.convertToQuery().convertToMongoQuery());
1294 1301 int diagnosisCountAll = diagnosisService.queryDiagnosisCount(diagnosisQuery1);
1295 1302 items.add(String.valueOf(diagnosisCountAll));
1296 1303 }
1297 1304  
... ... @@ -1326,8 +1333,9 @@
1326 1333  
1327 1334 @Autowired
1328 1335 private BasicConfigService basicConfigService;
1329   -
1330 1336 @Autowired
  1337 + private DataPermissionService dataPermissionService;
  1338 + @Autowired
1331 1339 private AreaCountFacade areaCountFacade;
1332 1340  
1333 1341  
1334 1342  
... ... @@ -1599,11 +1607,11 @@
1599 1607 dates = cqSieveQueryRequest.getTime().split(" - ");
1600 1608 titleName+=cqSieveQueryRequest.getTime();
1601 1609 }
1602   - List<Map<String,String>> list = getSieveDatas(currentUserHospPermissions,dates,cqSieveQueryRequest.getCityId());
  1610 + List<Map<String,String>> list = getSieveDatas(currentUserHospPermissions, dates, cqSieveQueryRequest.getCityId());
1603 1611 response.setContentType("application/force-download");
1604 1612 response.setHeader("Content-Disposition", "attachment;filename=" + new String(("孕妇产前筛查和诊断情况月报表.xls").getBytes("UTF-8"), "ISO-8859-1"));
1605 1613 String path = this.getClass().getResource("/").getPath()+ "whfy_sieve.xls";
1606   - ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list,titleName);
  1614 + ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list, titleName);
1607 1615  
1608 1616 } catch (Exception e) {
1609 1617 ExceptionUtils.catchException(e, "exportSieveReportExcl error");
... ... @@ -2024,5 +2032,6 @@
2024 2032  
2025 2033 list.add(dataMap);
2026 2034 }
  2035 +
2027 2036 }