Commit 6b0a6737f7bf219e72087a107454c6f6daa8acd0
1 parent
3822f0713f
Exists in
master
and in
6 other branches
update
Showing 6 changed files with 83 additions and 50 deletions
- platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java
- platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/ConnTools.java
- platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BoneFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java
- platform-transfer/src/main/java/com/lyms/platform/worker/BoneTransferWorker.java
platform-dal/src/main/java/com/lyms/platform/pojo/BoneModel.java
View file @
6b0a673
... | ... | @@ -67,6 +67,17 @@ |
67 | 67 | |
68 | 68 | private String cardNo; |
69 | 69 | |
70 | + //孕妇姓名 | |
71 | + private String username; | |
72 | + | |
73 | + public String getUsername() { | |
74 | + return username; | |
75 | + } | |
76 | + | |
77 | + public void setUsername(String username) { | |
78 | + this.username = username; | |
79 | + } | |
80 | + | |
70 | 81 | public Integer getResult() { |
71 | 82 | return result; |
72 | 83 | } |
platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/ConnTools.java
View file @
6b0a673
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 | */ |
11 | 11 | public class ConnTools { |
12 | 12 | private static String hisDirverClassName = "oracle.jdbc.driver.OracleDriver"; |
13 | - private static String hisUrl = "jdbc:oracle:thin:@192.168.200.60:1521:ZLHIS1"; | |
13 | + private static String hisUrl = "jdbc:oracle:thin:@//192.168.200.60:1521/ZLHIS"; | |
14 | 14 | private static String hisUser = "YCY"; |
15 | 15 | private static String hisPassword = "123"; |
16 | 16 |
platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncHsPatientService.java
View file @
6b0a673
... | ... | @@ -18,6 +18,8 @@ |
18 | 18 | import org.springframework.stereotype.Service; |
19 | 19 | |
20 | 20 | import java.util.*; |
21 | +import java.util.concurrent.CountDownLatch; | |
22 | +import java.util.concurrent.TimeUnit; | |
21 | 23 | import java.util.concurrent.atomic.AtomicInteger; |
22 | 24 | |
23 | 25 | |
... | ... | @@ -25,7 +27,7 @@ |
25 | 27 | * Created by Administrator on 2020-04-10. |
26 | 28 | */ |
27 | 29 | @Service("syncHsPatientService") |
28 | -public class SyncHsPatientService implements InitializingBean { | |
30 | +public class SyncHsPatientService { | |
29 | 31 | @Autowired |
30 | 32 | private MongoTemplate mongoTemplate; |
31 | 33 | |
32 | 34 | |
33 | 35 | |
34 | 36 | |
35 | 37 | |
36 | 38 | |
37 | 39 | |
... | ... | @@ -33,34 +35,28 @@ |
33 | 35 | @Qualifier("commonThreadPool") |
34 | 36 | private ThreadPoolTaskExecutor commonThreadPool; |
35 | 37 | |
36 | - public AtomicInteger count = new AtomicInteger(0); | |
37 | - | |
38 | 38 | @Autowired |
39 | 39 | private CommonService commonService; |
40 | - | |
41 | - @Override | |
42 | - public void afterPropertiesSet() throws Exception { | |
43 | - //初始化数据 | |
44 | - //HsDataUtil.initData(mongoTemplate); | |
45 | - } | |
46 | - | |
40 | + private static final int BATCH_SIZE = 40; | |
47 | 41 | /** |
48 | 42 | * 同步孕妇 |
49 | 43 | */ |
50 | 44 | public void synchsPatientData() { |
45 | + //初始化数据 | |
46 | + HsDataUtil.initData(mongoTemplate); | |
51 | 47 | |
48 | + | |
52 | 49 | int pageStart = 1; |
53 | - int pageEnd = 4000; | |
50 | + int pageEnd = 400; | |
54 | 51 | |
55 | - //查询孕妇档案 | |
56 | - String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " + | |
57 | - " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " + | |
58 | - " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " + | |
59 | - " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " + | |
60 | - " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <=pageEnd) pat where pat.rowno >= pageStart"; | |
52 | + | |
61 | 53 | do { |
62 | - sql = sql.replace("pageEnd",String.valueOf(pageEnd)); | |
63 | - sql = sql.replace("pageStart",String.valueOf(pageStart)); | |
54 | + //查询孕妇档案 | |
55 | + String sql = " select * from (select ROWNUM AS rowno, temp.* from (select replace(mp.P_NO, '-', '') as PID, " + | |
56 | + " mp.*, p_birthday, p_name, vc.VC_CARDNO from MOMMY_PATIENT mp " + | |
57 | + " left join Plat_Patient pp on mp.p_platpatientid = pp.p_id left join (select max(VC_OPERTIME) as OPERTIME, " + | |
58 | + " VC_CARDNO, VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO, VC_PATIENTNO) vc " + | |
59 | + " on vc.VC_PATIENTNO = mp.P_NO order by mp.P_FILINGTIME desc) temp where ROWNUM <="+pageEnd+") pat where pat.rowno >= "+pageStart; | |
64 | 60 | System.out.println(sql); |
65 | 61 | List<Map<String, Object>> list = JDBCUtil.getOracleListDataBySql(sql); |
66 | 62 | if (!CollectionUtils.isNotEmpty(list)) |
67 | 63 | |
... | ... | @@ -68,8 +64,14 @@ |
68 | 64 | System.out.println("查询数据完成"); |
69 | 65 | break; |
70 | 66 | } |
71 | - int batchSize = 200; | |
67 | + int batchSize = BATCH_SIZE; | |
72 | 68 | int end = 0; |
69 | + | |
70 | + //线程数 | |
71 | + int threadCount = list.size() % BATCH_SIZE == 0 ? list.size() / BATCH_SIZE : list.size() / BATCH_SIZE + 1; | |
72 | + | |
73 | + CountDownLatch countDownLatch = new CountDownLatch(threadCount); | |
74 | + | |
73 | 75 | for (int i = 0; i < list.size(); i += batchSize) { |
74 | 76 | end = (end + batchSize); |
75 | 77 | if (end > list.size()) { |
76 | 78 | |
77 | 79 | |
78 | 80 | |
79 | 81 | |
80 | 82 | |
... | ... | @@ -77,32 +79,47 @@ |
77 | 79 | } |
78 | 80 | System.out.println("start:" + i + ",end:" + end); |
79 | 81 | List<Map<String, Object>> tempList = list.subList(i, end); |
80 | - commonThreadPool.execute(new PatientWorker(tempList, mongoTemplate)); | |
82 | + commonThreadPool.execute(new PatientWorker(countDownLatch,tempList, mongoTemplate)); | |
81 | 83 | } |
82 | - pageStart += 4000; | |
83 | - pageEnd += 4000; | |
84 | + pageStart += 400; | |
85 | + pageEnd += 400; | |
86 | + | |
87 | + try { | |
88 | + countDownLatch.await(20, TimeUnit.SECONDS); | |
89 | + Thread.sleep(5000); | |
90 | + } catch (InterruptedException e) { | |
91 | + } | |
84 | 92 | }while (true); |
85 | 93 | } |
86 | 94 | |
87 | 95 | private class PatientWorker extends Thread { |
88 | 96 | private List<Map<String, Object>> list; |
89 | 97 | private MongoTemplate mongoTemplate; |
90 | - public PatientWorker(List<Map<String, Object>> list, MongoTemplate mongoTemplate) { | |
98 | + private CountDownLatch countDownLatch; | |
99 | + public PatientWorker(CountDownLatch countDownLatch,List<Map<String, Object>> list, MongoTemplate mongoTemplate) { | |
100 | + this.countDownLatch = countDownLatch; | |
91 | 101 | this.list = list; |
92 | 102 | this.mongoTemplate = mongoTemplate; |
93 | 103 | } |
94 | 104 | |
95 | 105 | @Override |
96 | 106 | public void run() { |
97 | - for (Map<String, Object> map : list) | |
98 | - { | |
99 | - try { | |
100 | - syncPatient(map, mongoTemplate); | |
101 | - } catch (Exception e) | |
107 | + try { | |
108 | + for (Map<String, Object> map : list) | |
102 | 109 | { |
103 | - ExceptionUtils.catchException(e, "孕产妇同步异常:" + map); | |
110 | + try { | |
111 | + syncPatient(map, mongoTemplate); | |
112 | + } catch (Exception e) | |
113 | + { | |
114 | + ExceptionUtils.catchException(e, "孕产妇同步异常:" + map); | |
115 | + continue; | |
116 | + } | |
104 | 117 | } |
105 | 118 | } |
119 | + finally { | |
120 | + countDownLatch.countDown(); | |
121 | + } | |
122 | + | |
106 | 123 | } |
107 | 124 | } |
108 | 125 | |
109 | 126 | |
... | ... | @@ -418,22 +435,8 @@ |
418 | 435 | patients.setFileCode(HsDataUtil.getString(map.get("P_CLINICNO"))); //建档编号即2.0的条码号 |
419 | 436 | patients.setVcCardNo(HsDataUtil.getString(map.get("VC_CARDNO"))); //就诊卡号 |
420 | 437 | |
421 | - | |
422 | - /** | |
423 | - * 初诊数据处理 | |
424 | - */ | |
425 | - List<Map<String, Object>> chuList = null; | |
426 | - if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_NO")))) { | |
427 | - chuList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_FIRSTEXAMINE WHERE FE_TRIAGEORDERNO= '" + HsDataUtil.getString(map.get("P_NO")) + "'"); | |
428 | - | |
429 | - createCZ(chuList,patients); | |
430 | - } | |
431 | 438 | int type = 1; |
432 | 439 | |
433 | - | |
434 | - | |
435 | - | |
436 | - | |
437 | 440 | List<Map<String, Object>> chanList = null; |
438 | 441 | if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_PLATPATIENTID")))) { |
439 | 442 | chanList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_PREGDELIVERYRECORD P WHERE P.PDR_PATIENTID = '" + HsDataUtil.getString(map.get("P_PLATPATIENTID")) + "' order by p.PDR_CHILDBIRTHDAY desc "); |
440 | 443 | |
... | ... | @@ -476,9 +479,20 @@ |
476 | 479 | } |
477 | 480 | } |
478 | 481 | |
482 | + | |
479 | 483 | patients.setType(type); //患者类型 |
480 | 484 | |
481 | 485 | |
486 | + /** | |
487 | + * 初诊数据处理 | |
488 | + */ | |
489 | + List<Map<String, Object>> chuList = null; | |
490 | + if (StringUtils.isNotEmpty(HsDataUtil.getString(map.get("P_NO")))) { | |
491 | + chuList = JDBCUtil.getOracleListDataBySql("SELECT * FROM MOMMY_FIRSTEXAMINE WHERE FE_TRIAGEORDERNO= '" + HsDataUtil.getString(map.get("P_NO")) + "'"); | |
492 | + | |
493 | + createCZ(chuList,patients); | |
494 | + } | |
495 | + | |
482 | 496 | PersonModel person = new PersonModel(); |
483 | 497 | mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(HsDataUtil.getString(map.get("P_CARDNO"))).and("yn").is(1)), PersonModel.class); |
484 | 498 | person.setId(String.valueOf(map.get("PID"))); |
... | ... | @@ -495,8 +509,7 @@ |
495 | 509 | patients.setPid(person.getId()); |
496 | 510 | |
497 | 511 | mongoTemplate.save(patients); |
498 | - count.getAndIncrement(); | |
499 | - System.out.println(patients.getId() + "============"+count.get()); | |
512 | + System.out.println("建档创建完成==="+patients.getId()); | |
500 | 513 | |
501 | 514 | } |
502 | 515 | |
... | ... | @@ -562,6 +575,7 @@ |
562 | 575 | } |
563 | 576 | }catch (Exception e) |
564 | 577 | { |
578 | + e.printStackTrace(); | |
565 | 579 | System.out.println(e.getMessage()); |
566 | 580 | } |
567 | 581 | return data; |
... | ... | @@ -636,6 +650,7 @@ |
636 | 650 | } |
637 | 651 | }catch (Exception e) |
638 | 652 | { |
653 | + e.printStackTrace(); | |
639 | 654 | System.out.println(e.getMessage()); |
640 | 655 | } |
641 | 656 | |
... | ... | @@ -743,6 +758,7 @@ |
743 | 758 | |
744 | 759 | }catch (Exception e) |
745 | 760 | { |
761 | + e.printStackTrace(); | |
746 | 762 | System.out.println(e.getMessage()); |
747 | 763 | } |
748 | 764 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BoneFacade.java
View file @
6b0a673
... | ... | @@ -319,6 +319,7 @@ |
319 | 319 | patientsQuery.setYn(YnEnums.YES.getId()); |
320 | 320 | patientsQuery.setType(1); |
321 | 321 | patientsQuery.setNumberCode(boneModel.getCardNo()); |
322 | + patientsQuery.setName(boneModel.getUsername()); | |
322 | 323 | List<Patients> patients = patientsService.queryPatient(patientsQuery); |
323 | 324 | if (CollectionUtils.isNotEmpty(patients)) |
324 | 325 | { |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java
View file @
6b0a673
... | ... | @@ -1389,7 +1389,9 @@ |
1389 | 1389 | long jsCheckCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("jsCheckStatus").is(1)), TrackCountRecord.class); |
1390 | 1390 | data.put("jsCheckCount",String.valueOf(jsCheckCount)); |
1391 | 1391 | |
1392 | - long loseCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("loseStatus").is(1)), TrackCountRecord.class); | |
1392 | + | |
1393 | + long loseCount = zsCheckCount - jsCheckCount; | |
1394 | + //long loseCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("loseStatus").is(1)), TrackCountRecord.class); | |
1393 | 1395 | data.put("loseCount",String.valueOf(loseCount)); |
1394 | 1396 | |
1395 | 1397 | long trackCount = sumField("lyms_track_count_record", "trackStatus", Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))); |
platform-transfer/src/main/java/com/lyms/platform/worker/BoneTransferWorker.java
View file @
6b0a673
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | |
38 | 38 | conn = iConnection.getConnection(); |
39 | 39 | sta = conn.createStatement(); |
40 | - String sql = "select PatientID,ZScore,TScore,dbSos,dbBqi,dbRrf,dbEoa,YoungAdult,ageMatched,dbAge,PartDisplayName from PatientInfo where status is null and DayTimeOfSave > "+ DateUtil.formatDate(new Date(),"yyyy-MM-dd"); | |
40 | + String sql = "select PatientID,ZScore,TScore,dbSos,dbBqi,dbRrf,dbEoa,YoungAdult,ageMatched,dbAge,PartDisplayName,PatientName from PatientInfo where status is null and DayTimeOfSave > "+ DateUtil.formatDate(new Date(),"yyyy-MM-dd"); | |
41 | 41 | rst = sta.executeQuery(sql); |
42 | 42 | while (rst.next()) { |
43 | 43 | Map map = new HashMap(); |
... | ... | @@ -47,6 +47,9 @@ |
47 | 47 | |
48 | 48 | String PartDisplayName = rst.getString("PartDisplayName"); |
49 | 49 | map.put("position",PartDisplayName); |
50 | + | |
51 | + String PatientName = rst.getString("PatientName"); //孕妇姓名 | |
52 | + map.put("username",PatientName); | |
50 | 53 | |
51 | 54 | String ZScore = rst.getString("ZScore"); |
52 | 55 | String TScore = rst.getString("TScore"); |