Commit 59dd77c3b137680cd9ba15c275b1f9bf28cb9ee3
1 parent
be3e461a21
Exists in
master
and in
6 other branches
多数据源配置 基本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
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SystemDataSource.java
- platform-operate-api/src/main/resources/config.properties
- platform-operate-api/src/main/resources/spring/applicationContext_biz_patient.xml
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