Commit eecab34fe1cfc3dc797112f5d784ac52879e31d5
1 parent
593b239037
Exists in
master
and in
6 other branches
婚检孕检统计导出
Showing 3 changed files with 159 additions and 41 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java
View file @
eecab34
| ... | ... | @@ -196,6 +196,20 @@ |
| 196 | 196 | return iPreEugenicsService.getRcCount(time, getUserId(request)); |
| 197 | 197 | } |
| 198 | 198 | |
| 199 | + /** | |
| 200 | + * 获取 乡镇婚检孕检统计 | |
| 201 | + * | |
| 202 | + * @param time | |
| 203 | + * @param request | |
| 204 | + * @Author: 武涛涛 | |
| 205 | + * @Date: 2020/9/24 16:17 | |
| 206 | + */ | |
| 207 | + @RequestMapping(method = RequestMethod.GET, value = "/getHjYjList") | |
| 208 | + @ResponseBody | |
| 209 | + @TokenRequired | |
| 210 | + public BaseObjectResponse getHjYjList(@RequestParam String time, HttpServletRequest request) { | |
| 211 | + return iPreEugenicsService.getHjYjList(time, getUserId(request)); | |
| 212 | + } | |
| 199 | 213 | |
| 200 | 214 | /** |
| 201 | 215 | * 导出数据 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java
View file @
eecab34
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
View file @
eecab34
| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | import java.util.*; |
| 4 | 4 | |
| 5 | 5 | import com.lyms.hospitalapi.lcfy.LisService; |
| 6 | +import com.lyms.platform.biz.service.PremaritalCheckupService; | |
| 6 | 7 | import com.lyms.platform.biz.service.ResidentsArchiveService; |
| 7 | 8 | import com.lyms.platform.common.enums.YnEnums; |
| 8 | 9 | import com.lyms.platform.common.result.BaseObjectResponse; |
| ... | ... | @@ -15,6 +16,8 @@ |
| 15 | 16 | import com.lyms.platform.permission.service.OrganizationService; |
| 16 | 17 | import com.lyms.platform.permission.service.UsersService; |
| 17 | 18 | import com.lyms.platform.pojo.BasicConfig; |
| 19 | +import com.lyms.platform.pojo.PremaritalCheckup; | |
| 20 | +import com.lyms.platform.query.PremaritalCheckupQuery; | |
| 18 | 21 | import com.lyms.platform.query.ResidentsArchiveQuery; |
| 19 | 22 | import org.apache.commons.collections.CollectionUtils; |
| 20 | 23 | import org.springframework.beans.BeanUtils; |
| ... | ... | @@ -75,7 +78,8 @@ |
| 75 | 78 | @Autowired |
| 76 | 79 | private ResidentsArchiveService residentsArchiveService; |
| 77 | 80 | |
| 78 | - | |
| 81 | + @Autowired | |
| 82 | + private PremaritalCheckupService premaritalCheckupService; | |
| 79 | 83 | /** |
| 80 | 84 | * 根据身份证号获取对应的孕前优生信息 |
| 81 | 85 | * |
| ... | ... | @@ -101,7 +105,7 @@ |
| 101 | 105 | query.addCriteria(Criteria.where("code").is(code)); |
| 102 | 106 | } |
| 103 | 107 | |
| 104 | - List<PreEugenicsBaseModel> list = mongoTemplate.find(query, PreEugenicsBaseModel.class); | |
| 108 | + List <PreEugenicsBaseModel> list = mongoTemplate.find(query, PreEugenicsBaseModel.class); | |
| 105 | 109 | if (CollectionUtils.isEmpty(list)) { |
| 106 | 110 | |
| 107 | 111 | PreEugenicsBaseModel one = new PreEugenicsBaseModel(); |
| ... | ... | @@ -114,8 +118,7 @@ |
| 114 | 118 | } |
| 115 | 119 | |
| 116 | 120 | ////男 |
| 117 | - if (model != null && "5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) | |
| 118 | - { | |
| 121 | + if (model != null && "5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) { | |
| 119 | 122 | //男性基本信息 |
| 120 | 123 | one.setHusbandName(model.getUsername()); |
| 121 | 124 | one.setHusbandNation(model.getNationId()); |
| ... | ... | @@ -143,7 +146,7 @@ |
| 143 | 146 | one.setHusbandCurrentStreet(model.getStreetId()); |
| 144 | 147 | one.setHusbandCurrentAddress(model.getAddress()); |
| 145 | 148 | |
| 146 | - } else if (model != null){ | |
| 149 | + } else if (model != null) { | |
| 147 | 150 | |
| 148 | 151 | //女性性基本信息 |
| 149 | 152 | one.setWifeName(model.getUsername()); |
| ... | ... | @@ -315,8 +318,8 @@ |
| 315 | 318 | long count = mongoTemplate.count(query, PreEugenicsBaseModel.class); |
| 316 | 319 | param.mysqlBuild((int) count); |
| 317 | 320 | query.skip(param.getOffset()).limit(param.getLimit()); |
| 318 | - List<PreEugenicsBaseListResult> results = new LinkedList<>(); | |
| 319 | - List<PreEugenicsBaseModel> preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); | |
| 321 | + List <PreEugenicsBaseListResult> results = new LinkedList <>(); | |
| 322 | + List <PreEugenicsBaseModel> preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); | |
| 320 | 323 | for (PreEugenicsBaseModel model : preEugenicsBaseModels) { |
| 321 | 324 | PreEugenicsBaseListResult result = getPreEugenicsBaseListResult(model); |
| 322 | 325 | results.add(result); |
| ... | ... | @@ -479,7 +482,7 @@ |
| 479 | 482 | } |
| 480 | 483 | |
| 481 | 484 | |
| 482 | - private void setDoctorName(Map<String, Object> map) { | |
| 485 | + private void setDoctorName(Map <String, Object> map) { | |
| 483 | 486 | if (map != null && map.size() > 0 && map.get("doctor") != null) { |
| 484 | 487 | String doctor = String.valueOf(map.get("doctor")); |
| 485 | 488 | String doctorStr = CommonsHelper.getUserName(doctor, usersService); |
| 486 | 489 | |
| 487 | 490 | |
| 488 | 491 | |
| 489 | 492 | |
| ... | ... | @@ -553,16 +556,119 @@ |
| 553 | 556 | @Override |
| 554 | 557 | public BaseObjectResponse getRcCount(String time, Integer userId) { |
| 555 | 558 | |
| 556 | - List<Map<String,Object>> datas = getDatas(time, userId); | |
| 559 | + List <Map <String, Object>> datas = getDatas(time, userId); | |
| 557 | 560 | |
| 558 | - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); | |
| 561 | + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); | |
| 559 | 562 | } |
| 560 | 563 | |
| 564 | + /** | |
| 565 | + * 获取 乡镇婚检孕检统计 | |
| 566 | + * | |
| 567 | + * @param time | |
| 568 | + * @param userId | |
| 569 | + * @Author: 武涛涛 | |
| 570 | + * @Date: 2020/9/24 16:18 | |
| 571 | + */ | |
| 561 | 572 | @Override |
| 573 | + public BaseObjectResponse getHjYjList(String time, Integer userId) { | |
| 574 | + | |
| 575 | + /* | |
| 576 | + 存储导出list 详情 ,只写了统计总数,没有导出详情 | |
| 577 | + */ | |
| 578 | + int hjAllCount = 0; | |
| 579 | + int yjAllCount = 0; | |
| 580 | + | |
| 581 | + //乡镇list 存储 乡镇名称,婚检总数,孕检总数 | |
| 582 | + List <Map <String, Object>> datas = new LinkedList <>(); | |
| 583 | + | |
| 584 | + //当前用户获取对应的 乡镇列表 | |
| 585 | + String hospitalId = autoMatchFacade.getHospitalId(userId); | |
| 586 | + Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId)); | |
| 587 | + List <BasicConfig> items = basicConfigService.queryByParentId(organization.getAreaId()); | |
| 588 | + if (CollectionUtils.isNotEmpty(items)) { | |
| 589 | + for (BasicConfig item : items) { | |
| 590 | + Map <String, Object> data = new HashMap(); | |
| 591 | + data.put("name", item.getName()); | |
| 592 | + /*婚检*/ | |
| 593 | + List <String> residentsIds = getResidentsIds(hospitalId, item); | |
| 594 | + //通过建档 residentsIds 获取这短时间婚检孕检的男女 | |
| 595 | + if(CollectionUtils.isNotEmpty(residentsIds)){ | |
| 596 | + PremaritalCheckupQuery query = new PremaritalCheckupQuery(); | |
| 597 | + query.setYn(YnEnums.YES.getId()); | |
| 598 | + query.setHospitalId(hospitalId); | |
| 599 | + query.setParentIds(residentsIds); | |
| 600 | + if (StringUtils.isNotEmpty(time)) { | |
| 601 | + try { | |
| 602 | + query.setPremaritalUpTimeStart(DateUtil.getSNDate(time)[0]); | |
| 603 | + query.setPremaritalUpTimeEnd(DateUtil.getSNDate(time)[1]); | |
| 604 | + } catch (Exception e) { | |
| 605 | + e.printStackTrace(); | |
| 606 | + } | |
| 607 | + } | |
| 608 | + List<PremaritalCheckup> hjList = premaritalCheckupService.queryPremaritalCheckup(query); | |
| 609 | + //单个乡镇婚检总数 | |
| 610 | + data.put("hjCount", hjList.size()); | |
| 611 | + //婚检总数 | |
| 612 | + hjAllCount += hjList.size(); | |
| 613 | + } | |
| 614 | + | |
| 615 | + /*孕检*/ | |
| 616 | + Query yquery = new Query(); | |
| 617 | + String[] arrs = time.split(" - "); | |
| 618 | + Date start = DateUtil.parseYMD(arrs[0]); | |
| 619 | + Date end = DateUtil.parseYMD(arrs[1]); | |
| 620 | + end = DateUtil.getDayLastSecond(end); | |
| 621 | + yquery.addCriteria(Criteria.where("fillDate").gte(start).lte(end)); | |
| 622 | + yquery.addCriteria(Criteria.where("hyj").is(0)); | |
| 623 | +// tquery.addCriteria(Criteria.where("hyj").is(1)); | |
| 624 | + yquery.addCriteria(Criteria.where("hospitalId").is(hospitalId)); | |
| 625 | + yquery.addCriteria(Criteria.where("wifeCurrentStreet").is(item.getId())); | |
| 626 | + List <PreEugenicsBaseModel> yjList = mongoTemplate.find(yquery, PreEugenicsBaseModel.class); | |
| 627 | + if (CollectionUtils.isNotEmpty(yjList)) { | |
| 628 | + yjAllCount += yjList.size(); | |
| 629 | + data.put("yjCount", yjList.size()); | |
| 630 | + } | |
| 631 | + datas.add(data); | |
| 632 | + | |
| 633 | + } | |
| 634 | + //合计 | |
| 635 | + Map <String, Object> data = new HashMap(); | |
| 636 | + data.put("name", "合计"); | |
| 637 | + data.put("hjCount", hjAllCount); | |
| 638 | + data.put("yjCount", yjAllCount); | |
| 639 | + datas.add(data); | |
| 640 | + } | |
| 641 | + | |
| 642 | + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); | |
| 643 | + } | |
| 644 | + | |
| 645 | + /** | |
| 646 | + * 获取乡镇,婚检建档 男女Id | |
| 647 | + * @Author: 武涛涛 | |
| 648 | + * @Date: 2020/9/24 17:18 | |
| 649 | + */ | |
| 650 | + private List <String> getResidentsIds(String hospitalId, BasicConfig item) { | |
| 651 | + List <String> residentsIds = new ArrayList <>(); | |
| 652 | + ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); | |
| 653 | + archiveQuery.setYn(YnEnums.YES.getId()); | |
| 654 | + archiveQuery.setHospitalId(hospitalId); | |
| 655 | + archiveQuery.setStreetId(item.getId()); | |
| 656 | + List<ResidentsArchiveModel> hjCounts = residentsArchiveService.queryResident(archiveQuery); | |
| 657 | + if(CollectionUtils.isNotEmpty(hjCounts)){ | |
| 658 | + for (int i = 0; i < hjCounts.size(); i++) { | |
| 659 | + if(hjCounts.get(i)!=null && StringUtils.isNotEmpty(hjCounts.get(i).getId())){ | |
| 660 | + residentsIds.add(hjCounts.get(i).getId()); | |
| 661 | + } | |
| 662 | + } | |
| 663 | + } | |
| 664 | + return residentsIds; | |
| 665 | + } | |
| 666 | + | |
| 667 | + @Override | |
| 562 | 668 | public void exportRcCount(String time, Integer userId, HttpServletResponse response) { |
| 563 | 669 | |
| 564 | - List<Map<String,Object>> datas = getDatas( time, userId); | |
| 565 | - Map<String, String> cnames = new LinkedHashMap<>(); | |
| 670 | + List <Map <String, Object>> datas = getDatas(time, userId); | |
| 671 | + Map <String, String> cnames = new LinkedHashMap <>(); | |
| 566 | 672 | cnames.put("name", "乡镇"); |
| 567 | 673 | cnames.put("hjCount", "婚检"); |
| 568 | 674 | cnames.put("yjCount", "孕检"); |
| 569 | 675 | |
| 570 | 676 | |
| ... | ... | @@ -572,23 +678,20 @@ |
| 572 | 678 | } |
| 573 | 679 | |
| 574 | 680 | |
| 575 | - private List<Map<String,Object>> getDatas(String time,Integer userId) | |
| 576 | - { | |
| 681 | + private List <Map <String, Object>> getDatas(String time, Integer userId) { | |
| 577 | 682 | String hospitalId = autoMatchFacade.getHospitalId(userId); |
| 578 | 683 | Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId)); |
| 579 | - List<Map<String,Object>> datas = new LinkedList<>(); | |
| 684 | + List <Map <String, Object>> datas = new LinkedList <>(); | |
| 580 | 685 | |
| 581 | 686 | int hjAllCount = 0; |
| 582 | 687 | int yjAllCount = 0; |
| 583 | 688 | int tcAllCount = 0; |
| 584 | 689 | |
| 585 | - List<BasicConfig> items = basicConfigService.queryByParentId(organization.getAreaId()); | |
| 586 | - if (CollectionUtils.isNotEmpty(items)) | |
| 587 | - { | |
| 588 | - for (BasicConfig item : items) | |
| 589 | - { | |
| 590 | - Map<String,Object> data = new HashMap(); | |
| 591 | - data.put("name",item.getName()); | |
| 690 | + List <BasicConfig> items = basicConfigService.queryByParentId(organization.getAreaId()); | |
| 691 | + if (CollectionUtils.isNotEmpty(items)) { | |
| 692 | + for (BasicConfig item : items) { | |
| 693 | + Map <String, Object> data = new HashMap(); | |
| 694 | + data.put("name", item.getName()); | |
| 592 | 695 | //查询条件 |
| 593 | 696 | ResidentsArchiveQuery query = new ResidentsArchiveQuery(); |
| 594 | 697 | query.setYn(YnEnums.YES.getId()); |
| ... | ... | @@ -607,8 +710,8 @@ |
| 607 | 710 | e.printStackTrace(); |
| 608 | 711 | } |
| 609 | 712 | } |
| 610 | - long hjCount = sumField("lyms_resident", "checkup", query.convertToQuery().getCriteria()); | |
| 611 | - hjAllCount+=hjCount; | |
| 713 | + long hjCount = sumField("lyms_resident", "checkup", query.convertToQuery().getCriteria()); | |
| 714 | + hjAllCount += hjCount; | |
| 612 | 715 | Query yquery = new Query(); |
| 613 | 716 | |
| 614 | 717 | String[] arrs = time.split(" - "); |
| 615 | 718 | |
| 616 | 719 | |
| 617 | 720 | |
| 618 | 721 | |
| 619 | 722 | |
| 620 | 723 | |
| 621 | 724 | |
| ... | ... | @@ -632,45 +735,44 @@ |
| 632 | 735 | long tcCount = mongoTemplate.count(tquery, PreEugenicsBaseModel.class); |
| 633 | 736 | tcAllCount += tcCount; |
| 634 | 737 | |
| 635 | - data.put("hjCount",hjCount); | |
| 738 | + data.put("hjCount", hjCount); | |
| 636 | 739 | data.put("yjCount", yjCount); |
| 637 | - data.put("tcCount",tcCount); | |
| 740 | + data.put("tcCount", tcCount); | |
| 638 | 741 | |
| 639 | 742 | datas.add(data); |
| 640 | 743 | |
| 641 | 744 | } |
| 642 | - Map<String,Object> data = new HashMap(); | |
| 643 | - data.put("name","合计"); | |
| 644 | - data.put("hjCount",hjAllCount); | |
| 645 | - data.put("yjCount",yjAllCount); | |
| 646 | - data.put("tcCount",tcAllCount); | |
| 745 | + Map <String, Object> data = new HashMap(); | |
| 746 | + data.put("name", "合计"); | |
| 747 | + data.put("hjCount", hjAllCount); | |
| 748 | + data.put("yjCount", yjAllCount); | |
| 749 | + data.put("tcCount", tcAllCount); | |
| 647 | 750 | datas.add(data); |
| 648 | 751 | } |
| 649 | 752 | return datas; |
| 650 | 753 | } |
| 651 | 754 | |
| 652 | - public Integer sumField(String collection,String filedName,Criteria criteria) { | |
| 755 | + public Integer sumField(String collection, String filedName, Criteria criteria) { | |
| 653 | 756 | |
| 654 | 757 | Integer total = 0; |
| 655 | 758 | Query query = new Query(); |
| 656 | - if(criteria!=null){ | |
| 759 | + if (criteria != null) { | |
| 657 | 760 | query.addCriteria(criteria); |
| 658 | 761 | } |
| 659 | - List<AggregationOperation> operations = new ArrayList<>(); | |
| 762 | + List <AggregationOperation> operations = new ArrayList <>(); | |
| 660 | 763 | operations.add(Aggregation.match(criteria)); |
| 661 | 764 | operations.add(Aggregation.group().sum(filedName).as("total")); |
| 662 | 765 | Aggregation aggregation = Aggregation.newAggregation(operations); |
| 663 | - AggregationResults<Total> results =mongoTemplate.aggregate(aggregation, collection, Total.class); | |
| 664 | - List<Total> totals = results.getMappedResults(); | |
| 665 | - if (CollectionUtils.isNotEmpty(totals)) | |
| 666 | - { | |
| 667 | - total = totals.get(0).getTotal(); | |
| 766 | + AggregationResults <Total> results = mongoTemplate.aggregate(aggregation, collection, Total.class); | |
| 767 | + List <Total> totals = results.getMappedResults(); | |
| 768 | + if (CollectionUtils.isNotEmpty(totals)) { | |
| 769 | + total = totals.get(0).getTotal(); | |
| 668 | 770 | } |
| 669 | 771 | return total; |
| 670 | 772 | } |
| 671 | 773 | } |
| 672 | -class Total | |
| 673 | -{ | |
| 774 | + | |
| 775 | +class Total { | |
| 674 | 776 | private int total; |
| 675 | 777 | |
| 676 | 778 | public int getTotal() { |