Commit 799840fed6f5a185a39ede625fd4c46204356169
1 parent
896edacbdb
Exists in
master
and in
6 other branches
建档来源统计
Showing 4 changed files with 249 additions and 0 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyStatisticsManagerController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyStatisticsManagerFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerBuildSourceListRequest.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/JdbcUtil.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyStatisticsManagerController.java
View file @
799840f
... | ... | @@ -292,5 +292,30 @@ |
292 | 292 | } |
293 | 293 | } |
294 | 294 | |
295 | + /** | |
296 | + * @auther HuJiaqi | |
297 | + * @createTime 2017年01月16日 13时54分 | |
298 | + * @discription 建档来源统计 | |
299 | + */ | |
300 | + @TokenRequired | |
301 | + @ResponseBody | |
302 | + @RequestMapping(value = "BabyStatisticsManagerBuildSourceList", method = RequestMethod.POST, consumes = "application/json") | |
303 | + public BaseListResponse BabyStatisticsManagerBuildSourceList(HttpServletRequest httpServletRequest, @RequestBody BabyStatisticsManagerBuildSourceListRequest babyStatisticsManagerBuildSourceListRequest) { | |
304 | + BaseListResponse baseListResponse; | |
305 | + try { | |
306 | + babyStatisticsManagerBuildSourceListRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId()); | |
307 | + BabyStatisticsManagerBuildSourceListResult babyStatisticsManagerBuildSourceListResult = babyStatisticsManagerFacade.babyStatisticsManagerBuildSourceList(babyStatisticsManagerBuildSourceListRequest); | |
308 | + if (babyStatisticsManagerBuildSourceListResult.getErrorcode() != ErrorCodeConstants.SUCCESS) { | |
309 | + baseListResponse = new BaseListResponse().setErrorcode(babyStatisticsManagerBuildSourceListResult.getErrorcode()).setErrormsg(babyStatisticsManagerBuildSourceListResult.getErrormsg()); | |
310 | + return baseListResponse; | |
311 | + } | |
312 | + baseListResponse = new BaseListResponse().setErrorcode(babyStatisticsManagerBuildSourceListResult.getErrorcode()).setErrormsg(babyStatisticsManagerBuildSourceListResult.getErrormsg()).setData(babyStatisticsManagerBuildSourceListResult.getData()).setPageInfo(babyStatisticsManagerBuildSourceListResult.getPageInfo()); | |
313 | + } catch (Exception e) { | |
314 | + baseListResponse = new BaseListResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); | |
315 | + ExceptionUtils.catchException(e, "BabyStatisticsManagerBuildSourceList异常"); | |
316 | + } | |
317 | + return baseListResponse; | |
318 | + } | |
319 | + | |
295 | 320 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyStatisticsManagerFacade.java
View file @
799840f
... | ... | @@ -10,6 +10,7 @@ |
10 | 10 | import com.lyms.platform.common.utils.JsonUtil; |
11 | 11 | import com.lyms.platform.operate.web.request.*; |
12 | 12 | import com.lyms.platform.operate.web.result.*; |
13 | +import com.lyms.platform.operate.web.utils.JdbcUtil; | |
13 | 14 | import com.lyms.platform.permission.service.UsersService; |
14 | 15 | import com.lyms.platform.pojo.BabyCheckModel; |
15 | 16 | import com.lyms.platform.pojo.BabyModel; |
... | ... | @@ -42,6 +43,9 @@ |
42 | 43 | @Autowired |
43 | 44 | private BabyCheckService babyCheckService; |
44 | 45 | |
46 | + @Autowired | |
47 | + private AutoMatchFacade autoMatchFacade; | |
48 | + | |
45 | 49 | public BabyStatisticsManagerBuildDoctorGroupResult babyStatisticsManagerBuildDoctorGroup(BabyStatisticsManagerBuildDoctorGroupRequest babyStatisticsManagerBuildDoctorGroupRequest) { |
46 | 50 | BabyStatisticsManagerBuildDoctorGroupResult babyStatisticsManagerBuildDoctorGroupResult = new BabyStatisticsManagerBuildDoctorGroupResult(); |
47 | 51 | |
... | ... | @@ -482,6 +486,146 @@ |
482 | 486 | babyStatisticsManagerWeekAgeListResult.setErrorcode(ErrorCodeConstants.SUCCESS); |
483 | 487 | babyStatisticsManagerWeekAgeListResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); |
484 | 488 | return babyStatisticsManagerWeekAgeListResult; |
489 | + } | |
490 | + | |
491 | + public BabyStatisticsManagerBuildSourceListResult babyStatisticsManagerBuildSourceList(BabyStatisticsManagerBuildSourceListRequest babyStatisticsManagerBuildSourceListRequest) { | |
492 | + BabyStatisticsManagerBuildSourceListResult babyStatisticsManagerBuildSourceListResult = new BabyStatisticsManagerBuildSourceListResult(); | |
493 | + | |
494 | + List<BabyStatisticsManagerBuildSourceListQueryModel> babyStatisticsManagerBuildSourceListQueryModelList = new ArrayList<>(); | |
495 | + | |
496 | + String hospitalId; | |
497 | + try { | |
498 | + hospitalId = autoMatchFacade.getHospitalId(babyStatisticsManagerBuildSourceListRequest.getOperatorId()); | |
499 | + } catch (Exception e) { | |
500 | + babyStatisticsManagerBuildSourceListResult.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR); | |
501 | + babyStatisticsManagerBuildSourceListResult.setErrormsg("获取当前医院异常"); | |
502 | + return babyStatisticsManagerBuildSourceListResult; | |
503 | + } | |
504 | + | |
505 | + String buildDateStart = null; | |
506 | + String buildDateEnd = null; | |
507 | + if (StringUtils.isNotEmpty(babyStatisticsManagerBuildSourceListRequest.getBuildDate())) { | |
508 | + buildDateStart = DateUtil.getyyyy_MM_dd(DateUtil.getSNDate(babyStatisticsManagerBuildSourceListRequest.getBuildDate())[0]); | |
509 | + buildDateEnd = DateUtil.getyyyy_MM_dd(DateUtil.getSNDate(babyStatisticsManagerBuildSourceListRequest.getBuildDate())[1]); | |
510 | + } | |
511 | + | |
512 | + String sql = | |
513 | + "SELECT B.PROVINCE_ID," + | |
514 | + "B.PROVINCE," + | |
515 | + "B.CITY_ID," + | |
516 | + "B.CITY," + | |
517 | + "B.AREA_COUNTY_ID," + | |
518 | + "B.AREA_COUNTY," + | |
519 | + "B.HOSPITAL_NO," + | |
520 | + "B.HOSPITAL_NAME," + | |
521 | + "A.CHILD_CATEGORY_ID," + | |
522 | + "A.CHILD_CATEGORY," + | |
523 | + "(CASE WHEN A.BIRTH_HOSPITAL_NO=A.HOSPITAL_NO THEN '本院分娩'" + | |
524 | + "WHEN A.BIRTH_HOSPITAL_NO<>A.HOSPITAL_NO AND A.BIRTH_HOSPITAL_NO IS NOT NULL THEN '外院分娩'" + | |
525 | + "WHEN A.BIRTH_HOSPITAL_NO IS NULL THEN '未知'" + | |
526 | + "END) AS LB_NAME," + | |
527 | + "COUNT(*) AS CNT" + | |
528 | + "FROM ODS_F_INFANT_RECORD A" + | |
529 | + "INNER JOIN ODS_D_HOSPITAL B ON A.HOSPITAL_NO=B.HOSPITAL_NO" + | |
530 | + // 医院,判断本院外院使用 | |
531 | + "WHERE B.HOSPITAL_NO=" + hospitalId; | |
532 | + // 这三个查询条件暂时没用,直接注释掉 | |
533 | + // "AND B.PROVINCE_ID=" + | |
534 | + // "AND B.CITY_ID=" + | |
535 | + // "AND B.AREA_COUNTY_ID=" | |
536 | + if (StringUtils.isNotEmpty(babyStatisticsManagerBuildSourceListRequest.getBuildDate())) { | |
537 | + sql += "AND A.INSERT_DATE BETWEEN" + buildDateStart + " AND" + buildDateEnd; | |
538 | + } | |
539 | + sql += "GROUP BY" + | |
540 | + "B.PROVINCE_ID," + | |
541 | + "B.PROVINCE," + | |
542 | + "B.CITY_ID," + | |
543 | + "B.CITY," + | |
544 | + "B.AREA_COUNTY_ID," + | |
545 | + "B.AREA_COUNTY," + | |
546 | + "B.HOSPITAL_NO," + | |
547 | + "B.HOSPITAL_NAME," + | |
548 | + "A.CHILD_CATEGORY_ID," + | |
549 | + "A.CHILD_CATEGORY," + | |
550 | + "(CASE WHEN A.BIRTH_HOSPITAL_NO=A.HOSPITAL_NO THEN '本院分娩'" + | |
551 | + "WHEN A.BIRTH_HOSPITAL_NO<>A.HOSPITAL_NO AND A.BIRTH_HOSPITAL_NO IS NOT NULL THEN '外院分娩'" + | |
552 | + "WHEN A.BIRTH_HOSPITAL_NO IS NULL THEN '未知'" + | |
553 | + "END)"; | |
554 | + // jdbc查oracle | |
555 | + List<Map<String, Object>> list = JdbcUtil.getOracleListDataBySql("com.mysql.jdbc.Driver", "jdbc:oracle:thin:@127.0.0.1:1521:orcl", "LYMS_ODS", "Welcome1", sql); | |
556 | + | |
557 | + // 构造返回list,这里写死的4条,因为高帆说只有4条 | |
558 | + BabyStatisticsManagerBuildSourceListQueryModel babyStatisticsManagerBuildSourceListQueryModel1 = new BabyStatisticsManagerBuildSourceListQueryModel(); | |
559 | + babyStatisticsManagerBuildSourceListQueryModel1.setLbName("本院分娩"); | |
560 | + Integer buildCnt1 = 0; | |
561 | + Integer highRiskCnt1 = 0; | |
562 | + String highRiskPercent1 = "-"; | |
563 | + BabyStatisticsManagerBuildSourceListQueryModel babyStatisticsManagerBuildSourceListQueryModel2 = new BabyStatisticsManagerBuildSourceListQueryModel(); | |
564 | + babyStatisticsManagerBuildSourceListQueryModel1.setLbName("外院分娩"); | |
565 | + Integer buildCnt2 = 0; | |
566 | + Integer highRiskCnt2 = 0; | |
567 | + String highRiskPercent2 = "-"; | |
568 | + BabyStatisticsManagerBuildSourceListQueryModel babyStatisticsManagerBuildSourceListQueryModel3 = new BabyStatisticsManagerBuildSourceListQueryModel(); | |
569 | + babyStatisticsManagerBuildSourceListQueryModel1.setLbName("未知"); | |
570 | + Integer buildCnt3 = 0; | |
571 | + Integer highRiskCnt3 = 0; | |
572 | + String highRiskPercent3 = "-"; | |
573 | + BabyStatisticsManagerBuildSourceListQueryModel babyStatisticsManagerBuildSourceListQueryModel4 = new BabyStatisticsManagerBuildSourceListQueryModel(); | |
574 | + babyStatisticsManagerBuildSourceListQueryModel1.setLbName("总计"); | |
575 | + Integer buildCnt4 = 0; | |
576 | + Integer highRiskCnt4 = 0; | |
577 | + String highRiskPercent4 = "-"; | |
578 | + if (CollectionUtils.isNotEmpty(list)) { | |
579 | + for (Map<String, Object> map : list) { | |
580 | + if ("本院分娩".equals(map.get("lbName"))) { | |
581 | + buildCnt1 += Integer.valueOf(map.get("cnt").toString()); | |
582 | + if ("2".equals(map.get("childCategoryId"))) { | |
583 | + highRiskCnt1 += Integer.valueOf(map.get("cnt").toString()); | |
584 | + } | |
585 | + } else if ("外院分娩".equals(map.get("lbName"))) { | |
586 | + buildCnt2 += Integer.valueOf(map.get("cnt").toString()); | |
587 | + if ("2".equals(map.get("childCategoryId"))) { | |
588 | + highRiskCnt2 += Integer.valueOf(map.get("cnt").toString()); | |
589 | + } | |
590 | + } else if ("未知".equals(map.get("lbName"))) { | |
591 | + buildCnt3 += Integer.valueOf(map.get("cnt").toString()); | |
592 | + if ("2".equals(map.get("childCategoryId"))) { | |
593 | + highRiskCnt3 += Integer.valueOf(map.get("cnt").toString()); | |
594 | + } | |
595 | + } | |
596 | + // 总计 | |
597 | + buildCnt4 += Integer.valueOf(map.get("cnt").toString()); | |
598 | + if ("2".equals(map.get("childCategoryId"))) { | |
599 | + highRiskCnt4 += Integer.valueOf(map.get("cnt").toString()); | |
600 | + } | |
601 | + } | |
602 | + highRiskPercent1 = Math.round((double) highRiskCnt1 * 1000 / (double) buildCnt1) / 10.0 + "%"; | |
603 | + highRiskPercent2 = Math.round((double) highRiskCnt2 * 1000 / (double) buildCnt2) / 10.0 + "%"; | |
604 | + highRiskPercent3 = Math.round((double) highRiskCnt3 * 1000 / (double) buildCnt3) / 10.0 + "%"; | |
605 | + highRiskPercent4 = Math.round((double) highRiskCnt4 * 1000 / (double) buildCnt4) / 10.0 + "%"; | |
606 | + } | |
607 | + babyStatisticsManagerBuildSourceListQueryModel1.setBuildCnt(buildCnt1.toString()); | |
608 | + babyStatisticsManagerBuildSourceListQueryModel1.setHighRiskCnt(highRiskCnt1.toString()); | |
609 | + babyStatisticsManagerBuildSourceListQueryModel1.setHighRiskPercent(highRiskPercent1); | |
610 | + babyStatisticsManagerBuildSourceListQueryModel2.setBuildCnt(buildCnt2.toString()); | |
611 | + babyStatisticsManagerBuildSourceListQueryModel2.setHighRiskCnt(highRiskCnt2.toString()); | |
612 | + babyStatisticsManagerBuildSourceListQueryModel2.setHighRiskPercent(highRiskPercent2); | |
613 | + babyStatisticsManagerBuildSourceListQueryModel3.setBuildCnt(buildCnt3.toString()); | |
614 | + babyStatisticsManagerBuildSourceListQueryModel3.setHighRiskCnt(highRiskCnt3.toString()); | |
615 | + babyStatisticsManagerBuildSourceListQueryModel3.setHighRiskPercent(highRiskPercent3); | |
616 | + babyStatisticsManagerBuildSourceListQueryModel4.setBuildCnt(buildCnt4.toString()); | |
617 | + babyStatisticsManagerBuildSourceListQueryModel4.setHighRiskCnt(highRiskCnt4.toString()); | |
618 | + babyStatisticsManagerBuildSourceListQueryModel4.setHighRiskPercent(highRiskPercent4); | |
619 | + | |
620 | + babyStatisticsManagerBuildSourceListQueryModelList.add(babyStatisticsManagerBuildSourceListQueryModel1); | |
621 | + babyStatisticsManagerBuildSourceListQueryModelList.add(babyStatisticsManagerBuildSourceListQueryModel2); | |
622 | + babyStatisticsManagerBuildSourceListQueryModelList.add(babyStatisticsManagerBuildSourceListQueryModel3); | |
623 | + babyStatisticsManagerBuildSourceListQueryModelList.add(babyStatisticsManagerBuildSourceListQueryModel4); | |
624 | + | |
625 | + babyStatisticsManagerBuildSourceListResult.setData(babyStatisticsManagerBuildSourceListQueryModelList); | |
626 | + babyStatisticsManagerBuildSourceListResult.setErrorcode(ErrorCodeConstants.SUCCESS); | |
627 | + babyStatisticsManagerBuildSourceListResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); | |
628 | + return babyStatisticsManagerBuildSourceListResult; | |
485 | 629 | } |
486 | 630 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerBuildSourceListRequest.java
View file @
799840f
1 | +package com.lyms.platform.operate.web.request; | |
2 | + | |
3 | +/** | |
4 | + * @auther HuJiaqi | |
5 | + * @createTime 2017年01月16日 11时26分 | |
6 | + * @discription | |
7 | + */ | |
8 | +public class BabyStatisticsManagerBuildSourceListRequest extends BasePageQueryRequest { | |
9 | + | |
10 | + private String buildDate; | |
11 | + | |
12 | + private Integer operatorId; | |
13 | + | |
14 | + private boolean isExcel; | |
15 | + | |
16 | + public boolean isExcel() { | |
17 | + return isExcel; | |
18 | + } | |
19 | + | |
20 | + public void setExcel(boolean excel) { | |
21 | + isExcel = excel; | |
22 | + } | |
23 | + | |
24 | + public Integer getOperatorId() { | |
25 | + return operatorId; | |
26 | + } | |
27 | + | |
28 | + public void setOperatorId(Integer operatorId) { | |
29 | + this.operatorId = operatorId; | |
30 | + } | |
31 | + | |
32 | + public String getBuildDate() { | |
33 | + return buildDate; | |
34 | + } | |
35 | + | |
36 | + public void setBuildDate(String buildDate) { | |
37 | + this.buildDate = buildDate; | |
38 | + } | |
39 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/JdbcUtil.java
View file @
799840f
... | ... | @@ -24,7 +24,18 @@ |
24 | 24 | return con; |
25 | 25 | } |
26 | 26 | |
27 | + public static Connection getOracleConnection(String driver, String url, String username, String password) { | |
28 | + Connection con = null; | |
29 | + try { | |
30 | + Class.forName(driver); | |
31 | + con = DriverManager.getConnection(url, username, password); | |
32 | + } catch (Exception e) { | |
33 | + e.printStackTrace(); | |
34 | + } | |
35 | + return con; | |
36 | + } | |
27 | 37 | |
38 | + | |
28 | 39 | public static Connection getMysqlConnection() { |
29 | 40 | Connection con = null; |
30 | 41 | try { |
... | ... | @@ -90,6 +101,36 @@ |
90 | 101 | e.printStackTrace(); |
91 | 102 | } finally { |
92 | 103 | freeConnection(conn,pst,rs); |
104 | + } | |
105 | + return list; | |
106 | + } | |
107 | + | |
108 | + public static List<Map<String, Object>> getOracleListDataBySql(String driver, String url, String username, String password, String sql) { | |
109 | + Connection conn = getOracleConnection(driver, url, username, password); | |
110 | + PreparedStatement pst = null; | |
111 | + ResultSet rs = null; | |
112 | + List<Map<String, Object>> list = new ArrayList<>(); | |
113 | + try { | |
114 | + pst = conn.prepareStatement(sql); | |
115 | + rs = pst.executeQuery(); | |
116 | + int count = rs.getMetaData().getColumnCount(); | |
117 | + while (rs.next()) { | |
118 | + Map<String, Object> maps = new HashMap<>(); | |
119 | + for (int i = 1; i <= count; i++) { | |
120 | + String columnName = rs.getMetaData().getColumnName(i); | |
121 | + Object obj = rs.getObject(columnName); | |
122 | + if (obj != null) { | |
123 | + maps.put(columnName, obj); | |
124 | + } else { | |
125 | + maps.put(columnName, null); | |
126 | + } | |
127 | + } | |
128 | + list.add(maps); | |
129 | + } | |
130 | + } catch (Exception e) { | |
131 | + e.printStackTrace(); | |
132 | + } finally { | |
133 | + freeConnection(conn, pst, rs); | |
93 | 134 | } |
94 | 135 | return list; |
95 | 136 | } |