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 a729aa2..7d6c286 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,17 +1,24 @@ package com.lyms.platform.biz; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.*; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.*; +import com.lyms.platform.common.utils.ReflectionUtils; import com.lyms.platform.common.utils.StringUtils; -import com.lyms.platform.common.utils.SystemConfig; import com.lyms.platform.pojo.*; +import com.lyms.platform.query.BasicConfigQuery; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.velocity.anakia.Escape; import org.bson.types.ObjectId; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.util.*; import java.sql.*; @@ -171,393 +178,371 @@ public class JdbcUtil { public static void syncPatientData(String hospitalId) { - List> list = getListDataBySql(" 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+"') A WHERE ROWNUM <= 30 and weeks < 42) WHERE RN >= 0 "); + int num = 1; - MongoTemplate mongoTemplate = getMongoTemplate(); + while (true) { + List> list = getListDataBySql(" 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 + "') A WHERE ROWNUM < "+(num+20)+" and weeks < 42) WHERE RN >= "+num+" "); + num=num+20; + MongoTemplate mongoTemplate = getMongoTemplate(); - for(Map map : list) - { - Patients patients = new Patients(); - PersonModel person = new PersonModel(); + for (Map map : list) { + 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 >= 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); + 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; - } - - 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 (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); - if (StringUtils.isNotEmpty(getString(map.get("P_CARDNO")))) - { - String cardType = getString(map.get("P_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; } - 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); //居住地省 + 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 = 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); + } - 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); //居住区 + patients.setCardNo(getString(map.get("P_CARDNO"))); //证件号码 + } else { + patients.setCardNo(getString(map.get("P_MOBILEPHONE"))); //证件号码 + patients.setPcerteTypeId("57e0a21c0cf209b410a82cda"); + } - 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); // 职业 - } - - 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 - - - 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"); - } + 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"))); //末次月经 - 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"); - } + String buildHospitalId = getString(map.get("P_HOSPITALID")); //医院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 id = getString(getMysqlSingleObjBySql("select id from organization where name = '" + hname + "'")); - patients.setHospitalId(id); - } - patients.setType(type); //患者类型 + 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"); + } - 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 id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); - 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()); + 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"); } - else if (1 == isvip) - { - patients.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId()); - patients.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId()); + + 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 id = getString(getMysqlSingleObjBySql("select id from organization where name = '" + hname + "'")); + patients.setHospitalId(id); } - } + patients.setType(type); //患者类型 - 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 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 id = getString(getMysqlSingleObjBySql("select id from users where name = '" + hname + "'")); + 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()); + } + } - 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")));//孕妇工作单位 + 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 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 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 huKoucityId = getString(map.get("P_RRCITY")); - if (huKoucityId != null && !"".equals(huKoucityId)) - { - String cityName = getOracleBasicConfig(huKoucityId); - String id2 = getMongoBasicConfig(cityName, id1); - patients.setCityRegisterId(id2); //户口地市 + patients.setPworkUnit(getString(map.get("P_UNITWORK")));//孕妇工作单位 - 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 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 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.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 P_HUSBANDCARDTYPE = getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类型 - String hcardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + P_HUSBANDCARDTYPE + "'")); - if (hcardTypeName != null && !"".equals(hcardTypeName)) - { - String id = getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID); - patients.setHcertificateTypeId(id); - } - patients.setHcertificateNum(getString(map.get("P_HUSBANDCARDNO"))); //证件号码 + patients.setAddressPostRest(getString(map.get("P_POSTPARTUMSTREET"))); // 详细地址 + //----------------------产后修养地 - 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); - } + 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 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_HUSBANDCARDTYPE = getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类型 + String hcardTypeName = getString(getOralceSingleObjBySql("select dc_name from plat_datacontent where dc_id='" + P_HUSBANDCARDTYPE + "'")); + if (hcardTypeName != null && !"".equals(hcardTypeName)) { + String id = getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setHcertificateTypeId(id); + } + patients.setHcertificateNum(getString(map.get("P_HUSBANDCARDNO"))); //证件号码 - 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 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 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 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 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 hstreetId = getString(map.get("P_HUSBANDRRTOWNSHIP")); - if (hstreetId != null && !"".equals(hstreetId)) - { - String nameStreet = getOracleBasicConfig(hstreetId); - String id4 = getMongoBasicConfig(nameStreet, id3); - patients.setStreetPostRestId(id4); + //------丈夫户口所在地 + + 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); - syncChuZhen(person.getId(),patients.getId(),mongoTemplate); - syncFuzhen(person.getId(),patients.getId(),mongoTemplate); + mongoTemplate.save(patients); + syncChuZhen(person.getId(), patients.getId(), mongoTemplate); + syncFuzhen(person.getId(), patients.getId(), mongoTemplate); + } } } private static void syncChuZhen(String pid,String parentId, MongoTemplate mongoTemplate) { - List> list = getListDataBySql(" SELECT * FROM MOMMY_FIRSTEXAMINE f where replace(f.FE_TRIAGEORDERNO,'-','') = '" + parentId + "'"); +// List> list = getListDataBySql(" SELECT * FROM MOMMY_FIRSTEXAMINE f where replace(f.FE_TRIAGEORDERNO,'-','') = '" + parentId + "'"); + List> list = getListDataBySql(" SELECT F.*,\n" + + " '[\"'||REPLACE(TT.HIGH_RISK_ID,',','\",\"')||'\"]' AS RISKFACTOR,\n" + + " TT.HIGH_RISK_VALUE AS RISKSCORE\n" + + "FROM MOMMY_FIRSTEXAMINE f \n" + + "--高危数据\n" + + "LEFT JOIN \n" + + " (\n" + + " SELECT T.ME_EXAMINID,WMSYS.WM_CONCAT(T.HIGH_RISK_FACTOR) AS HIGH_RISK_FACTOR,WMSYS.WM_CONCAT(DISTINCT T.HIGH_RISK_GRADE) AS HIGH_RISK_GRADE,SUM(T.HIGH_RISK_VALUE) AS HIGH_RISK_VALUE,WMSYS.WM_CONCAT(T.HIGH_RISK_ID) AS HIGH_RISK_ID\n" + + " FROM \n" + + " (SELECT J.ME_EXAMINID,K.DC_NAME AS HIGH_RISK_FACTOR,L.DC_NAME AS HIGH_RISK_GRADE,TO_NUMBER(K.DC_NO) AS HIGH_RISK_VALUE,LL.ID AS HIGH_RISK_ID\n" + + " FROM \n" + + " --高危风险关系表\n" + + " MOMMY_EXAMINWARNING J\n" + + " --高危内容\n" + + " INNER JOIN PLAT_DATACONTENT K ON J.ME_WORNINGID = K.DC_ID AND K.DC_ISVALID=1 AND K.DC_DATATYPEID='fb43fd5a-b153-4cb9-9180-c46f5612ba43' AND K.DC_NAME<>'其他'\n" + + " --高危等级\n" + + " INNER JOIN PLAT_DATACONTENT L ON K.DC_PARENTID=L.DC_ID AND L.DC_ISVALID=1\n" + + " INNER JOIN LYMS_BASICCONFIG LL ON K.DC_NAME=LL.NAME\n" + + " -- UNION ALL \n" + + " --其他高危评分\n" + + " --SELECT M.ID,M.MO_CONTENT,M.MO_COLORNAME,M.MO_VALUES FROM MOMMY_OTHERWORNING M\n" + + " )T\n" + + " GROUP BY T.ME_EXAMINID \n" + + " )TT ON F.FE_ID=TT.ME_EXAMINID\n" + + "where replace(f.FE_TRIAGEORDERNO,'-','') = '" + parentId + "'\n"); for(Map map : list) { AntExChuModel chuModel = new AntExChuModel(); @@ -592,7 +577,7 @@ public class JdbcUtil { chuModel.setCestationInfo(getString(map.get(""))); chuModel.setGonggao(getString(map.get("FE_UTERUSHEIGHT"))); chuModel.setFuwei(getString(map.get("FE_ABGIRTH"))); - + chuModel.setYn(YnEnums.YES.getId()); String doctorId = getString(map.get("FE_DOCTOR")); if (doctorId != null && !"".equals(doctorId)) @@ -643,6 +628,38 @@ public class JdbcUtil { chuModel.setBp(JsonUtil.obj2Str(bpmap)); } + + if (StringUtils.isNotEmpty(getString(map.get("RISKFACTOR")))) + { + chuModel.setHighrisk(getString(map.get("RISKFACTOR"))); + } + else + { + chuModel.setHighrisk("[]"); + } + + Patients pat = new Patients(); + + if (StringUtils.isNotEmpty(getString(map.get("RISKFACTOR")))) + { + List rlist = JsonUtil.toList(getString(map.get("RISKFACTOR")), String.class); + pat.setRiskFactorId(rlist); + List llist = queryRisk(rlist,true,mongoTemplate); + pat.setRiskLevelId(JsonUtil.array2JsonString(llist)); + pat.setLastRhTime(getDate(map.get("FE_ROCTORTIME"))); + } + else + { + pat.setRiskFactorId(new ArrayList()); + } + + pat.setRiskScore(getInteger(map.get("RISKSCORE"))); + + Query query = new MongoQuery(new MongoCondition("id", parentId, MongoOper.IS)).convertToMongoQuery(); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(pat)); + mongoTemplate.updateMulti(query, update, pat.getClass()); + mongoTemplate.save(chuModel); } } @@ -756,7 +773,7 @@ public class JdbcUtil { " --SELECT M.ID,M.MO_CONTENT,M.MO_COLORNAME,M.MO_VALUES FROM MOMMY_OTHERWORNING M\n" + " )T\n" + " GROUP BY T.ME_EXAMINID \n" + - " )TT ON A.ER_ID=TT.ME_EXAMINID where replace(p_no,'-','') = '" + parentId + "') A WHERE ROWNUM <= 10 ) WHERE RN >= 0 "; + " )TT ON A.ER_ID=TT.ME_EXAMINID where replace(p_no,'-','') = '" + parentId + "' ORDER BY B.P_NO,A.ER_CHECKDATE ASC ) A WHERE ROWNUM <= 10 ) WHERE RN >= 0 "; List> list = getListDataBySql(sql); @@ -824,14 +841,75 @@ public class JdbcUtil { antxModel.setChiefComplaint(getString(map.get("CHIEFCOMPLAINT"))); antxModel.setcDueWeek(getString(map.get("CDUEWEEK"))); + + + Patients pat = new Patients(); + + + if (StringUtils.isNotEmpty(getString(map.get("RISKFACTOR")))) + { + List rlist = JsonUtil.toList(getString(map.get("RISKFACTOR")), String.class); + pat.setRiskFactorId(rlist); + List llist = queryRisk(rlist,true,mongoTemplate); + pat.setRiskLevelId(JsonUtil.array2JsonString(llist)); + pat.setLastRhTime(getDate(map.get("CHECKDATE"))); + } + else + { + pat.setRiskFactorId(new ArrayList()); + } + pat.setRiskScore(getInteger(map.get("RISKSCORE"))); + + Query query = new MongoQuery(new MongoCondition("id", parentId, MongoOper.IS)).convertToMongoQuery(); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(pat)); + mongoTemplate.updateMulti(query, update, pat.getClass()); + mongoTemplate.save(antxModel); } } + + public static List queryRisk(List id, boolean n,MongoTemplate mongoTemplate) { + BasicConfigQuery + basicConfigQuery = new BasicConfigQuery(); + List dat1a = new ArrayList(); + if (CollectionUtils.isNotEmpty(id)) { + for (String i : id) { + basicConfigQuery.setId(i); + List basicConfigs = mongoTemplate.find(basicConfigQuery.convertToQuery().convertToMongoQuery(), BasicConfig.class); + if (CollectionUtils.isNotEmpty(basicConfigs)) { + for (BasicConfig basicConfig : basicConfigs) { + BasicConfigQuery + bquery = new BasicConfigQuery(); + bquery.setId(basicConfig.getParentId()); + List basicConfig1s = + mongoTemplate.find(bquery.convertToQuery().convertToMongoQuery(), BasicConfig.class); + BasicConfig basicConfig1 = basicConfig1s.get(0); + if (null != basicConfig1) { + dat1a.add(basicConfig1.getId()); + } + } + } + } + } + return dat1a; + } + public static void syncBabyData(String hospitalId) { - List> list = getListDataBySql(" SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (select replace(m.PI_ID,'-','') as ID,m.* from MOMMY_PATIENTINFO m where m.pi_bookbuildinghospitalid='"+hospitalId+"') A WHERE ROWNUM <= 20 ) WHERE RN >= 0 "); + + int num = 1; + + while (true) + { + + List> list = getListDataBySql(" SELECT * FROM ( SELECT A.*, ROWNUM RN FROM " + + " (select replace(m.PI_ID,'-','') as ID,m.* from MOMMY_PATIENTINFO m where m.pi_bookbuildinghospitalid='"+hospitalId+"') " + + " A WHERE ROWNUM < "+(num+20)+" ) WHERE RN >= "+num+" "); + + num = num+20; MongoTemplate mongoTemplate = getMongoTemplate(); for (Map map : list) { @@ -1019,6 +1097,7 @@ public class JdbcUtil { mongoTemplate.save(model); syncBabyCheck(model.getId(),mongoTemplate); } + } } public static void syncBabyCheck(String parentId,MongoTemplate mongoTemplate) @@ -1319,6 +1398,12 @@ public class JdbcUtil { } } + public static void syncData(String hid) + { + syncBabyData(hid); + syncPatientData(hid); + } + public static void main(String[] args) { // MongoTemplate template = getMongoTemplate(); @@ -1330,7 +1415,7 @@ public class JdbcUtil { // System.out.print(list); // DBCollection conn = template.getCollection("lyms_patient_test"); // conn.up - + syncBabyData("62"); syncPatientData("62"); } } diff --git a/platform-biz-patient-service/src/main/resources/database.properties b/platform-biz-patient-service/src/main/resources/database.properties index a881713..30dd21f 100644 --- a/platform-biz-patient-service/src/main/resources/database.properties +++ b/platform-biz-patient-service/src/main/resources/database.properties @@ -1,5 +1,5 @@ mongo.db.host=119.90.57.26 mongo.db.port=10001 -mongo.db.dbname=platform +mongo.db.dbname=sync-platform-data mongo.db.username=platform mongo.db.password=platform123 \ No newline at end of file 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 877f407..a522c42 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 @@ -1,8 +1,10 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.operate.web.utils.JdbcUtil; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; @@ -86,4 +88,12 @@ public class TestController { return list; } + + + @RequestMapping(value = "/syncData", method = RequestMethod.GET) + public void syncData( @RequestParam(required = true) String hid) { + System.out.print("同步开始>>>>>>>>>>>>>>>>>>>>>>>>>"); + com.lyms.platform.biz.JdbcUtil.syncData(hid); + System.out.print("同步结束>>>>>>>>>>>>>>>>>>>>>>>>>"); + } }