From aa503fe97750ae0f65d95e7b92ec6b8e2bf63708 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Fri, 10 Apr 2020 14:09:02 +0800 Subject: [PATCH] update --- .../com/lyms/platform/query/MicroelementQuery.java | 8 + .../operate/web/facade/MicroelementFacade.java | 13 +- .../sync/data/service/SyncBaseInfoService.java | 144 +++++++ .../sync/data/service/SyncDataService.java | 3 +- .../sync/data/service/SyncHsPatientService.java | 461 +++++++++++++++++++++ .../lyms/platform/sync/data/util/HsDataUtil.java | 115 +++++ .../data/web/controller/SyncDataController.java | 31 +- 7 files changed, 766 insertions(+), 9 deletions(-) create mode 100644 platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncBaseInfoService.java create mode 100644 platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncHsPatientService.java create mode 100644 platform-sync-data/src/main/java/com/lyms/platform/sync/data/util/HsDataUtil.java diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MicroelementQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MicroelementQuery.java index 4722837..579f078 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MicroelementQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MicroelementQuery.java @@ -82,6 +82,14 @@ public class MicroelementQuery extends BaseQuery implements IConvertToNativeQuer c = Criteria.where("lastMenses").gte(lastMensesStart).lte(lastMensesEnd); } } + + if (null != birthStart && birthEnd != null) { + if (null != c) { + c = c.where("birthday").gte(birthStart).lte(birthEnd); + } else { + c = Criteria.where("birthday").gte(birthStart).lte(birthEnd); + } + } if (null != createdTimeStart && createdTimeEnd != null) { if (null != c) { c = c.where("created").gte(createdTimeStart).lte(createdTimeEnd); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MicroelementFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MicroelementFacade.java index 4767178..5d331b7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MicroelementFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MicroelementFacade.java @@ -100,20 +100,21 @@ public class MicroelementFacade { { Date start1 = DateUtil.getBeforeAge(age); Date end2 = DateUtil.getBeforeAge(age + 1); - query.setBirthStart(start1); - query.setBirthEnd(end2); + query.setBirthStart(end2); + query.setBirthEnd(start1); } //孕周 if (start != null && end != null) { Date start1 = DateUtil.getWeekStart(start); Date end2 = DateUtil.getWeekEnd(end); - query.setLastMensesStart(start1); - query.setLastMensesEnd(end2); + query.setLastMensesStart(end2); + query.setLastMensesEnd(start1); } List models = microelementService.queryMicroelementList(query); + if (CollectionUtils.isNotEmpty(models)) { for (MicroelementModel model : models) @@ -169,7 +170,7 @@ public class MicroelementFacade { query.setHospitalId(hospitalId); query.setPatientIds(babayIds); query.setType(1); - query.setSort(" created "); + query.setSort("created"); if (start != null && end != null) { @@ -179,7 +180,7 @@ public class MicroelementFacade { query.setBirthStart(start1); query.setBirthEnd(end2); } - + System.out.println(query.convertToQuery().convertToMongoQuery().toString()); List models = microelementService.queryMicroelementList(query); if (CollectionUtils.isNotEmpty(models)) { diff --git a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncBaseInfoService.java b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncBaseInfoService.java new file mode 100644 index 0000000..9f57144 --- /dev/null +++ b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncBaseInfoService.java @@ -0,0 +1,144 @@ +package com.lyms.platform.sync.data.service; + +import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.common.enums.UserTypeEnum; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.MD5Utils; +import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.OrganizationQuery; +import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.query.BasicConfigQuery; +import com.lyms.platform.sync.data.util.JDBCUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Created by Administrator on 2020-04-10. + */ +@Service("syncBaseInfoService") +public class SyncBaseInfoService { + + @Autowired + private UsersService usersService; + + @Autowired + OrganizationService organizationService; + + @Autowired + private BasicConfigService basicConfigService; + + @Autowired + @Qualifier("commonThreadPool") + private ThreadPoolTaskExecutor commonThreadPool; + + public void syncBaseInfo() { + + List> orcleHospsList = JDBCUtil.getOracleListDataBySql("select h_name,h_id,h_countryname from plat_hospital h where h.h_isvalid = 1"); + if (CollectionUtils.isNotEmpty(orcleHospsList)) { + int batchSize = 20; + int end = 0; + for (int i = 0; i < orcleHospsList.size(); i += batchSize) { + end = (end + batchSize); + if (end > orcleHospsList.size()) { + end = orcleHospsList.size(); + } + System.out.println("start:" + i + ",end:" + end); + final List> hospitals = orcleHospsList.subList(i, end); + + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + for (Map map : hospitals) { + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + organizationQuery.setName(getString(map.get("H_NAME"))); + List organizations = organizationService.queryOrganization(organizationQuery); + if (CollectionUtils.isEmpty(organizations)) + { + Organization organization = new Organization(); + organization.setName(getString(map.get("H_NAME"))); + organization.setType(2); + organization.setLevel(3); + organization.setProvinceId("1"); + organization.setCityId("12"); + + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + basicConfigQuery.setName(getString(map.get("H_COUNTRYNAME"))); + basicConfigQuery.setYn(YnEnums.YES.getId()); + basicConfigQuery.setParentId("12"); + + List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(basicConfigs)) + { + organization.setAreaId(basicConfigs.get(0).getId()); + } + //organization.setStreetId(streetId); + organization.setAddress(getString(map.get("H_NAME"))); + organization.setYn(YnEnums.YES.getId()); + organization.setCreated(new Date()); + organization.setModified(new Date()); + organization.setPublishName("邢佩"); + organization.setPublishId(300000325); + //默认为建档医院 + organization.setbStatus(1); + + Integer orgId = organizationService.addOrganization(organization); + System.out.println("创建机构成功="+orgId); + createUser(getString(map.get("H_ID")),orgId); + + } + } + } + }); + } + } + } + + + private void createUser(String oracleHid,Integer orgId) + { + String empSql = "select e_id,e_code,e_name,e_hospitalid from mommy_employee e where e.e_isvalid = 1 and e.e_hospitalid = '" + oracleHid + "'"; + + List> listEmp = JDBCUtil.getOracleListDataBySql(empSql); + if (CollectionUtils.isNotEmpty(listEmp)) + { + for (Map map : listEmp) + { + //准备添加数据 + Users users = new Users(); + users.setType(UserTypeEnum.NORMAL_USER.getId()); //1普通用户 + users.setOrgId(orgId); + users.setName(getString(map.get("E_NAME"))); + users.setAccount(getString(map.get("E_CODE"))); + users.setEnable(1); + users.setZhiChenId(1); + users.setPwd(MD5Utils.md5("123456").toUpperCase()); + users.setPublishName("邢佩"); + users.setPublishId(300000325); + users.setYn(YnEnums.YES.getId()); + users.setModified(new Date()); + users.setCreated(new Date()); + usersService.addUsers(users); + System.out.println("创建用户成功=" + users.getId()); + } + } + } + + + + + public static String getString(Object obj) { + return obj == null ? null : String.valueOf(obj); + } + +} diff --git a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncDataService.java b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncDataService.java index 4b1adc6..583f0a4 100644 --- a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncDataService.java +++ b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncDataService.java @@ -237,7 +237,8 @@ public class SyncDataService { //初始化数据 DataUtil.initData(mysqlHid,oracleHid); - 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,vc.VC_CARDNO from MOMMY_PATIENT mp left join Plat_Patient pp " + + 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,vc.VC_CARDNO from " + + " MOMMY_PATIENT mp left join Plat_Patient pp " + " on mp.p_platpatientid=pp.p_id left join (select max(VC_OPERTIME) as OPERTIME,VC_CARDNO,VC_PATIENTNO from MOMMY_VISITCARD group by VC_CARDNO,VC_PATIENTNO) vc on vc.VC_PATIENTNO = mp.P_NO " + " where mp.p_hospitalid = '" + oracleHid + "' and p_name is not null order by mp.p_lastmenstrualperiod desc "; List> list = JDBCUtil.getOracleListDataBySql(sql); diff --git a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncHsPatientService.java b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncHsPatientService.java new file mode 100644 index 0000000..f7b15a2 --- /dev/null +++ b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncHsPatientService.java @@ -0,0 +1,461 @@ +package com.lyms.platform.sync.data.service; + + +import com.lyms.platform.biz.service.SimplePatient; +import com.lyms.platform.common.enums.ServiceStatusEnums; +import com.lyms.platform.common.enums.ServiceTypeEnums; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.PersonModel; +import com.lyms.platform.sync.data.util.DataUtil; +import com.lyms.platform.sync.data.util.HsDataUtil; +import com.lyms.platform.sync.data.util.JDBCUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + + +/** + * Created by Administrator on 2020-04-10. + */ +@Service("syncHsPatientService") +public class SyncHsPatientService implements InitializingBean { + @Autowired + private MongoTemplate mongoTemplate; + + @Autowired + @Qualifier("commonThreadPool") + private ThreadPoolTaskExecutor commonThreadPool; + + @Override + public void afterPropertiesSet() throws Exception { + //初始化数据 + HsDataUtil.initData(); + } + + /** + * 同步孕妇 + */ + public void synchsPatientData() { + + int pageStart = 0; + int pageEnd = 10000; + + //查询孕妇档案 + String sql = ""; + List> list = JDBCUtil.getOracleListDataBySql(sql); + while (CollectionUtils.isNotEmpty(list)) + { + pageStart += (10000+1); + pageEnd += 10000; + + 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); + commonThreadPool.execute(new PatientWorker(tempList, mongoTemplate)); + } + + } + } + + private class PatientWorker extends Thread { + private List> list; + private MongoTemplate mongoTemplate; + public PatientWorker(List> list, MongoTemplate mongoTemplate) { + this.list = list; + this.mongoTemplate = mongoTemplate; + } + + @Override + public void run() { + for (Map map : list) + { + try { + syncPatient(map, mongoTemplate); + } catch (Exception e) + { + ExceptionUtils.catchException(e, "孕产妇同步异常:" + map); + } + } + } + } + + + + private void syncPatient(Map map,MongoTemplate mongoTemplate) + { + + + if (StringUtils.isEmpty(DataUtil.getString(map.get("P_LASTMENSTRUALPERIOD")))) + { + return; + } + + Patients patients = new Patients(); + PersonModel person = new PersonModel(); + int type = 1; + Integer weeks = DataUtil.getInteger(map.get("WEEKS")); + List> chanList = null; + if (StringUtils.isNotEmpty(DataUtil.getString(map.get("P_ID")))) { + chanList = JDBCUtil.getOracleListDataBySql("select * from MOMMY_PREGDELIVERYRECORD p where p.pdr_patientid = '" + DataUtil.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 = DataUtil.getDate(chanList.get(0).get("PDR_CHILDBIRTHDAY")); + } else { + fmDate = DateUtil.addDay(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7); + } + patients.setFmDate(fmDate); + + type = 3; + } + + Date dueDate = DateUtil.addDay(DateUtil.addMonth(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 9), 7); + + patients.setDueDate(dueDate); + person.setCreated(new Date()); + + person.setId(String.valueOf(map.get("PID"))); + person.setType(type); + person.setYn(YnEnums.YES.getId()); + person.setBirth(DataUtil.getDate(map.get("P_BIRTHDAY"))); + person.setCardNo(DataUtil.getString(map.get("P_CARDNO"))); + person.setName(DataUtil.getString(map.get("P_NAME"))); + person.setPhone(DataUtil.getString(map.get("P_MOBILEPHONE"))); + person.setCreated(DataUtil.getDate(map.get("P_FILINGTIME"))); + person.setModified(DataUtil.getDate(map.get("P_OPERTIME"))); + mongoTemplate.save(person); + + + patients.setPid(person.getId()); + patients.setId(String.valueOf(map.get("PID"))); + patients.setYn(DataUtil.getInteger(map.get("P_ISVALID"))); //是否有效 + patients.setBuildType(0); + patients.setBirth(DataUtil.getDate(map.get("P_BIRTHDAY"))); + patients.setCreated(DataUtil.getDate(map.get("P_FILINGTIME"))); + patients.setModified(DataUtil.getDate(map.get("P_OPERTIME"))); + patients.setDueStatus(0); + + if (StringUtils.isNotEmpty(DataUtil.getString(map.get("P_CARDNO")))) { + String cardType = DataUtil.getString(map.get("P_CARDTYPE")); //证件类型 + String cardTypeName = DataUtil.getDataContentByById(cardType); + if (cardTypeName != null && !"".equals(cardTypeName)) { + String id = DataUtil.getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setPcerteTypeId(id); + } + + patients.setCardNo(DataUtil.getString(map.get("P_CARDNO"))); //证件号码 + } else { + patients.setCardNo(DataUtil.getString(map.get("P_MOBILEPHONE"))); //证件号码 + patients.setPcerteTypeId("57e1dcd3f0f02e7ca519d6c6"); + } + + //---------------------居住地址 + String proviceId = DataUtil.getString(map.get("P_ADDRESSPROVINCE")); + if (proviceId != null && !"".equals(proviceId)) { + String juzhudiProviceName = DataUtil.getOracleBasicConfig(proviceId); + String id1 = DataUtil.getMongoBasicConfig(juzhudiProviceName, SystemConfig.CHINA_BASIC_ID); + patients.setProvinceId(id1); //居住地省 + + String cityId = DataUtil.getString(map.get("P_ADDRESSCITY")); + if (cityId != null && !"".equals(cityId)) { + String juzhudiCityName = DataUtil.getOracleBasicConfig(cityId); + String id2 = DataUtil.getMongoBasicConfig(juzhudiCityName, id1); + patients.setCityId(id2); //居住地市 + String areaId = DataUtil.getString(DataUtil.getString(map.get("P_ADDRESSCOUNTY"))); + if (areaId != null && !"".equals(areaId)) { + String juzhudiAreaName = DataUtil.getOracleBasicConfig(areaId); + String id3 =DataUtil. getMongoBasicConfig(juzhudiAreaName, id2); + patients.setAreaId(id3); //居住区 + + String streetId = DataUtil.getString(map.get("P_TOWNSHIP")); + if (streetId != null && !"".equals(streetId)) { + String juzhudiStreetName = DataUtil.getOracleBasicConfig(streetId); + String id4 = DataUtil.getMongoBasicConfig(juzhudiStreetName, id3); + patients.setStreetId(id4); //街道 镇 + } + } + } + } + + patients.setAddress(DataUtil.getString(map.get("P_ADDRESSSTREET"))); // 详细地址 + + //---------------------居住地址 + + String pprofessionTypeId = DataUtil.getString(map.get("P_OCCUPATIONID")); + if (pprofessionTypeId != null && !"".equals(pprofessionTypeId)) { + String pprofessionTypeName = DataUtil.getOracleBasicConfig(pprofessionTypeId); + String id = DataUtil.getMongoBasicConfig(pprofessionTypeName, SystemConfig.PROFESSION_TYPE_ID); + patients.setPprofessionTypeId(id); // 职业 + } + + patients.setPhone(DataUtil.getString(map.get("P_MOBILEPHONE"))); //孕妇手机号码 + patients.setUsername(DataUtil.getString(map.get("P_NAME"))); //孕妇姓名 + patients.setBookbuildingDate(DataUtil.getDate(map.get("P_FILINGTIME"))); //建档日期 + patients.setLastMenses(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD"))); //末次月经 + + String buildHospitalId = DataUtil.getString(map.get("P_HOSPITALID")); //医院ID + + + Integer P_RESIDETYPE = DataUtil.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 = DataUtil.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 = DataUtil.getPatHosptalById(buildHospitalId); + String id = DataUtil.getOrgIdByName(hname); + patients.setHospitalId(id); + } + + patients.setType(type); //患者类型 + + String doctorId = DataUtil.getString(map.get("P_FILINGOPER")); + if (doctorId != null && !"".equals(doctorId)) { + String userName = DataUtil.getEmpNameById(doctorId); + String id = DataUtil.getUserIdByName(userName); + patients.setBookbuildingDoctor(id); //建档医生(创建者) + } + + + String operuserId = DataUtil.getString(map.get("P_OPERUSER")); + if (StringUtils.isNotEmpty(operuserId)) { + String userName = DataUtil.getEmpNameById(operuserId); + String id = DataUtil.getUserIdByName(userName); + try { + patients.setOperator(Integer.parseInt(id)); //操作人 + }catch (Exception e) + { + + } + + } + + Integer isvip = DataUtil.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()); + } + } + + patients.setExpType(-1); + + + String plevel = DataUtil.getString(map.get("P_EDUCATIONLEVEL"));//孕妇文化程度 + if (plevel != null && !"".equals(plevel)) { + String plevelName = DataUtil.getOracleBasicConfig(plevel); + String id = DataUtil.getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); + patients.setPlevelTypeId(id); + } + + + String guoJi = DataUtil.getString(map.get("P_COUNTRY"));//孕妇国籍 + if (guoJi != null && !"".equals(guoJi)) { + String guoJiName = DataUtil.getOracleBasicConfig(guoJi); + String id = DataUtil.getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); + patients.setPcountryId(id); + } + + patients.setPworkUnit(DataUtil.getString(map.get("P_UNITWORK")));//孕妇工作单位 + + String pnation = DataUtil.getString(map.get("P_NATION")); + if (pnation != null && !"".equals(pnation)) { + String pnationName = DataUtil.getOracleBasicConfig(pnation); + String id = DataUtil.getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); + patients.setPnationId(id); + } + + //---------------------户口地址 + String huKouproviceId = DataUtil.getString(map.get("P_RRPROVINCE")); + if (huKouproviceId != null && !"".equals(huKouproviceId)) { + String proviceName = DataUtil.getOracleBasicConfig(huKouproviceId); + String id1 = DataUtil.getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); + patients.setProvinceRegisterId(id1); //户口地省 + + String huKoucityId = DataUtil.getString(map.get("P_RRCITY")); + if (huKoucityId != null && !"".equals(huKoucityId)) { + String cityName = DataUtil.getOracleBasicConfig(huKoucityId); + String id2 = DataUtil.getMongoBasicConfig(cityName, id1); + patients.setCityRegisterId(id2); //户口地市 + + String huKouareaId = DataUtil.getString(DataUtil.getString(map.get("P_RRCOUNTY"))); + if (huKouareaId != null && !"".equals(huKouareaId)) { + String areaName = DataUtil.getOracleBasicConfig(huKouareaId); + String id3 = DataUtil.getMongoBasicConfig(areaName, id2); + patients.setAreaRegisterId(id3); //户口居住区 + + String huKoustreetId = DataUtil.getString(map.get("P_RRTOWNSHIP")); + if (huKoustreetId != null && !"".equals(huKoustreetId)) { + String streetName = DataUtil.getOracleBasicConfig(huKoustreetId); + String id4 = DataUtil.getMongoBasicConfig(streetName, id3); + patients.setStreetRegisterId(id4); //户口街道 镇 + + } + } + + } + } + patients.setAddressRegister(DataUtil.getString(map.get("P_RRSTREET"))); // 详细地址 + + //---------------------户口地址 + + //----------------------产后修养地 + + String chanHouproviceId = DataUtil.getString(map.get("P_POSTPARTUMPROVINCE")); + if (chanHouproviceId != null && !"".equals(chanHouproviceId)) { + String proviceName = DataUtil.getOracleBasicConfig(chanHouproviceId); + String id1 = DataUtil.getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID); + patients.setProvincePostRestId(id1); + + String chanhoucityId = DataUtil.getString(map.get("P_POSTPARTUMCITY")); + if (chanhoucityId != null && !"".equals(chanhoucityId)) { + String cityName = DataUtil.getOracleBasicConfig(chanhoucityId); + String id2 = DataUtil.getMongoBasicConfig(cityName, id1); + patients.setCityPostRestId(id2); + + String chanhouareaId = DataUtil.getString(DataUtil.getString(map.get("P_POSTPARTUMCOUNTY"))); + if (chanhouareaId != null && !"".equals(chanhouareaId)) { + String areaName = DataUtil.getOracleBasicConfig(chanhouareaId); + String id3 = DataUtil.getMongoBasicConfig(areaName, id2); + patients.setAreaPostRestId(id3); + + String chanhoustreetId = DataUtil.getString(map.get("P_POSTPARTUMTOWNSHIP")); + if (chanhoustreetId != null && !"".equals(chanhoustreetId)) { + String streetName = DataUtil.getOracleBasicConfig(chanhoustreetId); + String id4 = DataUtil.getMongoBasicConfig(streetName, id3); + patients.setStreetPostRestId(id4); + } + } + } + } + + patients.setAddressPostRest(DataUtil.getString(map.get("P_POSTPARTUMSTREET"))); // 详细地址 + + //----------------------产后修养地 + + patients.setHusbandName(DataUtil.getString(map.get("P_HUSBANDNAME"))); //丈夫名称 + patients.setHusbandBirth(DataUtil.getDate(map.get("P_HUSBANDBIRTHDAY"))); //丈夫生日 + patients.setHusbandPhone(DataUtil.getString(map.get("P_HUSBANDMOBILEPHONE"))); //丈夫电话 + patients.setHworkUnit(DataUtil.getString(map.get("P_HUSBANDUNITWORK"))); //丈夫工作单位 + + String hprofessionTypeId = DataUtil.getString(map.get("P_HUSBANDOCCUPATIONID"));// 职业 + if (hprofessionTypeId != null && !"".equals(hprofessionTypeId)) { + String professionTypeName = DataUtil.getOracleBasicConfig(hprofessionTypeId); + String id = DataUtil.getMongoBasicConfig(professionTypeName, SystemConfig.PROFESSION_TYPE_ID); + patients.setHprofessionTypeId(id); + } + + String P_HUSBANDCARDTYPE = DataUtil.getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类 + if (StringUtils.isNotEmpty(P_HUSBANDCARDTYPE)) { + String hcardTypeName = DataUtil.getDataContentByById(P_HUSBANDCARDTYPE); + if (hcardTypeName != null && !"".equals(hcardTypeName)) { + String id = DataUtil.getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID); + patients.setHcertificateTypeId(id); + } + } + patients.setHcertificateNum(DataUtil.getString(map.get("P_HUSBANDCARDNO"))); //证件号码 + + + String hlevel = DataUtil.getString(map.get("P_HUSBANDEDUCATIONLEVEL"));//丈夫文化程度 + if (hlevel != null && !"".equals(hlevel)) { + String plevelName = DataUtil.getOracleBasicConfig(hlevel); + String id = DataUtil.getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID); + patients.setHlevelTypeId(id); + } + + + String hguoji = DataUtil.getString(map.get("P_HUSBANDCOUNTRY"));//丈夫国籍 + if (hguoji != null && !"".equals(hguoji)) { + String guoJiName = DataUtil.getOracleBasicConfig(hguoji); + String id = DataUtil.getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID); + patients.setHcountryId(id); + } + + String P_HUSBANDNATION = DataUtil.getString(map.get("P_HUSBANDNATION")); //丈夫民族 + if (P_HUSBANDNATION != null && !"".equals(P_HUSBANDNATION)) { + String pnationName = DataUtil.getOracleBasicConfig(P_HUSBANDNATION); + String id = DataUtil.getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID); + patients.setHnationId(id); + } + + //------丈夫户口所在地 + + String hproviceId = DataUtil.getString(map.get("P_HUSBANDRRPROVINCE")); + if (hproviceId != null && !"".equals(hproviceId)) { + String name = DataUtil.getOracleBasicConfig(hproviceId); + String id1 = DataUtil.getMongoBasicConfig(name, SystemConfig.LIVE_TYPE_ID); + patients.setProvincePostRestId(id1); + + String hcityId = DataUtil.getString(map.get("P_HUSBANDRRCITY")); + if (hcityId != null && !"".equals(hcityId)) { + String nameCity = DataUtil.getOracleBasicConfig(hcityId); + String id2 = DataUtil.getMongoBasicConfig(nameCity, id1); + patients.setCityPostRestId(id2); + + String hareId = DataUtil.getString(DataUtil.getString(map.get("P_HUSBANDRRCOUNTY"))); + if (hareId != null && !"".equals(hareId)) { + String nameArea = DataUtil.getOracleBasicConfig(hareId); + String id3 = DataUtil.getMongoBasicConfig(nameArea, id2); + patients.setAreaPostRestId(id3); + + String hstreetId = DataUtil.getString(map.get("P_HUSBANDRRTOWNSHIP")); + if (hstreetId != null && !"".equals(hstreetId)) { + String nameStreet = DataUtil.getOracleBasicConfig(hstreetId); + String id4 = DataUtil.getMongoBasicConfig(nameStreet, id3); + patients.setStreetPostRestId(id4); + } + } + } + } + + + + + patients.setAddressPostRest(DataUtil.getString(map.get("P_HUSBANDRRSTREET"))); // 详细地址 + patients.setFileCode(DataUtil.getString(map.get("P_FILENUMBER"))); //建档编号 + patients.setVcCardNo(DataUtil.getString(map.get("VC_CARDNO"))); //就诊卡号 + + + mongoTemplate.save(patients); + System.out.println(patients.getId() + "============"); + + //patientsQueue.add(new SimplePatient(person.getId(), patients.getId(),DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")),weeks)); + + } + + +} diff --git a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/util/HsDataUtil.java b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/util/HsDataUtil.java new file mode 100644 index 0000000..c4b304a --- /dev/null +++ b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/util/HsDataUtil.java @@ -0,0 +1,115 @@ +package com.lyms.platform.sync.data.util; + + +import java.util.*; + +/** + * Created by Administrator on 2016/10/13. + */ +public class HsDataUtil { + + private static Map employees = new HashMap<>(); + private static Map oracleHosps = new HashMap<>(); + private static Map users = new HashMap<>(); + private static Map mysqlHosps = new HashMap<>(); + private static Map datacontents = new HashMap<>(); + private static Map basicConfigs = new HashMap<>(); + + private static Integer orgId = 0; + + + public static void initData() { + List> listEmp = JDBCUtil.getOracleListDataBySql("select e.e_code,e.e_name,e.e_id,e_hospitalid from mommy_employee e "); + for (Map map : listEmp) { + employees.put(getString(map.get("E_ID")), getString(map.get("E_NAME"))+getString(map.get("E_CODE"))); + } + System.out.println("employees------" + employees.size()); + + + List> datacontentsList = JDBCUtil.getOracleListDataBySql("select dc_name,dc_id from plat_datacontent "); + for (Map map : datacontentsList) { + datacontents.put(getString(map.get("DC_ID")), getString(map.get("DC_NAME"))); + } + + System.out.println("datacontents------" + datacontents.size()); + + List> orcleHospsList = JDBCUtil.getOracleListDataBySql("select h_name,h_id from plat_hospital h"); + for (Map map : orcleHospsList) { + oracleHosps.put(getString(map.get("H_ID")), getString(map.get("H_NAME"))); + } + + System.out.println("oracleHosps------" + oracleHosps.size()); + + List> usersList = JDBCUtil.getMysqlListDataBySql("select u.id,u.name,u.account,u.org_id from users u left join organization o on u.id = u.org_id where o.city_id=12 "); + for (Map map : usersList) { + users.put(getString(map.get("name"))+getString(map.get("account")), getString(map.get("id"))); + } + System.out.println("users------" + users.size()); + + List> mysqlHospsList = JDBCUtil.getMysqlListDataBySql("select id,name from organization "); + for (Map map : mysqlHospsList) { + mysqlHosps.put(getString(map.get("name")), getString(map.get("id"))); + } + System.out.println("mysqlHosps------" + mysqlHosps.size()); + + + List> oracleBasicList = JDBCUtil.getOracleListDataBySql("select id,name,parentId from lyms_basicconfig "); + for (Map map : oracleBasicList) { + basicConfigs.put(getString(map.get("NAME")) + getString(map.get("PARENTID")), getString(map.get("ID"))); + } + + System.out.println("basicConfigs------" + basicConfigs.size()); + + } + public static String getDataContentByById(String id) { + return datacontents.get(id); + + } + + public static String getPatHosptalById(String id) { + return oracleHosps.get(id); + + } + + public static String getOrgIdByName(String name) { + return String.valueOf(orgId); + } + + public static String getEmpNameById(String id) { + return employees.get(id); + } + + + public static String getUserIdByName(String name) { + return users.get(name); + } + + public static String getBasicConfigByNameAndParentId(String name, String parentId) { + return basicConfigs.get(name + parentId); + } + + public static String getString(Object obj) { + return obj == null ? null : String.valueOf(obj); + } + + public static String getMongoBasicConfig(String name, String parentId) { + return getBasicConfigByNameAndParentId(name, parentId); + } + + public static String getOracleBasicConfig(String id) { + return getDataContentByById(id); + } + + public static Double getDouble(Object obj) { + return obj == null ? null : Double.valueOf(String.valueOf(obj)); + } + + public static Integer getInteger(Object obj) { + return obj == null ? null : Integer.valueOf(String.valueOf(obj)); + } + + public static Date getDate(Object obj) { + return obj == null ? null : (Date) obj; + } + +} diff --git a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/web/controller/SyncDataController.java b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/web/controller/SyncDataController.java index b72310c..7176fe5 100644 --- a/platform-sync-data/src/main/java/com/lyms/platform/sync/data/web/controller/SyncDataController.java +++ b/platform-sync-data/src/main/java/com/lyms/platform/sync/data/web/controller/SyncDataController.java @@ -1,7 +1,8 @@ package com.lyms.platform.sync.data.web.controller; -import com.lyms.platform.common.utils.ExceptionUtils; +import com.lyms.platform.sync.data.service.SyncBaseInfoService; import com.lyms.platform.sync.data.service.SyncDataService; +import com.lyms.platform.sync.data.service.SyncHsPatientService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; @@ -22,6 +23,15 @@ public class SyncDataController { @Qualifier("job-index-syncdataservice") private SyncDataService syncDataService; + @Autowired + @Qualifier("syncBaseInfoService") + private SyncBaseInfoService syncBaseInfoService; + + + @Autowired + @Qualifier("syncHsPatientService") + private SyncHsPatientService syncHsPatientService; + /** * 孕妇同步 * @@ -48,8 +58,25 @@ public class SyncDataController { @RequestMapping(value = "/delete", method = RequestMethod.GET) @ResponseBody public String deleteData(@RequestParam(required = true) String hospitalId,@RequestParam(required = false) String pid) { - syncDataService.deleteData(hospitalId,pid); + syncDataService.deleteData(hospitalId, pid); return "delete starting..........."; } + + @RequestMapping(value = "/syncBaseInfo", method = RequestMethod.GET) + @ResponseBody + public String syncBaseInfo() { + syncBaseInfoService.syncBaseInfo(); + return "syncBaseInfo starting..........."; + } + + @RequestMapping(value = "/synchsPatientData", method = RequestMethod.GET) + @ResponseBody + public String synchsPatientData() { + syncHsPatientService.synchsPatientData(); + return "synchsPatientData starting..........."; + } + + + } \ No newline at end of file -- 1.8.3.1