Commit f890f67950a6da031c394fc80a7958b0fcdd1174
1 parent
03fd15f9d1
Exists in
master
and in
6 other branches
婚检统计
Showing 1 changed file with 250 additions and 4 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java
View file @
f890f67
... | ... | @@ -2190,8 +2190,8 @@ |
2190 | 2190 | } |
2191 | 2191 | |
2192 | 2192 | |
2193 | - //婚检统计 | |
2194 | - public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ | |
2193 | + //婚检导出 | |
2194 | + public BaseResponse queryPremaritalExcel(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ | |
2195 | 2195 | //获取用户权限医院和筛选条件的交集 |
2196 | 2196 | List<String> currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, provinceId, |
2197 | 2197 | cityId, areaId); |
... | ... | @@ -2428,7 +2428,6 @@ |
2428 | 2428 | } else { |
2429 | 2429 | woman = 1; |
2430 | 2430 | } |
2431 | - xAxis.add(orgs.get(0).getName()); | |
2432 | 2431 | if(man == 1){ |
2433 | 2432 | hjList.add("0"); |
2434 | 2433 | item.add("0"); |
2435 | 2434 | |
... | ... | @@ -2470,9 +2469,256 @@ |
2470 | 2469 | result.add(item); |
2471 | 2470 | } |
2472 | 2471 | hjMap.put("data",hjList); |
2473 | - hqwsMap.put("data",hqwsList); | |
2472 | + hqwsMap.put("data", hqwsList); | |
2474 | 2473 | series.add(hjMap); |
2475 | 2474 | series.add(hqwsMap); |
2475 | + } | |
2476 | + } | |
2477 | + | |
2478 | + Map<String, Object> datas = new HashMap<>(); | |
2479 | + datas.put("legend",titleItems); | |
2480 | + datas.put("series", series); | |
2481 | + datas.put("tableDatas",result); | |
2482 | + datas.put("xAxis", xAxis); | |
2483 | + return new BaseObjectResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas); | |
2484 | + | |
2485 | + } | |
2486 | + | |
2487 | + | |
2488 | + | |
2489 | + //婚检统计 | |
2490 | + public BaseResponse queryPremaritalReport(String provinceId,String cityId,String areaId,String streetId,String time,Integer userId){ | |
2491 | + //获取用户权限医院和筛选条件的交集 | |
2492 | + List<String> currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, provinceId, | |
2493 | + cityId, areaId); | |
2494 | + int xuhao = 1; | |
2495 | + //图标数据 | |
2496 | + List<Map<String, Object>> series = new LinkedList<>(); | |
2497 | + Map<String,Object> hjTotalMap = new HashMap<String,Object>(); | |
2498 | + hjTotalMap.put("name","总数"); | |
2499 | + hjTotalMap.put("type","bar"); | |
2500 | + Map<String,Object> hjManMap = new HashMap<String,Object>(); | |
2501 | + hjManMap.put("name","男"); | |
2502 | + hjManMap.put("type","bar"); | |
2503 | + Map<String,Object> hjWomanMap = new HashMap<String,Object>(); | |
2504 | + hjWomanMap.put("name","女"); | |
2505 | + hjWomanMap.put("type","bar"); | |
2506 | + List<String> hjManList = new ArrayList<String>(); | |
2507 | + List<String> hjWomanList = new ArrayList<String>(); | |
2508 | + List<String> hjTotalList = new ArrayList<String>(); | |
2509 | + List<List<String>> result = new ArrayList<>(); | |
2510 | + //标题名称 | |
2511 | + List<String> titleItems = new LinkedList<>(); | |
2512 | + titleItems.add("总数"); | |
2513 | + titleItems.add("男"); | |
2514 | + titleItems.add("女"); | |
2515 | + //x轴标题数据 | |
2516 | + List<String> xAxis = new ArrayList<>(); | |
2517 | + String[] dates = null; | |
2518 | + if (StringUtils.isNotEmpty(time)) { | |
2519 | + dates = time.split(" - "); | |
2520 | + } | |
2521 | + if(StringUtils.isNotEmpty(areaId)){//按照医院统计 | |
2522 | + | |
2523 | + for(String hospitalId : currentUserHospPermissions){ | |
2524 | + List<String> item = new ArrayList<String>(); | |
2525 | + //查询X轴标题数据 | |
2526 | + OrganizationQuery idQuery = new OrganizationQuery(); | |
2527 | + idQuery.setYn(YnEnums.YES.getId()); | |
2528 | + idQuery.setId(Integer.parseInt(hospitalId)); | |
2529 | + List<Organization> orgs = organizationService.queryOrganization(idQuery); | |
2530 | + //序号 | |
2531 | + item.add(String.valueOf(xuhao)); | |
2532 | + item.add(orgs.get(0).getName()); | |
2533 | + item.add("1"); | |
2534 | + | |
2535 | + PremaritalCheckupQuery query = new PremaritalCheckupQuery(); | |
2536 | + if (dates != null) { | |
2537 | + query.setPremaritalUpTimeStart(DateUtil.parseYMD(dates[0])); | |
2538 | + if (dates.length == 2) { | |
2539 | + query.setPremaritalUpTimeEnd(DateUtil.parseYMD(dates[1])); | |
2540 | + } | |
2541 | + } | |
2542 | + query.setHospitalId(hospitalId); | |
2543 | + query.setSexType(2);//男性 | |
2544 | + List<PremaritalCheckup> dataNan = premaritalCheckupService.queryPremaritalCheckup(query); | |
2545 | + int totalMan = 0; | |
2546 | + int totalWoman = 0; | |
2547 | + if (dataNan != null && dataNan.size() > 0) { | |
2548 | + hjManList.add(String.valueOf(dataNan.size())); | |
2549 | + totalMan=dataNan.size(); | |
2550 | + } else { | |
2551 | + hjManList.add("0"); | |
2552 | + } | |
2553 | + | |
2554 | + query.setSexType(1);//女性 | |
2555 | + List<PremaritalCheckup> dataNv = premaritalCheckupService.queryPremaritalCheckup(query); | |
2556 | + if (dataNv != null && dataNv.size() > 0) { | |
2557 | + hjWomanList.add(String.valueOf(dataNv.size())); | |
2558 | + totalWoman=dataNv.size(); | |
2559 | + }else { | |
2560 | + hjWomanList.add("0"); | |
2561 | + } | |
2562 | + xuhao++; | |
2563 | + item.add(String.valueOf(totalMan+totalWoman)); | |
2564 | + if(dataNan != null && dataNan.size() > 0){ | |
2565 | + item.add(String.valueOf(dataNan.size())); | |
2566 | + }else{ | |
2567 | + item.add("0"); | |
2568 | + } | |
2569 | + if(dataNv != null && dataNv.size() > 0){ | |
2570 | + item.add(String.valueOf(dataNv.size())); | |
2571 | + }else{ | |
2572 | + item.add("0"); | |
2573 | + } | |
2574 | + hjTotalList.add(String.valueOf(totalMan+totalWoman)); | |
2575 | + xAxis.add(orgs.get(0).getName()); | |
2576 | + result.add(item); | |
2577 | + } | |
2578 | + hjTotalMap.put("data",hjTotalList); | |
2579 | + hjManMap.put("data",hjManList); | |
2580 | + hjWomanMap.put("data", hjWomanList); | |
2581 | + series.add(hjTotalMap); | |
2582 | + series.add(hjManMap); | |
2583 | + series.add(hjWomanMap); | |
2584 | + }else{ | |
2585 | + BasicConfigQuery basicQuery = new BasicConfigQuery(); | |
2586 | + basicQuery.setYn(YnEnums.YES.getId()); | |
2587 | + basicQuery.setTypeId("b7ea005c-dfac-4c2a-bdae-25239b3f44fd"); | |
2588 | + //用来存放省、市、县的ID的集合 | |
2589 | + List<String> ids = new ArrayList<>(); | |
2590 | + //查询当前登录用户管辖的所有医院 | |
2591 | + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); | |
2592 | + dataPermissionsModelQuery.setUserId(userId); | |
2593 | + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); | |
2594 | + | |
2595 | + int addrType = 0; | |
2596 | + if (StringUtils.isNotEmpty(provinceId)) { | |
2597 | + ids = new ArrayList<>(); | |
2598 | + if (CollectionUtils.isNotEmpty(permissionsModels)) { | |
2599 | + List<AddressBean> addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); | |
2600 | + if (CollectionUtils.isNotEmpty(addressBeanList)) | |
2601 | + { | |
2602 | + for (AddressBean bean : addressBeanList) | |
2603 | + { | |
2604 | + if (bean != null && bean.getP() != null && bean.getP().equals(provinceId) && StringUtils.isNotEmpty(bean.getC())) | |
2605 | + { | |
2606 | + //省不为空,赋值所有市的id | |
2607 | + ids.add(bean.getC()); | |
2608 | + } | |
2609 | + } | |
2610 | + } | |
2611 | + } | |
2612 | + basicQuery.setIds(ids); | |
2613 | + addrType = 1; | |
2614 | + } | |
2615 | + if (StringUtils.isNotEmpty(cityId)) { | |
2616 | + ids = new ArrayList<>(); | |
2617 | + if (CollectionUtils.isNotEmpty(permissionsModels)) { | |
2618 | + List<AddressBean> addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); | |
2619 | + if (CollectionUtils.isNotEmpty(addressBeanList)) | |
2620 | + { | |
2621 | + for (AddressBean bean : addressBeanList) | |
2622 | + { | |
2623 | + if (bean != null && bean.getC() != null && bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA())) | |
2624 | + { | |
2625 | + //市不为空,赋值所有县的id | |
2626 | + ids.add(bean.getA()); | |
2627 | + } | |
2628 | + } | |
2629 | + } | |
2630 | + } | |
2631 | + basicQuery.setIds(ids); | |
2632 | + addrType = 2; | |
2633 | + } | |
2634 | + | |
2635 | + //获取地址列表 | |
2636 | + List<BasicConfig> configList = new ArrayList<>(); | |
2637 | + if (CollectionUtils.isNotEmpty(ids)) | |
2638 | + { | |
2639 | + configList = basicConfigService.queryBasicConfig(basicQuery); | |
2640 | + } | |
2641 | + if (CollectionUtils.isNotEmpty(configList)) { | |
2642 | + for (BasicConfig addr : configList) { | |
2643 | + xAxis.add(addr.getName()); | |
2644 | + } | |
2645 | + } | |
2646 | + | |
2647 | + if (CollectionUtils.isNotEmpty(configList)) { | |
2648 | + | |
2649 | + | |
2650 | + for (BasicConfig c : configList) { | |
2651 | + List<String> item = new ArrayList<String>(); | |
2652 | + OrganizationQuery idQuery = new OrganizationQuery(); | |
2653 | + idQuery.setYn(YnEnums.YES.getId()); | |
2654 | + //序号 | |
2655 | + item.add(String.valueOf(xuhao)); | |
2656 | + item.add(c.getName()); | |
2657 | + | |
2658 | + //查询机构数 | |
2659 | + if (addrType == 1) { | |
2660 | + idQuery.setCityId(c.getId()); | |
2661 | + } else if (addrType == 2) { | |
2662 | + idQuery.setAreaId(c.getId()); | |
2663 | + } | |
2664 | + List<Organization> orgs = organizationService.queryOrganization(idQuery); | |
2665 | + //机构总数 | |
2666 | + int orgSize = CollectionUtils.isNotEmpty(orgs) ? orgs.size() : 0; | |
2667 | + item.add(String.valueOf(orgSize)); | |
2668 | + | |
2669 | + List<String> hids = getConditionHospitalIds(currentUserHospPermissions, orgs); | |
2670 | + | |
2671 | + if (CollectionUtils.isNotEmpty(hids)) { | |
2672 | + | |
2673 | + PremaritalCheckupQuery query = new PremaritalCheckupQuery(); | |
2674 | + if (dates != null) { | |
2675 | + query.setPremaritalUpTimeStart(DateUtil.parseYMD(dates[0])); | |
2676 | + if (dates.length == 2) { | |
2677 | + query.setPremaritalUpTimeEnd(DateUtil.parseYMD(dates[1])); | |
2678 | + } | |
2679 | + } | |
2680 | + query.setHospitalIds(hids); | |
2681 | + query.setSexType(2);//男性 | |
2682 | + List<PremaritalCheckup> dataNan = premaritalCheckupService.queryPremaritalCheckup(query); | |
2683 | + int totalMan = 0; | |
2684 | + int totalWoman = 0; | |
2685 | + if (dataNan != null && dataNan.size() > 0) { | |
2686 | + hjManList.add(String.valueOf(dataNan.size())); | |
2687 | + totalMan=dataNan.size(); | |
2688 | + } else { | |
2689 | + hjManList.add("0"); | |
2690 | + } | |
2691 | + | |
2692 | + query.setSexType(1);//女性 | |
2693 | + List<PremaritalCheckup> dataNv = premaritalCheckupService.queryPremaritalCheckup(query); | |
2694 | + if (dataNv != null && dataNv.size() > 0) { | |
2695 | + hjWomanList.add(String.valueOf(dataNv.size())); | |
2696 | + totalWoman=dataNv.size(); | |
2697 | + } else { | |
2698 | + hjWomanList.add("0"); | |
2699 | + } | |
2700 | + item.add(String.valueOf(totalMan+totalWoman)); | |
2701 | + if(dataNan != null && dataNan.size() > 0){ | |
2702 | + item.add(String.valueOf(dataNan.size())); | |
2703 | + }else{ | |
2704 | + item.add("0"); | |
2705 | + } | |
2706 | + if(dataNv != null && dataNv.size() > 0){ | |
2707 | + item.add(String.valueOf(dataNv.size())); | |
2708 | + }else{ | |
2709 | + item.add("0"); | |
2710 | + } | |
2711 | + hjTotalList.add(String.valueOf(totalMan+totalWoman)); | |
2712 | + } | |
2713 | + xuhao++; | |
2714 | + result.add(item); | |
2715 | + } | |
2716 | + hjTotalMap.put("data",hjTotalList); | |
2717 | + hjManMap.put("data",hjManList); | |
2718 | + hjWomanMap.put("data", hjWomanList); | |
2719 | + series.add(hjTotalMap); | |
2720 | + series.add(hjManMap); | |
2721 | + series.add(hjWomanMap); | |
2476 | 2722 | } |
2477 | 2723 | } |
2478 | 2724 |