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