Commit e9a4e90289414d59d3b162883a03b6605a9a50b0

Authored by changpengfei
1 parent 585671f6ba

添加儿童统计-打印,数据量大,优化

Showing 1 changed file with 52 additions and 45 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHealthFacade.java View file @ e9a4e90
... ... @@ -999,7 +999,7 @@
999 999 public BaseResponse babystatListPrint(String checkTime, String queryNo, Integer startCheckMonthAge, Integer endCheckMonthAge, String nextDate, Integer highRisk, Integer waskSon, String checkDoctorId, Integer page, Integer limit, Integer userId, String level) {
1000 1000 boolean flag = false;
1001 1001 // List<String> hospital = groupsFacade.findGroupHospital(userId, false);
1002   - int[] monthArr = {0, 3, 4, 8, 12, 18, 24, 30, 36, 48, 60, 72};//月龄
  1002 + final int[] monthArr = {0, 3, 4, 8, 12, 18, 24, 30, 36, 48, 60, 72};//月龄
1003 1003 String hospitalId = autoMatchFacade.getHospitalId(userId);
1004 1004 Criteria criteria = Criteria.where("yn").ne(0).and("hospitalId").is(hospitalId);
1005 1005 Criteria pCriteria = Criteria.where("yn").ne(0).and("hospitalId").is(hospitalId);
... ... @@ -1025,8 +1025,8 @@
1025 1025 List<Future> listFuture = new ArrayList<>();
1026 1026  
1027 1027 if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(babykModelsList)) {
1028   - for (BabyModel babyModel : babykModelsList) {
1029   - Map<String, Object> row = new HashMap<>();
  1028 + for (final BabyModel babyModel : babykModelsList) {
  1029 + final Map<String, Object> row = new HashMap<>();
1030 1030 Map<String, Object> babyMap = new HashMap<>();
1031 1031 babyMap.put("babyName", babyModel.getName());
1032 1032 babyMap.put("sex", SexEnum.getTextById(babyModel.getSex()));
1033 1033  
1034 1034  
1035 1035  
1036 1036  
1037 1037  
... ... @@ -1036,54 +1036,61 @@
1036 1036 babyMap.put("mphone", babyModel.getMphone());
1037 1037 row.put("baby", babyMap);
1038 1038 // ids.add(babyModel.getId());
1039   - Criteria criteriaCheck = Criteria.where("buildId").in(babyModel.getId());
  1039 +
1040 1040 // pageResult = findMongoPage(BabyCheckModel.class, new Query(criteriaCheck).with(new Sort(Sort.Direction.DESC, "created")), page, limit);
1041   - List<BabyCheckModel> babyCheckModelList = mongoTemplate.find(new Query(criteriaCheck).with(new Sort(Sort.Direction.DESC, "created")), BabyCheckModel.class);
1042 1041  
1043   -// List <BabyCheckModel> babyCheckModelList = (List <BabyCheckModel>) pageResult.getGrid();
  1042 + listFuture.add(commonThreadPool.submit(new Callable() {
  1043 + @Override
  1044 + public Object call() throws Exception {
  1045 + Criteria criteriaCheck = Criteria.where("buildId").in(babyModel.getId());
  1046 + List<BabyCheckModel> babyCheckModelList = mongoTemplate.find(new Query(criteriaCheck).with(new Sort(Sort.Direction.DESC, "created")), BabyCheckModel.class);
1044 1047  
1045   - List<Map<String, Object>> listAge = new ArrayList<>();
1046   - for (BabyCheckModel babyCheckModel : babyCheckModelList) {
1047   - long pctime=System.currentTimeMillis();
1048   - Map<String, Object> map = new HashMap<>();
1049   - String feedType = "";
1050   - String feedTypeId = babyCheckModel.getFeedType();
1051   - if (StringUtils.isNotEmpty(feedTypeId)) {
1052   - feedType = WyTypeEnums.getNameById(Integer.parseInt(feedTypeId));
1053   - }
1054   - row.put("feedType", feedType);
1055   - for (int i = 0; i < monthArr.length; i++) {
1056   - Map<String, Object> mapAge = new HashMap<>();
1057   - if (monthArr[i] == babyCheckModel.getCheckMonth().intValue()) {
1058   - mapAge.put("height", babyCheckModel.getHeight());
1059   - mapAge.put("heightEvaluate", babyCheckModel.getHeightEvaluate());
1060   - mapAge.put("weight", babyCheckModel.getWeight());
1061   - mapAge.put("weightEvaluate", babyCheckModel.getWeightEvaluate());
1062   - mapAge.put("hemoglobin", babyCheckModel.getHemoglobin());
1063   - mapAge.put("wh", babyCheckModel.getWeight()+"/"+babyCheckModel.getHeight());
1064   - mapAge.put("whEva", ifnull(babyCheckModel.getWeightEvaluate())+"/"+ifnull(babyCheckModel.getHeightEvaluate()));
1065   - } else {
1066   - mapAge.put("height", "");
1067   - mapAge.put("heightEvaluate", "");
1068   - mapAge.put("weight", "");
1069   - mapAge.put("weightEvaluate", "");
1070   - mapAge.put("hemoglobin", "");
1071   - mapAge.put("wh", "");
1072   - mapAge.put("whEva", "");
1073   - }
1074   - mapAge.put("age", monthArr[i]);
1075   - listAge.add(mapAge);
1076   - }
  1048 + List<Map<String, Object>> listAge = new ArrayList<>();
  1049 + for (BabyCheckModel babyCheckModel : babyCheckModelList) {
  1050 + long pctime=System.currentTimeMillis();
  1051 + Map<String, Object> map = new HashMap<>();
  1052 + String feedType = "";
  1053 + String feedTypeId = babyCheckModel.getFeedType();
  1054 + if (StringUtils.isNotEmpty(feedTypeId)) {
  1055 + feedType = WyTypeEnums.getNameById(Integer.parseInt(feedTypeId));
  1056 + }
  1057 + row.put("feedType", feedType);
  1058 + for (int i = 0; i < monthArr.length; i++) {
  1059 + Map<String, Object> mapAge = new HashMap<>();
  1060 + if (monthArr[i] == babyCheckModel.getCheckMonth().intValue()) {
  1061 + mapAge.put("height", babyCheckModel.getHeight());
  1062 + mapAge.put("heightEvaluate", babyCheckModel.getHeightEvaluate());
  1063 + mapAge.put("weight", babyCheckModel.getWeight());
  1064 + mapAge.put("weightEvaluate", babyCheckModel.getWeightEvaluate());
  1065 + mapAge.put("hemoglobin", babyCheckModel.getHemoglobin());
  1066 + mapAge.put("wh", babyCheckModel.getWeight()+"/"+babyCheckModel.getHeight());
  1067 + mapAge.put("whEva", ifnull(babyCheckModel.getWeightEvaluate())+"/"+ifnull(babyCheckModel.getHeightEvaluate()));
  1068 + } else {
  1069 + mapAge.put("height", "");
  1070 + mapAge.put("heightEvaluate", "");
  1071 + mapAge.put("weight", "");
  1072 + mapAge.put("weightEvaluate", "");
  1073 + mapAge.put("hemoglobin", "");
  1074 + mapAge.put("wh", "");
  1075 + mapAge.put("whEva", "");
  1076 + }
  1077 + mapAge.put("age", monthArr[i]);
  1078 + listAge.add(mapAge);
  1079 + }
1077 1080  
1078 1081  
1079   - row.put("monthChk", listAge);
  1082 + row.put("monthChk", listAge);
1080 1083  
1081   - row.put("height", babyCheckModel.getHeight());
1082   - row.put("weight", babyCheckModel.getWeight());
1083   - //秦皇岛需求,查询最后一次检查的高危详情
1084   - row.put("qhdHighRiskInfo", babyCheckModel.getQhdHighRiskInfo());
1085   - System.out.println("pcTime="+(System.currentTimeMillis()-pctime));
1086   - }
  1084 + row.put("height", babyCheckModel.getHeight());
  1085 + row.put("weight", babyCheckModel.getWeight());
  1086 + //秦皇岛需求,查询最后一次检查的高危详情
  1087 + row.put("qhdHighRiskInfo", babyCheckModel.getQhdHighRiskInfo());
  1088 +// System.out.println("pcTime="+(System.currentTimeMillis()-pctime));
  1089 + }
  1090 + return null;
  1091 + }
  1092 + }));
  1093 +
1087 1094  
1088 1095 // 访视
1089 1096 List<NewbornVisit> newbornVisits = mongoTemplate.find(Query.query(Criteria.where("babyId").is(babyModel.getId()).and("hospitalId").in(hospitalId).and("yn").ne("0"))