Commit c481a98d345fbfe5a54f07972e1a8c497819173e
1 parent
281035119b
Exists in
master
and in
6 other branches
update
Showing 3 changed files with 120 additions and 19 deletions
platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java
View file @
c481a98
... | ... | @@ -2,6 +2,8 @@ |
2 | 2 | |
3 | 3 | import java.math.BigDecimal; |
4 | 4 | import java.text.DecimalFormat; |
5 | +import java.text.ParseException; | |
6 | +import java.text.SimpleDateFormat; | |
5 | 7 | import java.util.*; |
6 | 8 | import java.util.regex.Matcher; |
7 | 9 | import java.util.regex.Pattern; |
... | ... | @@ -51,7 +53,7 @@ |
51 | 53 | // } |
52 | 54 | int day = (days % 7); |
53 | 55 | return "孕" + str + (day > 0 ? "+" + day + "天" : ""); |
54 | - } | |
56 | + } | |
55 | 57 | /** |
56 | 58 | * 孕周转天数 |
57 | 59 | * @param dueWeek 入参实例 1周2天 |
... | ... | @@ -383,6 +385,35 @@ |
383 | 385 | { |
384 | 386 | return obj == null ? null : String.valueOf(obj); |
385 | 387 | } |
388 | + /** | |
389 | + * 根据身份证号获取年龄 | |
390 | + * @param certId | |
391 | + * @return | |
392 | + */ | |
393 | + public static Integer getAgeByCertId(String certId) { | |
394 | + try { | |
395 | + String birthday = ""; | |
396 | + if (certId.length() == 18) { | |
397 | + birthday = certId.substring(6, 10) + "/" | |
398 | + + certId.substring(10, 12) + "/" | |
399 | + + certId.substring(12, 14); | |
400 | + } | |
401 | + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); | |
402 | + Date now = new Date(); | |
403 | + Date birth = new Date(); | |
404 | + try { | |
405 | + birth = sdf.parse(birthday); | |
406 | + } catch (ParseException e) { | |
407 | + } | |
408 | + long intervalMilli = now.getTime() - birth.getTime(); | |
409 | + int age = (int) (intervalMilli/(24 * 60 * 60 * 1000))/365; | |
410 | + return age; | |
411 | + } catch (Exception e) { | |
412 | + e.printStackTrace(); | |
413 | + } | |
414 | + return null; | |
415 | + } | |
416 | + | |
386 | 417 | |
387 | 418 | } |
platform-operate-api/src/main/java/com/lyms/hospitalapi/linchengfy/LcfyFmService.java
View file @
c481a98
... | ... | @@ -292,6 +292,63 @@ |
292 | 292 | this.allList = list; |
293 | 293 | } |
294 | 294 | |
295 | + /*public void run() { | |
296 | + | |
297 | + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
298 | + try { | |
299 | + System.out.println("fm=" + allList.toString()); | |
300 | + | |
301 | + List <Users> users = new ArrayList <Users>(); | |
302 | + Date dueDate = null; | |
303 | + List <MatDeliverAddRequest.Baby> babies = new ArrayList <>(); | |
304 | + MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest(); | |
305 | + Patients patient =null; | |
306 | + for (Fm allFm : allList) { | |
307 | + System.out.println("0-------------" + allFm.getBABY_PREGNANCY_OUT()); | |
308 | + if (!"1".equals(allFm.getBABY_PREGNANCY_OUT())) { | |
309 | + continue; | |
310 | + } | |
311 | + if (StringUtils.isEmpty(allFm.getPHONE()) && StringUtils.isEmpty(allFm.getIDCARD())) { | |
312 | + continue; | |
313 | + } | |
314 | + PatientsQuery query = new PatientsQuery(); | |
315 | + query.setYn(YnEnums.YES.getId()); | |
316 | + query.setType(3); //孕妇 | |
317 | + query.setHospitalId(HOSPITALID); | |
318 | + query.setBookbuildingDoctor("2100006056"); | |
319 | + String[] strs = new String[]{allFm.getPHONE(), allFm.getIDCARD()}; | |
320 | + query.setPc(strs); | |
321 | + //查询该孕妇是否在孕产婴系统中建档 | |
322 | + System.out.println("1----query--" + query.convertToQuery().convertToMongoQuery()); | |
323 | + List <Patients> patientses = patientsService.queryPatient(query); | |
324 | + System.out.println("2----patientses--" + ( CollectionUtils.isNotEmpty(patientses)?patientses.size():null)); | |
325 | + if (CollectionUtils.isNotEmpty(patientses)) { | |
326 | + patient = patientses.get(0); | |
327 | + Patients pat1 = new Patients(); | |
328 | + pat1.setAge(StringUtils.getAgeByCertId(allFm.getIDCARD())); | |
329 | + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ | |
330 | + String birthstr = allFm.getIDCARD().substring(6, 14); | |
331 | + pat1.setBirth(DateUtil.parseYYYYMMDD(birthstr)); | |
332 | + } | |
333 | + yunBookbuildingService.updatePregnant(pat1,patient.getId()); | |
334 | + | |
335 | + PersonModel per = new PersonModel(); | |
336 | + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ | |
337 | + String birthstr = allFm.getIDCARD().substring(6, 14); | |
338 | + per.setBirth(DateUtil.parseYYYYMMDD(birthstr)); | |
339 | + } | |
340 | + personService.updatePerson(per ,patient.getPid()); | |
341 | + } | |
342 | + | |
343 | + } | |
344 | + | |
345 | + | |
346 | + } catch (Exception e) { | |
347 | + ExceptionUtils.catchException(e, "执行异常"); | |
348 | + e.printStackTrace(); | |
349 | + } | |
350 | + | |
351 | + }*/ | |
295 | 352 | public void run() { |
296 | 353 | |
297 | 354 | SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
... | ... | @@ -313,8 +370,9 @@ |
313 | 370 | } |
314 | 371 | PatientsQuery query = new PatientsQuery(); |
315 | 372 | query.setYn(YnEnums.YES.getId()); |
316 | - query.setType(1); //孕妇 | |
317 | - query.setDueStatus(0); //未终止妊娠 | |
373 | + //20201230 半年后把这个打开 | |
374 | +// query.setType(1); //孕妇 | |
375 | +// query.setDueStatus(0); //未终止妊娠 | |
318 | 376 | String[] strs = new String[]{allFm.getPHONE(), allFm.getIDCARD()}; |
319 | 377 | query.setPc(strs); |
320 | 378 | //查询该孕妇是否在孕产婴系统中建档 |
321 | 379 | |
... | ... | @@ -334,9 +392,9 @@ |
334 | 392 | } |
335 | 393 | System.out.println("3----users--" +( CollectionUtils.isNotEmpty(users)?users.size():null)); |
336 | 394 | |
337 | - if (CollectionUtils.isNotEmpty(patientses)) { | |
395 | + if (CollectionUtils.isNotEmpty(patientses) && patientses.size()>0) { | |
338 | 396 | patient = patientses.get(0); |
339 | - System.out.println("4----patient.getId()--" +patient.getId()); | |
397 | + System.out.println("4.1----patient.getId()--" +patient.getId()); | |
340 | 398 | |
341 | 399 | } else if (StringUtils.isNotEmpty(allFm.getNAME()) |
342 | 400 | && StringUtils.isNotEmpty(allFm.getBABY_DELIVERY_TIME()) |
343 | 401 | |
344 | 402 | |
345 | 403 | |
... | ... | @@ -344,12 +402,14 @@ |
344 | 402 | && StringUtils.isNotEmpty(allFm.getIDCARD()) |
345 | 403 | && StringUtils.isNotEmpty(allFm.getNAME()) |
346 | 404 | && CollectionUtils.isNotEmpty(users) |
405 | + && CollectionUtils.isEmpty(patientses) | |
347 | 406 | ) { |
407 | + //20201230 半年后把这个注释了,不在添加 | |
348 | 408 | patient = addPatients(users, allFm); |
349 | - System.out.println("4.1----patient.getId()--" +patient.getId()); | |
409 | + System.out.println("4.2----patient.getId()--" +patient.getId()); | |
350 | 410 | } |
351 | 411 | |
352 | - if (patient != null) { | |
412 | + if (patient != null && StringUtils.isNotEmpty(patient.getId())) { | |
353 | 413 | System.out.println("5-----------"); |
354 | 414 | if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) { |
355 | 415 | |
356 | 416 | |
... | ... | @@ -389,11 +449,12 @@ |
389 | 449 | map.put("three", map3); |
390 | 450 | } |
391 | 451 | |
392 | - /* int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数 | |
452 | + if (StringUtils.isNotEmpty(allFm.getTOTAL_PROCESS())){ | |
453 | + int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数 | |
393 | 454 | int mProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())%60;//总产程分钟数 |
394 | 455 | totalMap.put("h",String.valueOf(hProcess)); |
395 | - totalMap.put("m",String.valueOf(mProcess));*/ | |
396 | - | |
456 | + totalMap.put("m",String.valueOf(mProcess)); | |
457 | + } | |
397 | 458 | deliverAddRequest.setProdprocess(map); |
398 | 459 | deliverAddRequest.setTotalprocess(totalMap); |
399 | 460 | System.out.println("6----------" + allFm.getDELIVER_DOCTOR()); |
400 | 461 | |
... | ... | @@ -499,10 +560,10 @@ |
499 | 560 | |
500 | 561 | baby.setDeformity((allFm.getBABY_DEFORMITY() == null ? 0 : 1)); //畸形 0非畸形 1畸形 |
501 | 562 | |
502 | - /* String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT()=="1"?"活产":""; | |
563 | + String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT()=="1"?"活产":""; | |
503 | 564 | if(baby_Pregnancy_Out!=null && StringUtils.isNotEmpty(baby_Pregnancy_Out)){ |
504 | 565 | baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局 |
505 | - }*/ | |
566 | + } | |
506 | 567 | |
507 | 568 | System.out.println("7-------------" + allFm.getBABY_PREGNANCY_OUT() == "1" ? "活产" : ""); |
508 | 569 | baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局 |
... | ... | @@ -514,7 +575,7 @@ |
514 | 575 | } |
515 | 576 | } |
516 | 577 | |
517 | - if (patient != null && CollectionUtils.isNotEmpty(babies)) { | |
578 | + if (patient != null && StringUtils.isNotEmpty(patient.getId()) && CollectionUtils.isNotEmpty(babies)) { | |
518 | 579 | deliverAddRequest.setBabies(babies); |
519 | 580 | deliverAddRequest.setFmHospital(HOSPITALID); //设置为临城 |
520 | 581 | ExceptionUtils.catchException("deliverAddRequest===" + deliverAddRequest); |
... | ... | @@ -535,7 +596,10 @@ |
535 | 596 | try { |
536 | 597 | PersonModel pmodel = new PersonModel(); |
537 | 598 | pmodel.setName(allFm.getNAME()); |
538 | - pmodel.setBirth(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); | |
599 | + if(allFm.getIDCARD().length() == 18){ | |
600 | + String birthstr = allFm.getIDCARD().substring(6, 14); | |
601 | + pmodel.setBirth(DateUtil.parseYYYYMMDD(birthstr)); | |
602 | + } | |
539 | 603 | pmodel.setPhone(allFm.getPHONE()); |
540 | 604 | pmodel.setCardNo(allFm.getIDCARD()); |
541 | 605 | pmodel.setType(3); |
542 | 606 | |
... | ... | @@ -549,11 +613,15 @@ |
549 | 613 | pat1.setUsername(allFm.getNAME()); |
550 | 614 | pat1.setPcerteTypeId(""); |
551 | 615 | pat1.setCardNo(allFm.getIDCARD()); |
552 | - pat1.setBirth(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); | |
616 | + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ | |
617 | + String birthstr = allFm.getIDCARD().substring(6, 14); | |
618 | + pat1.setBirth(DateUtil.parseYYYYMMDD(birthstr)); | |
619 | + } | |
620 | + if(StringUtils.getAgeByCertId(allFm.getIDCARD()) != 0){ | |
621 | + pat1.setAge(StringUtils.getAgeByCertId(allFm.getIDCARD())); | |
622 | + } | |
553 | 623 | pat1.setPhone(allFm.getPHONE()); |
554 | 624 | pat1.setFmDate(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); |
555 | -// pat1.setServiceStatus(request.getServiceStatus()); | |
556 | -// pat1.setServiceType(request.getServiceType()); | |
557 | 625 | pat1.setHospitalId(HOSPITALID); |
558 | 626 | pat1.setBookbuildingDate(new Date()); |
559 | 627 | pat1.setYn(YnEnums.YES.getId()); |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java
View file @
c481a98
... | ... | @@ -811,8 +811,10 @@ |
811 | 811 | if (Objects.equals(STATUS_TYPE_TEMPORARY_DOCUMENT, statusType)) { |
812 | 812 | // 新增数据 |
813 | 813 | Future<List<BabyAfterVisitStatisticsModel>> listFuture = service.submit(new BabyAfterVisitStatisticsModelWork(models, mongoTemplate, screenMapper, false)); |
814 | - List<BabyAfterVisitStatisticsModel> statisticsModels = listFuture.get(); | |
815 | - mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); | |
814 | + if(listFuture != null){//空指针异常处理 | |
815 | + List<BabyAfterVisitStatisticsModel> statisticsModels = listFuture.get(); | |
816 | + mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); | |
817 | + } | |
816 | 818 | } |
817 | 819 | // 更新儿保数量 |
818 | 820 | if (Objects.equals(STATUS_TYPE_CHECK, statusType)) { |