Commit d0614416052b904c84d98a06d302adf4c508df9e

Authored by litao
1 parent 76950d319d

etl项目多环境配置增加

Showing 9 changed files with 210 additions and 145 deletions

regional-etl/src/main/java/com/lyms/etl/ApplicationRunner.java View file @ d061441
1 1 package com.lyms.etl;
2 2  
3   -import com.lyms.etl.service.ICouponInfoService;
  3 +import com.lyms.etl.service.IInvokeHandler;
4 4 import org.mybatis.spring.annotation.MapperScan;
5 5 import org.slf4j.Logger;
6 6 import org.slf4j.LoggerFactory;
... ... @@ -11,6 +11,7 @@
11 11 import org.springframework.transaction.annotation.EnableTransactionManagement;
12 12  
13 13 import java.util.Date;
  14 +import java.util.Set;
14 15  
15 16 /**
16 17 * @Author: litao
... ... @@ -25,7 +26,7 @@
25 26 private static final Logger log = LoggerFactory.getLogger(ApplicationRunner.class);
26 27  
27 28 @Autowired
28   - private ICouponInfoService couponInfoService;
  29 + Set<IInvokeHandler> invokeHandlers;
29 30  
30 31 public static void main(String[] args) {
31 32 SpringApplication.run(ApplicationRunner.class, args);
... ... @@ -34,10 +35,12 @@
34 35  
35 36 @Override
36 37 public void run(String... strings) throws Exception {
37   - log.info("start import coupon");
38   - Date start = new Date();
39   - couponInfoService.transferCoupon();
40   - log.info("end import coupon, used: {} ms", System.currentTimeMillis() - start.getTime());
  38 + for (IInvokeHandler handler : invokeHandlers) {
  39 + Date start = new Date();
  40 + log.info("start ................ {}", handler.getClass().getName());
  41 + handler.invoke();
  42 + log.info("end ................ used: {} ms", System.currentTimeMillis() - start.getTime());
  43 + }
41 44 }
42 45 }
regional-etl/src/main/java/com/lyms/etl/service/ICouponInfoService.java View file @ d061441
1 1 package com.lyms.etl.service;
2 2  
3   -import com.lyms.etl.model.CouponInfo;
4   -
5 3 /**
6 4 * @Author: litao
7 5 * @Date: 2017/5/3 0003 11:43
8 6 * @Version: V1.0
9 7 */
10   -public interface ICouponInfoService {
11   - CouponInfo find(String id);
12   -
  8 +public interface ICouponInfoService extends IInvokeHandler {
13 9 void transferCoupon();
14 10 }
regional-etl/src/main/java/com/lyms/etl/service/IEtlService.java View file @ d061441
... ... @@ -5,6 +5,6 @@
5 5 * @Date: 2017/5/3 0003 12:00
6 6 * @Version: V1.0
7 7 */
8   -public interface IEtlService {
  8 +public interface IEtlService extends IInvokeHandler {
9 9 }
regional-etl/src/main/java/com/lyms/etl/service/IInvokeHandler.java View file @ d061441
  1 +package com.lyms.etl.service;
  2 +
  3 +/**
  4 + * @Author: litao
  5 + * @Date: 2017/5/5 0005 20:21
  6 + * @Version: V1.0
  7 + */
  8 +public interface IInvokeHandler {
  9 + void invoke();
  10 +}
regional-etl/src/main/java/com/lyms/etl/service/impl/CouponInfoServiceImpl.java View file @ d061441
1   -package com.lyms.etl.service.impl;
2   -
3   -import com.lyms.etl.dao.ICouponInfoDao;
4   -import com.lyms.etl.model.AntExChu;
5   -import com.lyms.etl.model.CouponInfo;
6   -import com.lyms.etl.model.HospitalCouponTemplateGroup;
7   -import com.lyms.etl.model.PatientCheckTicket;
8   -import com.lyms.etl.repository.AntExChuRepository;
9   -import com.lyms.etl.repository.PatientCheckTicketRepository;
10   -import com.lyms.etl.service.ICouponInfoService;
11   -import com.lyms.etl.util.UUIDUtil;
12   -import org.apache.commons.collections4.CollectionUtils;
13   -import org.springframework.beans.factory.annotation.Autowired;
14   -import org.springframework.stereotype.Service;
15   -import org.springframework.transaction.annotation.Transactional;
16   -
17   -import java.util.ArrayList;
18   -import java.util.HashSet;
19   -import java.util.Set;
20   -import java.util.List;
21   -
22   -/**
23   - * @Author: litao
24   - * @Date: 2017/5/3 0003 11:45
25   - * @Version: V1.0
26   - */
27   -@Service
28   -public class CouponInfoServiceImpl implements ICouponInfoService {
29   - @Autowired
30   - private ICouponInfoDao couponInfoDao;
31   -
32   - @Autowired
33   - private PatientCheckTicketRepository patientCheckTicketRepository;
34   - @Autowired
35   - private AntExChuRepository antExChuRepository;
36   -
37   - @Override
38   - public CouponInfo find(String id) {
39   - return couponInfoDao.find(id);
40   - }
41   -
42   - @Override
43   - @Transactional
44   - public void transferCoupon() {
45   - List<CouponInfo> couponInfos = new ArrayList<>();
46   - Set<String> hospitalIds = new HashSet<>();
47   - List<PatientCheckTicket> patientCheckTickets = patientCheckTicketRepository.findAll();
48   - for (PatientCheckTicket checkTicket : patientCheckTickets) {
49   - couponInfos.add(createCouponInfo(checkTicket, hospitalIds));
50   - }
51   - batchInsert(couponInfos, 100);
52   -
53   - setnx(hospitalIds);
54   - }
55   -
56   - /**
57   - * 创建产检券model 并且得到hospitalId
58   - * @param checkTicket
59   - * @param hospitalIds
60   - * @return
61   - */
62   - private CouponInfo createCouponInfo(PatientCheckTicket checkTicket, Set<String> hospitalIds) {
63   - CouponInfo couponInfo = new CouponInfo();
64   - couponInfo.setId(UUIDUtil.createId());
65   - couponInfo.setSequenceId(checkTicket.getId());
66   - couponInfo.setCreateDate(checkTicket.getCreated());
67   - couponInfo.setUseDate(checkTicket.getConsumeDate());
68   - couponInfo.setUserId(checkTicket.getPid());
69   - couponInfo.setCouponTemplateId(parseSuffix(checkTicket.getId()));
70   - couponInfo.setCreateHospitalId(checkTicket.getHospitalId());
71   - couponInfo.setUsedHospitalId(checkTicket.getConsumeHospitalId());
72   - couponInfo.setStatus(checkTicket.getStatus());
73   - couponInfo.setCreateUserId(null);
74   - AntExChu antExChu = antExChuRepository.findByBarCode(checkTicket.getId());
75   - if(antExChu != null) {
76   - couponInfo.setOperatorUseId(antExChu.getProdDoctor());
77   - }
78   - hospitalIds.add(checkTicket.getHospitalId());
79   -
80   - return couponInfo;
81   - }
82   -
83   - /**
84   - * 批量插入
85   - * @param couponInfos
86   - * @param size
87   - */
88   - private void batchInsert(List<CouponInfo> couponInfos, Integer size) {
89   - List<CouponInfo> commitList = new ArrayList<>();
90   - for (int i = 0; i < couponInfos.size(); i++) {
91   - commitList.add(couponInfos.get(i));
92   -
93   - if(i != 0 && commitList.size() % size == 0) {
94   - couponInfoDao.batchSave(commitList);
95   - commitList.clear();
96   - }
97   - }
98   - if(CollectionUtils.isNotEmpty(commitList)) {
99   - couponInfoDao.batchSave(commitList);
100   - }
101   - }
102   -
103   - /**
104   - * 验证医院是否存在
105   - * @param hospitalId
106   - * @return
107   - */
108   - private boolean validateHospital(String hospitalId) {
109   - HospitalCouponTemplateGroup hospital = couponInfoDao.findHospital(hospitalId);
110   - return hospital == null ? false : true;
111   - }
112   -
113   - private String parseSuffix(String id) {
114   - Integer number = Integer.parseInt(id.substring(id.length() - 1, id.length()));
115   - return couponInfoDao.findTempId(number);
116   - }
117   -
118   - /**
119   - * 医院 不存在就创建
120   - * @param hospitalIds
121   - */
122   - public void setnx(Set<String> hospitalIds) {
123   - for (String hospitalId : hospitalIds) {
124   - if(!validateHospital(hospitalId)) {
125   - HospitalCouponTemplateGroup hospitalCouponTemplateGroup = new HospitalCouponTemplateGroup();
126   - hospitalCouponTemplateGroup.setId(UUIDUtil.createId());
127   - hospitalCouponTemplateGroup.setHospitalId(hospitalId);
128   - hospitalCouponTemplateGroup.setCouponTemplateGroupId("5150e962-2af9-11e7-9daf-8dc94911792e");
129   - couponInfoDao.saveHospitalGroup(hospitalCouponTemplateGroup);
130   - }
131   - }
132   - }
133   -}
regional-etl/src/main/java/com/lyms/etl/service/impl/CouponServiceImpl.java View file @ d061441
  1 +package com.lyms.etl.service.impl;
  2 +
  3 +import com.lyms.etl.dao.ICouponInfoDao;
  4 +import com.lyms.etl.model.AntExChu;
  5 +import com.lyms.etl.model.CouponInfo;
  6 +import com.lyms.etl.model.HospitalCouponTemplateGroup;
  7 +import com.lyms.etl.model.PatientCheckTicket;
  8 +import com.lyms.etl.repository.AntExChuRepository;
  9 +import com.lyms.etl.repository.PatientCheckTicketRepository;
  10 +import com.lyms.etl.service.ICouponInfoService;
  11 +import com.lyms.etl.util.UUIDUtil;
  12 +import org.apache.commons.collections4.CollectionUtils;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.context.annotation.Profile;
  15 +import org.springframework.stereotype.Service;
  16 +import org.springframework.transaction.annotation.Transactional;
  17 +
  18 +import java.util.ArrayList;
  19 +import java.util.HashSet;
  20 +import java.util.Set;
  21 +import java.util.List;
  22 +
  23 +/**
  24 + * @Author: litao
  25 + * @Date: 2017/5/3 0003 11:45
  26 + * @Version: V1.0
  27 + */
  28 +@Profile("coupon")
  29 +@Service
  30 +public class CouponServiceImpl implements ICouponInfoService {
  31 + @Autowired
  32 + private ICouponInfoDao couponInfoDao;
  33 +
  34 + @Autowired
  35 + private PatientCheckTicketRepository patientCheckTicketRepository;
  36 + @Autowired
  37 + private AntExChuRepository antExChuRepository;
  38 +
  39 + @Override
  40 + @Transactional
  41 + public void transferCoupon() {
  42 + List<CouponInfo> couponInfos = new ArrayList<>();
  43 + Set<String> hospitalIds = new HashSet<>();
  44 + List<PatientCheckTicket> patientCheckTickets = patientCheckTicketRepository.findAll();
  45 + for (PatientCheckTicket checkTicket : patientCheckTickets) {
  46 + couponInfos.add(createCouponInfo(checkTicket, hospitalIds));
  47 + }
  48 + batchInsert(couponInfos, 100);
  49 +
  50 + setnx(hospitalIds);
  51 + }
  52 +
  53 + /**
  54 + * 创建产检券model 并且得到hospitalId
  55 + * @param checkTicket
  56 + * @param hospitalIds
  57 + * @return
  58 + */
  59 + private CouponInfo createCouponInfo(PatientCheckTicket checkTicket, Set<String> hospitalIds) {
  60 + CouponInfo couponInfo = new CouponInfo();
  61 + couponInfo.setId(UUIDUtil.createId());
  62 + couponInfo.setSequenceId(checkTicket.getId());
  63 + couponInfo.setCreateDate(checkTicket.getCreated());
  64 + couponInfo.setUseDate(checkTicket.getConsumeDate());
  65 + couponInfo.setUserId(checkTicket.getPid());
  66 + couponInfo.setCouponTemplateId(parseSuffix(checkTicket.getId()));
  67 + couponInfo.setCreateHospitalId(checkTicket.getHospitalId());
  68 + couponInfo.setUsedHospitalId(checkTicket.getConsumeHospitalId());
  69 + couponInfo.setStatus(checkTicket.getStatus());
  70 + couponInfo.setCreateUserId(null);
  71 + AntExChu antExChu = antExChuRepository.findByBarCode(checkTicket.getId());
  72 + if(antExChu != null) {
  73 + couponInfo.setOperatorUseId(antExChu.getProdDoctor());
  74 + }
  75 + hospitalIds.add(checkTicket.getHospitalId());
  76 +
  77 + return couponInfo;
  78 + }
  79 +
  80 + /**
  81 + * 批量插入
  82 + * @param couponInfos
  83 + * @param size
  84 + */
  85 + private void batchInsert(List<CouponInfo> couponInfos, Integer size) {
  86 + List<CouponInfo> commitList = new ArrayList<>();
  87 + for (int i = 0; i < couponInfos.size(); i++) {
  88 + commitList.add(couponInfos.get(i));
  89 +
  90 + if(i != 0 && commitList.size() % size == 0) {
  91 + couponInfoDao.batchSave(commitList);
  92 + commitList.clear();
  93 + }
  94 + }
  95 + if(CollectionUtils.isNotEmpty(commitList)) {
  96 + couponInfoDao.batchSave(commitList);
  97 + }
  98 + }
  99 +
  100 + /**
  101 + * 验证医院是否存在
  102 + * @param hospitalId
  103 + * @return
  104 + */
  105 + private boolean validateHospital(String hospitalId) {
  106 + HospitalCouponTemplateGroup hospital = couponInfoDao.findHospital(hospitalId);
  107 + return hospital == null ? false : true;
  108 + }
  109 +
  110 + private String parseSuffix(String id) {
  111 + Integer number = Integer.parseInt(id.substring(id.length() - 1, id.length()));
  112 + return couponInfoDao.findTempId(number);
  113 + }
  114 +
  115 + /**
  116 + * 医院 不存在就创建
  117 + * @param hospitalIds
  118 + */
  119 + public void setnx(Set<String> hospitalIds) {
  120 + for (String hospitalId : hospitalIds) {
  121 + if(!validateHospital(hospitalId)) {
  122 + HospitalCouponTemplateGroup hospitalCouponTemplateGroup = new HospitalCouponTemplateGroup();
  123 + hospitalCouponTemplateGroup.setId(UUIDUtil.createId());
  124 + hospitalCouponTemplateGroup.setHospitalId(hospitalId);
  125 + hospitalCouponTemplateGroup.setCouponTemplateGroupId("5150e962-2af9-11e7-9daf-8dc94911792e");
  126 + couponInfoDao.saveHospitalGroup(hospitalCouponTemplateGroup);
  127 + }
  128 + }
  129 + }
  130 +
  131 + @Override
  132 + public void invoke() {
  133 + transferCoupon();
  134 + }
  135 +}
regional-etl/src/main/java/com/lyms/etl/service/impl/EtlServiceImpl.java View file @ d061441
1 1 package com.lyms.etl.service.impl;
2 2  
3 3 import com.lyms.etl.service.IEtlService;
  4 +import org.springframework.context.annotation.Profile;
  5 +import org.springframework.stereotype.Service;
4 6  
5 7 /**
6 8 * @Author: litao
7 9 * @Date: 2017/5/3 0003 12:00
8 10 * @Version: V1.0
9 11 */
  12 +@Profile("etl")
  13 +@Service
10 14 public class EtlServiceImpl implements IEtlService {
  15 + @Override
  16 + public void invoke() {
  17 + System.out.println("etl >> ");
  18 + }
  19 +
11 20 }
regional-etl/src/main/resources/application-prod.yml View file @ d061441
  1 +server:
  2 + port: 8081
  3 +spring:
  4 + datasource:
  5 + url: jdbc:mysql://119.90.43.68:3307/platform?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
  6 + username: platform
  7 + password: platform123
  8 + driver-class-name: com.mysql.jdbc.Driver
  9 +
  10 + type: com.alibaba.druid.pool.DruidDataSource
  11 + initialSize: 5
  12 + minIdle: 5
  13 + maxActive: 20
  14 + maxWait: 60000
  15 + timeBetweenEvictionRunsMillis: 60000
  16 + minEvictableIdleTimeMillis: 300000
  17 + validationQuery: SELECT 1 FROM DUAL
  18 + testWhileIdle: true
  19 + testOnBorrow: false
  20 + testOnReturn: false
  21 + poolPreparedStatements: true
  22 + maxPoolPreparedStatementPerConnectionSize: 20
  23 + filters: stat,wall,log4j
  24 + useGlobalDataSourceStat: true
  25 + connectionProperties:
  26 + druid:
  27 + stat:
  28 + mergeSql: true
  29 + druid:
  30 + stat:
  31 + slowSqlMillis: 5000
  32 + data:
  33 + mongodb:
  34 + host: 119.90.57.26
  35 + port: 10001
  36 + database: platform
  37 + username: platform
  38 + password: platform123
  39 + profiles:
  40 + active: etl
  41 +mybatis:
  42 + typeAliasesPackage: com.lyms.etl.model
  43 + mapperLocations: classpath:mappers/*.xml
regional-etl/src/main/resources/application.yml View file @ d061441
... ... @@ -36,6 +36,8 @@
36 36 database: platform
37 37 username: platform
38 38 password: platform123
  39 + profiles:
  40 + active: coupon
39 41 mybatis:
40 42 typeAliasesPackage: com.lyms.etl.model
41 43 mapperLocations: classpath:mappers/*.xml