Commit 53c6cdf7e3f972b3cb2ea2e2f4a73641dfb7aec1
1 parent
2fc6b43ca8
Exists in
master
and in
6 other branches
巨大儿部分
Showing 3 changed files with 179 additions and 12 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java
View file @
53c6cdf
| ... | ... | @@ -172,6 +172,18 @@ |
| 172 | 172 | return patientFacade.queryAbnormalWeight(patientsQueryRequest, loginState.getId()); |
| 173 | 173 | } |
| 174 | 174 | /** |
| 175 | + * 巨大儿管理 | |
| 176 | + * @param patientsQueryRequest 全部孕妇管理查询 (因为请求参数一样同用一个对象) | |
| 177 | + * @return 返回结果 | |
| 178 | + */ | |
| 179 | + @RequestMapping(value = "/queryGiantWeight", method = RequestMethod.GET) | |
| 180 | + @ResponseBody | |
| 181 | + @TokenRequired | |
| 182 | + public BaseResponse queryGiantWeight(@Valid RiskPatientsQueryRequest patientsQueryRequest, HttpServletRequest request) { | |
| 183 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 184 | + return patientFacade.queryGiantWeight(patientsQueryRequest, loginState.getId()); | |
| 185 | + } | |
| 186 | + /** | |
| 175 | 187 | * 孕期体重异常管理 导出 |
| 176 | 188 | * @Author: 武涛涛 |
| 177 | 189 | * @Date: 2021/1/4 14:27 |
| ... | ... | @@ -181,6 +193,16 @@ |
| 181 | 193 | public void exportQueryAbnormalWeight(@Valid RiskPatientsQueryRequest riskPatientsQueryRequest, HttpServletRequest request, HttpServletResponse response) { |
| 182 | 194 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
| 183 | 195 | patientFacade.exportQueryAbnormalWeight(riskPatientsQueryRequest, loginState.getId(), response); |
| 196 | + } | |
| 197 | + /** | |
| 198 | + * 巨大儿管理 导出 | |
| 199 | + * @Author: 武涛涛 | |
| 200 | + */ | |
| 201 | + @RequestMapping(value = "/exportQueryGiantWeight", method = RequestMethod.GET) | |
| 202 | + @TokenRequired | |
| 203 | + public void exportQueryGiantWeight(@Valid RiskPatientsQueryRequest riskPatientsQueryRequest, HttpServletRequest request, HttpServletResponse response) { | |
| 204 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 205 | + patientFacade.exportQueryGiantWeight(riskPatientsQueryRequest, loginState.getId(), response); | |
| 184 | 206 | } |
| 185 | 207 | /** |
| 186 | 208 | * 双胎全部孕妇管理 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java
View file @
53c6cdf
| ... | ... | @@ -25,10 +25,7 @@ |
| 25 | 25 | import com.lyms.platform.permission.service.OrganizationService; |
| 26 | 26 | import com.lyms.platform.permission.service.UsersService; |
| 27 | 27 | import com.lyms.platform.pojo.*; |
| 28 | -import com.lyms.platform.query.AntExChuQuery; | |
| 29 | -import com.lyms.platform.query.BabyModelQuery; | |
| 30 | -import com.lyms.platform.query.DataPermissionsModelQuery; | |
| 31 | -import com.lyms.platform.query.PatientsQuery; | |
| 28 | +import com.lyms.platform.query.*; | |
| 32 | 29 | import org.apache.commons.collections.CollectionUtils; |
| 33 | 30 | import org.slf4j.Logger; |
| 34 | 31 | import org.slf4j.LoggerFactory; |
| 35 | 32 | |
| 36 | 33 | |
| ... | ... | @@ -784,19 +781,98 @@ |
| 784 | 781 | |
| 785 | 782 | } |
| 786 | 783 | } |
| 787 | - //获取bmi大于 25 &筛选bmi条件 | |
| 788 | - PatientsQuery pq = new PatientsQuery(); | |
| 789 | - pq.setIds(ids); | |
| 790 | - pq.setPage(riskPatientsQueryRequest.getPage()); | |
| 791 | - pq.setLimit(riskPatientsQueryRequest.getLimit()); | |
| 792 | - List <Patients> ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); | |
| 793 | - if(CollectionUtils.isNotEmpty(ps)){ | |
| 794 | - data = convertToQuanWeight(ps); | |
| 784 | + if(CollectionUtils.isNotEmpty(ids)) { | |
| 785 | + //获取bmi大于 25 &筛选bmi条件 | |
| 786 | + PatientsQuery pq = new PatientsQuery(); | |
| 787 | + pq.setIds(ids); | |
| 788 | + pq.setPage(riskPatientsQueryRequest.getPage()); | |
| 789 | + pq.setLimit(riskPatientsQueryRequest.getLimit()); | |
| 790 | + List <Patients> ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); | |
| 791 | + if (CollectionUtils.isNotEmpty(ps)) { | |
| 792 | + data = convertToQuanWeight(ps); | |
| 793 | + } | |
| 795 | 794 | } |
| 796 | 795 | } |
| 797 | 796 | return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); |
| 798 | 797 | } |
| 798 | + /** | |
| 799 | + * 巨大儿管理 | |
| 800 | + * @param riskPatientsQueryRequest | |
| 801 | + * @return | |
| 802 | + */ | |
| 803 | + public BaseResponse queryGiantWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer userId) { | |
| 799 | 804 | |
| 805 | + //分娩档案 | |
| 806 | + String hospital = autoMatchFacade.getHospitalId(userId); | |
| 807 | + PatientsQuery patientsQuery = new PatientsQuery(); | |
| 808 | + patientsQuery.setYn(YnEnums.YES.getId()); | |
| 809 | + patientsQuery.setType(3); | |
| 810 | + patientsQuery.setSort(" created "); | |
| 811 | + patientsQuery.setDueStatus(0); | |
| 812 | + List buildType = new ArrayList(); | |
| 813 | + buildType.add(0); | |
| 814 | + buildType.add(3); | |
| 815 | + patientsQuery.setSmsBuildTypeList(buildType); | |
| 816 | + patientsQuery.setIsAutoFm(YnEnums.NO.getId()); | |
| 817 | + patientsQuery.setFmHospital(hospital); | |
| 818 | + patientsQuery.setCardNo(riskPatientsQueryRequest.getCardNo()); | |
| 819 | + patientsQuery.setLastMensesStart(riskPatientsQueryRequest.capEnd()); | |
| 820 | + patientsQuery.setLastMensesEnd(riskPatientsQueryRequest.capStart()); | |
| 821 | + patientsQuery.setrLevel(riskPatientsQueryRequest.getrLevel()); | |
| 822 | + patientsQuery.setrFactorList(com.lyms.platform.common.utils.StringUtils.covertToList(riskPatientsQueryRequest.getrFacotr(), String.class)); | |
| 823 | + List <Patients> patientses = patientsService.queryPatientBySort(patientsQuery, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); | |
| 824 | + List<Map> data = new ArrayList<>(); | |
| 825 | + List<String> idsMd = new ArrayList<>(); | |
| 826 | + List<String> idsPW = new ArrayList<>(); | |
| 827 | + if (CollectionUtils.isNotEmpty(patientses)) { | |
| 828 | + for (Patients patients : patientses) { | |
| 829 | + //儿童体重大于等于4000克 | |
| 830 | + if(com.lyms.platform.common.utils.StringUtils.isNotEmpty(patients.getId())){ | |
| 831 | + Query querymd = Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").ne("0") | |
| 832 | + .and("baby").elemMatch(Criteria.where("babyWeight").gte("4000"))); | |
| 833 | + List<MaternalDeliverModel> deliverModels = mongoTemplate.find(querymd, MaternalDeliverModel.class); | |
| 834 | + if(CollectionUtils.isNotEmpty(deliverModels)){ | |
| 835 | + MaternalDeliverModel maternalDeliverModel = deliverModels.get(0); | |
| 836 | + idsMd.add(patients.getId()); | |
| 837 | + } | |
| 838 | + } | |
| 839 | + } | |
| 840 | + | |
| 841 | + //孕妇体重 | |
| 842 | + if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiEnd()) && CollectionUtils.isNotEmpty(idsMd)){ | |
| 843 | + for (String id : idsMd) { | |
| 844 | + Query query = new Query(); | |
| 845 | + if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiEnd())){ | |
| 846 | + query = Query.query(Criteria.where("patientId").is(id) | |
| 847 | + .and("yn").ne("0").and("bmi").gte(riskPatientsQueryRequest.getBmiStart()).lte(riskPatientsQueryRequest.getBmiEnd())); | |
| 848 | + }else if(StringUtils.isEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isEmpty(riskPatientsQueryRequest.getBmiEnd())){ | |
| 849 | + query = Query.query(Criteria.where("patientId").is(id) .and("yn").ne("0")); | |
| 850 | + } | |
| 851 | + List<PatientWeight> patientWeightList = mongoTemplate.find(query, PatientWeight.class); | |
| 852 | + if(CollectionUtils.isNotEmpty(patientWeightList)){ | |
| 853 | + PatientWeight patientWeight = patientWeightList.get(0); | |
| 854 | + if(patientWeight!=null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(patientWeight.getBmi())){ | |
| 855 | + idsPW.add(id); | |
| 856 | + } | |
| 857 | + } | |
| 858 | + | |
| 859 | + } | |
| 860 | + } | |
| 861 | + if(CollectionUtils.isNotEmpty(idsMd) || CollectionUtils.isNotEmpty(idsPW)){ | |
| 862 | + //获取bmi大于 25 &筛选bmi条件 | |
| 863 | + PatientsQuery pq = new PatientsQuery(); | |
| 864 | + pq.setIds(CollectionUtils.isEmpty(idsPW)? idsMd : idsPW); | |
| 865 | + pq.setPage(riskPatientsQueryRequest.getPage()); | |
| 866 | + pq.setLimit(riskPatientsQueryRequest.getLimit()); | |
| 867 | + List <Patients> ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); | |
| 868 | + if(CollectionUtils.isNotEmpty(ps)){ | |
| 869 | + data = convertToQuanWeight(ps); | |
| 870 | + } | |
| 871 | + } | |
| 872 | + } | |
| 873 | + return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); | |
| 874 | + } | |
| 875 | + | |
| 800 | 876 | public void exportQueryAbnormalWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer id, HttpServletResponse response) { |
| 801 | 877 | |
| 802 | 878 | try { |
| ... | ... | @@ -849,6 +925,57 @@ |
| 849 | 925 | |
| 850 | 926 | } |
| 851 | 927 | |
| 928 | + public void exportQueryGiantWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer id, HttpServletResponse response) { | |
| 929 | + | |
| 930 | + try { | |
| 931 | + BaseListResponse listResponse = (BaseListResponse) queryGiantWeight(riskPatientsQueryRequest, id); | |
| 932 | + | |
| 933 | + List<Map> list = listResponse.getData(); | |
| 934 | + List<Map<String, Object>> datas = new ArrayList<>(); | |
| 935 | + | |
| 936 | + if (CollectionUtils.isNotEmpty(list)) { | |
| 937 | + for (Map map : list) { | |
| 938 | + Map m = new HashMap <>(); | |
| 939 | + m.put("username", map.get("username")); | |
| 940 | + m.put("age", map.get("age")); | |
| 941 | + m.put("phone", map.get("phone")); | |
| 942 | + m.put("currentWeek", map.get("currentWeek")); | |
| 943 | + m.put("riskFactor", map.get("riskFactor")); | |
| 944 | + m.put("bmi", map.get("bmi")); | |
| 945 | + m.put("beforeHeight", map.get("beforeHeight")); | |
| 946 | + m.put("beforeWeight", map.get("beforeWeight")); | |
| 947 | + Map<String, String> dayWeights = (Map<String, String>)map.get("dayWeights"); | |
| 948 | + List <String> stringList = new ArrayList <>(); | |
| 949 | + for(Map.Entry<String, String> entry : dayWeights.entrySet()){ | |
| 950 | + if(StringUtils.isNotEmpty(entry.getKey()) && StringUtils.isNotEmpty(entry.getValue())){ | |
| 951 | + String mapKey = entry.getKey(); | |
| 952 | + String mapValue = entry.getValue(); | |
| 953 | + stringList.add(mapKey + " / " + mapValue); | |
| 954 | + } | |
| 955 | + } | |
| 956 | + for (int i = 0; i <= 20 ; i++) { | |
| 957 | + if(i >= stringList.size()){ | |
| 958 | + m.put("dayWeight"+i,""); | |
| 959 | + }else { | |
| 960 | + m.put("dayWeight"+i, stringList.get(i)); | |
| 961 | + } | |
| 962 | + } | |
| 963 | + datas.add(m); | |
| 964 | + } | |
| 965 | + } | |
| 966 | + OutputStream out = response.getOutputStream(); | |
| 967 | + Map<String, String> cnames = new LinkedHashMap<>(); | |
| 968 | + cnamesMap(cnames); | |
| 969 | + response.setContentType("application/octet-stream"); | |
| 970 | + response.setCharacterEncoding("UTF-8"); | |
| 971 | + response.setHeader("Content-Disposition", "attachment;fileName=" + "巨大儿管理.xls"); | |
| 972 | + ExcelUtil.toExcel(out, datas, cnames); | |
| 973 | + } catch (Exception e) { | |
| 974 | + e.printStackTrace(); | |
| 975 | + ExceptionUtils.catchException(e, "巨大儿管理导出异常"); | |
| 976 | + } | |
| 977 | + | |
| 978 | + } | |
| 852 | 979 | |
| 853 | 980 | private void cnamesMap(Map<String, String> cnames) { |
| 854 | 981 | cnames.put("username", "姓名"); |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java
View file @
53c6cdf
| ... | ... | @@ -17,6 +17,8 @@ |
| 17 | 17 | public class RiskPatientsQueryRequest extends BasePageQueryRequest { |
| 18 | 18 | //巨大儿使用 BMI:⭕ 1 〇25≤BMI<28 、 2 〇BMI≥28 |
| 19 | 19 | private String bmi; |
| 20 | + private String bmiStart; | |
| 21 | + private String bmiEnd; | |
| 20 | 22 | |
| 21 | 23 | //判断定制机构 lp滦平 |
| 22 | 24 | private String hstart; |
| ... | ... | @@ -861,6 +863,22 @@ |
| 861 | 863 | |
| 862 | 864 | public void setTwinsType(String twinsType) { |
| 863 | 865 | this.twinsType = twinsType; |
| 866 | + } | |
| 867 | + | |
| 868 | + public String getBmiStart() { | |
| 869 | + return bmiStart; | |
| 870 | + } | |
| 871 | + | |
| 872 | + public void setBmiStart(String bmiStart) { | |
| 873 | + this.bmiStart = bmiStart; | |
| 874 | + } | |
| 875 | + | |
| 876 | + public String getBmiEnd() { | |
| 877 | + return bmiEnd; | |
| 878 | + } | |
| 879 | + | |
| 880 | + public void setBmiEnd(String bmiEnd) { | |
| 881 | + this.bmiEnd = bmiEnd; | |
| 864 | 882 | } |
| 865 | 883 | } |