Commit 32df5ae1e455d8aa37175eb45af1e9b84dc3ac74

Authored by wtt
1 parent eb1a87a317

update

Showing 4 changed files with 258 additions and 18 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java View file @ 32df5ae
... ... @@ -369,9 +369,9 @@
369 369 //0 或者空 未上传国家网 1上传国家网
370 370 private Integer sendCountry;
371 371  
  372 +
372 373 //0 或者空孕检 1婚孕检
373 374 private Integer hyj;
374   -
375 375 //孕次
376 376 private Integer yunSize;
377 377  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java View file @ 32df5ae
... ... @@ -207,9 +207,47 @@
207 207 @RequestMapping(method = RequestMethod.GET, value = "/getHjYjList")
208 208 @ResponseBody
209 209 @TokenRequired
210   - public BaseObjectResponse getHjYjList(@RequestParam String time, HttpServletRequest request) {
  210 + public BaseObjectResponse getHjYjList(@RequestParam String time,HttpServletRequest request) {
211 211 return iPreEugenicsService.getHjYjList(time, getUserId(request));
212 212 }
  213 + /**
  214 + * 建档后婚检/孕前体检表信息不能完全共享
  215 + *
  216 + * @param cardNo
  217 + * @param request
  218 + * @Author: 武涛涛
  219 + * @Date: 2020/9/24 16:17
  220 + */
  221 + @RequestMapping(method = RequestMethod.GET, value = "/getMcyjChuc")
  222 + @ResponseBody
  223 + @TokenRequired
  224 + public BaseObjectResponse getMcyjChuc(@RequestParam String cardNo,HttpServletRequest request) {
  225 + return iPreEugenicsService.getMcyjChuc(cardNo, getUserId(request));
  226 + }
  227 + /**
  228 + * 孕检 导出数据
  229 + * @param time
  230 + * @param request
  231 + * @param response
  232 + */
  233 + @ResponseBody
  234 + @TokenRequired
  235 + @RequestMapping(value = "/exportYj", method = RequestMethod.GET)
  236 + public void exportYj(@RequestParam String time, HttpServletRequest request, HttpServletResponse response) {
  237 + iPreEugenicsService.exportYj(time, getUserId(request),response);
  238 + }
  239 + /**
  240 + * 婚检 导出数据
  241 + * @param time
  242 + * @param request
  243 + * @param response
  244 + */
  245 + @ResponseBody
  246 + @TokenRequired
  247 + @RequestMapping(value = "/exportHj", method = RequestMethod.GET)
  248 + public void exportHj(@RequestParam String time, HttpServletRequest request, HttpServletResponse response) {
  249 + iPreEugenicsService.exportHj(time, getUserId(request),response);
  250 + }
213 251  
214 252 /**
215 253 * 导出数据
... ... @@ -223,5 +261,9 @@
223 261 public void exportRcCount(@RequestParam String time, HttpServletRequest request, HttpServletResponse response) {
224 262 iPreEugenicsService.exportRcCount(time, getUserId(request),response);
225 263 }
  264 +
  265 +
  266 +
  267 +
226 268 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java View file @ 32df5ae
... ... @@ -22,7 +22,11 @@
22 22 BaseObjectResponse getRcCount(String time, Integer userId);
23 23  
24 24 BaseObjectResponse getHjYjList(String time, Integer userId);
  25 + BaseObjectResponse getMcyjChuc(String cardNo, Integer userId);
  26 + void exportYj(String time, Integer userId, HttpServletResponse response);
  27 + void exportHj(String time, Integer userId, HttpServletResponse response);
25 28  
26 29 void exportRcCount(String time, Integer userId, HttpServletResponse response);
  30 +
27 31 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java View file @ 32df5ae
... ... @@ -80,6 +80,7 @@
80 80  
81 81 @Autowired
82 82 private PremaritalCheckupService premaritalCheckupService;
  83 +
83 84 /**
84 85 * 根据身份证号获取对应的孕前优生信息
85 86 *
86 87  
87 88  
... ... @@ -572,15 +573,10 @@
572 573 @Override
573 574 public BaseObjectResponse getHjYjList(String time, Integer userId) {
574 575  
575   - /*
576   - 存储导出list 详情 ,只写了统计总数,没有导出详情
577   - */
578 576 int hjAllCount = 0;
579 577 int yjAllCount = 0;
580   -
581   - //乡镇list 存储 乡镇名称,婚检总数,孕检总数
  578 + //婚检孕检统计
582 579 List <Map <String, Object>> datas = new LinkedList <>();
583   -
584 580 //当前用户获取对应的 乡镇列表
585 581 String hospitalId = autoMatchFacade.getHospitalId(userId);
586 582 Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId));
... ... @@ -592,7 +588,7 @@
592 588 /*婚检*/
593 589 List <String> residentsIds = getResidentsIds(hospitalId, item);
594 590 //通过建档 residentsIds 获取这短时间婚检孕检的男女
595   - if(CollectionUtils.isNotEmpty(residentsIds)){
  591 + if (CollectionUtils.isNotEmpty(residentsIds)) {
596 592 PremaritalCheckupQuery query = new PremaritalCheckupQuery();
597 593 query.setYn(YnEnums.YES.getId());
598 594 query.setHospitalId(hospitalId);
... ... @@ -605,7 +601,7 @@
605 601 e.printStackTrace();
606 602 }
607 603 }
608   - List<PremaritalCheckup> hjList = premaritalCheckupService.queryPremaritalCheckup(query);
  604 + List <PremaritalCheckup> hjList = premaritalCheckupService.queryPremaritalCheckup(query);
