Commit 59dd77c3b137680cd9ba15c275b1f9bf28cb9ee3

Authored by litao
1 parent be3e461a21

多数据源配置 基本service封装 报表controller建立

Showing 6 changed files with 223 additions and 0 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java View file @ 59dd77c
  1 +package com.lyms.platform.operate.web.controller;
  2 +
  3 +import com.lyms.platform.common.base.BaseController;
  4 +import com.lyms.platform.common.result.BaseObjectResponse;
  5 +import com.lyms.platform.operate.web.service.IReportService;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Controller;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RequestMethod;
  10 +import org.springframework.web.bind.annotation.ResponseBody;
  11 +
  12 +import java.util.Date;
  13 +
  14 +/**
  15 + * @Author: litao
  16 + * @Date: 2017/4/19 0019 17:57
  17 + * @Version: V1.0
  18 + */
  19 +@Controller
  20 +@RequestMapping("/report")
  21 +public class ReportController extends BaseController {
  22 +
  23 + @Autowired
  24 + private IReportService reportService;
  25 +
  26 + /**
  27 + * 产检次数分布统计
  28 + * @param startDate 建档开始时间
  29 + * @param endDate 建档结束时间
  30 + * @param startWeek 孕周开始时间
  31 + * @param endWeek 孕周结束时间
  32 + * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部
  33 + * @return
  34 + */
  35 + @RequestMapping(method = RequestMethod.GET,value = "/getCheckStatistics")
  36 + @ResponseBody
  37 + public BaseObjectResponse getCheckStatistics(Date startDate, Date endDate,
  38 + Integer startWeek, Integer endWeek, Integer childBirth) {
  39 + return reportService.areaCountFacade(startDate, endDate, startWeek, endWeek, childBirth);
  40 + }
  41 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java View file @ 59dd77c
  1 +package com.lyms.platform.operate.web.service;
  2 +
  3 +import com.lyms.platform.common.result.BaseObjectResponse;
  4 +
  5 +import java.util.Date;
  6 +
  7 +/**
  8 + * 报表service
  9 + * @Author: litao
  10 + * @Date: 2017/4/19 0019 17:53
  11 + * @Version: V1.0
  12 + */
  13 +public interface IReportService {
  14 +
  15 + /**
  16 + * 产检次数分布统计
  17 + * @param startDate
  18 + * @param endDate
  19 + * @param startWeek
  20 + * @param endWeek
  21 + * @param childBirth
  22 + * @return
  23 + */
  24 + BaseObjectResponse areaCountFacade(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth);
  25 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ 59dd77c
  1 +package com.lyms.platform.operate.web.service.impl;
  2 +
  3 +import com.lyms.platform.common.result.BaseObjectResponse;
  4 +import com.lyms.platform.operate.web.service.IReportService;
  5 +import com.lyms.platform.operate.web.utils.SystemDataSource;
  6 +import org.apache.commons.dbutils.QueryRunner;
  7 +import org.apache.commons.dbutils.handlers.MapListHandler;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Service;
  10 +import scala.collection.mutable.StringBuilder;
  11 +
  12 +import java.sql.SQLException;
  13 +import java.util.Date;
  14 +import java.util.List;
  15 +import java.util.Map;
  16 +
  17 +/**
  18 + * @Author: litao
  19 + * @Date: 2017/4/19 0019 17:54
  20 + * @Version: V1.0
  21 + */
  22 +@Service
  23 +public class ReportServiceImpl implements IReportService {
  24 +
  25 + @Autowired
  26 + private SystemDataSource db;
  27 +
  28 + @Override
  29 + public BaseObjectResponse areaCountFacade(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth) {
  30 + BaseObjectResponse rest = new BaseObjectResponse();
  31 + QueryRunner qr = new QueryRunner(db.getDataSource());
  32 + try {
  33 + List<Map<String, Object>> mapList = qr.query(getAreaCountFacadeSql(startDate, endDate, startWeek, endWeek, childBirth), new MapListHandler());
  34 + rest.setData(mapList);
  35 + } catch (SQLException e) {
  36 + e.printStackTrace();
  37 + }
  38 + return rest;
  39 + }
  40 +
  41 + private String getAreaCountFacadeSql(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth) {
  42 + StringBuilder sql = new StringBuilder();
  43 + sql.append("SELECT B.EXAMINE_HISTORY_NUM, ")
  44 + .append("COUNT(B.EXAMINE_ID) AS EXAMINE_CNT ")
  45 + .append("FROM ODS_F_GRAVIDA_RECORD A, ")
  46 + .append("ODS_F_EXAMINE_HISTORY_ASC B, ")
  47 + .append("ODS_D_HOSPITAL C ")
  48 + .append("WHERE A.RECORD_ID=B.RECORD_ID ")
  49 + .append("AND A.HOSPITAL_NO=C.HOSPITAL_NO ")
  50 + .append("AND A.HOSPITAL_NO=B.HOSPITAL_NO ")
  51 + .append("GROUP BY B.EXAMINE_HISTORY_NUM");
  52 + return sql.toString();
  53 + }
  54 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SystemDataSource.java View file @ 59dd77c
  1 +package com.lyms.platform.operate.web.utils;
  2 +
  3 +import com.alibaba.druid.pool.DruidDataSource;
  4 +import org.slf4j.Logger;
  5 +import org.slf4j.LoggerFactory;
  6 +import org.springframework.beans.factory.annotation.Value;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +import javax.annotation.PostConstruct;
  10 +import javax.sql.DataSource;
  11 +
  12 +/**
  13 + * @Author: litao
  14 + * @Date: 2017/4/19 0019 15:23
  15 + * @Version: V1.0
  16 + */
  17 +@Component
  18 +public class SystemDataSource {
  19 +
  20 + private Logger logger = LoggerFactory.getLogger(SystemDataSource.class);
  21 +
  22 + @Value("${his_version}")
  23 + private String version;
  24 +
  25 + @Value("${area_count_url}")
  26 + private String areaCountUrl;
  27 +
  28 + @Value("${jdbc.${his_version}.driver}")
  29 + private String driver;
  30 +
  31 + @Value("${jdbc.${his_version}.url}")
  32 + private String url;
  33 +
  34 + @Value("${jdbc.${his_version}.username}")
  35 + private String username;
  36 +
  37 + @Value("${jdbc.${his_version}.password}")
  38 + private String password;
  39 +
  40 + private DruidDataSource dataSource;
  41 +
  42 + @PostConstruct
  43 + public void init() throws Exception{
  44 + Class.forName(driver);
  45 + dataSource = new DruidDataSource();
  46 + dataSource.setPassword(password);
  47 + dataSource.setUsername(username);
  48 + dataSource.setDriverClassName(driver);
  49 + dataSource.setUrl(url);
  50 +
  51 + dataSource.setMaxActive(30);
  52 + dataSource.setInitialSize(1);
  53 + dataSource.setMaxWait(60000);
  54 + dataSource.setMinIdle(1);
  55 + dataSource.setTimeBetweenEvictionRunsMillis(3000);
  56 + dataSource.setMinEvictableIdleTimeMillis(300000);
  57 + dataSource.setValidationQuery("SELECT 1 FROM DUAL");
  58 + dataSource.setTestWhileIdle(true);
  59 + dataSource.setTestOnBorrow(false);
  60 + dataSource.setTestOnReturn(false);
  61 + dataSource.setFilters("stat");
  62 +
  63 + logger.info("init datasource success");
  64 + }
  65 +
  66 + public DataSource getDataSource() {
  67 + return dataSource;
  68 + }
  69 +}
platform-operate-api/src/main/resources/config.properties View file @ 59dd77c
... ... @@ -26,4 +26,40 @@
26 26  
27 27 #区域统计地址
28 28 area_count_url=119.90.57.26:1522
  29 +
  30 +#数据源相关配置
  31 +jdbc.0.driver=oracle.jdbc.driver.OracleDriver
  32 +jdbc.0.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  33 +jdbc.0.username=LYMS_ODS
  34 +jdbc.0.password=Welcome1
  35 +
  36 +jdbc.1.driver=oracle.jdbc.driver.OracleDriver
  37 +jdbc.1.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  38 +jdbc.1.username=LYMS_ODS
  39 +jdbc.1.password=Welcome1
  40 +
  41 +jdbc.2.driver=oracle.jdbc.driver.OracleDriver
  42 +jdbc.2.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  43 +jdbc.2.username=LYMS_ODS
  44 +jdbc.2.password=Welcome1
  45 +
  46 +jdbc.3.driver=oracle.jdbc.driver.OracleDriver
  47 +jdbc.3.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  48 +jdbc.3.username=LYMS_ODS
  49 +jdbc.3.password=Welcome1
  50 +
  51 +jdbc.4.driver=oracle.jdbc.driver.OracleDriver
  52 +jdbc.4.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  53 +jdbc.4.username=LYMS_ODS
  54 +jdbc.4.password=Welcome1
  55 +
  56 +jdbc.5.driver=oracle.jdbc.driver.OracleDriver
  57 +jdbc.5.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  58 +jdbc.5.username=LYMS_ODS
  59 +jdbc.5.password=Welcome1
  60 +
  61 +jdbc.6.driver=oracle.jdbc.driver.OracleDriver
  62 +jdbc.6.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  63 +jdbc.6.username=LYMS_ODS
  64 +jdbc.6.password=Welcome1
platform-operate-api/src/main/resources/spring/applicationContext_biz_patient.xml View file @ 59dd77c
... ... @@ -16,6 +16,7 @@
16 16 <property name="locations">
17 17 <list>
18 18 <value>classpath:database.properties</value>
  19 + <value>classpath:config.properties</value>
19 20 </list>
20 21 </property>
21 22 </bean>