Commit 24b25b1052a13227b74fb20c877055dbfa23c8ae

Authored by litao
1 parent 082f08627d

dao、service添加

Showing 6 changed files with 120 additions and 15 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/dao/IBaseDao.java View file @ 24b25b1
  1 +package com.lyms.platform.operate.web.dao;
  2 +
  3 +import java.util.List;
  4 +import java.util.Map;
  5 +
  6 +/**
  7 + * 公共dao的方法抽取
  8 + * @Author: litao
  9 + * @Date: 2017/4/20 0020 10:03
  10 + * @Version: V1.0
  11 + */
  12 +public interface IBaseDao {
  13 + /**
  14 + * 查询数据 封装到list中 list中的数据为map
  15 + * @param sql
  16 + * @param params
  17 + * @return
  18 + */
  19 + List<Map<String, Object>> findList(String sql, List<Object> params);
  20 +
  21 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/dao/IReportDao.java View file @ 24b25b1
  1 +package com.lyms.platform.operate.web.dao;
  2 +
  3 +/**
  4 + * 报表接口
  5 + * @Author: litao
  6 + * @Date: 2017/4/20 0020 10:04
  7 + * @Version: V1.0
  8 + */
  9 +public interface IReportDao extends IBaseDao {
  10 +
  11 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/dao/impl/BaseDaoImpl.java View file @ 24b25b1
  1 +package com.lyms.platform.operate.web.dao.impl;
  2 +
  3 +import com.lyms.platform.operate.web.dao.IBaseDao;
  4 +import com.lyms.platform.operate.web.utils.SystemDataSource;
  5 +import org.apache.commons.dbutils.QueryRunner;
  6 +import org.apache.commons.dbutils.handlers.MapListHandler;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Repository;
  11 +
  12 +import javax.annotation.PostConstruct;
  13 +import java.sql.SQLException;
  14 +import java.util.List;
  15 +import java.util.Map;
  16 +
  17 +/**
  18 + * @Author: litao
  19 + * @Date: 2017/4/20 0020 10:18
  20 + * @Version: V1.0
  21 + */
  22 +@Repository
  23 +public class BaseDaoImpl implements IBaseDao {
  24 +
  25 + private Logger logger = LoggerFactory.getLogger(BaseDaoImpl.class);
  26 +
  27 + @Autowired
  28 + private SystemDataSource db;
  29 +
  30 + private QueryRunner qr;
  31 +
  32 + @PostConstruct
  33 + public void init() {
  34 + qr = new QueryRunner(db.getDataSource());
  35 + }
  36 + @Override
  37 + public List<Map<String, Object>> findList(String sql, List<Object> params) {
  38 + try {
  39 + return qr.query(sql, new MapListHandler(), params.toArray());
  40 + } catch (SQLException e) {
  41 + logger.error("查询出错: sql: {}, params: {}", sql, params);
  42 + }
  43 + return null;
  44 + }
  45 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/dao/impl/ReportDaoImpl.java View file @ 24b25b1
  1 +package com.lyms.platform.operate.web.dao.impl;
  2 +
  3 +import com.lyms.platform.operate.web.dao.IReportDao;
  4 +import org.springframework.stereotype.Repository;
  5 +
  6 +/**
  7 + * @Author: litao
  8 + * @Date: 2017/4/20 0020 10:18
  9 + * @Version: V1.0
  10 + */
  11 +@Repository
  12 +public class ReportDaoImpl extends BaseDaoImpl implements IReportDao {
  13 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ 24b25b1
1 1 package com.lyms.platform.operate.web.service.impl;
2 2  
3 3 import com.lyms.platform.common.result.BaseObjectResponse;
  4 +import com.lyms.platform.operate.web.dao.IReportDao;
4 5 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 6 import org.springframework.beans.factory.annotation.Autowired;
9 7 import org.springframework.stereotype.Service;
10 8 import scala.collection.mutable.StringBuilder;
11 9  
12   -import java.sql.SQLException;
  10 +import java.util.ArrayList;
13 11 import java.util.Date;
14 12 import java.util.List;
15 13 import java.util.Map;
16 14  
17 15  
... ... @@ -23,22 +21,18 @@
23 21 public class ReportServiceImpl implements IReportService {
24 22  
25 23 @Autowired
26   - private SystemDataSource db;
  24 + private IReportDao reportDao;
27 25  
28 26 @Override
29 27 public BaseObjectResponse areaCountFacade(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth) {
30 28 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   - }
  29 + List<Object> params = new ArrayList<>();
  30 + List<Map<String, Object>> mapList = reportDao.findList(getAreaCountFacadeSql(startDate, endDate, startWeek, endWeek, childBirth, params), params);
  31 + rest.setData(mapList);
38 32 return rest;
39 33 }
40 34  
41   - private String getAreaCountFacadeSql(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth) {
  35 + private String getAreaCountFacadeSql(Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer childBirth, List<Object> params) {
42 36 StringBuilder sql = new StringBuilder();
43 37 sql.append("SELECT B.EXAMINE_HISTORY_NUM, ")
44 38 .append("COUNT(B.EXAMINE_ID) AS EXAMINE_CNT ")
... ... @@ -47,8 +41,27 @@
47 41 .append("ODS_D_HOSPITAL C ")
48 42 .append("WHERE A.RECORD_ID=B.RECORD_ID ")
49 43 .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");
  44 + .append("AND A.HOSPITAL_NO=B.HOSPITAL_NO ");
  45 +
  46 + if(childBirth != null) {
  47 + sql.append("AND A.IS_CHILDBIRTH = ? ");
  48 + params.add(childBirth);
  49 + }
  50 +
  51 + if(startDate != null && endDate != null) {
  52 + sql.append("AND A.CREATE_DATE BETWEEN ? AND ? ");
  53 + params.add(startDate);
  54 + params.add(endDate);
  55 + }
  56 +
  57 + if(startWeek != null && endWeek != null) {
  58 + sql.append("AND A.NOW_WEEKS BETWEEN ? AND ? ");
  59 + params.add(startWeek);
  60 + params.add(endWeek);
  61 + }
  62 +
  63 + sql.append("GROUP BY B.EXAMINE_HISTORY_NUM");
  64 +
52 65 return sql.toString();
53 66 }
54 67 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/SystemDataSource.java View file @ 24b25b1
... ... @@ -60,6 +60,8 @@
60 60 dataSource.setTestOnReturn(false);
61 61 dataSource.setFilters("stat");
62 62  
  63 + dataSource.init();
  64 +
63 65 logger.info("init datasource success");
64 66 }
65 67