Commit 2b738aef744ceed2fe62fa2505bfd514f321992b
1 parent
2efeb27594
Exists in
master
and in
6 other branches
衡水产筛统计
Showing 6 changed files with 504 additions and 4 deletions
- platform-dal/src/main/java/com/lyms/platform/query/SieveApplyOrderQuery.java
- platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/SieveListResult.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SieveRegionalCqsievesWorker.java
platform-dal/src/main/java/com/lyms/platform/query/SieveApplyOrderQuery.java
View file @
2b738ae
| ... | ... | @@ -6,6 +6,8 @@ |
| 6 | 6 | import com.lyms.platform.common.dao.operator.MongoOper; |
| 7 | 7 | import com.lyms.platform.common.dao.operator.MongoQuery; |
| 8 | 8 | |
| 9 | +import java.util.List; | |
| 10 | + | |
| 9 | 11 | /** |
| 10 | 12 | * Created by Administrator on 2016/6/15 0015. |
| 11 | 13 | */ |
| ... | ... | @@ -37,6 +39,16 @@ |
| 37 | 39 | |
| 38 | 40 | //产筛医院 |
| 39 | 41 | private String sieveHospitalId; |
| 42 | + //衡水区域产筛申请统计使用 | |
| 43 | + private List<String> sieveHospitalIds; | |
| 44 | + | |
| 45 | + public List<String> getSieveHospitalIds() { | |
| 46 | + return sieveHospitalIds; | |
| 47 | + } | |
| 48 | + | |
| 49 | + public void setSieveHospitalIds(List<String> sieveHospitalIds) { | |
| 50 | + this.sieveHospitalIds = sieveHospitalIds; | |
| 51 | + } | |
| 40 | 52 | |
| 41 | 53 | public String getNumber() { |
| 42 | 54 | return number; |
platform-dal/src/main/java/com/lyms/platform/query/SieveQuery.java
View file @
2b738ae
| ... | ... | @@ -89,6 +89,8 @@ |
| 89 | 89 | |
| 90 | 90 | //产筛医院 |
| 91 | 91 | private String sieveHospitalId; |
| 92 | + //衡水区域产筛申请统计使用 | |
| 93 | + private List<String> sieveHospitalIds; | |
| 92 | 94 | |
| 93 | 95 | //申请医院 |
| 94 | 96 | private String applyHospitalId; |
| ... | ... | @@ -120,6 +122,14 @@ |
| 120 | 122 | private String areaId; |
| 121 | 123 | private String streetId; |
| 122 | 124 | |
| 125 | + public List<String> getSieveHospitalIds() { | |
| 126 | + return sieveHospitalIds; | |
| 127 | + } | |
| 128 | + | |
| 129 | + public void setSieveHospitalIds(List<String> sieveHospitalIds) { | |
| 130 | + this.sieveHospitalIds = sieveHospitalIds; | |
| 131 | + } | |
| 132 | + | |
| 123 | 133 | public List<String> getLymsSieveIds() { |
| 124 | 134 | return lymsSieveIds; |
| 125 | 135 | } |
| ... | ... | @@ -421,7 +431,9 @@ |
| 421 | 431 | if (null != applyHospitalId) { |
| 422 | 432 | condition = condition.and("applyHospitalId", applyHospitalId, MongoOper.IS); |
| 423 | 433 | } |
| 424 | - | |
| 434 | + if (null != sieveHospitalIds) { | |
| 435 | + condition = condition.and("sieveHospitalId", sieveHospitalIds, MongoOper.IN); | |
| 436 | + } | |
| 425 | 437 | if (null != parentId) { |
| 426 | 438 | condition = condition.and("parentId", parentId, MongoOper.IS); |
| 427 | 439 | } |
| ... | ... | @@ -598,6 +610,7 @@ |
| 598 | 610 | condition = condition.and("sieveType", sieveType, MongoOper.IS); |
| 599 | 611 | } |
| 600 | 612 | } |
| 613 | + | |
| 601 | 614 | |
| 602 | 615 | if (StringUtils.isNotEmpty(costType)) { |
| 603 | 616 | // costType = null/1 免费 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java
View file @
2b738ae
| ... | ... | @@ -256,6 +256,36 @@ |
| 256 | 256 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
| 257 | 257 | return sieveFacade.queryList(cqSieveQueryRequest, loginState.getId(), "true", false); |
| 258 | 258 | } |
| 259 | + /** | |
| 260 | + * 区域 产筛申请统计 | |
| 261 | + * | |
| 262 | + * @param cqSieveQueryRequest | |
| 263 | + * @param request | |
| 264 | + * @Author: 武涛涛 | |
| 265 | + * @Date: 2020/7/16 10:06 | |
| 266 | + */ | |
| 267 | + @ResponseBody | |
| 268 | + @RequestMapping(value = "/regionalCqsievesList", method = RequestMethod.GET) | |
| 269 | + @TokenRequired | |
| 270 | + public BaseResponse regionalCqsievesList(@Valid CqSieveQueryRequest cqSieveQueryRequest, HttpServletRequest request) { | |
| 271 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 272 | + return sieveFacade.regionalCqsievesList(cqSieveQueryRequest, loginState.getId(), "true", false); | |
| 273 | + } | |
| 274 | + /** | |
| 275 | + * 区域 产筛申请统计导出 | |
| 276 | + * | |
| 277 | + * @param cqSieveQueryRequest | |
| 278 | + * @param request | |
| 279 | + * @param response | |
| 280 | + * @Author: 武涛涛 | |
| 281 | + * @Date: 2020/7/16 16:08 | |
| 282 | + */ | |
| 283 | + @RequestMapping(value = "/exportRegionalCqsievesList", method = RequestMethod.GET) | |
| 284 | + @TokenRequired | |
| 285 | + public void exportRegionalCqsievesList(@Valid CqSieveQueryRequest cqSieveQueryRequest, HttpServletRequest request, HttpServletResponse response) { | |
| 286 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 287 | + sieveFacade.exportRegionalCqsievesList(cqSieveQueryRequest, loginState.getId(), response); | |
| 288 | + } | |
| 259 | 289 | |
| 260 | 290 | |
| 261 | 291 | /** |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java
View file @
2b738ae
| ... | ... | @@ -19,6 +19,7 @@ |
| 19 | 19 | import com.lyms.platform.operate.web.service.ITrackDownService; |
| 20 | 20 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
| 21 | 21 | import com.lyms.platform.operate.web.worker.SieveHistory; |
| 22 | +import com.lyms.platform.operate.web.worker.SieveRegionalCqsievesWorker; | |
| 22 | 23 | import com.lyms.platform.operate.web.worker.SieveWorker; |
| 23 | 24 | import com.lyms.platform.operate.web.worker.SieveWorker2; |
| 24 | 25 | import com.lyms.platform.permission.model.Organization; |
| ... | ... | @@ -31,7 +32,6 @@ |
| 31 | 32 | import jxl.Cell; |
| 32 | 33 | import jxl.Sheet; |
| 33 | 34 | import jxl.Workbook; |
| 34 | -import jxl.read.biff.BiffException; | |
| 35 | 35 | import net.sf.json.JSONObject; |
| 36 | 36 | import org.apache.commons.collections.CollectionUtils; |
| 37 | 37 | import org.apache.commons.fileupload.disk.DiskFileItem; |
| ... | ... | @@ -50,7 +50,9 @@ |
| 50 | 50 | import org.springframework.web.multipart.commons.CommonsMultipartFile; |
| 51 | 51 | |
| 52 | 52 | import javax.servlet.http.HttpServletResponse; |
| 53 | -import java.io.*; | |
| 53 | +import java.io.File; | |
| 54 | +import java.io.FileInputStream; | |
| 55 | +import java.io.OutputStream; | |
| 54 | 56 | import java.text.SimpleDateFormat; |
| 55 | 57 | import java.util.*; |
| 56 | 58 | import java.util.concurrent.Callable; |
| ... | ... | @@ -612,6 +614,213 @@ |
| 612 | 614 | return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); |
| 613 | 615 | } |
| 614 | 616 | |
| 617 | + /** | |
| 618 | + * 区域 产筛申请统计 | |
| 619 | + * | |
| 620 | + * @param cqSieveQueryRequest | |
| 621 | + * @param userId | |
| 622 | + * @param needPage | |
| 623 | + * @param isSieveLagManage | |
| 624 | + * @Author: 武涛涛 | |
| 625 | + * @Date: 2020/7/16 10:10 | |
| 626 | + */ | |
| 627 | + public BaseResponse regionalCqsievesList(CqSieveQueryRequest cqSieveQueryRequest, Integer userId, String needPage, boolean isSieveLagManage) { | |
| 628 | + | |
| 629 | + String hospitalId = autoMatchFacade.getHospitalId(userId); | |
| 630 | + List<String> hospitalList = new ArrayList<>(); | |
| 631 | + if(null!=hospitalId){ | |
| 632 | + //当前用户本院 | |
| 633 | + hospitalList.add(hospitalId); | |
| 634 | + } | |
| 635 | + //查询用户是否有区域权限 | |
| 636 | + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); | |
| 637 | + dataPermissionsModelQuery.setUserId(userId); | |
| 638 | + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); | |
| 639 | + if (CollectionUtils.isNotEmpty(permissionsModels)) { | |
| 640 | + Set<String> set = permissionsModels.get(0).getData().keySet(); | |
| 641 | + Iterator<String> it = set.iterator(); | |
| 642 | + while (it.hasNext()) { | |
| 643 | + String id = it.next(); | |
| 644 | + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id) && !hospitalList.contains(id)) { | |
| 645 | + hospitalList.add(id); | |
| 646 | + } | |
| 647 | + } | |
| 648 | + } | |
| 649 | + | |
| 650 | + List<SieveListResult> data = new ArrayList<>(); | |
| 651 | + SieveQuery sieveQuery = new SieveQuery(); | |
| 652 | + sieveQuery.setQueryNo(cqSieveQueryRequest.getQueryNo()); | |
| 653 | + sieveQuery.setYn(YnEnums.YES.getId()); | |
| 654 | + sieveQuery.setPhone(cqSieveQueryRequest.getPhone()); | |
| 655 | + sieveQuery.setStatus(cqSieveQueryRequest.getStatus()); | |
| 656 | + sieveQuery.setStatuses(cqSieveQueryRequest.getStatuses()); | |
| 657 | + sieveQuery.setCqResult(cqSieveQueryRequest.getCqResult()); | |
| 658 | + sieveQuery.setRenShenResult(cqSieveQueryRequest.getRenShenResult()); | |
| 659 | + sieveQuery.setName(cqSieveQueryRequest.getName()); | |
| 660 | + sieveQuery.setCardNo(cqSieveQueryRequest.getCardNo()); | |
| 661 | + | |
| 662 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getVcCardNo())) { | |
| 663 | + PatientsQuery patientsQuery = new PatientsQuery(); | |
| 664 | + //patientsQuery.setHospitalId(hospitalId); | |
| 665 | + patientsQuery.setHospitalList(hospitalList); | |
| 666 | + patientsQuery.setYn(YnEnums.YES.getId()); | |
| 667 | + patientsQuery.setVcCardNo(cqSieveQueryRequest.getVcCardNo()); | |
| 668 | + List<Patients> localPatients = patientsService.queryPatient(patientsQuery); | |
| 669 | + if (CollectionUtils.isNotEmpty(localPatients)) { | |
| 670 | + List<String> ids = new ArrayList<>(); | |
| 671 | + for (Patients pat : localPatients) { | |
| 672 | + ids.add(pat.getId()); | |
| 673 | + } | |
| 674 | + sieveQuery.setParentIds(ids); | |
| 675 | + } | |
| 676 | + } | |
| 677 | + | |
| 678 | + | |
| 679 | + //省市区查询 | |
| 680 | + sieveQuery.setProvinceId(cqSieveQueryRequest.getProvinceId()); | |
| 681 | + sieveQuery.setCityId(cqSieveQueryRequest.getCityId()); | |
| 682 | + sieveQuery.setAreaId(cqSieveQueryRequest.getAreaId()); | |
| 683 | + sieveQuery.setStreetId(cqSieveQueryRequest.getStreetId()); | |
| 684 | + | |
| 685 | + if (null != cqSieveQueryRequest.getDueWeekStart()) { | |
| 686 | + sieveQuery.setDueWeekStart(7 * Integer.valueOf(cqSieveQueryRequest.getDueWeekStart())); | |
| 687 | + } | |
| 688 | + if (null != cqSieveQueryRequest.getDueWeekEnd()) { | |
| 689 | + sieveQuery.setDueWeekEnd(7 * Integer.valueOf(cqSieveQueryRequest.getDueWeekEnd()) + 6); | |
| 690 | + } | |
| 691 | + if (null != cqSieveQueryRequest.getcDueWeekStart()) { | |
| 692 | + sieveQuery.setLastMensesEnd(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cqSieveQueryRequest.getcDueWeekStart() * 7))); | |
| 693 | + } | |
| 694 | + if (null != cqSieveQueryRequest.getcDueWeekEnd()) { | |
| 695 | + sieveQuery.setLastMensesStart(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cqSieveQueryRequest.getcDueWeekEnd() * 7) - 6)); | |
| 696 | + } | |
| 697 | + | |
| 698 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getApplyTime())) { | |
| 699 | + String[] dates = cqSieveQueryRequest.getApplyTime().split(" - "); | |
| 700 | + | |
| 701 | + sieveQuery.setApplyTimeStart(DateUtil.parseYMD(dates[0])); | |
| 702 | + if (dates.length == 2) { | |
| 703 | + sieveQuery.setApplyTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
| 704 | + } | |
| 705 | + } | |
| 706 | + | |
| 707 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getDiagnosisTime())) { | |
| 708 | + String[] dates = cqSieveQueryRequest.getDiagnosisTime().split(" - "); | |
| 709 | + | |
| 710 | + sieveQuery.setDiagnosisTimeStart(DateUtil.parseYMD(dates[0])); | |
| 711 | + if (dates.length == 2) { | |
| 712 | + sieveQuery.setDiagnosisTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
| 713 | + } | |
| 714 | + } | |
| 715 | + | |
| 716 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getResultTime())) { | |
| 717 | + String[] dates = cqSieveQueryRequest.getResultTime().split(" - "); | |
| 718 | + | |
| 719 | + sieveQuery.setResultTimeStart(DateUtil.parseYMD(dates[0])); | |
| 720 | + if (dates.length == 2) { | |
| 721 | + sieveQuery.setResultTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
| 722 | + } | |
| 723 | + } | |
| 724 | + sieveQuery.setZtfx(cqSieveQueryRequest.getZtfx()); | |
| 725 | + sieveQuery.setStatus(cqSieveQueryRequest.getIsNotify()); | |
| 726 | + sieveQuery.setPage(cqSieveQueryRequest.getPage()); | |
| 727 | + sieveQuery.setLimit(cqSieveQueryRequest.getLimit()); | |
| 728 | + | |
| 729 | + | |
| 730 | + sieveQuery.setNeed(needPage); | |
| 731 | + | |
| 732 | + | |
| 733 | + if (isSieveLagManage) { | |
| 734 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getApplyHospitalId())) {//申请医院 | |
| 735 | + sieveQuery.setApplyHospitalId(cqSieveQueryRequest.getApplyHospitalId()); | |
| 736 | + } | |
| 737 | + //区域统计,当前用户有那个医院就可以查看申请到的医院数据 | |
| 738 | + sieveQuery.setSieveHospitalIds(hospitalList); | |
| 739 | + } else { | |
| 740 | + sieveQuery.setHospitalIds(hospitalList); | |
| 741 | + } | |
| 742 | + List<String> lymsSieveIds = new ArrayList<>(); | |
| 743 | + | |
| 744 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getNumber())) { | |
| 745 | + List<String> parentIds = new ArrayList<>(); | |
| 746 | + SieveApplyOrderQuery sieveApplyOrderQuery = new SieveApplyOrderQuery(); | |
| 747 | + sieveApplyOrderQuery.setSieveHospitalIds(hospitalList); | |
| 748 | + sieveApplyOrderQuery.setNumber(cqSieveQueryRequest.getNumber()); | |
| 749 | + sieveApplyOrderQuery.setYn(YnEnums.YES.getId()); | |
| 750 | + List<SieveApplyOrderModel> sieveApplyOrderModels = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery); | |
| 751 | + if (CollectionUtils.isNotEmpty(sieveApplyOrderModels)) { | |
| 752 | + for (SieveApplyOrderModel model : sieveApplyOrderModels) { | |
| 753 | + parentIds.add(model.getParentId()); | |
| 754 | + if (StringUtils.isNotEmpty(model.getLymsSieveId())) { | |
| 755 | + lymsSieveIds.add(model.getLymsSieveId()); | |
| 756 | + } | |
| 757 | + } | |
| 758 | + } | |
| 759 | + if (CollectionUtils.isNotEmpty(lymsSieveIds)) { | |
| 760 | + sieveQuery.setLymsSieveIds(lymsSieveIds);//以前产筛表没有这个管理会漏掉,后面修改过就不会,这里有可能会有个问题 | |
| 761 | + } else if (CollectionUtils.isNotEmpty(parentIds)) { | |
| 762 | + sieveQuery.setParentIds(parentIds); | |
| 763 | + } else { | |
| 764 | + return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); | |
| 765 | + } | |
| 766 | + } | |
| 767 | + | |
| 768 | + // 筛查类型 | |
| 769 | + String sieveType = cqSieveQueryRequest.getSieveType(); | |
| 770 | + if (StringUtils.isNotEmpty(sieveType)) { | |
| 771 | + if(sieveType.contains(",")){ | |
| 772 | + sieveType=sieveType.replace(",", ""); | |
| 773 | + } | |
| 774 | + sieveQuery.setSieveType(sieveType); | |
| 775 | + } | |
| 776 | + | |
| 777 | + // 费用类型 ,1 | |
| 778 | + String costType = cqSieveQueryRequest.getCostType(); | |
| 779 | + if (StringUtils.isNotEmpty(costType)) { | |
| 780 | + if(costType.contains(",")){ | |
| 781 | + costType=costType.replace(",", ""); | |
| 782 | + } | |
| 783 | + sieveQuery.setCostType(costType); | |
| 784 | + } | |
| 785 | + | |
| 786 | + // 报告类型 | |
| 787 | + String reportType = cqSieveQueryRequest.getReportType(); | |
| 788 | + if (StringUtils.isNotEmpty(reportType)) { | |
| 789 | + sieveQuery.setReportType(reportType); | |
| 790 | + } | |
| 791 | + | |
| 792 | + //查询产筛list | |
| 793 | + List<SieveModel> list = sieveService.queryList1(sieveQuery, "order"); | |
| 794 | + int batchSize = 4; | |
| 795 | + int end = 0; | |
| 796 | + List<Future> listFuture = new ArrayList<>(); | |
| 797 | + for (int i = 0; i < list.size(); i += batchSize) { | |
| 798 | + end = (end + batchSize); | |
| 799 | + if (end > list.size()) { | |
| 800 | + end = list.size(); | |
| 801 | + } | |
| 802 | + listFuture.add(commonThreadPool.submit(new SieveRegionalCqsievesWorker(list.subList(i, end), patientsService,applyOrderService,organizationService,basicConfigService,sieveService))); | |
| 803 | + } | |
| 804 | + for (Future f : listFuture) { | |
| 805 | + try { | |
| 806 | + data.addAll((List) f.get(30, TimeUnit.SECONDS)); | |
| 807 | + } catch (Exception e) { | |
| 808 | + ExceptionUtils.catchException(e, "cqSieve list get result Future error."); | |
| 809 | + } | |
| 810 | + } | |
| 811 | + return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); | |
| 812 | + } | |
| 813 | + | |
| 814 | + /** | |
| 815 | + * 产筛导出3.0版 血清学筛查 | |
| 816 | + * | |
| 817 | + * @param cqSieveQueryRequest | |
| 818 | + * @param userId | |
| 819 | + * @param needPage | |
| 820 | + * @param isSieveLagManage | |
| 821 | + * @Author: 武涛涛 | |
| 822 | + * @Date: 2020/7/16 10:07 | |
| 823 | + */ | |
| 615 | 824 | public BaseResponse queryList2(CqSieveQueryRequest cqSieveQueryRequest, Integer userId, String needPage, boolean isSieveLagManage) { |
| 616 | 825 | List<SieveListResult2> data = new ArrayList<>(); |
| 617 | 826 | SieveQuery sieveQuery = new SieveQuery(); |
| ... | ... | @@ -2756,6 +2965,15 @@ |
| 2756 | 2965 | } |
| 2757 | 2966 | } |
| 2758 | 2967 | |
| 2968 | + /** | |
| 2969 | + * 产筛导出3.0版 血清学筛查 | |
| 2970 | + * | |
| 2971 | + * @param cqSieveQueryRequest | |
| 2972 | + * @param id | |
| 2973 | + * @param response | |
| 2974 | + * @Author: 武涛涛 | |
| 2975 | + * @Date: 2020/7/16 10:09 | |
| 2976 | + */ | |
| 2759 | 2977 | public void exportSerologySieve(CqSieveQueryRequest cqSieveQueryRequest, Integer id, HttpServletResponse response) { |
| 2760 | 2978 | try { |
| 2761 | 2979 | BaseListResponse listResponse = (BaseListResponse) queryList2(cqSieveQueryRequest, id, null, true); |
| ... | ... | @@ -2910,6 +3128,65 @@ |
| 2910 | 3128 | /* cnames.put("Ethnicity", "Ethnicity");//种族 |
| 2911 | 3129 | cnames.put("IdCard", "IdCard");//身份证号*/ |
| 2912 | 3130 | |
| 3131 | + } | |
| 3132 | + private void cnamesRegionalCqsievesMap(Map<String, String> cnames) { | |
| 3133 | + cnames.put("姓名", "姓名"); | |
| 3134 | + cnames.put("年龄", "年龄"); | |
| 3135 | + cnames.put("申请时间", "申请时间"); | |
| 3136 | + cnames.put("申请孕周", "申请孕周"); | |
| 3137 | + cnames.put("采血时间", "采血时间"); | |
| 3138 | + cnames.put("申请医院", "申请医院"); | |
| 3139 | + cnames.put("户籍地", "户籍地"); | |
| 3140 | + cnames.put("产筛类型", "产筛类型"); | |
| 3141 | + cnames.put("筛查状态", "筛查状态"); | |
| 3142 | + cnames.put("收费类型", "收费类型"); | |
| 3143 | + cnames.put("整体风险", "整体风险"); | |
| 3144 | + cnames.put("21-三体", "21-三体"); | |
| 3145 | + cnames.put("18-三体", "18-三体"); | |
| 3146 | + cnames.put("神经管畸形", "神经管畸形"); | |
| 3147 | + } | |
| 3148 | + public void exportRegionalCqsievesList(CqSieveQueryRequest cqSieveQueryRequest, Integer id, HttpServletResponse response) { | |
| 3149 | + try { | |
| 3150 | + BaseListResponse listResponse = (BaseListResponse) regionalCqsievesList(cqSieveQueryRequest, id, "true", true); | |
| 3151 | + | |
| 3152 | + List<SieveListResult> list = listResponse.getData(); | |
| 3153 | + List<Map<String, Object>> datas = new ArrayList<>(); | |
| 3154 | + | |
| 3155 | + if (CollectionUtils.isNotEmpty(list)) { | |
| 3156 | + for (SieveListResult sive : list) { | |
| 3157 | + try { | |
| 3158 | + Map<String, Object> data = new HashMap<>(); | |
| 3159 | + data.put("姓名", sive.getName()); | |
| 3160 | + data.put("年龄", sive.getAge()); | |
| 3161 | + data.put("申请时间", sive.getApplyTime()); | |
| 3162 | + data.put("申请孕周", sive.getDueWeek()); | |
| 3163 | + data.put("采血时间", sive.getCollectionDate()); | |
| 3164 | + data.put("申请医院", sive.getApplyHospital()); | |
| 3165 | + data.put("户籍地", sive.getPlaceDomicile()); | |
| 3166 | + data.put("产筛类型", sive.getSieveTypeStr()); | |
| 3167 | + data.put("筛查状态", sive.getStatusText()); | |
| 3168 | + data.put("收费类型", sive.getCostTypeStr()); | |
| 3169 | + data.put("整体风险", sive.getZtfxText()); | |
| 3170 | + data.put("21-三体", sive.getTszhz()); | |
| 3171 | + data.put("18-三体", sive.getSbst()); | |
| 3172 | + data.put("神经管畸形", sive.getSjgjx()); | |
| 3173 | + datas.add(data); | |
| 3174 | + } catch (Exception e) { | |
| 3175 | + e.printStackTrace(); | |
| 3176 | + continue; | |
| 3177 | + } | |
| 3178 | + } | |
| 3179 | + } | |
| 3180 | + OutputStream out = response.getOutputStream(); | |
| 3181 | + Map<String, String> cnames = new LinkedHashMap<>(); | |
| 3182 | + cnamesRegionalCqsievesMap(cnames); | |
| 3183 | + response.setContentType("application/octet-stream"); | |
| 3184 | + response.setCharacterEncoding("UTF-8"); | |
| 3185 | + response.setHeader("Content-Disposition", "attachment;fileName=" + "csdata.xls"); | |
| 3186 | + ExcelUtil.toExcel(out, datas, cnames); | |
| 3187 | + } catch (Exception e) { | |
| 3188 | + ExceptionUtils.catchException(e, "产筛统计导出异常"); | |
| 3189 | + } | |
| 2913 | 3190 | } |
| 2914 | 3191 | |
| 2915 | 3192 | /** |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/SieveListResult.java
View file @
2b738ae
| ... | ... | @@ -16,6 +16,10 @@ |
| 16 | 16 | public class SieveListResult implements IBasicResultConvert<SieveListResult, SieveModel> { |
| 17 | 17 | public static final String SPIT = "-"; |
| 18 | 18 | |
| 19 | + private String sjgjx;// 神经管畸形 | |
| 20 | + private String sbst;// 18-三体 | |
| 21 | + private String tszhz;// 21 唐氏综合症 | |
| 22 | + | |
| 19 | 23 | private String id; |
| 20 | 24 | //患者id |
| 21 | 25 | private String parentId; |
| ... | ... | @@ -157,6 +161,30 @@ |
| 157 | 161 | this.exportTime = exportTime; |
| 158 | 162 | } |
| 159 | 163 | |
| 164 | + public String getSjgjx() { | |
| 165 | + return sjgjx; | |
| 166 | + } | |
| 167 | + | |
| 168 | + public void setSjgjx(String sjgjx) { | |
| 169 | + this.sjgjx = sjgjx; | |
| 170 | + } | |
| 171 | + | |
| 172 | + public String getSbst() { | |
| 173 | + return sbst; | |
| 174 | + } | |
| 175 | + | |
| 176 | + public void setSbst(String sbst) { | |
| 177 | + this.sbst = sbst; | |
| 178 | + } | |
| 179 | + | |
| 180 | + public String getTszhz() { | |
| 181 | + return tszhz; | |
| 182 | + } | |
| 183 | + | |
| 184 | + public void setTszhz(String tszhz) { | |
| 185 | + this.tszhz = tszhz; | |
| 186 | + } | |
| 187 | + | |
| 160 | 188 | public String getCardNo() { |
| 161 | 189 | return cardNo; |
| 162 | 190 | } |
| ... | ... | @@ -575,7 +603,7 @@ |
| 575 | 603 | if (null != destModel.getRenShenResult()) { |
| 576 | 604 | setRenShenResult(RenShenJieJu1Enums.getTitle(destModel.getRenShenResult() + "")); |
| 577 | 605 | } |
| 578 | - setStatus(destModel.getStatus()); | |
| 606 | + setStatus(destModel.getStatus());//筛查状态 | |
| 579 | 607 | setStatusText(SieveStatusEnums.getStrById(destModel.getStatus())); |
| 580 | 608 | setCsRemarkTypeId(destModel.getCsRemarkTypeId()); |
| 581 | 609 | if (StringUtils.isNotEmpty(destModel.getCsRemarkTypeId())) { |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SieveRegionalCqsievesWorker.java
View file @
2b738ae
| 1 | +package com.lyms.platform.operate.web.worker; | |
| 2 | + | |
| 3 | +import com.lyms.platform.biz.service.*; | |
| 4 | +import com.lyms.platform.common.enums.SieveEnums; | |
| 5 | +import com.lyms.platform.common.enums.SieveStatusEnums; | |
| 6 | +import com.lyms.platform.common.enums.YnEnums; | |
| 7 | +import com.lyms.platform.common.utils.DateUtil; | |
| 8 | +import com.lyms.platform.common.utils.DefenceUtils; | |
| 9 | +import com.lyms.platform.operate.web.result.SieveListResult; | |
| 10 | +import com.lyms.platform.operate.web.utils.CommonsHelper; | |
| 11 | +import com.lyms.platform.permission.model.Organization; | |
| 12 | +import com.lyms.platform.permission.service.OrganizationService; | |
| 13 | +import com.lyms.platform.permission.service.UsersService; | |
| 14 | +import com.lyms.platform.pojo.*; | |
| 15 | +import com.lyms.platform.query.*; | |
| 16 | +import org.apache.commons.collections.CollectionUtils; | |
| 17 | +import org.apache.commons.lang.StringUtils; | |
| 18 | +import org.apache.commons.lang.math.NumberUtils; | |
| 19 | +import org.springframework.data.domain.Sort; | |
| 20 | +import org.springframework.data.mongodb.core.MongoTemplate; | |
| 21 | +import org.springframework.data.mongodb.core.query.Criteria; | |
| 22 | +import org.springframework.data.mongodb.core.query.Query; | |
| 23 | + | |
| 24 | +import java.util.*; | |
| 25 | +import java.util.concurrent.Callable; | |
| 26 | + | |
| 27 | +/** | |
| 28 | + * 产筛高危统计 | |
| 29 | + * <p/> | |
| 30 | + * Created by Administrator on 2017/3/10 0010. | |
| 31 | + */ | |
| 32 | +public class SieveRegionalCqsievesWorker implements Callable<List<SieveListResult>> { | |
| 33 | + | |
| 34 | + | |
| 35 | + private List<SieveModel> list; | |
| 36 | + | |
| 37 | + private ApplyOrderService applyOrderService; | |
| 38 | + | |
| 39 | + private PatientsService patientsService; | |
| 40 | + | |
| 41 | + private OrganizationService organizationService; | |
| 42 | + | |
| 43 | + private BasicConfigService basicConfigService; | |
| 44 | + private SieveService sieveService; | |
| 45 | + | |
| 46 | + | |
| 47 | + public SieveRegionalCqsievesWorker(List<SieveModel> list, | |
| 48 | + PatientsService patientsService, ApplyOrderService applyOrderService, | |
| 49 | + OrganizationService organizationService, BasicConfigService basicConfigService,SieveService sieveService) { | |
| 50 | + this.list = list; | |
| 51 | + this.patientsService = patientsService; | |
| 52 | + this.applyOrderService = applyOrderService; | |
| 53 | + this.organizationService = organizationService; | |
| 54 | + this.basicConfigService = basicConfigService; | |
| 55 | + this.sieveService = sieveService; | |
| 56 | + } | |
| 57 | + | |
| 58 | + @Override | |
| 59 | + public List<SieveListResult> call() throws Exception { | |
| 60 | + List<SieveListResult> results = new ArrayList<>(); | |
| 61 | + | |
| 62 | + for (SieveModel sieveModel : list) { | |
| 63 | + SieveListResult sieveListResult = new SieveListResult(); | |
| 64 | + //申请孕周 | |
| 65 | + AntExQuery antExQuery = new AntExQuery(); | |
| 66 | + antExQuery.setYn(YnEnums.YES.getId()); | |
| 67 | + antExQuery.setHospitalId(sieveModel.getHospitalId()); | |
| 68 | + antExQuery.setParentId(sieveModel.getParentId()); | |
| 69 | + | |
| 70 | + //获取产筛申请数据 | |
| 71 | + SieveApplyOrderQuery sieveApplyOrderQuery = new SieveApplyOrderQuery(); | |
| 72 | + sieveApplyOrderQuery.setSort("created descc"); | |
| 73 | + sieveApplyOrderQuery.setParentId(sieveModel.getParentId()); | |
| 74 | + sieveApplyOrderQuery.setHospitalId(sieveModel.getHospitalId()); | |
| 75 | + sieveApplyOrderQuery.setYn(YnEnums.YES.getId()); | |
| 76 | + sieveApplyOrderQuery.setLymsSieveId(sieveModel.getId()); | |
| 77 | + | |
| 78 | + //产筛结果 | |
| 79 | + SieveResultQuery sieveResultQuery = new SieveResultQuery(); | |
| 80 | + sieveResultQuery.setSort("created descc"); | |
| 81 | + sieveResultQuery.setParentId(sieveModel.getParentId()); | |
| 82 | + sieveResultQuery.setYn(YnEnums.YES.getId()); | |
| 83 | + List<SieveResultModel> resultModels = sieveService.queryListSieveResult(sieveResultQuery); | |
| 84 | + if (CollectionUtils.isNotEmpty(resultModels)) { | |
| 85 | + SieveResultModel resultModel = resultModels.get(0); | |
| 86 | + if(StringUtils.isNotEmpty(resultModel.getTszhz())){ | |
| 87 | + sieveListResult.setTszhz(SieveEnums.getTitle(Integer.parseInt(resultModel.getTszhz())));//21 -三体 | |
| 88 | + } | |
| 89 | + if(StringUtils.isNotEmpty(resultModel.getSbst())){ | |
| 90 | + sieveListResult.setSbst(SieveEnums.getTitle(Integer.parseInt(resultModel.getSbst())));// 18-三体 | |
| 91 | + } | |
| 92 | + if(StringUtils.isNotEmpty(resultModel.getSjgjx())){ | |
| 93 | + sieveListResult.setSjgjx(SieveEnums.getTitle(Integer.parseInt(resultModel.getSjgjx())));// 神经管畸形 | |
| 94 | + } | |
| 95 | + } | |
| 96 | + List<SieveApplyOrderModel> applyOrderModels = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery); | |
| 97 | + if(CollectionUtils.isEmpty(applyOrderModels)){ | |
| 98 | + SieveApplyOrderQuery sieveApplyOrderQuery1 = new SieveApplyOrderQuery(); | |
| 99 | + sieveApplyOrderQuery1.setSort("created descc"); | |
| 100 | + sieveApplyOrderQuery1.setParentId(sieveModel.getParentId()); | |
| 101 | + sieveApplyOrderQuery1.setHospitalId(sieveModel.getHospitalId()); | |
| 102 | + sieveApplyOrderQuery1.setYn(YnEnums.YES.getId()); | |
| 103 | + applyOrderModels = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery1); | |
| 104 | + } | |
| 105 | + sieveListResult.setName(sieveModel.getName()); //姓名 | |
| 106 | + //采血日期 | |
| 107 | + if (CollectionUtils.isNotEmpty(applyOrderModels)) { | |
| 108 | + SieveApplyOrderModel sieveApplyOrderModel = applyOrderModels.get(0); | |
| 109 | + //采血日期 | |
| 110 | + sieveListResult.setCollectionDate(DateUtil.getyyyy_MM_dd(sieveApplyOrderModel.getCollectionDate())); | |
| 111 | + } | |
| 112 | + Patients patients = patientsService.findOnePatientById(sieveModel.getParentId()); | |
| 113 | + if (null != patients) { | |
| 114 | + sieveListResult.setIsGravida((patients.getType() == 3 && patients.getFmDate() != null) ? "0" : "1"); | |
| 115 | + if (null != patients.getDueStatus() && 1 == patients.getDueStatus()) | |
| 116 | + sieveListResult.setcDueWeek("终止妊娠"); | |
| 117 | + else if (patients.getType() == 3) { | |
| 118 | + sieveListResult.setcDueWeek("已分娩"); | |
| 119 | + } | |
| 120 | + //年龄 | |
| 121 | + sieveListResult.setAge(DateUtil.getAge(patients.getBirth()) + "岁"); | |
| 122 | + //户籍地 | |
| 123 | + sieveListResult.setPlaceDomicile(CommonsHelper.getResidence(patients.getProvinceId(), patients.getCityId(), | |
| 124 | + patients.getAreaId(), patients.getStreetId(), patients.getAddress(), basicConfigService)); | |
| 125 | + } | |
| 126 | + sieveListResult.setApplyTime(DateUtil.getyyyy_MM_dd(sieveModel.getApplyDate())); //申请时间 | |
| 127 | + sieveListResult.setDueWeek(com.lyms.platform.common.utils.StringUtils.dueWeek(sieveModel.getDueWeek()));//申请孕周 | |
| 128 | + if (StringUtils.isNotEmpty(sieveModel.getApplyHospitalId())) { | |
| 129 | + Organization organization = organizationService.getOrganization(Integer.parseInt(sieveModel.getApplyHospitalId())); | |
| 130 | + sieveListResult.setApplyHospital(organization.getName()); //申请医院 | |
| 131 | + } | |
| 132 | + sieveListResult.setSieveTypeStr(SieveEnums.SieveTypeEnums.getNameById(sieveModel.getSieveType()));//筛查类型 1 血清学筛查 2/无创基因筛查 3/二者都用 | |
| 133 | + sieveListResult.setStatusText(SieveStatusEnums.getStrById(sieveModel.getStatus()));//产筛状态 | |
| 134 | + sieveListResult.setCostTypeStr(SieveEnums.CostTypeEnums.getNameById(sieveModel.getCostType())); // 费用类型 1/免费 2/自费 | |
| 135 | + sieveListResult.setZtfxText(SieveEnums.getTitle(sieveModel.getZtfx()));//整体风险 | |
| 136 | + results.add(sieveListResult); | |
| 137 | + } | |
| 138 | + return results; | |
| 139 | + } | |
| 140 | +} |