609 605 //单个乡镇婚检总数
610 606 data.put("hjCount", hjList.size());
611 607 //婚检总数
612 608  
613 609  
... ... @@ -619,14 +615,13 @@
619 615 Date end = DateUtil.parseYMD(arrs[1]);
620 616 end = DateUtil.getDayLastSecond(end);
621 617 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));
  618 +// yquery.addCriteria(Criteria.where("hyj").is(1));//陵城默认是婚孕检
624 619 yquery.addCriteria(Criteria.where("hospitalId").is(hospitalId));
625 620 yquery.addCriteria(Criteria.where("wifeCurrentStreet").is(item.getId()));
626 621 List <PreEugenicsBaseModel> yjList = mongoTemplate.find(yquery, PreEugenicsBaseModel.class);
627 622 if (CollectionUtils.isNotEmpty(yjList)) {
628   - yjAllCount += yjList.size();
629 623 data.put("yjCount", yjList.size());
  624 + yjAllCount += yjList.size();
630 625 }
631 626 datas.add(data);
632 627  
633 628  
634 629  
635 630  
636 631  
637 632  
638 633  
... ... @@ -636,27 +631,226 @@
636 631 data.put("name", "合计");
637 632 data.put("hjCount", hjAllCount);
638 633 data.put("yjCount", yjAllCount);
  634 +
639 635 datas.add(data);
640 636 }
641 637  
642 638 return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas);
643 639 }
644 640  
  641 + @Override
  642 + public BaseObjectResponse getMcyjChuc(String cardNo, Integer userId) {
  643 +
  644 + Map <String, Object> map = new HashMap <>();
  645 + //婚前检查
  646 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  647 + PremaritalCheckupQuery query = new PremaritalCheckupQuery();
  648 + query.setYn(YnEnums.YES.getId());
  649 + query.setHospitalId(hospitalId);
  650 + query.setCertificateNum(cardNo);
  651 + List <PremaritalCheckup> hjList = premaritalCheckupService.queryPremaritalCheckup(query);
  652 + if(CollectionUtils.isNotEmpty(hjList)){
  653 + PremaritalCheckup premaritalCheckup = hjList.get(0);
  654 + map.put("menarcheAge", premaritalCheckup.getMenarcheAge());
  655 + map.put("lastMenses", premaritalCheckup.getLastMenses());
  656 + }else {
  657 + //孕检
  658 + Query yquery = new Query();
  659 + yquery.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  660 + yquery.addCriteria(Criteria.where("wifeCardNo").is(cardNo));
  661 + List <PreEugenicsBaseModel> yjList = mongoTemplate.find(yquery, PreEugenicsBaseModel.class);
  662 + }
  663 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map);
  664 + }
  665 +
  666 +
