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