diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java index 465b9b2..f2419a0 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyFmService.java @@ -111,25 +111,15 @@ public class QhdfyFmService { babyMap.put("1", b5); babyMap.put("0", b6); } + public void fmTimerWork() { - /* SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date end = new Date(); Date start = new Date(end.getTime() - 1000 * 60 * 60); String startStr = fmt.format(start); String endStr = fmt.format(end); System.out.println("start=" + startStr + "end=" + endStr); - queryFmPatient(startStr, endStr, null);*/ - - Date dNow = new Date(); - Date dBefore = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(dNow); - calendar.add(Calendar.DAY_OF_MONTH, -1); - dBefore = calendar.getTime(); //得到前一天的时间 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); - String startStr = sdf.format(dBefore); - startStr = startStr+" 00:00:00"; - String endStr = startStr.substring(0,10)+" 23:59:59"; +// queryFmPatient(startStr, endStr, null); queryFmPatientPolyembryony(startStr, endStr, null); } @@ -663,23 +653,33 @@ public class QhdfyFmService { String cloumns = getPolyembryonyStr(); try { - String sql = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start + String sql = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start + "', 120) and CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) <= CONVERT(DATETIME,'" + end + "', 120) and JSZ IS NOT NULL AND SC IS NOT NULL AND TZ IS NOT NULL AND YFZ IS NOT NULL AND SH IS NOT NULL AND CCQK IS NOT NULL AND CCQK <> '' "; if (StringUtils.isNotEmpty(syxh)) { - sql += " and SYXH= " + syxh ; + sql += " and SYXH= " + syxh; } - - System.out.println("0==========="+sql); List list = queryRunner.query(conn, sql, new BeanListHandler(FmItem.class)); if (CollectionUtils.isNotEmpty(list)) { for (FmItem item : list) { - try { - if (!("活产".equals(item.getCcqk()) || "死胎".equals(item.getCcqk()))) { + String sql1 = "select " + cloumns + " from JHMK_FMJL_LYMS where CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) > CONVERT(DATETIME,'" + start + + "', 120) and CONVERT(DATETIME,left(JLRQ,8)+' '+RIGHT(JLRQ,8),20) <= CONVERT(DATETIME,'" + end + + "', 120) and JSZ IS NOT NULL AND SC IS NOT NULL AND TZ IS NOT NULL AND YFZ IS NOT NULL AND SH IS NOT NULL AND CCQK IS NOT NULL AND CCQK <> '' "; + + if (StringUtils.isNotEmpty(item.getSyxh())) { + sql1 += " and SYXH= " + item.getSyxh(); + } + List list1 = queryRunner.query(conn, sql1, new BeanListHandler(FmItem.class)); + MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest(); + setDekuverAddRequest(item, deliverAddRequest);//固定参数 + Users users1 = null; + List babies = new ArrayList<>(); + for (int i = 0; i < list1.size(); i++) { + if (!("活产".equals(list1.get(i).getCcqk()) || "死胎".equals(list1.get(i).getCcqk()))) { continue; } - String dueDateStr = item.getSsrq(); + String dueDateStr = list1.get(i).getSsrq(); if (!StringUtils.isNotEmpty(dueDateStr)) { continue; } @@ -692,18 +692,17 @@ public class QhdfyFmService { Date dueTime = null; try { - dueTime = fmt.parse(item.getCsrq()); + dueTime = fmt.parse(list1.get(i).getCsrq()); } catch (Exception e) { - dueTime = fmt2.parse(item.getCsrq()); + dueTime = fmt2.parse(list1.get(i).getCsrq()); } - - FmPatInfo patInfo = getFmPatInfoById(item.getSyxh()); + FmPatInfo patInfo = getFmPatInfoById(list1.get(i).getSyxh()); if (patInfo != null && (StringUtils.isNotEmpty(patInfo.getPhone()) || StringUtils.isNotEmpty(patInfo.getCardNo()))) { PatientsQuery query = new PatientsQuery(); query.setYn(YnEnums.YES.getId()); query.setDesc(" desc"); query.setSort(" created "); - //query.setType(1); //孕妇 + query.setType(1); //孕妇 query.setDueStatus(0); //未终止妊娠 String[] strs = new String[]{patInfo.getPhone(), patInfo.getCardNo()}; query.setPc(strs); @@ -711,7 +710,7 @@ public class QhdfyFmService { if (CollectionUtils.isNotEmpty(patientses)) { Patients patient = patientses.get(0); UsersQuery usersQuery = new UsersQuery(); - usersQuery.setName(item.getJsz()); + usersQuery.setName(list1.get(i).getJsz()); usersQuery.setYn(YnEnums.YES.getId()); usersQuery.setOrgId(216); List users = usersService.queryUsers(usersQuery); @@ -719,10 +718,9 @@ public class QhdfyFmService { usersQuery.setName("产房"); users = usersService.queryUsers(usersQuery); } - if (CollectionUtils.isNotEmpty(users) && users.get(0).getId() != null) { - MatDeliverAddRequest deliverAddRequest = new MatDeliverAddRequest(); - if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(item.getSsrq())) { + users1 = users.get(0); + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(list1.get(i).getSsrq())) { continue; } deliverAddRequest.setDeliverDoctor(users.get(0).getId() + ""); @@ -731,114 +729,32 @@ public class QhdfyFmService { deliverAddRequest.setPid(patient.getPid()); deliverAddRequest.setOperationCause("-"); String week = ""; - if (StringUtils.isNotEmpty(item.getRc())) { - week = item.getRc() + "周"; - if (StringUtils.isNotEmpty(item.getRc()) && StringUtils.isNotEmpty(item.getJts())) { - week += item.getJts() + "天"; + if (StringUtils.isNotEmpty(list1.get(i).getRc())) { + week = list1.get(i).getRc() + "周"; + if (StringUtils.isNotEmpty(list1.get(i).getRc()) && StringUtils.isNotEmpty(list1.get(i).getJts())) { + week += list1.get(i).getJts() + "天"; } deliverAddRequest.setDueWeek(week); } - deliverAddRequest.setTireNumber(1);// 胎数 - deliverAddRequest.setPlacenta("1");// 胎盘 - deliverAddRequest.setFmType("1"); //默认住院分娩 - - //会阴撕裂 - if ("完好".equals(item.getHyqk()) || "无".equals(item.getHyqk())) { - deliverAddRequest.setPerinealCondition("full"); - } else if ("会阴切开".equals(item.getHyqk()) || "侧切".equals(item.getHyqk())) { - deliverAddRequest.setPerinealCondition("split"); - } - if ("一度裂伤".equals(item.getHyqk())) { - deliverAddRequest.setSiLielevel(1); - } else if ("二度裂伤".equals(item.getHyqk())) { - deliverAddRequest.setSiLielevel(2); - } else if ("三度裂伤".equals(item.getHyqk())) { - deliverAddRequest.setSiLielevel(3); - } - if (StringUtils.isNotEmpty(item.getChexxsxl())) { - deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getChexxsxl())); - } - //分娩方式 - Map deliveryMode = new HashMap(); - String fmfs = ""; - if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) { - fmfs = FmTypeEnums.O1.getId(); - } else { - fmfs = FmTypeEnums.O.getId(); - } - deliveryMode.put("fmfs", fmfs); - deliverAddRequest.setDeliveryMode(deliveryMode); - - //胎盘信息 - List extPlacentas = new ArrayList<>(); - MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); - String tpmcType = ""; //胎盘娩出方式 - if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) { - tpmcType = TpmcTypeEnums.O2.getId(); - } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) { - tpmcType = TpmcTypeEnums.O.getId(); - } - extPlacenta.setTpmcType(tpmcType); - extPlacentas.add(extPlacenta); - deliverAddRequest.setExtPlacentas(extPlacentas); - - //当前儿童 - List babies = new ArrayList<>(); - MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); - Map as = new HashMap<>(); - as.put("pf1", item.getYfz()); - as.put("pf5", item.getWfz()); - as.put("pf10", item.getSfz()); - baby.setApgarScore(as); - baby.setBabyGender("男".equals(item.getYexb()) ? "1" : "0"); - baby.setBabyHeight(item.getSc());//新生儿生长 - baby.setBabyWeight(item.getTz());//新生儿重量 - baby.setDeformity("无".equals(item.getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 - baby.setAsphyxiaM(item.getZx()); //窒息分钟 - baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(item.getCcqk())); // 妊娠结局 - baby.setDueTime(fmt1.format(dueTime));//分娩时间 - babies.add(baby); - deliverAddRequest.setBabies(babies); - - deliverAddRequest.setFmHospital("216"); //设置为秦皇岛分娩医院 - - /* - 查询是否存在分娩信息,存在就只更新baby - */ - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setParentId(deliverAddRequest.getParentId()); - matDeliverQuery.setYn(YnEnums.YES.getId()); - List list2 = matDeliverService.query(matDeliverQuery); - if (CollectionUtils.isNotEmpty(list2)) { - MaternalDeliverModel maternalDeliverModel = list2.get(0); - deliverAddRequest.setId(maternalDeliverModel.getId()); - - //前面儿童分娩信息遍历添加到这次儿童信息,通过id使用更新分娩信息 - List baby1 = maternalDeliverModel.getBaby(); - for (int i = 0; i map = new HashMap(); - baby11.setApgarScore(gson.fromJson(baby1.get(i).getApgarScore(), map.getClass())); - } catch (JsonSyntaxException e) { - e.printStackTrace(); - } - baby11.setBabyGender(baby1.get(i).getBabyGender()); - baby11.setBabyHeight(baby1.get(i).getBabyHeight());//新生儿生长 - baby11.setBabyWeight(baby1.get(i).getBabyWeight());//新生儿重量 - baby11.setDeformity(baby1.get(i).getDeformity()); //畸形 0非畸形 1畸形 - baby11.setAsphyxiaM(baby1.get(i).getAsphyxiaM()); //窒息分钟 - baby11.setPregnancyOut(baby1.get(i).getPregnancyOut()); // 妊娠结局 - baby11.setDueTime(baby1.get(i).getDueTime());//分娩时间 - babies.add(baby11); - } - } - - matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users.get(0).getId()); - deleteFmHistoryRecord(item.getSyxh()); + } else { + continue; } + deliverAddRequest.setTireNumber(i + 1);// 胎数 + //当前儿童 + MatDeliverAddRequest.Baby baby = new MatDeliverAddRequest.Baby(); + Map as = new HashMap<>(); + as.put("pf1", list1.get(i).getYfz()); + as.put("pf5", list1.get(i).getWfz()); + as.put("pf10", list1.get(i).getSfz()); + baby.setApgarScore(as); + baby.setBabyGender("男".equals(list1.get(i).getYexb()) ? "1" : "0"); + baby.setBabyHeight(list1.get(i).getSc());//新生儿生长 + baby.setBabyWeight(list1.get(i).getTz());//新生儿重量 + baby.setDeformity("无".equals(list1.get(i).getJx()) ? 0 : 1); //畸形 0非畸形 1畸形 + baby.setAsphyxiaM(list1.get(i).getZx()); //窒息分钟 + baby.setPregnancyOut(RenShenJieJuEnums.getIdByName(list1.get(i).getCcqk())); // 妊娠结局 + baby.setDueTime(fmt1.format(dueTime));//分娩时间 + babies.add(baby); } else { //秦皇岛服务器有分娩记录,但是在这边系统没有对于孕妇 取分娩信息建档儿童数据 //由于秦皇岛打印出生医学证明的时候建档调用了该方法怕导致重复创建儿童 所以注释掉 @@ -851,16 +767,17 @@ public class QhdfyFmService { saveFmrecord(item.getSyxh(), format.parse(item.getJlrq())); } - } catch (Exception e) { - ExceptionUtils.catchException(e, "数据异常"); - continue; } - - + deliverAddRequest.setBabies(babies); + if (users1 != null && users1.getId() != null) { + matDeliverFacade.addOrUpdateMatDeliver(deliverAddRequest, users1.getId()); + deleteFmHistoryRecord(item.getSyxh()); + } + continue; //执行一次 } } - }catch (SQLException e) { + } catch (SQLException e) { ExceptionUtils.catchException(e, "sql执行异常"); e.printStackTrace(); } catch (Exception e) { @@ -871,6 +788,51 @@ public class QhdfyFmService { } } + private void setDekuverAddRequest(FmItem item, MatDeliverAddRequest deliverAddRequest) { + //会阴撕裂 + if ("完好".equals(item.getHyqk()) || "无".equals(item.getHyqk())) { + deliverAddRequest.setPerinealCondition("full"); + } else if ("会阴切开".equals(item.getHyqk()) || "侧切".equals(item.getHyqk())) { + deliverAddRequest.setPerinealCondition("split"); + } + if ("一度裂伤".equals(item.getHyqk())) { + deliverAddRequest.setSiLielevel(1); + } else if ("二度裂伤".equals(item.getHyqk())) { + deliverAddRequest.setSiLielevel(2); + } else if ("三度裂伤".equals(item.getHyqk())) { + deliverAddRequest.setSiLielevel(3); + } + if (StringUtils.isNotEmpty(item.getChexxsxl())) { + deliverAddRequest.settHloseBloodL(Double.parseDouble(item.getChexxsxl())); + } + //分娩方式 + Map deliveryMode = new HashMap(); + String fmfs = ""; + if (item.getFmfs() != null && "剖宫产".equals(item.getFmfs())) { + fmfs = FmTypeEnums.O1.getId(); + } else { + fmfs = FmTypeEnums.O.getId(); + } + deliveryMode.put("fmfs", fmfs); + deliverAddRequest.setDeliveryMode(deliveryMode); + + //胎盘信息 + List extPlacentas = new ArrayList<>(); + MaternalDeliverModel.ExtPlacenta extPlacenta = new MaternalDeliverModel.ExtPlacenta(); + String tpmcType = ""; //胎盘娩出方式 + if ("手术产".equals(item.getTpmcfs()) || "手取胎盘".equals(item.getTpmcfs())) { + tpmcType = TpmcTypeEnums.O2.getId(); + } else if ("自然产出".equals(item.getTpmcfs()) || "自然娩出".equals(item.getTpmcfs())) { + tpmcType = TpmcTypeEnums.O.getId(); + } + extPlacenta.setTpmcType(tpmcType); + extPlacentas.add(extPlacenta); + deliverAddRequest.setExtPlacentas(extPlacentas); + deliverAddRequest.setPlacenta("1");// 胎盘 + deliverAddRequest.setFmType("1"); //默认住院分娩 + deliverAddRequest.setFmHospital("216"); //设置为秦皇岛分娩医院 + } + private String getPolyembryonyStr() { return " SYXH as syxh,\n" + " YEXH as yexh,\n" +