Commit b4083842a6fdc9bd9a191c0c711b08ffdb750e57
1 parent
47abd1a5df
Exists in
master
and in
6 other branches
数据同步
Showing 7 changed files with 198 additions and 46 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PregnantBuildController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SyncV2MatdelRequest.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java
View file @
b408384
... | ... | @@ -15,10 +15,7 @@ |
15 | 15 | import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; |
16 | 16 | import com.lyms.platform.operate.web.facade.AutoMatchFacade; |
17 | 17 | import com.lyms.platform.operate.web.facade.MatDeliverFacade; |
18 | -import com.lyms.platform.operate.web.request.ChildbirthManagerRequest; | |
19 | -import com.lyms.platform.operate.web.request.MatDeliverAddRequest; | |
20 | -import com.lyms.platform.operate.web.request.MatDeliverQueryRequest; | |
21 | -import com.lyms.platform.operate.web.request.NewBabyManagerRequest; | |
18 | +import com.lyms.platform.operate.web.request.*; | |
22 | 19 | import com.lyms.platform.operate.web.result.*; |
23 | 20 | import com.lyms.platform.operate.web.utils.CollectionUtils; |
24 | 21 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
... | ... | @@ -98,6 +95,18 @@ |
98 | 95 | if (StringUtils.isNotEmpty(deliverAddRequest.getCouponCode())) { |
99 | 96 | baseResponse.setObject(couponService.getPatientsInfoByCode(deliverAddRequest.getCouponCode())); |
100 | 97 | } |
98 | + return baseResponse; | |
99 | + } | |
100 | + | |
101 | + /** | |
102 | + * 增加分娩记录 | |
103 | + * | |
104 | + * @return 返回 | |
105 | + */ | |
106 | + @RequestMapping(value = "/v2/batch/matdel", method = RequestMethod.POST) | |
107 | + @ResponseBody | |
108 | + public BaseResponse batchMatdelByV2(@Valid @RequestBody SyncV2MatdelRequest param) { | |
109 | + BaseResponse baseResponse = matDeliverFacade.batchMatdelByV2(param, Integer.parseInt(param.getUserId())); | |
101 | 110 | return baseResponse; |
102 | 111 | } |
103 | 112 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PregnantBuildController.java
View file @
b408384
... | ... | @@ -133,13 +133,6 @@ |
133 | 133 | |
134 | 134 | return bookbuildingFacade.addPregnantBookbuildingV2(param, Integer.parseInt(param.getBookbuildingDoctor()), false); |
135 | 135 | } |
136 | - //测试 | |
137 | - @RequestMapping(method = RequestMethod.POST, value = "/testv2url") | |
138 | - @ResponseBody | |
139 | - public BaseResponse sync_to_v2_url( @RequestBody JSONObject param) { | |
140 | - System.out.println(param); | |
141 | - return new BaseResponse(param.toString(), 666); | |
142 | - } | |
143 | 136 | |
144 | 137 | /** |
145 | 138 | * 将v2.0的历史数据保存到当前库中 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java
View file @
b408384
... | ... | @@ -2354,8 +2354,6 @@ |
2354 | 2354 | * @return |
2355 | 2355 | */ |
2356 | 2356 | private YunBookbuildingAddRequest getYunBookbuildingAddRequest(SyncV2YunBookbuildingRequest param) { |
2357 | - // TODO 2019/6/7 14:07 dongqing 修改 | |
2358 | - | |
2359 | 2357 | //丈夫信息是否必须,映射 |
2360 | 2358 | if (param.getReqHusbandInt() == 1) { |
2361 | 2359 | param.setReqHusband(true); |
2362 | 2360 | |
... | ... | @@ -2364,17 +2362,10 @@ |
2364 | 2362 | } else { |
2365 | 2363 | param.setReqHusband(null); |
2366 | 2364 | } |
2367 | - param.setHospitalId("todo"); | |
2365 | + param.setHospitalId("216"); | |
2368 | 2366 | return param; |
2369 | 2367 | } |
2370 | 2368 | |
2371 | - /* | |
2372 | - WHERE TRUNC(T.P_FILINGTIME) between TO_DATE('" + startTime + "','YYYY-MM-DD') AND TO_DATE('" + endTime + "','YYYY-MM-DD') " + | |
2373 | - "and pdr.p_no is null " + | |
2374 | - "and ( P_ADDRESSCOUNTY='160' " +//居住地区(桃城区) | |
2375 | - "OR P_POSTPARTUMCOUNTY='160' " +//产后区县(桃城区) | |
2376 | - "OR P_RRCOUNTY ='160')"; | |
2377 | - */ | |
2378 | 2369 | public static Connection getConnection() { |
2379 | 2370 | Connection connection; |
2380 | 2371 | try { |
... | ... | @@ -2386,20 +2377,6 @@ |
2386 | 2377 | } |
2387 | 2378 | |
2388 | 2379 | return connection; |
2389 | - } | |
2390 | - | |
2391 | - public static void main(String[] args) throws SQLException { | |
2392 | - Connection connection = getConnection(); | |
2393 | - PreparedStatement preparedStatement = connection.prepareStatement("select * from MOMMY_PATIENT"); | |
2394 | - ResultSet resultSet = preparedStatement.executeQuery(); | |
2395 | - ResultSetMetaData metaData = resultSet.getMetaData(); | |
2396 | - int i = 1; | |
2397 | - while (resultSet.next()) { | |
2398 | - String tableName = metaData.getColumnName(++i); | |
2399 | - System.out.println(tableName); | |
2400 | - // System.out.println(resultSet.getString(tableName)); | |
2401 | - } | |
2402 | - | |
2403 | 2380 | } |
2404 | 2381 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
View file @
b408384
... | ... | @@ -40,11 +40,18 @@ |
40 | 40 | import org.springframework.beans.factory.annotation.Autowired; |
41 | 41 | import org.springframework.beans.factory.annotation.Qualifier; |
42 | 42 | import org.springframework.data.domain.Sort; |
43 | +import org.springframework.data.mongodb.core.MongoTemplate; | |
44 | +import org.springframework.data.mongodb.core.query.Criteria; | |
45 | +import org.springframework.data.mongodb.core.query.Query; | |
43 | 46 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
44 | 47 | import org.springframework.stereotype.Component; |
45 | 48 | |
46 | 49 | import javax.servlet.http.HttpServletResponse; |
47 | 50 | import java.io.IOException; |
51 | +import java.sql.Connection; | |
52 | +import java.sql.PreparedStatement; | |
53 | +import java.sql.ResultSet; | |
54 | +import java.sql.SQLException; | |
48 | 55 | import java.text.ParseException; |
49 | 56 | import java.text.SimpleDateFormat; |
50 | 57 | import java.util.*; |
... | ... | @@ -145,6 +152,9 @@ |
145 | 152 | @Autowired |
146 | 153 | private AreaCountFacade areaCountFacade; |
147 | 154 | |
155 | + @Autowired | |
156 | + private MongoTemplate mongoTemplate; | |
157 | + | |
148 | 158 | static { |
149 | 159 | ONE_ENUMS.put(0, "长"); |
150 | 160 | ONE_ENUMS.put(1, "次"); |
... | ... | @@ -2906,5 +2916,133 @@ |
2906 | 2916 | return list; |
2907 | 2917 | } |
2908 | 2918 | |
2919 | + /** | |
2920 | + * 同步v2的分娩数据 | |
2921 | + * | |
2922 | + * @param param | |
2923 | + * @param id | |
2924 | + * @return | |
2925 | + */ | |
2926 | + public BaseResponse batchMatdelByV2(SyncV2MatdelRequest param, final Integer id) { | |
2927 | + Connection connection = BookbuildingFacade.getConnection(); | |
2928 | + String sql = "select * " + | |
2929 | + "from V_SYNC_TO_V3_PDR pdr " + | |
2930 | + "where pdr.PDR_CHILDBIRTHDAY > sysdate - 290 " + | |
2931 | + "and to_char(pdr.PDR_CHILDBIRTHDAY,'YYYY-MM') BETWEEN '"+param.getStartTime()+ "' and '"+ param.getEndTime() +"'"; | |
2932 | + List<MatDeliverAddRequest> list = new ArrayList<MatDeliverAddRequest>(1024); | |
2933 | + try { | |
2934 | + PreparedStatement preparedStatement = connection.prepareStatement(sql); | |
2935 | + ResultSet rs = preparedStatement.executeQuery(); | |
2936 | + | |
2937 | + while (rs.next()) { | |
2938 | + MatDeliverAddRequest matDeliverAddRequest = new MatDeliverAddRequest(); | |
2939 | + List<MatDeliverAddRequest.Baby> babies = new ArrayList<>(); | |
2940 | + String pCardno = rs.getString("P_CARDNO"); | |
2941 | + if (com.lyms.platform.common.utils.StringUtils.isEmpty(pCardno)){ | |
2942 | + System.out.println("证件号为空"); | |
2943 | + continue; | |
2944 | + } | |
2945 | + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("pregnantCertificateNum").is(pCardno)), Patients.class); | |
2946 | + if (patients == null) { | |
2947 | + System.out.println("没有建档数据"); | |
2948 | + continue; | |
2949 | + } | |
2950 | + matDeliverAddRequest.setParentId(patients.getId()); | |
2951 | + matDeliverAddRequest.setPid(patients.getPid()); | |
2952 | + Date childbirthday = rs.getDate("PDR_CHILDBIRTHDAY"); | |
2953 | + String pdrGestationalweeks = rs.getString("PDR_GESTATIONALWEEKS"); | |
2954 | + int pdrIrenum = rs.getInt("PDR_IRENUM"); | |
2955 | + String pdrPlacentanum = rs.getString("PDR_PLACENTANUM"); | |
2956 | + //String pdrDeliverorganizationid = rs.getString("PDR_DELIVERORGANIZATIONID"); | |
2957 | + //String pdrMidwife = rs.getString("PDR_MIDWIFE"); | |
2958 | + //Date pdrOpertime = rs.getDate("PDR_OPERTIME"); | |
2959 | + //String pNo = rs.getString("P_NO"); | |
2960 | + String pdrId = rs.getString("PDR_ID"); | |
2961 | + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(pdrId)) { | |
2962 | + String sqlBaby = "select * from V_SYNC_TO_V3_BABY baby where baby.NB_PDRID = '" + pdrId +"'"; | |
2963 | + PreparedStatement statement = connection.prepareStatement(sqlBaby); | |
2964 | + ResultSet resultSet = statement.executeQuery(); | |
2965 | + while (resultSet.next()) { | |
2966 | + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); | |
2967 | + Date nbChildbirthday = resultSet.getDate("NB_CHILDBIRTHDAY"); | |
2968 | + String nbChantype = resultSet.getString("NB_CHANTYPE"); | |
2969 | + String nbChildsex = resultSet.getString("NB_CHILDSEX"); | |
2970 | + double nbChildweight = resultSet.getDouble("NB_CHILDWEIGHT"); | |
2971 | + String nbLength = resultSet.getString("NB_LENGTH"); | |
2972 | + baby.setDueTime(DateUtil.getymdhm(nbChildbirthday)); | |
2973 | + | |
2974 | + baby.setPregnancyOut(getPregnancyOutByV2(nbChantype)); | |
2975 | + baby.setBabyGender(nbChildsex); | |
2976 | + baby.setBabyWeight(nbChildweight+""); | |
2977 | + baby.setBabyHeight(nbLength); | |
2978 | + babies.add(baby); | |
2979 | + } | |
2980 | + } | |
2981 | + matDeliverAddRequest.setBabies(babies); | |
2982 | + matDeliverAddRequest.setDueDate(DateUtil.getyyyy_MM_dd(childbirthday)); | |
2983 | + matDeliverAddRequest.setDueWeek(pdrGestationalweeks); | |
2984 | + // TODO 2019/6/9 14:53 dongqing 胎数 | |
2985 | + matDeliverAddRequest.setTireNumber(pdrIrenum); | |
2986 | + // TODO 2019/6/9 14:53 dongqing 胎盘 | |
2987 | + matDeliverAddRequest.setPlacenta(pdrPlacentanum); | |
2988 | + // TODO 2019/6/9 14:54 dongqing 分娩医院 | |
2989 | + matDeliverAddRequest.setFmHospital("216"); | |
2990 | + // TODO 2019/6/9 14:55 dongqing 接生者 | |
2991 | + matDeliverAddRequest.setDeliverDoctor(""); | |
2992 | + list.add(matDeliverAddRequest); | |
2993 | + } | |
2994 | + | |
2995 | + } catch (SQLException e) { | |
2996 | + e.printStackTrace(); | |
2997 | + }finally { | |
2998 | + try { | |
2999 | + connection.close(); | |
3000 | + } catch (SQLException e) { | |
3001 | + e.printStackTrace(); | |
3002 | + } | |
3003 | + } | |
3004 | + | |
3005 | + ExecutorService service = new ThreadPoolExecutor(5, 10, 9000, TimeUnit.MILLISECONDS, | |
3006 | + new ArrayBlockingQueue<Runnable>(1), | |
3007 | + new RejectedExecutionHandler() { | |
3008 | + @Override | |
3009 | + public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { | |
3010 | + throw new RuntimeException(); | |
3011 | + } | |
3012 | + }); | |
3013 | + for (final MatDeliverAddRequest request : list) { | |
3014 | + service.execute(new Runnable() { | |
3015 | + @Override | |
3016 | + public void run() { | |
3017 | + addOrUpdateMatDeliver(request, id); | |
3018 | + } | |
3019 | + }); | |
3020 | + } | |
3021 | + service.shutdown(); | |
3022 | + return null; | |
3023 | + } | |
3024 | + | |
3025 | + /** | |
3026 | + * 解决v2 和v3码表不一致的问题 | |
3027 | + * | |
3028 | + * @param v2Val | |
3029 | + * @return | |
3030 | + */ | |
3031 | + public String getPregnancyOutByV2(String v2Val) { | |
3032 | + String v3Val = "1"; | |
3033 | + if ("0".equals(v2Val)) { | |
3034 | + v3Val = "0"; | |
3035 | + } | |
3036 | + if ("1".equals(v2Val)) { | |
3037 | + v3Val = "1"; | |
3038 | + } | |
3039 | + if ("2".equals(v2Val)) { | |
3040 | + v3Val = "3"; | |
3041 | + } | |
3042 | + if ("3".equals(v2Val)) { | |
3043 | + v3Val = "3"; | |
3044 | + } | |
3045 | + return v3Val; | |
3046 | + } | |
2909 | 3047 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SaveByV2ThreadPoolFacade.java
View file @
b408384
... | ... | @@ -50,15 +50,7 @@ |
50 | 50 | String sql = getSqlString(startTime, endTime); |
51 | 51 | QueryRunner queryRunner = new QueryRunner(true); |
52 | 52 | List<SyncV2HistoryRequest> lists = queryRunner.query(connection, sql, new BeanListHandler<SyncV2HistoryRequest>(SyncV2HistoryRequest.class)); |
53 | - // TODO 2019/6/5 15:39 dongqing 分批次请求保存 | |
54 | 53 | |
55 | -// for (YunBookbuildingAddRequest list : lists) { | |
56 | -// list.setHospitalId("216216"); | |
57 | -// list.setBookbuildingDoctor("1000000185"); | |
58 | -// System.out.println("建档孕妇身份证号cardNo=="+list.getPregnantCertificateNum()); | |
59 | -// addPregnantBookbuilding(list, null, false);//Integer.parseInt(list.getBookbuildingDoctor() | |
60 | -// } | |
61 | - | |
62 | 54 | if (CollectionUtils.isNotEmpty(lists)) { |
63 | 55 | int batchSize = 2; |
64 | 56 | int end = 0; |
65 | 57 | |
... | ... | @@ -127,11 +119,12 @@ |
127 | 119 | String sql = "select " + str + " from " + |
128 | 120 | " (select p.* from V_SYNC_TO_V3_PATIENT p " + |
129 | 121 | " left join V_SYNC_TO_V3_PDR pdr on pdr.p_no = p.p_no " + |
130 | - " where pdr.p_no is null and (TRUNC(p.P_FILINGTIME) BETWEEN TO_DATE('" + startTime + "','YYYY-MM-DD') AND TO_DATE('" + endTime + "','YYYY-MM-DD')) and ( p.P_ADDRESSCOUNTY='160' OR p.P_POSTPARTUMCOUNTY='160' OR p.P_RRCOUNTY ='160')" + | |
122 | + " where pdr.p_no is null and to_char(p.P_FILINGTIME,'YYY-MM') BETWEEN '" + startTime + "' and '" + endTime + "' and ( p.P_ADDRESSCOUNTY='160' OR p.P_POSTPARTUMCOUNTY='160' OR p.P_RRCOUNTY ='160')" + | |
123 | + " and p.P_LASTMENSTRUALPERIOD > sysdate - 294" + | |
131 | 124 | " union " + |
132 | 125 | " select p.* from V_SYNC_TO_V3_PATIENT p " + |
133 | 126 | " right join V_SYNC_TO_V3_PDR pdr on pdr.p_no = p.p_no " + |
134 | - " where pdr.PDR_CHILDBIRTHDAY > sysdate - 29 and pdr.p_no is not null and to_char(pdr.PDR_CHILDBIRTHDAY,'YYYY-MM-DD') BETWEEN TO_DATE('" + startTime + "','YYYY-MM-DD') AND TO_DATE('" + endTime + "','YYYY-MM-DD')" + | |
127 | + " where pdr.PDR_CHILDBIRTHDAY > sysdate - 290 and pdr.p_no is not null and to_char(pdr.PDR_CHILDBIRTHDAY,'YYYY-MM') BETWEEN '" + startTime + "' AND '" + endTime + "'" + | |
135 | 128 | ") t"; |
136 | 129 | return sql; |
137 | 130 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/SyncV2MatdelRequest.java
View file @
b408384
1 | +package com.lyms.platform.operate.web.request; | |
2 | + | |
3 | +/** | |
4 | + * | |
5 | + * @Author dongqin | |
6 | + * @Description | |
7 | + * @Date 11:05 2019/6/9 | |
8 | + */ | |
9 | + | |
10 | +public class SyncV2MatdelRequest extends MatDeliverAddRequest { | |
11 | + | |
12 | + private String startTime; | |
13 | + | |
14 | + private String endTime; | |
15 | + | |
16 | + private String userId; | |
17 | + | |
18 | + public String getUserId() { | |
19 | + return userId; | |
20 | + } | |
21 | + | |
22 | + public void setUserId(String userId) { | |
23 | + this.userId = userId; | |
24 | + } | |
25 | + | |
26 | + public String getStartTime() { | |
27 | + return startTime; | |
28 | + } | |
29 | + | |
30 | + public void setStartTime(String startTime) { | |
31 | + this.startTime = startTime; | |
32 | + } | |
33 | + | |
34 | + public String getEndTime() { | |
35 | + return endTime; | |
36 | + } | |
37 | + | |
38 | + public void setEndTime(String endTime) { | |
39 | + this.endTime = endTime; | |
40 | + } | |
41 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/SyncV2HistoryWorkerx.java
View file @
b408384
... | ... | @@ -45,8 +45,9 @@ |
45 | 45 | BaseObjectResponse p=null; |
46 | 46 | for (YunBookbuildingAddRequest list : lists) { |
47 | 47 | //董勤让写死的 |
48 | - list.setHospitalId("216216"); | |
48 | + list.setHospitalId("216"); | |
49 | 49 | list.setBookbuildingDoctor("1000000185"); |
50 | + | |
50 | 51 | p = bookbuildingFacade.addPregnantBookbuilding(list, null, false); |
51 | 52 | System.out.println("当前线程名称:"+Thread.currentThread().getName()+"===保存好建档_id:"+p.getData()); |
52 | 53 | } |