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 | +} |