645 667 /**
646   - * 获取乡镇,婚检建档 男女Id
  668 + * 孕检导出
  669 + *
  670 + * @param time
  671 + * @param userId
  672 + * @param response
647 673 * @Author: 武涛涛
  674 + * @Date: 2020/9/27 10:30
  675 + */
  676 + @Override
  677 + public void exportYj(String time, Integer userId, HttpServletResponse response) {
  678 + List <Map <String, Object>> datas = getYjdcList(time, userId);
  679 + Map <String, String> cnames = new LinkedHashMap <>();
  680 + cnames.put("username", "姓名");
  681 + cnames.put("certificateNum", "证件号");
  682 + cnames.put("age", "年龄");
  683 + cnames.put("addressStr", "居住地");
  684 + cnames.put("phone", "联系电话");
  685 + cnames.put("spouseName", "配偶姓名");
  686 + cnames.put("spousePhone", "联系方式");
  687 + ResponseUtil.responseExcel(cnames, datas, response);
  688 +
  689 + }
  690 +
  691 + @Override
  692 + public void exportHj(String time, Integer userId, HttpServletResponse response) {
  693 + List <Map <String, Object>> datas = getHyjdcList(time, userId);
  694 + Map <String, String> cnames = new LinkedHashMap <>();
  695 + cnames.put("username", "姓名");
  696 + cnames.put("certificateNum", "证件号");
  697 + cnames.put("age", "年龄");
  698 + cnames.put("addressStr", "居住地");
  699 + cnames.put("phone", "联系电话");
  700 + cnames.put("spouseName", "配偶姓名");
  701 + cnames.put("spousePhone", "联系方式");
  702 + ResponseUtil.responseExcel(cnames, datas, response);
  703 +
  704 + }
  705 +
  706 +
  707 + /**
  708 + * 孕检 导出数据
  709 + *
  710 + * @param time
  711 + * @param userId
  712 + * @Author: 武涛涛
  713 + * @Date: 2020/9/27 10:23
  714 + */
  715 + private List <Map <String, Object>> getYjdcList(String time, Integer userId) {
  716 +
  717 + //孕检导出
  718 + List <Map <String, Object>> yjdcList = new LinkedList <>();
  719 +
  720 + //当前用户获取对应的 乡镇列表
  721 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  722 + Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId));
  723 + List <BasicConfig> items = basicConfigService.queryByParentId(organization.getAreaId());
  724 + if (CollectionUtils.isNotEmpty(items)) {
  725 + for (BasicConfig item : items) {
  726 + /*孕检*/
  727 + Query yquery = new Query();
  728 + String[] arrs = time.split(" - ");
  729 + Date start = DateUtil.parseYMD(arrs[0]);
  730 + Date end = DateUtil.parseYMD(arrs[1]);
  731 + end = DateUtil.getDayLastSecond(end);
  732 + yquery.addCriteria(Criteria.where("fillDate").gte(start).lte(end));
  733 +// yquery.addCriteria(Criteria.where("hyj").is(1));//陵城默认是婚孕检
  734 + yquery.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  735 + yquery.addCriteria(Criteria.where("wifeCurrentStreet").is(item.getId()));
  736 + List <PreEugenicsBaseModel> yjList = mongoTemplate.find(yquery, PreEugenicsBaseModel.class);
  737 + if (CollectionUtils.isNotEmpty(yjList)) {
  738 + for (int i = 0; i < yjList.size(); i++) {
  739 + Map <String, Object> yjjMap = new HashMap();
  740 + PreEugenicsBaseModel preEugenicsBaseModel = yjList.get(i);
  741 + yjjMap.put("username", preEugenicsBaseModel.getWifeName());//姓名
  742 + yjjMap.put("certificateNum", preEugenicsBaseModel.getWifeCardNo());//证件号
  743 + yjjMap.put("age", preEugenicsBaseModel.getWifeAge());//年龄
  744 + String addressStr = CommonsHelper.getResidence(preEugenicsBaseModel.getWifeCurrentProvince(),
  745 + preEugenicsBaseModel.getWifeCurrentCity(), preEugenicsBaseModel.getWifeCurrentArea(),
  746 + preEugenicsBaseModel.getWifeCurrentStreet(), preEugenicsBaseModel.getWifeCurrentAddress(),
  747 + basicConfigService);
  748 + yjjMap.put("addressStr", addressStr);//居住地
  749 + yjjMap.put("phone", preEugenicsBaseModel.getWifePhone());//联系电话
  750 + yjjMap.put("spouseName", preEugenicsBaseModel.getHusbandName());//配偶姓名
  751 + yjjMap.put("spousePhone", preEugenicsBaseModel.getHusbandPhone());//联系方式
  752 +
  753 + yjdcList.add(yjjMap);
  754 + }
  755 + }
  756 + }
  757 + }
  758 + return yjdcList;
  759 + }
  760 +
  761 + /**
  762 + * 婚检 导出数据
  763 + *
  764 + * @param time
  765 + * @param userId
  766 + * @Author: 武涛涛
  767 + * @Date: 2020/9/27 10:21
  768 + */
  769 + private List <Map <String, Object>> getHyjdcList(String time, Integer userId) {
  770 + //婚检导出
  771 + List <Map <String, Object>> hyjdcList = new LinkedList <>();
  772 + //当前用户获取对应的 乡镇列表
  773 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  774 + Organization organization = organizationService.getOrganization(Integer.valueOf(hospitalId));
  775 + List <BasicConfig> items = basicConfigService.queryByParentId(organization.getAreaId());
  776 + if (CollectionUtils.isNotEmpty(items)) {
  777 + for (BasicConfig item : items) {
  778 + Map <String, Object> data = new HashMap();
  779 + data.put("name", item.getName());
  780 + /*婚检*/
  781 + List <String> residentsIds = getResidentsIds(hospitalId, item);
  782 + //通过建档 residentsIds 获取这短时间婚检孕检的男女
  783 + if (CollectionUtils.isNotEmpty(residentsIds)) {
  784 + PremaritalCheckupQuery query = new PremaritalCheckupQuery();
  785 + query.setYn(YnEnums.YES.getId());
  786 + query.setHospitalId(hospitalId);
  787 + query.setParentIds(residentsIds);
  788 + if (StringUtils.isNotEmpty(time)) {
  789 + try {
  790 + query.setPremaritalUpTimeStart(DateUtil.getSNDate(time)[0]);
  791 + query.setPremaritalUpTimeEnd(DateUtil.getSNDate(time)[1]);
  792 + } catch (Exception e) {
  793 + e.printStackTrace();
  794 + }
  795 + }
  796 + List <PremaritalCheckup> hjList = premaritalCheckupService.queryPremaritalCheckup(query);
  797 + /*导出数据拼装*/
  798 + if (CollectionUtils.isNotEmpty(hjList)) {
  799 + for (int i = 0; i < hjList.size(); i++) {
  800 + Map <String, Object> hyjMap = new HashMap();
  801 + //检查数据
  802 + PremaritalCheckup premaritalCheckup = hjList.get(i);
  803 + if (premaritalCheckup != null && StringUtils.isNotEmpty(premaritalCheckup.getParentId())) {
  804 + //档案数据
  805 + ResidentsArchiveModel residentsArchiveModel = residentsArchiveService.getResident(premaritalCheckup.getParentId());
  806 + hyjMap.put("username", residentsArchiveModel.getUsername());//姓名
  807 + hyjMap.put("certificateNum", residentsArchiveModel.getCertificateNum());//证件号
  808 + hyjMap.put("age", residentsArchiveModel.getAge());//年龄
  809 + String addressStr = CommonsHelper.getResidence(residentsArchiveModel.getProvinceId(), residentsArchiveModel.getCityId(), residentsArchiveModel.getAreaId(),
  810 + residentsArchiveModel.getStreetId(), residentsArchiveModel.getAddress(), basicConfigService);
  811 + hyjMap.put("addressStr", addressStr);//居住地
  812 + hyjMap.put("phone", residentsArchiveModel.getPhone());//联系电话
  813 +
  814 + if (StringUtils.isNotEmpty(premaritalCheckup.getSpouseCertificateNum())) {
  815 + ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery();
  816 + archiveQuery.setHospitalId(hospitalId);
  817 + archiveQuery.setCertificateNum(premaritalCheckup.getSpouseCertificateNum());
  818 + List <ResidentsArchiveModel> archiveModelList = residentsArchiveService.queryResident(archiveQuery);
  819 + if (CollectionUtils.isNotEmpty(archiveModelList)) {
  820 + hyjMap.put("spousePhone", archiveModelList.get(0).getPhone());//联系方式
  821 + }
  822 + }
  823 +
  824 + }
  825 + hyjMap.put("spouseName", premaritalCheckup.getSpouseName());//配偶姓名
  826 +
  827 +
  828 + hyjdcList.add(hyjMap);
  829 + }
  830 + }
  831 + }
  832 + }
  833 + }
  834 + return hyjdcList;
  835 + }
  836 +
  837 + /**
  838 + * 获取乡镇,婚检建档 女Id
  839 + *
  840 + * @Author: 武涛涛
648 841 * @Date: 2020/9/24 17:18
649 842 */
650   - private List <String> getResidentsIds(String hospitalId, BasicConfig item) {
  843 + private List <String> getResidentsIds(String hospitalId, BasicConfig item) {
651 844 List <String> residentsIds = new ArrayList <>();
652 845 ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery();
653 846 archiveQuery.setYn(YnEnums.YES.getId());
654 847 archiveQuery.setHospitalId(hospitalId);
655 848 archiveQuery.setStreetId(item.getId());
656   - List<ResidentsArchiveModel> hjCounts = residentsArchiveService.queryResident(archiveQuery);
657   - if(CollectionUtils.isNotEmpty(hjCounts)){
  849 + archiveQuery.setSex("c23779f1-cb6e-44d0-9fc8-0a990bf6184c");//张洁说只要女性的婚检数据
  850 + List <ResidentsArchiveModel> hjCounts = residentsArchiveService.queryResident(archiveQuery);
  851 + if (CollectionUtils.isNotEmpty(hjCounts)) {
658 852 for (int i = 0; i < hjCounts.size(); i++) {
659   - if(hjCounts.get(i)!=null && StringUtils.isNotEmpty(hjCounts.get(i).getId())){
  853 + if (hjCounts.get(i) != null && StringUtils.isNotEmpty(hjCounts.get(i).getId())) {
660 854 residentsIds.add(hjCounts.get(i).getId());
661 855 }
662 856 }