diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/HsfyFmService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/HsfyFmService.java index 34f5a6b..a5edf4a 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/HsfyFmService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/HsfyFmService.java @@ -120,40 +120,40 @@ public class HsfyFmService { public void queryFmPatient(String start,String end,String phone) { - String cloumns = " ID as ID,\n" + - " BHNUM as BHNUM,\n" + - " VCCARDNO as VCCARDNO,\n" + - " PHONE as PHONE,\n" + - " NAME as NAME,\n" + - " IDCARD as IDCARD,\n" + - " CREATED as CREATED,\t\n" + - " BABY_DELIVERY_TIME as BABY_DELIVERY_TIME,\n" + - " BABY_SEX as BABY_SEX,\n" + - " DUE_WEEK as DUE_WEEK,\n" + - " DUE_DAY as DUE_DAY,\n" + - " FETUS_NUM as FETUS_NUM,\n" + - " BABY_ASPHYXIAM as BABY_ASPHYXIAM,\n" + - " BABY_WEIGHT as BABY_WEIGHT,\n" + - " BABY_HEIGHT as BABY_HEIGHT,\n" + - " BABY_APGAR_SCORE_ONE as BABY_APGAR_SCORE_ONE,\n" + - " BABY_APGAR_SCORE_FIVE as BABY_APGAR_SCORE_FIVE,\n" + - " BABY_APGAR_SCORE_TEN as BABY_APGAR_SCORE_TEN,\n" + - " BABY_PREGNANCY_OUT as BABY_PREGNANCY_OUT,\n" + - " DELIVERY_MODE as DELIVERY_MODE,\n"+ - " TMCSIDE as TMCSIDE,\n" + - " TMCTYPE as TMCTYPE,\n" + - " MATERNAL_INFO as MATERNAL_INFO,\n" + - " PERINEAL_CONDITION as PERINEAL_CONDITION,\n" + - " SH_LOSE_BLOOD as SH_LOSE_BLOOD,\n" + - " TH_LOSE_BLOOD as TH_LOSE_BLOOD,\n" + - " DELIVER_DOCTOR as DELIVER_DOCTOR,\n" + - " PROD_PROCESS_ONE as PROD_PROCESS_ONE,\n" + - " PROD_PROCESS_TWO as PROD_PROCESS_TWO,\n" + - " PROD_PROCESS_THREE as PROD_PROCESS_THREE,\n" + - " TOTAL_PROCESS as TOTAL_PROCESS,\n" + - " PLACENTA_NUM as PLACENTA_NUM,\n" + - " DELIVER_HOSPITAL as DELIVER_HOSPITAL,\n" + - " DELIVER_DOCTOR as DELIVER_DOCTOR"; + String cloumns = " ID as ID, " + + " BHNUM as BHNUM, " + + " VCCARDNO as VCCARDNO, " + + " PHONE as PHONE, " + + " NAME as NAME, " + + " IDCARD as IDCARD, " + + " CREATED as CREATED, " + + " BABY_DELIVERY_TIME as BABY_DELIVERY_TIME, " + + " BABY_SEX as BABY_SEX, " + + " DUE_WEEK as DUE_WEEK, " + + " DUE_DAY as DUE_DAY, " + + " FETUS_NUM as FETUS_NUM, " + + " BABY_ASPHYXIAM as BABY_ASPHYXIAM, " + + " BABY_WEIGHT as BABY_WEIGHT, " + + " BABY_HEIGHT as BABY_HEIGHT, " + + " BABY_APGAR_SCORE_ONE as BABY_APGAR_SCORE_ONE, " + + " BABY_APGAR_SCORE_FIVE as BABY_APGAR_SCORE_FIVE, " + + " BABY_APGAR_SCORE_TEN as BABY_APGAR_SCORE_TEN, " + + " BABY_PREGNANCY_OUT as BABY_PREGNANCY_OUT, " + + " DELIVERY_MODE as DELIVERY_MODE, "+ + " TMCSIDE as TMCSIDE, " + + " TMCTYPE as TMCTYPE, " + + " MATERNAL_INFO as MATERNAL_INFO, " + + " PERINEAL_CONDITION as PERINEAL_CONDITION, " + + " SH_LOSE_BLOOD as SH_LOSE_BLOOD, " + + " TH_LOSE_BLOOD as TH_LOSE_BLOOD, " + + " DELIVER_DOCTOR as DELIVER_DOCTOR, " + + " PROD_PROCESS_ONE as PROD_PROCESS_ONE, " + + " PROD_PROCESS_TWO as PROD_PROCESS_TWO," + + " PROD_PROCESS_THREE as PROD_PROCESS_THREE, " + + " TOTAL_PROCESS as TOTAL_PROCESS, " + + " PLACENTA_NUM as PLACENTA_NUM, " + + " DELIVER_HOSPITAL as DELIVER_HOSPITAL, " + + " DELIVER_DOCTOR as DELIVER_DOCTOR "; Connection conn = com.lyms.hospitalapi.hs.ConnTools.makeFmConnection(); @@ -167,6 +167,7 @@ public class HsfyFmService { { sql+=" and phone = '"+phone+"'"; } + ExceptionUtils.catchException("sql====" +sql); List list = queryRunner.query(conn, sql, new BeanListHandler(Fm.class)); ExceptionUtils.catchException("size====" + list.size()); @@ -196,6 +197,7 @@ public class HsfyFmService { //查询这个孕妇最近日期所有分娩记录的sql String allSql = "select "+cloumns+" from v_deliveryinfo where CREATED > CONVERT(DATETIME,'" + startDate + "', 120) and CREATED <= CONVERT(DATETIME,'" + endDate + "', 120) and ID='"+id+"'" ; + ExceptionUtils.catchException("allSql====" + allSql); //查出这个ID对应孕妇在这个时间段的分娩记录 List allList = queryRunner.query(conn, allSql, new BeanListHandler(Fm.class)); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index 7c3633e..0ee4c8d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -4253,18 +4253,71 @@ public class BabyCheckFacade extends BaseServiceImpl { startDate = DateUtil.getDayFirstSecond(DateUtil.parseYMD(arrs[0])); endDate = DateUtil.getDayLastSecond(DateUtil.parseYMD(arrs[1])); } - - int allBaby = getCheckCount(hospitalId, startDate,endDate,new ArrayList()); + + if (allBaby == 0) + { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas).setErrormsg("成功"); + } + + int baby42 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(0,1)); + datas.add(getMap(baby42, allBaby)); + + int baby3 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(3)); + datas.add(getMap(baby3, allBaby)); + + int baby6 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(6)); + datas.add(getMap(baby6, allBaby)); + + int baby8 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(8)); + datas.add(getMap(baby8,allBaby)); + + int baby12 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(12)); + datas.add(getMap(baby12, allBaby)); + int baby18 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(18)); + datas.add(getMap(baby18, allBaby)); + int baby24 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(24)); + datas.add(getMap(baby24, allBaby)); + int baby30 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(30)); + datas.add(getMap(baby30, allBaby)); + int baby36 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(36,37,38,39,40,41,42,43,44,45,46,47)); + datas.add(getMap(baby36, allBaby)); + int baby40 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(48,49,50,51,52,53,54,55,56,57,58,59)); + datas.add(getMap(baby40, allBaby)); + int baby50 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(60,61,62,63,64,65,66,67,68,69,70,71)); + datas.add(getMap(baby50, allBaby)); + int baby60 = getCheckCount(hospitalId, startDate,endDate,Arrays.asList(72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99)); + datas.add(getMap(baby60, allBaby)); + + datas.add(getMap(baby42+baby3+baby6+baby8+baby12+baby18+baby24+baby30+baby36+baby40+baby50+baby60, allBaby)); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas).setErrormsg("成功"); } + private Map getMap(int num,int total) + { + Map data4 = new LinkedHashMap(); + data4.put("num",num); + data4.put("total",total); + data4.put("percent",getPercent(num,total)); + return data4; + } + + private String getPercent(int num,int total) + { + return String.format("%.2f", ((double)num/total*100))+"%"; + } private int getCheckCount(String hospitalId, Date start, Date end,List checkMonths) { + + Criteria ca = Criteria.where("hospitalId").is(hospitalId).and("checkDate").gte(start).lte(end); + if (CollectionUtils.isNotEmpty(checkMonths)) + { + ca.and("checkMonth").in(checkMonths); + } Aggregation aggregation4 = Aggregation.newAggregation( - Aggregation.match(Criteria.where("hospitalId").is(hospitalId).and("checkDate").gte(start).lte(end).and("checkMonth").in(checkMonths)), + Aggregation.match(ca), Aggregation.group("buildId").count().as("总人数")); AggregationResults outputTypeCount4 = mongoTemplate.aggregate(aggregation4, "lyms_babycheck", BasicDBObject.class);