Commit 6b0a6737f7bf219e72087a107454c6f6daa8acd0

Authored by liquanyu
1 parent 3822f0713f

update

Showing 6 changed files with 83 additions and 50 deletions

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");