diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index b77b028..21bf7c0 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -2,6 +2,8 @@ package com.lyms.platform.common.utils; import java.math.BigDecimal; import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -51,7 +53,7 @@ public final class StringUtils { // } int day = (days % 7); return "孕" + str + (day > 0 ? "+" + day + "天" : ""); - } + } /** * 孕周转天数 * @param dueWeek 入参实例 1周2天 @@ -383,5 +385,34 @@ public final class StringUtils { { return obj == null ? null : String.valueOf(obj); } + /** + * 根据身份证号获取年龄 + * @param certId + * @return + */ + public static Integer getAgeByCertId(String certId) { + try { + String birthday = ""; + if (certId.length() == 18) { + birthday = certId.substring(6, 10) + "/" + + certId.substring(10, 12) + "/" + + certId.substring(12, 14); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); + Date now = new Date(); + Date birth = new Date(); + try { + birth = sdf.parse(birthday); + } catch (ParseException e) { + } + long intervalMilli = now.getTime() - birth.getTime(); + int age = (int) (intervalMilli/(24 * 60 * 60 * 1000))/365; + return age; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/linchengfy/LcfyFmService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/linchengfy/LcfyFmService.java index c73db43..1649dc2 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/linchengfy/LcfyFmService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/linchengfy/LcfyFmService.java @@ -292,6 +292,63 @@ public class LcfyFmService implements IlcFyFmService { this.allList = list; } + /*public void run() { + + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + System.out.println("fm=" + allList.toString()); + + List users = new ArrayList (); + Date dueDate = null; + List babies = new ArrayList <>(); + MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest(); + Patients patient =null; + for (Fm allFm : allList) { + System.out.println("0-------------" + allFm.getBABY_PREGNANCY_OUT()); + if (!"1".equals(allFm.getBABY_PREGNANCY_OUT())) { + continue; + } + if (StringUtils.isEmpty(allFm.getPHONE()) && StringUtils.isEmpty(allFm.getIDCARD())) { + continue; + } + PatientsQuery query = new PatientsQuery(); + query.setYn(YnEnums.YES.getId()); + query.setType(3); //孕妇 + query.setHospitalId(HOSPITALID); + query.setBookbuildingDoctor("2100006056"); + String[] strs = new String[]{allFm.getPHONE(), allFm.getIDCARD()}; + query.setPc(strs); + //查询该孕妇是否在孕产婴系统中建档 + System.out.println("1----query--" + query.convertToQuery().convertToMongoQuery()); + List patientses = patientsService.queryPatient(query); + System.out.println("2----patientses--" + ( CollectionUtils.isNotEmpty(patientses)?patientses.size():null)); + if (CollectionUtils.isNotEmpty(patientses)) { + patient = patientses.get(0); + Patients pat1 = new Patients(); + pat1.setAge(StringUtils.getAgeByCertId(allFm.getIDCARD())); + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ + String birthstr = allFm.getIDCARD().substring(6, 14); + pat1.setBirth(DateUtil.parseYYYYMMDD(birthstr)); + } + yunBookbuildingService.updatePregnant(pat1,patient.getId()); + + PersonModel per = new PersonModel(); + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ + String birthstr = allFm.getIDCARD().substring(6, 14); + per.setBirth(DateUtil.parseYYYYMMDD(birthstr)); + } + personService.updatePerson(per ,patient.getPid()); + } + + } + + + } catch (Exception e) { + ExceptionUtils.catchException(e, "执行异常"); + e.printStackTrace(); + } + + }*/ public void run() { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -313,8 +370,9 @@ public class LcfyFmService implements IlcFyFmService { } PatientsQuery query = new PatientsQuery(); query.setYn(YnEnums.YES.getId()); - query.setType(1); //孕妇 - query.setDueStatus(0); //未终止妊娠 + //20201230 半年后把这个打开 +// query.setType(1); //孕妇 +// query.setDueStatus(0); //未终止妊娠 String[] strs = new String[]{allFm.getPHONE(), allFm.getIDCARD()}; query.setPc(strs); //查询该孕妇是否在孕产婴系统中建档 @@ -334,9 +392,9 @@ public class LcfyFmService implements IlcFyFmService { } System.out.println("3----users--" +( CollectionUtils.isNotEmpty(users)?users.size():null)); - if (CollectionUtils.isNotEmpty(patientses)) { + if (CollectionUtils.isNotEmpty(patientses) && patientses.size()>0) { patient = patientses.get(0); - System.out.println("4----patient.getId()--" +patient.getId()); + System.out.println("4.1----patient.getId()--" +patient.getId()); } else if (StringUtils.isNotEmpty(allFm.getNAME()) && StringUtils.isNotEmpty(allFm.getBABY_DELIVERY_TIME()) @@ -344,12 +402,14 @@ public class LcfyFmService implements IlcFyFmService { && StringUtils.isNotEmpty(allFm.getIDCARD()) && StringUtils.isNotEmpty(allFm.getNAME()) && CollectionUtils.isNotEmpty(users) + && CollectionUtils.isEmpty(patientses) ) { + //20201230 半年后把这个注释了,不在添加 patient = addPatients(users, allFm); - System.out.println("4.1----patient.getId()--" +patient.getId()); + System.out.println("4.2----patient.getId()--" +patient.getId()); } - if (patient != null) { + if (patient != null && StringUtils.isNotEmpty(patient.getId())) { System.out.println("5-----------"); if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) { @@ -389,11 +449,12 @@ public class LcfyFmService implements IlcFyFmService { map.put("three", map3); } - /* int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数 + if (StringUtils.isNotEmpty(allFm.getTOTAL_PROCESS())){ + int hProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())/60;//总产程小时数 int mProcess = Integer.parseInt(allFm.getTOTAL_PROCESS())%60;//总产程分钟数 totalMap.put("h",String.valueOf(hProcess)); - totalMap.put("m",String.valueOf(mProcess));*/ - + totalMap.put("m",String.valueOf(mProcess)); + } deliverAddRequest.setProdprocess(map); deliverAddRequest.setTotalprocess(totalMap); System.out.println("6----------" + allFm.getDELIVER_DOCTOR()); @@ -499,10 +560,10 @@ public class LcfyFmService implements IlcFyFmService { baby.setDeformity((allFm.getBABY_DEFORMITY() == null ? 0 : 1)); //畸形 0非畸形 1畸形 - /* String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT()=="1"?"活产":""; + String baby_Pregnancy_Out = allFm.getBABY_PREGNANCY_OUT()=="1"?"活产":""; if(baby_Pregnancy_Out!=null && StringUtils.isNotEmpty(baby_Pregnancy_Out)){ baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局 - }*/ + } System.out.println("7-------------" + allFm.getBABY_PREGNANCY_OUT() == "1" ? "活产" : ""); baby.setPregnancyOut(RenShenJieJuEnums.getIdByName("活产")); // 妊娠结局 @@ -514,7 +575,7 @@ public class LcfyFmService implements IlcFyFmService { } } - if (patient != null && CollectionUtils.isNotEmpty(babies)) { + if (patient != null && StringUtils.isNotEmpty(patient.getId()) && CollectionUtils.isNotEmpty(babies)) { deliverAddRequest.setBabies(babies); deliverAddRequest.setFmHospital(HOSPITALID); //设置为临城 ExceptionUtils.catchException("deliverAddRequest===" + deliverAddRequest); @@ -535,7 +596,10 @@ public class LcfyFmService implements IlcFyFmService { try { PersonModel pmodel = new PersonModel(); pmodel.setName(allFm.getNAME()); - pmodel.setBirth(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); + if(allFm.getIDCARD().length() == 18){ + String birthstr = allFm.getIDCARD().substring(6, 14); + pmodel.setBirth(DateUtil.parseYYYYMMDD(birthstr)); + } pmodel.setPhone(allFm.getPHONE()); pmodel.setCardNo(allFm.getIDCARD()); pmodel.setType(3); @@ -549,11 +613,15 @@ public class LcfyFmService implements IlcFyFmService { pat1.setUsername(allFm.getNAME()); pat1.setPcerteTypeId(""); pat1.setCardNo(allFm.getIDCARD()); - pat1.setBirth(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); + if(StringUtils.isNotEmpty(allFm.getIDCARD()) && allFm.getIDCARD().length() == 18){ + String birthstr = allFm.getIDCARD().substring(6, 14); + pat1.setBirth(DateUtil.parseYYYYMMDD(birthstr)); + } + if(StringUtils.getAgeByCertId(allFm.getIDCARD()) != 0){ + pat1.setAge(StringUtils.getAgeByCertId(allFm.getIDCARD())); + } pat1.setPhone(allFm.getPHONE()); pat1.setFmDate(DateUtil.parseYMD(allFm.getBABY_DELIVERY_TIME())); -// pat1.setServiceStatus(request.getServiceStatus()); -// pat1.setServiceType(request.getServiceType()); pat1.setHospitalId(HOSPITALID); pat1.setBookbuildingDate(new Date()); pat1.setYn(YnEnums.YES.getId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java index 5d9df2f..ad79ce5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java @@ -811,8 +811,10 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { if (Objects.equals(STATUS_TYPE_TEMPORARY_DOCUMENT, statusType)) { // 新增数据 Future> listFuture = service.submit(new BabyAfterVisitStatisticsModelWork(models, mongoTemplate, screenMapper, false)); - List statisticsModels = listFuture.get(); - mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); + if(listFuture != null){//空指针异常处理 + List statisticsModels = listFuture.get(); + mongoTemplate.insert(statisticsModels, BabyAfterVisitStatisticsModel.class); + } } // 更新儿保数量 if (Objects.equals(STATUS_TYPE_CHECK, statusType)) {