diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java index 45645ff..3378dac 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/JdbcUtil.java @@ -1,5 +1,6 @@ package com.lyms.platform.biz; +import com.google.common.io.LittleEndianDataInputStream; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; @@ -30,12 +31,12 @@ import java.util.Date; */ public class JdbcUtil { - private static List> employees = new ArrayList<>(); - private static List> oracleHosps = new ArrayList<>(); + private static Map employees = new HashMap<>(); + private static Map oracleHosps = new HashMap<>(); private static List> users = new ArrayList<>(); private static List> mysqlHosps = new ArrayList<>(); - private static List> datacontents = new ArrayList<>(); - private static List> basicConfigs = new ArrayList<>(); + private static Map datacontents = new HashMap<>(); + private static Map basicConfigs = new HashMap<>(); @@ -44,10 +45,7 @@ public class JdbcUtil { List> listEmp = getListDataBySql("select e.e_name,e.e_id from mommy_employee e"); for(Map map : listEmp) { - Map emap = new HashMap<>(); - emap.put("id",getString(map.get("E_ID"))); - emap.put("name",getString(map.get("E_NAME"))); - employees.add(emap); + employees.put(getString(map.get("E_ID")), getString(map.get("E_NAME"))); } System.out.println("employees------"+employees.size()); @@ -56,25 +54,20 @@ public class JdbcUtil { List> datacontentsList = getListDataBySql("select dc_name,dc_id from plat_datacontent "); for(Map map : datacontentsList) { - Map data = new HashMap<>(); - data.put("id",getString(map.get("DC_ID"))); - data.put("name",getString(map.get("DC_NAME"))); - datacontents.add(data); + datacontents.put(getString(map.get("DC_ID")), getString(map.get("DC_NAME"))); } System.out.println("datacontents------"+datacontents.size()); + List> orcleHospsList = getListDataBySql("select h_name,h_id from plat_hospital h"); for(Map map : orcleHospsList) { - Map data = new HashMap<>(); - data.put("id",getString(map.get("H_ID"))); - data.put("name",getString(map.get("H_NAME"))); - oracleHosps.add(data); + oracleHosps.put(getString(map.get("H_ID")), getString(map.get("H_NAME"))); } System.out.println("oracleHosps------"+oracleHosps.size()); - List> usersList = getMysqlListDataBySql("select id,name from users"); + List> usersList = getMysqlListDataBySql("select id,name from users where org_id = 216 "); for(Map map : usersList) { Map data = new HashMap<>(); @@ -84,7 +77,7 @@ public class JdbcUtil { } System.out.println("users------"+users.size()); - List> mysqlHospsList = getMysqlListDataBySql("select id,name from organization"); + List> mysqlHospsList = getMysqlListDataBySql("select id,name from organization "); for(Map map : mysqlHospsList) { Map data = new HashMap<>(); @@ -97,11 +90,7 @@ public class JdbcUtil { List> oracleBasicList = getListDataBySql("select id,name,parentId from lyms_basicconfig "); for(Map map : oracleBasicList) { - Map data = new HashMap<>(); - data.put("id",getString(map.get("ID"))); - data.put("name",getString(map.get("NAME"))); - data.put("parentId",getString(map.get("PARENTID"))); - basicConfigs.add(data); + basicConfigs.put(getString(map.get("NAME"))+getString(map.get("PARENTID")),getString(map.get("ID"))); } System.out.println("basicConfigs------"+basicConfigs.size()); @@ -111,33 +100,21 @@ public class JdbcUtil { public static String getDataContentByById(String id) { - for (Map map : datacontents) - { - if (StringUtils.isNotEmpty(map.get("id")) && map.get("id").equals(map.get(id))) - { - return map.get("name"); - } - } - return null; + return datacontents.get(id); + } public static String getPatHosptalById(String id) { - for (Map map : oracleHosps) - { - if (StringUtils.isNotEmpty(map.get("id")) && map.get("id").equals(map.get(id))) - { - return map.get("name"); - } - } - return null; + return oracleHosps.get(id); + } public static String getOrgIdByName(String name) { - for (Map map : oracleHosps) + for (Map map : mysqlHosps) { if (StringUtils.isNotEmpty(map.get("name")) && map.get("name").equals(map.get(name))) { @@ -148,20 +125,13 @@ public class JdbcUtil { } public static String getEmpNameById(String id) { - for (Map map : oracleHosps) - { - if (StringUtils.isNotEmpty(map.get("id")) && map.get("id").equals(map.get(id))) - { - return map.get("name"); - } - } - return null; + return employees.get(id); } public static String getUserIdByName(String name) { - for (Map map : oracleHosps) + for (Map map : users) { if (StringUtils.isNotEmpty(map.get("name")) && map.get("name").equals(map.get(name))) { @@ -169,16 +139,11 @@ public class JdbcUtil { } } return null; - } public static String getBasicConfigByNameAndParentId(String name,String parentId) + } + public static String getBasicConfigByNameAndParentId(String name,String parentId) { - for (Map map : basicConfigs) - { - if (StringUtils.isNotEmpty(map.get("parentId")) && StringUtils.isNotEmpty(map.get("name")) && map.get("name").equals(map.get(name)) && map.get("parentId").equals(parentId)) - { - return map.get("id"); - } - } - return null; + return basicConfigs.get(name+parentId); + } public static Connection getOracleConnection() { @@ -363,362 +328,382 @@ public class JdbcUtil { } - public static void syncPatientData(String hospitalId,MongoTemplate mongoTemplate,int start,int end) - { + private static class Worker extends Thread{ -// String sql = " SELECT * FROM ( SELECT A.*, ROWNUM RN FROM " + -// "(select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday,p_name,floor((trunc(sysdate) - trunc(mp.P_LASTMENSTRUALPERIOD)+1) /7) as weeks from MOMMY_PATIENT mp left join Plat_Patient pp" + -// " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '" + hospitalId + "' order by mp.p_lastmenstrualperiod desc ) A WHERE ROWNUM <= "+end+" ) WHERE RN >= "+start; - String sql = "select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday,p_name,floor((trunc(sysdate) - trunc(mp.P_LASTMENSTRUALPERIOD)+1) /7) as weeks from MOMMY_PATIENT mp left join Plat_Patient pp" + - " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '" + hospitalId + "' order by mp.p_lastmenstrualperiod desc " ; - List> list = getListDataBySql(sql); - System.out.println(list.size()+"---------------------------------"); - System.out.println(sql); + private List> list; + MongoTemplate mongoTemplate; + public Worker(List> list,MongoTemplate mongoTemplate){ + this.list = list; + this.mongoTemplate = mongoTemplate; + } + @Override + public void run() { for (Map map : list) { try { - Patients patients = new Patients(); - PersonModel person = new PersonModel(); - int type = 1; - Integer weeks = getInteger(map.get("WEEKS")); - List> chanList = null; - if (StringUtils.isNotEmpty(getString(map.get("P_ID")))) { - chanList = getListDataBySql("select * from MOMMY_PREGDELIVERYRECORD p where p.pdr_patientid = '" + getString(map.get("p_id")) + "' order by p.PDR_CHILDBIRTHDAY desc "); - } - if (weeks != null && weeks >= 42 || CollectionUtils.isNotEmpty(chanList)) { - Date fmDate = null; - if (CollectionUtils.isNotEmpty(chanList)) { - fmDate = getDate(chanList.get(0).get("PDR_CHILDBIRTHDAY")); - } else { - fmDate = DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7); + Patients patients = new Patients(); + PersonModel person = new PersonModel(); + int type = 1; + Integer weeks = getInteger(map.get("WEEKS")); + List> chanList = null; + if (StringUtils.isNotEmpty(getString(map.get("P_ID")))) { + chanList = getListDataBySql("select * from MOMMY_PREGDELIVERYRECORD p where p.pdr_patientid = '" + getString(map.get("p_id")) + "' order by p.PDR_CHILDBIRTHDAY desc "); } - patients.setFmDate(fmDate); - - type = 3; - } - if (map.get("P_LASTMENSTRUALPERIOD")== null || "".equals(map.get("P_LASTMENSTRUALPERIOD"))) - { - continue; - } + if (weeks != null && weeks >= 42 || CollectionUtils.isNotEmpty(chanList)) { + Date fmDate = null; + if (CollectionUtils.isNotEmpty(chanList)) { + fmDate = getDate(chanList.get(0).get("PDR_CHILDBIRTHDAY")); + } else { + fmDate = DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7); + } + patients.setFmDate(fmDate); - patients.setDueDate(DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7)); - person.setCreated(new Date()); - - - person.setType(type); - person.setYn(YnEnums.YES.getId()); - person.setBirth(getDate(map.get("P_BIRTHDAY"))); - person.setCardNo(getString(map.get("P_CARDNO"))); - person.setName(getString(map.get("P_NAME"))); - person.setPhone(getString(map.get("P_MOBILEPHONE"))); - person.setCreated(getDate(map.get("P_FILINGTIME"))); - person.setModified(getDate(map.get("P_OPERTIME"))); - mongoTemplate.save(person); - - - patients.setPid(person.getId()); - patients.setId(String.valueOf(map.get("PID"))); - patients.setYn(getInteger(map.get("P_ISVALID"))); //是否有效 - patients.setBuildType(0); - patients.setBirth(getDate(map.get("P_BIRTHDAY"))); - patients.setCreated(getDate(map.get("P_FILINGTIME"))); - patients.setModified(getDate(map.get("P_OPERTIME"))); - patients.setDueStatus(0); - - if (StringUtils.isNotEmpty(getString(map.get("P_CARDNO")))) { - String cardType = getString(map.get("P_CARDTYPE")); //证件类型 - String cardTypeName = getDataContentByById(cardType); - //String cardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + cardType + "'")); - if (cardTypeName != null && !"".equals(cardTypeName)) { - String id = getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID); - patients.setPcerteTypeId(id); + type = 3; + } + if (map.get("P_LASTMENSTRUALPERIOD") == null || "".equals(map.get("P_LASTMENSTRUALPERIOD"))) { + continue; } - patients.setCardNo(getString(map.get("P_CARDNO"))); //证件号码 - } else { - patients.setCardNo(getString(map.get("P_MOBILEPHONE"))); //证件号码 - patients.setPcerteTypeId("57e0a21c0cf209b410a82cda"); - } + patients.setDueDate(DateUtil.addDay(getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7)); + person.setCreated(new Date()); + + + person.setType(type); + person.setYn(YnEnums.YES.getId()); + person.setBirth(getDate(map.get("P_BIRTHDAY"))); + person.setCardNo(getString(map.get("P_CARDNO"))); + person.setName(getString(map.get("P_NAME"))); + person.setPhone(getString(map.get("P_MOBILEPHONE"))); + person.setCreated(getDate(map.get("P_FILINGTIME"))); + person.setModified(getDate(map.get("P_OPERTIME"))); + mongoTemplate.save(person); + + + patients.setPid(person.getId()); + patients.setId(String.valueOf(map.get("PID"))); + patients.setYn(getInteger(map.get("P_ISVALID"))); //是否有效 + patients.setBuildType(0); + patients.setBirth(getDate(map.get("P_BIRTHDAY"))); + patients.setCreated(getDate(map.get("P_FILINGTIME"))); + patients.setModified(getDate(map.get("P_OPERTIME"))); + patients.setDueStatus(0); + + if (StringUtils.isNotEmpty(getString(map.get("P_CARDNO")))) { + String cardType = getString(map.get("P_CARDTYPE")); //证件类型 + String cardTypeName = getDataContentByById(cardType); + //String cardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + cardType + "'")); + if (cardTypeName != null && !"".equals(cardTypeName)) { + String id = getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setPcerteTypeId(id); + } + + patients.setCardNo(getString(map.get("P_CARDNO"))); //证件号码 + } else { + patients.setCardNo(getString(map.get("P_MOBILEPHONE"))); //证件号码 + patients.setPcerteTypeId("57e0a21c0cf209b410a82cda"); + } - //---------------------居住地址 - String proviceId = getString(map.get("P_ADDRESSPROVINCE")); - if (proviceId != null && !"".equals(proviceId)) { - String juzhudiProviceName = getOracleBasicConfig(proviceId); - String id1 = getMongoBasicConfig(juzhudiProviceName, SystemConfig.CHINA_BASIC_ID); - patients.setProvinceId(id1); //居住地省 - - String cityId = getString(map.get("P_ADDRESSCITY")); - if (cityId != null && !"".equals(cityId)) { - String juzhudiCityName = getOracleBasicConfig(cityId); - String id2 = getMongoBasicConfig(juzhudiCityName, id1); - patients.setCityId(id2); //居住地市 - String areaId = getString(getString(map.get("P_ADDRESSCOUNTY"))); - if (areaId != null && !"".equals(areaId)) { - String juzhudiAreaName = getOracleBasicConfig(areaId); - String id3 = getMongoBasicConfig(juzhudiAreaName, id2); - patients.setAreaId(id3); //居住区 - - String streetId = getString(map.get("P_TOWNSHIP")); - if (streetId != null && !"".equals(streetId)) { - String juzhudiStreetName = getOracleBasicConfig(streetId); - String id4 = getMongoBasicConfig(juzhudiStreetName, id3); - patients.setStreetId(id4); //街道 镇 + //---------------------居住地址 + String proviceId = getString(map.get("P_ADDRESSPROVINCE")); + if (proviceId != null && !"".equals(proviceId)) { + String juzhudiProviceName = getOracleBasicConfig(proviceId); + String id1 = getMongoBasicConfig(juzhudiProviceName, SystemConfig.CHINA_BASIC_ID); + patients.setProvinceId(id1); //居住地省 + + String cityId = getString(map.get("P_ADDRESSCITY")); + if (cityId != null && !"".equals(cityId)) { + String juzhudiCityName = getOracleBasicConfig(cityId); + String id2 = getMongoBasicConfig(juzhudiCityName, id1); + patients.setCityId(id2); //居住地市 + String areaId = getString(getString(map.get("P_ADDRESSCOUNTY"))); + if (areaId != null && !"".equals(areaId)) { + String juzhudiAreaName = getOracleBasicConfig(areaId); + String id3 = getMongoBasicConfig(juzhudiAreaName, id2); + patients.setAreaId(id3); //居住区 + + String streetId = getString(map.get("P_TOWNSHIP")); + if (streetId != null && !"".equals(streetId)) { + String juzhudiStreetName = getOracleBasicConfig(streetId); + String id4 = getMongoBasicConfig(juzhudiStreetName, id3); + patients.setStreetId(id4); //街道 镇 + } } } } - } - patients.setAddress(getString(map.get("P_ADDRESSSTREET"))); // 详细地址 + patients.setAddress(getString(map.get("P_ADDRESSSTREET"))); // 详细地址 - //---------------------居住地址 + //---------------------居住地址 - String pprofessionTypeId = getString(map.get("P_OCCUPATIONID")); - if (pprofessionTypeId != null && !"".equals(pprofessionTypeId)) { - String pprofessionTypeName = getOracleBasicConfig(pprofessionTypeId); - String id = getMongoBasicConfig(pprofessionTypeName, SystemConfig.PROFESSION_TYPE_ID); - patients.setPprofessionTypeId(id); // 职业 - } + String pprofessionTypeId = getString(map.get("P_OCCUPATIONID")); + if (pprofessionTypeId != null && !"".equals(pprofessionTypeId)) { + String pprofessionTypeName = getOracleBasicConfig(pprofessionTypeId); + String id = getMongoBasicConfig(pprofessionTypeName, SystemConfig.PROFESSION_TYPE_ID); + patients.setPprofessionTypeId(id); // 职业 + } - patients.setPhone(getString(map.get("P_MOBILEPHONE"))); //孕妇手机号码 - patients.setUsername(getString(map.get("P_NAME"))); //孕妇姓名 - patients.setBookbuildingDate(getDate(map.get("P_FILINGTIME"))); //建档日期 - patients.setLastMenses(getDate(map.get("P_LASTMENSTRUALPERIOD"))); //末次月经 + patients.setPhone(getString(map.get("P_MOBILEPHONE"))); //孕妇手机号码 + patients.setUsername(getString(map.get("P_NAME"))); //孕妇姓名 + patients.setBookbuildingDate(getDate(map.get("P_FILINGTIME"))); //建档日期 + patients.setLastMenses(getDate(map.get("P_LASTMENSTRUALPERIOD"))); //末次月经 - String buildHospitalId = getString(map.get("P_HOSPITALID")); //医院ID + String buildHospitalId = getString(map.get("P_HOSPITALID")); //医院ID - Integer P_RESIDETYPE = getInteger(map.get("P_RESIDETYPE")); //居住类别 - if (P_RESIDETYPE != null && P_RESIDETYPE == 0) { - patients.setPliveTypeId("57624bf90cf23d4631523e9e"); - } else if (P_RESIDETYPE != null && (P_RESIDETYPE == 1 || P_RESIDETYPE == 2)) { - patients.setPliveTypeId("57624c090cf23d4631523e9f"); - } + Integer P_RESIDETYPE = getInteger(map.get("P_RESIDETYPE")); //居住类别 + if (P_RESIDETYPE != null && P_RESIDETYPE == 0) { + patients.setPliveTypeId("57624bf90cf23d4631523e9e"); + } else if (P_RESIDETYPE != null && (P_RESIDETYPE == 1 || P_RESIDETYPE == 2)) { + patients.setPliveTypeId("57624c090cf23d4631523e9f"); + } - Integer P_ACCOUNTTYPE = getInteger(map.get("P_ACCOUNTTYPE")); //户口类别 - if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 0) { - patients.setPliveTypeId("57624c440cf23d4631523ea1"); - } else if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 1) { - patients.setPliveTypeId("57624c5e0cf23d4631523ea2"); - } + Integer P_ACCOUNTTYPE = getInteger(map.get("P_ACCOUNTTYPE")); //户口类别 + if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 0) { + patients.setPliveTypeId("57624c440cf23d4631523ea1"); + } else if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 1) { + patients.setPliveTypeId("57624c5e0cf23d4631523ea2"); + } - if (buildHospitalId != null && !"".equals(buildHospitalId)) { - //String hname = getString(getOralceSingleObjBySql("select h_name from plat_hospital h where h.h_isvalid=1 and h_id = '" + buildHospitalId + "'")); - String hname = getPatHosptalById(buildHospitalId); - // String id = getString(getMysqlSingleObjBySql("select id from organization where name = '" + hname + "'")); - String id = getOrgIdByName(hname); - patients.setHospitalId(id); - } + if (buildHospitalId != null && !"".equals(buildHospitalId)) { + //String hname = getString(getOralceSingleObjBySql("select h_name from plat_hospital h where h.h_isvalid=1 and h_id = '" + buildHospitalId + "'")); + String hname = getPatHosptalById(buildHospitalId); + // String id = getString(getMysqlSingleObjBySql("select id from organization where name = '" + hname + "'")); + String id = getOrgIdByName(hname); + patients.setHospitalId(id); + } - patients.setType(type); //患者类型 + patients.setType(type); //患者类型 - String doctorId = getString(map.get("P_FILINGOPER")); - if (doctorId != null && !"".equals(doctorId)) { - //String hname = getString(getOralceSingleObjBySql("select e.e_name from mommy_employee e where e.e_id = '" + doctorId + "'")); - String userName = getEmpNameById(doctorId); - //String id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); - String id = getUserIdByName(userName); - patients.setBookbuildingDoctor(id); //建档医生(创建者) - } + String doctorId = getString(map.get("P_FILINGOPER")); + if (doctorId != null && !"".equals(doctorId)) { + //String hname = getString(getOralceSingleObjBySql("select e.e_name from mommy_employee e where e.e_id = '" + doctorId + "'")); + String userName = getEmpNameById(doctorId); + //String id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); + String id = getUserIdByName(userName); + patients.setBookbuildingDoctor(id); //建档医生(创建者) + } - Integer isvip = getInteger(map.get("P_ISVIP")); //vip - if (isvip != null) { - //会员状态 0不是会员 1 是 - if (0 == isvip) { - patients.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); - patients.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); - } else if (1 == isvip) { - patients.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); - patients.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId()); + Integer isvip = getInteger(map.get("P_ISVIP")); //vip + if (isvip != null) { + //会员状态 0不是会员 1 是 + if (0 == isvip) { + patients.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId()); + patients.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId()); + } else if (1 == isvip) { + patients.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); + patients.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId()); + } } - } - String plevel = getString(map.get("P_EDUCATIONLEVEL"));//孕妇文化程度 - if (plevel != null && !"".equals(plevel)) { - String plevelName = getOracleBasicConfig(plevel); - String id = getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); - patients.setPlevelTypeId(id); - } + String plevel = getString(map.get("P_EDUCATIONLEVEL"));//孕妇文化程度 + if (plevel != null && !"".equals(plevel)) { + String plevelName = getOracleBasicConfig(plevel); + String id = getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); + patients.setPlevelTypeId(id); + } - String guoJi = getString(map.get("P_COUNTRY"));//孕妇国籍 - if (guoJi != null && !"".equals(guoJi)) { - String guoJiName = getOracleBasicConfig(guoJi); - String id = getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); - patients.setPcountryId(id); - } + String guoJi = getString(map.get("P_COUNTRY"));//孕妇国籍 + if (guoJi != null && !"".equals(guoJi)) { + String guoJiName = getOracleBasicConfig(guoJi); + String id = getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); + patients.setPcountryId(id); + } - patients.setPworkUnit(getString(map.get("P_UNITWORK")));//孕妇工作单位 + patients.setPworkUnit(getString(map.get("P_UNITWORK")));//孕妇工作单位 - String pnation = getString(map.get("P_NATION")); - if (pnation != null && !"".equals(pnation)) { - String pnationName = getOracleBasicConfig(pnation); - String id = getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); - patients.setPnationId(id); - } + String pnation = getString(map.get("P_NATION")); + if (pnation != null && !"".equals(pnation)) { + String pnationName = getOracleBasicConfig(pnation); + String id = getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); + patients.setPnationId(id); + } - //---------------------户口地址 - String huKouproviceId = getString(map.get("P_RRPROVINCE")); - if (huKouproviceId != null && !"".equals(huKouproviceId)) { - String proviceName = getOracleBasicConfig(huKouproviceId); - String id1 = getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); - patients.setProvinceRegisterId(id1); //户口地省 - - String huKoucityId = getString(map.get("P_RRCITY")); - if (huKoucityId != null && !"".equals(huKoucityId)) { - String cityName = getOracleBasicConfig(huKoucityId); - String id2 = getMongoBasicConfig(cityName, id1); - patients.setCityRegisterId(id2); //户口地市 - - String huKouareaId = getString(getString(map.get("P_RRCOUNTY"))); - if (huKouareaId != null && !"".equals(huKouareaId)) { - String areaName = getOracleBasicConfig(huKouareaId); - String id3 = getMongoBasicConfig(areaName, id2); - patients.setAreaRegisterId(id3); //户口居住区 - - String huKoustreetId = getString(map.get("P_RRTOWNSHIP")); - if (huKoustreetId != null && !"".equals(huKoustreetId)) { - String streetName = getOracleBasicConfig(huKoustreetId); - String id4 = getMongoBasicConfig(streetName, id3); - patients.setStreetRegisterId(id4); //户口街道 镇 + //---------------------户口地址 + String huKouproviceId = getString(map.get("P_RRPROVINCE")); + if (huKouproviceId != null && !"".equals(huKouproviceId)) { + String proviceName = getOracleBasicConfig(huKouproviceId); + String id1 = getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); + patients.setProvinceRegisterId(id1); //户口地省 + + String huKoucityId = getString(map.get("P_RRCITY")); + if (huKoucityId != null && !"".equals(huKoucityId)) { + String cityName = getOracleBasicConfig(huKoucityId); + String id2 = getMongoBasicConfig(cityName, id1); + patients.setCityRegisterId(id2); //户口地市 + + String huKouareaId = getString(getString(map.get("P_RRCOUNTY"))); + if (huKouareaId != null && !"".equals(huKouareaId)) { + String areaName = getOracleBasicConfig(huKouareaId); + String id3 = getMongoBasicConfig(areaName, id2); + patients.setAreaRegisterId(id3); //户口居住区 + + String huKoustreetId = getString(map.get("P_RRTOWNSHIP")); + if (huKoustreetId != null && !"".equals(huKoustreetId)) { + String streetName = getOracleBasicConfig(huKoustreetId); + String id4 = getMongoBasicConfig(streetName, id3); + patients.setStreetRegisterId(id4); //户口街道 镇 + } } - } + } } - } - patients.setAddressRegister(getString(map.get("P_RRSTREET"))); // 详细地址 - - //---------------------户口地址 - - //----------------------产后修养地 - - String chanHouproviceId = getString(map.get("P_POSTPARTUMPROVINCE")); - if (chanHouproviceId != null && !"".equals(chanHouproviceId)) { - String proviceName = getOracleBasicConfig(chanHouproviceId); - String id1 = getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); - patients.setProvincePostRestId(id1); - - String chanhoucityId = getString(map.get("P_POSTPARTUMCITY")); - if (chanhoucityId != null && !"".equals(chanhoucityId)) { - String cityName = getOracleBasicConfig(chanhoucityId); - String id2 = getMongoBasicConfig(cityName, id1); - patients.setCityPostRestId(id2); - - String chanhouareaId = getString(getString(map.get("P_POSTPARTUMCOUNTY"))); - if (chanhouareaId != null && !"".equals(chanhouareaId)) { - String areaName = getOracleBasicConfig(chanhouareaId); - String id3 = getMongoBasicConfig(areaName, id2); - patients.setAreaPostRestId(id3); - - String chanhoustreetId = getString(map.get("P_POSTPARTUMTOWNSHIP")); - if (chanhoustreetId != null && !"".equals(chanhoustreetId)) { - String streetName = getOracleBasicConfig(chanhoustreetId); - String id4 = getMongoBasicConfig(streetName, id3); - patients.setStreetPostRestId(id4); + patients.setAddressRegister(getString(map.get("P_RRSTREET"))); // 详细地址 + + //---------------------户口地址 + + //----------------------产后修养地 + + String chanHouproviceId = getString(map.get("P_POSTPARTUMPROVINCE")); + if (chanHouproviceId != null && !"".equals(chanHouproviceId)) { + String proviceName = getOracleBasicConfig(chanHouproviceId); + String id1 = getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); + patients.setProvincePostRestId(id1); + + String chanhoucityId = getString(map.get("P_POSTPARTUMCITY")); + if (chanhoucityId != null && !"".equals(chanhoucityId)) { + String cityName = getOracleBasicConfig(chanhoucityId); + String id2 = getMongoBasicConfig(cityName, id1); + patients.setCityPostRestId(id2); + + String chanhouareaId = getString(getString(map.get("P_POSTPARTUMCOUNTY"))); + if (chanhouareaId != null && !"".equals(chanhouareaId)) { + String areaName = getOracleBasicConfig(chanhouareaId); + String id3 = getMongoBasicConfig(areaName, id2); + patients.setAreaPostRestId(id3); + + String chanhoustreetId = getString(map.get("P_POSTPARTUMTOWNSHIP")); + if (chanhoustreetId != null && !"".equals(chanhoustreetId)) { + String streetName = getOracleBasicConfig(chanhoustreetId); + String id4 = getMongoBasicConfig(streetName, id3); + patients.setStreetPostRestId(id4); + } } } } - } - patients.setAddressPostRest(getString(map.get("P_POSTPARTUMSTREET"))); // 详细地址 + patients.setAddressPostRest(getString(map.get("P_POSTPARTUMSTREET"))); // 详细地址 - //----------------------产后修养地 + //----------------------产后修养地 - patients.setHusbandName(getString(map.get("P_HUSBANDNAME"))); //丈夫名称 - patients.setHusbandBirth(getDate(map.get("P_HUSBANDBIRTHDAY"))); //丈夫生日 - patients.setHusbandPhone(getString(map.get("P_HUSBANDMOBILEPHONE"))); //丈夫电话 - patients.setHworkUnit(getString(map.get("P_HUSBANDUNITWORK"))); //丈夫工作单位 + patients.setHusbandName(getString(map.get("P_HUSBANDNAME"))); //丈夫名称 + patients.setHusbandBirth(getDate(map.get("P_HUSBANDBIRTHDAY"))); //丈夫生日 + patients.setHusbandPhone(getString(map.get("P_HUSBANDMOBILEPHONE"))); //丈夫电话 + patients.setHworkUnit(getString(map.get("P_HUSBANDUNITWORK"))); //丈夫工作单位 - String hprofessionTypeId = getString(map.get("P_HUSBANDOCCUPATIONID"));// 职业 - if (hprofessionTypeId != null && !"".equals(hprofessionTypeId)) { - String professionTypeName = getOracleBasicConfig(hprofessionTypeId); - String id = getMongoBasicConfig(professionTypeName, SystemConfig.PROFESSION_TYPE_ID); - patients.setHprofessionTypeId(id); - } + String hprofessionTypeId = getString(map.get("P_HUSBANDOCCUPATIONID"));// 职业 + if (hprofessionTypeId != null && !"".equals(hprofessionTypeId)) { + String professionTypeName = getOracleBasicConfig(hprofessionTypeId); + String id = getMongoBasicConfig(professionTypeName, SystemConfig.PROFESSION_TYPE_ID); + patients.setHprofessionTypeId(id); + } - String P_HUSBANDCARDTYPE = getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类 - if (StringUtils.isNotEmpty(P_HUSBANDCARDTYPE)) - { - String hcardTypeName = getDataContentByById(P_HUSBANDCARDTYPE); - if (hcardTypeName != null && !"".equals(hcardTypeName)) { - String id = getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID); - patients.setHcertificateTypeId(id); - } - } - //String hcardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + P_HUSBANDCARDTYPE + "'")); - - patients.setHcertificateNum(getString(map.get("P_HUSBANDCARDNO"))); //证件号码 - - - String hlevel = getString(map.get("P_HUSBANDEDUCATIONLEVEL"));//丈夫文化程度 - if (hlevel != null && !"".equals(hlevel)) { - String plevelName = getOracleBasicConfig(hlevel); - String id = getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); - patients.setHlevelTypeId(id); - } + String P_HUSBANDCARDTYPE = getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类 + if (StringUtils.isNotEmpty(P_HUSBANDCARDTYPE)) { + String hcardTypeName = getDataContentByById(P_HUSBANDCARDTYPE); + if (hcardTypeName != null && !"".equals(hcardTypeName)) { + String id = getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setHcertificateTypeId(id); + } + } + //String hcardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + P_HUSBANDCARDTYPE + "'")); + patients.setHcertificateNum(getString(map.get("P_HUSBANDCARDNO"))); //证件号码 - String hguoji = getString(map.get("P_HUSBANDCOUNTRY"));//丈夫国籍 - if (hguoji != null && !"".equals(hguoji)) { - String guoJiName = getOracleBasicConfig(hguoji); - String id = getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); - patients.setHcountryId(id); - } - String P_HUSBANDNATION = getString(map.get("P_HUSBANDNATION")); //丈夫民族 - if (P_HUSBANDNATION != null && !"".equals(P_HUSBANDNATION)) { - String pnationName = getOracleBasicConfig(P_HUSBANDNATION); - String id = getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); - patients.setHnationId(id); - } + String hlevel = getString(map.get("P_HUSBANDEDUCATIONLEVEL"));//丈夫文化程度 + if (hlevel != null && !"".equals(hlevel)) { + String plevelName = getOracleBasicConfig(hlevel); + String id = getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); + patients.setHlevelTypeId(id); + } + + + String hguoji = getString(map.get("P_HUSBANDCOUNTRY"));//丈夫国籍 + if (hguoji != null && !"".equals(hguoji)) { + String guoJiName = getOracleBasicConfig(hguoji); + String id = getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); + patients.setHcountryId(id); + } - //------丈夫户口所在地 - - String hproviceId = getString(map.get("P_HUSBANDRRPROVINCE")); - if (hproviceId != null && !"".equals(hproviceId)) { - String name = getOracleBasicConfig(hproviceId); - String id1 = getMongoBasicConfig(name, SystemConfig.LIVE_TYPE_ID); - patients.setProvincePostRestId(id1); - - String hcityId = getString(map.get("P_HUSBANDRRCITY")); - if (hcityId != null && !"".equals(hcityId)) { - String nameCity = getOracleBasicConfig(hcityId); - String id2 = getMongoBasicConfig(nameCity, id1); - patients.setCityPostRestId(id2); - - String hareId = getString(getString(map.get("P_HUSBANDRRCOUNTY"))); - if (hareId != null && !"".equals(hareId)) { - String nameArea = getOracleBasicConfig(hareId); - String id3 = getMongoBasicConfig(nameArea, id2); - patients.setAreaPostRestId(id3); - - String hstreetId = getString(map.get("P_HUSBANDRRTOWNSHIP")); - if (hstreetId != null && !"".equals(hstreetId)) { - String nameStreet = getOracleBasicConfig(hstreetId); - String id4 = getMongoBasicConfig(nameStreet, id3); - patients.setStreetPostRestId(id4); + String P_HUSBANDNATION = getString(map.get("P_HUSBANDNATION")); //丈夫民族 + if (P_HUSBANDNATION != null && !"".equals(P_HUSBANDNATION)) { + String pnationName = getOracleBasicConfig(P_HUSBANDNATION); + String id = getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); + patients.setHnationId(id); + } + + //------丈夫户口所在地 + + String hproviceId = getString(map.get("P_HUSBANDRRPROVINCE")); + if (hproviceId != null && !"".equals(hproviceId)) { + String name = getOracleBasicConfig(hproviceId); + String id1 = getMongoBasicConfig(name, SystemConfig.LIVE_TYPE_ID); + patients.setProvincePostRestId(id1); + + String hcityId = getString(map.get("P_HUSBANDRRCITY")); + if (hcityId != null && !"".equals(hcityId)) { + String nameCity = getOracleBasicConfig(hcityId); + String id2 = getMongoBasicConfig(nameCity, id1); + patients.setCityPostRestId(id2); + + String hareId = getString(getString(map.get("P_HUSBANDRRCOUNTY"))); + if (hareId != null && !"".equals(hareId)) { + String nameArea = getOracleBasicConfig(hareId); + String id3 = getMongoBasicConfig(nameArea, id2); + patients.setAreaPostRestId(id3); + + String hstreetId = getString(map.get("P_HUSBANDRRTOWNSHIP")); + if (hstreetId != null && !"".equals(hstreetId)) { + String nameStreet = getOracleBasicConfig(hstreetId); + String id4 = getMongoBasicConfig(nameStreet, id3); + patients.setStreetPostRestId(id4); + } } } } - } - patients.setAddressPostRest(getString(map.get("P_HUSBANDRRSTREET"))); // 详细地址 - patients.setHworkUnit(getString(map.get("P_FILENUMBER"))); //建档编号 - patients.setFileCode(getString(map.get("P_CLINICNO"))); //就诊卡号 + patients.setAddressPostRest(getString(map.get("P_HUSBANDRRSTREET"))); // 详细地址 + patients.setHworkUnit(getString(map.get("P_FILENUMBER"))); //建档编号 + patients.setFileCode(getString(map.get("P_CLINICNO"))); //就诊卡号 - mongoTemplate.save(patients); - System.out.println(patients.getId()+"============"); - syncChuZhen(person.getId(), patients.getId(), mongoTemplate); - syncFuzhen(person.getId(), patients.getId(), mongoTemplate); - } catch (Exception e) - { - ExceptionUtils.catchException(e,map+"孕妇异常"); + mongoTemplate.save(patients); + System.out.println(patients.getId() + "============"); + syncChuZhen(person.getId(), patients.getId(), mongoTemplate); + syncFuzhen(person.getId(), patients.getId(), mongoTemplate); + } catch (Exception e) { + ExceptionUtils.catchException(e, map + "孕妇异常"); continue; } } + } + } + + public static void syncPatientData(String hospitalId,MongoTemplate mongoTemplate) + { + +// String sql = " SELECT * FROM ( SELECT A.*, ROWNUM RN FROM " + +// "(select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday,p_name,floor((trunc(sysdate) - trunc(mp.P_LASTMENSTRUALPERIOD)+1) /7) as weeks from MOMMY_PATIENT mp left join Plat_Patient pp" + +// " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '" + hospitalId + "' order by mp.p_lastmenstrualperiod desc ) A WHERE ROWNUM <= "+end+" ) WHERE RN >= "+start; + + String sql = "select replace(mp.P_NO,'-','') as PID,mp.*,p_birthday,p_name,floor((trunc(sysdate) - trunc(mp.P_LASTMENSTRUALPERIOD)+1) /7) as weeks from MOMMY_PATIENT mp left join Plat_Patient pp" + + " on mp.p_platpatientid=pp.p_id where mp.p_hospitalid = '" + hospitalId + "' order by mp.p_lastmenstrualperiod desc " ; + List> list = getListDataBySql(sql); + int batchSize = 1000; + int end = 0; + for (int i = 0; i < list.size();i+=batchSize) { + end=(end + batchSize); + if(end>list.size()){ + end=list.size(); + } + System.out.println("start:" + i + ",end:" + end); + List> tempList = list.subList(i, end); + new Worker(tempList,mongoTemplate).start(); + } } private static void syncChuZhen(String pid,String parentId, MongoTemplate mongoTemplate) @@ -1639,10 +1624,10 @@ public class JdbcUtil { } - public static void syncDataPat1(String hid,MongoTemplate mongoTemplate) + public static void syncDataPat(String hid,MongoTemplate mongoTemplate) { try { - syncPatientData(hid, mongoTemplate, 1, 30000); + syncPatientData(hid, mongoTemplate); } catch (Exception e) { @@ -1650,28 +1635,7 @@ public class JdbcUtil { } } - public static void syncDataPat2(String hid,MongoTemplate mongoTemplate) - { - try { - syncPatientData(hid,mongoTemplate,30001,8000); - } - catch (Exception e) - { - ExceptionUtils.catchException(e,"孕妇同步出错2。。。。。。。。。。。。。。"); - } - } - public static void syncDataPat3(String hid,MongoTemplate mongoTemplate) - { - try { - syncPatientData(hid,mongoTemplate,8001,100000); - } - catch (Exception e) - { - ExceptionUtils.catchException(e,"孕妇同步出错3。。。。。。。。。。。。。。"); - } - - } public static void main(String[] args) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 3fd82d1..228c77a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -110,30 +110,11 @@ public class TestController { JdbcUtil.initData(); System.out.println("initData------"); - new Thread(new Runnable() { - @Override - public void run() { - System.out.println("同步开始孕妇1>>>>>>>>>>>>>>>>>>>>>>>>>"); - JdbcUtil.syncDataPat1(hid, template); - System.out.println("同步结束孕妇1>>>>>>>>>>>>>>>>>>>>>>>>>"); - } - }).start(); -// new Thread(new Runnable() { -// @Override -// public void run() { -// System.out.println("同步开始孕妇2>>>>>>>>>>>>>>>>>>>>>>>>>"); -// JdbcUtil.syncDataPat2(hid, template); -// System.out.println("同步结束孕妇2>>>>>>>>>>>>>>>>>>>>>>>>>"); -// } -// }).start(); -// new Thread(new Runnable() { -// @Override -// public void run() { -// System.out.println("同步开始孕妇3>>>>>>>>>>>>>>>>>>>>>>>>>"); -// JdbcUtil.syncDataPat3(hid, template); -// System.out.println("同步结束孕妇3>>>>>>>>>>>>>>>>>>>>>>>>>"); -// } -// }).start(); + System.out.println("同步开始孕妇1>>>>>>>>>>>>>>>>>>>>>>>>>"); + JdbcUtil.syncDataPat(hid, template); + System.out.println("同步结束孕妇1>>>>>>>>>>>>>>>>>>>>>>>>>"); + + return "starting..........."; } }