Commit aa503fe97750ae0f65d95e7b92ec6b8e2bf63708

Authored by liquanyu
1 parent 7e240fbc6b

update

Showing 7 changed files with 766 additions and 9 deletions

platform-dal/src/main/java/com/lyms/platform/query/MicroelementQuery.java View file @ aa503fe
... ... @@ -82,6 +82,14 @@
82 82 c = Criteria.where("lastMenses").gte(lastMensesStart).lte(lastMensesEnd);
83 83 }
84 84 }
  85 +
  86 + if (null != birthStart && birthEnd != null) {
  87 + if (null != c) {
  88 + c = c.where("birthday").gte(birthStart).lte(birthEnd);
  89 + } else {
  90 + c = Criteria.where("birthday").gte(birthStart).lte(birthEnd);
  91 + }
  92 + }
85 93 if (null != createdTimeStart && createdTimeEnd != null) {
86 94 if (null != c) {
87 95 c = c.where("created").gte(createdTimeStart).lte(createdTimeEnd);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MicroelementFacade.java View file @ aa503fe
... ... @@ -100,20 +100,21 @@
100 100 {
101 101 Date start1 = DateUtil.getBeforeAge(age);
102 102 Date end2 = DateUtil.getBeforeAge(age + 1);
103   - query.setBirthStart(start1);
104   - query.setBirthEnd(end2);
  103 + query.setBirthStart(end2);
  104 + query.setBirthEnd(start1);
105 105 }
106 106  
107 107 //孕周
108 108 if (start != null && end != null) {
109 109 Date start1 = DateUtil.getWeekStart(start);
110 110 Date end2 = DateUtil.getWeekEnd(end);
111   - query.setLastMensesStart(start1);
112   - query.setLastMensesEnd(end2);
  111 + query.setLastMensesStart(end2);
  112 + query.setLastMensesEnd(start1);
113 113 }
114 114  
115 115  
116 116 List<MicroelementModel> models = microelementService.queryMicroelementList(query);
  117 +
117 118 if (CollectionUtils.isNotEmpty(models))
118 119 {
119 120 for (MicroelementModel model : models)
... ... @@ -169,7 +170,7 @@
169 170 query.setHospitalId(hospitalId);
170 171 query.setPatientIds(babayIds);
171 172 query.setType(1);
172   - query.setSort(" created ");
  173 + query.setSort("created");
173 174  
174 175 if (start != null && end != null)
175 176 {
... ... @@ -179,7 +180,7 @@
179 180 query.setBirthStart(start1);
180 181 query.setBirthEnd(end2);
181 182 }
182   -
  183 + System.out.println(query.convertToQuery().convertToMongoQuery().toString());
183 184 List<MicroelementModel> models = microelementService.queryMicroelementList(query);
184 185 if (CollectionUtils.isNotEmpty(models))
185 186 {
platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncBaseInfoService.java View file @ aa503fe
  1 +package com.lyms.platform.sync.data.service;
  2 +
  3 +import com.lyms.platform.biz.service.BasicConfigService;
  4 +import com.lyms.platform.common.enums.UserTypeEnum;
  5 +import com.lyms.platform.common.enums.YnEnums;
  6 +import com.lyms.platform.common.utils.MD5Utils;
  7 +import com.lyms.platform.permission.model.Organization;
  8 +import com.lyms.platform.permission.model.OrganizationQuery;
  9 +import com.lyms.platform.permission.model.Users;
  10 +import com.lyms.platform.permission.service.OrganizationService;
  11 +import com.lyms.platform.permission.service.UsersService;
  12 +import com.lyms.platform.pojo.BasicConfig;
  13 +import com.lyms.platform.query.BasicConfigQuery;
  14 +import com.lyms.platform.sync.data.util.JDBCUtil;
  15 +import org.apache.commons.collections.CollectionUtils;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.beans.factory.annotation.Qualifier;
  18 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  19 +import org.springframework.stereotype.Service;
  20 +
  21 +import java.util.Date;
  22 +import java.util.List;
  23 +import java.util.Map;
  24 +
  25 +/**
  26 + * Created by Administrator on 2020-04-10.
  27 + */
  28 +@Service("syncBaseInfoService")
  29 +public class SyncBaseInfoService {
  30 +
  31 + @Autowired
  32 + private UsersService usersService;
  33 +
  34 + @Autowired
  35 + OrganizationService organizationService;
  36 +
  37 + @Autowired
  38 + private BasicConfigService basicConfigService;
  39 +
  40 + @Autowired
  41 + @Qualifier("commonThreadPool")
  42 + private ThreadPoolTaskExecutor commonThreadPool;
  43 +
  44 + public void syncBaseInfo() {
  45 +
  46 + List<Map<String, Object>> orcleHospsList = JDBCUtil.getOracleListDataBySql("select h_name,h_id,h_countryname from plat_hospital h where h.h_isvalid = 1");
  47 + if (CollectionUtils.isNotEmpty(orcleHospsList)) {
  48 + int batchSize = 20;
  49 + int end = 0;
  50 + for (int i = 0; i < orcleHospsList.size(); i += batchSize) {
  51 + end = (end + batchSize);
  52 + if (end > orcleHospsList.size()) {
  53 + end = orcleHospsList.size();
  54 + }
  55 + System.out.println("start:" + i + ",end:" + end);
  56 + final List<Map<String, Object>> hospitals = orcleHospsList.subList(i, end);
  57 +
  58 + commonThreadPool.execute(new Runnable() {
  59 + @Override
  60 + public void run() {
  61 + for (Map<String, Object> map : hospitals) {
  62 + OrganizationQuery organizationQuery = new OrganizationQuery();
  63 + organizationQuery.setYn(YnEnums.YES.getId());
  64 + organizationQuery.setName(getString(map.get("H_NAME")));
  65 + List<Organization> organizations = organizationService.queryOrganization(organizationQuery);
  66 + if (CollectionUtils.isEmpty(organizations))
  67 + {
  68 + Organization organization = new Organization();
  69 + organization.setName(getString(map.get("H_NAME")));
  70 + organization.setType(2);
  71 + organization.setLevel(3);
  72 + organization.setProvinceId("1");
  73 + organization.setCityId("12");
  74 +
  75 + BasicConfigQuery basicConfigQuery = new BasicConfigQuery();
  76 + basicConfigQuery.setName(getString(map.get("H_COUNTRYNAME")));
  77 + basicConfigQuery.setYn(YnEnums.YES.getId());
  78 + basicConfigQuery.setParentId("12");
  79 +
  80 + List<BasicConfig> basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery);
  81 + if (CollectionUtils.isNotEmpty(basicConfigs))
  82 + {
  83 + organization.setAreaId(basicConfigs.get(0).getId());
  84 + }
  85 + //organization.setStreetId(streetId);
  86 + organization.setAddress(getString(map.get("H_NAME")));
  87 + organization.setYn(YnEnums.YES.getId());
  88 + organization.setCreated(new Date());
  89 + organization.setModified(new Date());
  90 + organization.setPublishName("邢佩");
  91 + organization.setPublishId(300000325);
  92 + //默认为建档医院
  93 + organization.setbStatus(1);
  94 +
  95 + Integer orgId = organizationService.addOrganization(organization);
  96 + System.out.println("创建机构成功="+orgId);
  97 + createUser(getString(map.get("H_ID")),orgId);
  98 +
  99 + }
  100 + }
  101 + }
  102 + });
  103 + }
  104 + }
  105 + }
  106 +
  107 +
  108 + private void createUser(String oracleHid,Integer orgId)
  109 + {
  110 + 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 + "'";
  111 +
  112 + List<Map<String, Object>> listEmp = JDBCUtil.getOracleListDataBySql(empSql);
  113 + if (CollectionUtils.isNotEmpty(listEmp))
  114 + {
  115 + for (Map<String, Object> map : listEmp)
  116 + {
  117 + //准备添加数据
  118 + Users users = new Users();
  119 + users.setType(UserTypeEnum.NORMAL_USER.getId()); //1普通用户
  120 + users.setOrgId(orgId);
  121 + users.setName(getString(map.get("E_NAME")));
  122 + users.setAccount(getString(map.get("E_CODE")));
  123 + users.setEnable(1);
  124 + users.setZhiChenId(1);
  125 + users.setPwd(MD5Utils.md5("123456").toUpperCase());
  126 + users.setPublishName("邢佩");
  127 + users.setPublishId(300000325);
  128 + users.setYn(YnEnums.YES.getId());
  129 + users.setModified(new Date());
  130 + users.setCreated(new Date());
  131 + usersService.addUsers(users);
  132 + System.out.println("创建用户成功=" + users.getId());
  133 + }
  134 + }
  135 + }
  136 +
  137 +
  138 +
  139 +
  140 + public static String getString(Object obj) {
  141 + return obj == null ? null : String.valueOf(obj);
  142 + }
  143 +
  144 +}
platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncDataService.java View file @ aa503fe
... ... @@ -237,7 +237,8 @@
237 237 //初始化数据
238 238 DataUtil.initData(mysqlHid,oracleHid);
239 239  
240   - 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 " +
  240 + 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 " +
  241 + " MOMMY_PATIENT mp left join Plat_Patient pp " +
241 242 " 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 " +
242 243 " where mp.p_hospitalid = '" + oracleHid + "' and p_name is not null order by mp.p_lastmenstrualperiod desc ";
243 244 List<Map<String, Object>> list = JDBCUtil.getOracleListDataBySql(sql);
platform-sync-data/src/main/java/com/lyms/platform/sync/data/service/SyncHsPatientService.java View file @ aa503fe
  1 +package com.lyms.platform.sync.data.service;
  2 +
  3 +
  4 +import com.lyms.platform.biz.service.SimplePatient;
  5 +import com.lyms.platform.common.enums.ServiceStatusEnums;
  6 +import com.lyms.platform.common.enums.ServiceTypeEnums;
  7 +import com.lyms.platform.common.enums.YnEnums;
  8 +import com.lyms.platform.common.utils.DateUtil;
  9 +import com.lyms.platform.common.utils.ExceptionUtils;
  10 +import com.lyms.platform.common.utils.StringUtils;
  11 +import com.lyms.platform.common.utils.SystemConfig;
  12 +import com.lyms.platform.pojo.Patients;
  13 +import com.lyms.platform.pojo.PersonModel;
  14 +import com.lyms.platform.sync.data.util.DataUtil;
  15 +import com.lyms.platform.sync.data.util.HsDataUtil;
  16 +import com.lyms.platform.sync.data.util.JDBCUtil;
  17 +import org.apache.commons.collections.CollectionUtils;
  18 +import org.springframework.beans.factory.InitializingBean;
  19 +import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.beans.factory.annotation.Qualifier;
  21 +import org.springframework.data.mongodb.core.MongoTemplate;
  22 +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  23 +import org.springframework.stereotype.Service;
  24 +
  25 +import java.util.Date;
  26 +import java.util.List;
  27 +import java.util.Map;
  28 +
  29 +
  30 +/**
  31 + * Created by Administrator on 2020-04-10.
  32 + */
  33 +@Service("syncHsPatientService")
  34 +public class SyncHsPatientService implements InitializingBean {
  35 + @Autowired
  36 + private MongoTemplate mongoTemplate;
  37 +
  38 + @Autowired
  39 + @Qualifier("commonThreadPool")
  40 + private ThreadPoolTaskExecutor commonThreadPool;
  41 +
  42 + @Override
  43 + public void afterPropertiesSet() throws Exception {
  44 + //初始化数据
  45 + HsDataUtil.initData();
  46 + }
  47 +
  48 + /**
  49 + * 同步孕妇
  50 + */
  51 + public void synchsPatientData() {
  52 +
  53 + int pageStart = 0;
  54 + int pageEnd = 10000;
  55 +
  56 + //查询孕妇档案
  57 + String sql = "";
  58 + List<Map<String, Object>> list = JDBCUtil.getOracleListDataBySql(sql);
  59 + while (CollectionUtils.isNotEmpty(list))
  60 + {
  61 + pageStart += (10000+1);
  62 + pageEnd += 10000;
  63 +
  64 + int batchSize = 1000;
  65 + int end = 0;
  66 + for (int i = 0; i < list.size(); i += batchSize) {
  67 + end = (end + batchSize);
  68 + if (end > list.size()) {
  69 + end = list.size();
  70 + }
  71 + System.out.println("start:" + i + ",end:" + end);
  72 + List<Map<String, Object>> tempList = list.subList(i, end);
  73 + commonThreadPool.execute(new PatientWorker(tempList, mongoTemplate));
  74 + }
  75 +
  76 + }
  77 + }
  78 +
  79 + private class PatientWorker extends Thread {
  80 + private List<Map<String, Object>> list;
  81 + private MongoTemplate mongoTemplate;
  82 + public PatientWorker(List<Map<String, Object>> list, MongoTemplate mongoTemplate) {
  83 + this.list = list;
  84 + this.mongoTemplate = mongoTemplate;
  85 + }
  86 +
  87 + @Override
  88 + public void run() {
  89 + for (Map<String, Object> map : list)
  90 + {
  91 + try {
  92 + syncPatient(map, mongoTemplate);
  93 + } catch (Exception e)
  94 + {
  95 + ExceptionUtils.catchException(e, "孕产妇同步异常:" + map);
  96 + }
  97 + }
  98 + }
  99 + }
  100 +
  101 +
  102 +
  103 + private void syncPatient(Map<String, Object> map,MongoTemplate mongoTemplate)
  104 + {
  105 +
  106 +
  107 + if (StringUtils.isEmpty(DataUtil.getString(map.get("P_LASTMENSTRUALPERIOD"))))
  108 + {
  109 + return;
  110 + }
  111 +
  112 + Patients patients = new Patients();
  113 + PersonModel person = new PersonModel();
  114 + int type = 1;
  115 + Integer weeks = DataUtil.getInteger(map.get("WEEKS"));
  116 + List<Map<String, Object>> chanList = null;
  117 + if (StringUtils.isNotEmpty(DataUtil.getString(map.get("P_ID")))) {
  118 + chanList = JDBCUtil.getOracleListDataBySql("select * from MOMMY_PREGDELIVERYRECORD p where p.pdr_patientid = '" + DataUtil.getString(map.get("p_id")) + "' order by p.PDR_CHILDBIRTHDAY desc ");
  119 + }
  120 + if (weeks != null && weeks >= 42 || CollectionUtils.isNotEmpty(chanList)) {
  121 + Date fmDate = null;
  122 + if (CollectionUtils.isNotEmpty(chanList)) {
  123 + fmDate = DataUtil.getDate(chanList.get(0).get("PDR_CHILDBIRTHDAY"));
  124 + } else {
  125 + fmDate = DateUtil.addDay(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 42 * 7);
  126 + }
  127 + patients.setFmDate(fmDate);
  128 +
  129 + type = 3;
  130 + }
  131 +
  132 + Date dueDate = DateUtil.addDay(DateUtil.addMonth(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")), 9), 7);
  133 +
  134 + patients.setDueDate(dueDate);
  135 + person.setCreated(new Date());
  136 +
  137 + person.setId(String.valueOf(map.get("PID")));
  138 + person.setType(type);
  139 + person.setYn(YnEnums.YES.getId());
  140 + person.setBirth(DataUtil.getDate(map.get("P_BIRTHDAY")));
  141 + person.setCardNo(DataUtil.getString(map.get("P_CARDNO")));
  142 + person.setName(DataUtil.getString(map.get("P_NAME")));
  143 + person.setPhone(DataUtil.getString(map.get("P_MOBILEPHONE")));
  144 + person.setCreated(DataUtil.getDate(map.get("P_FILINGTIME")));
  145 + person.setModified(DataUtil.getDate(map.get("P_OPERTIME")));
  146 + mongoTemplate.save(person);
  147 +
  148 +
  149 + patients.setPid(person.getId());
  150 + patients.setId(String.valueOf(map.get("PID")));
  151 + patients.setYn(DataUtil.getInteger(map.get("P_ISVALID"))); //是否有效
  152 + patients.setBuildType(0);
  153 + patients.setBirth(DataUtil.getDate(map.get("P_BIRTHDAY")));
  154 + patients.setCreated(DataUtil.getDate(map.get("P_FILINGTIME")));
  155 + patients.setModified(DataUtil.getDate(map.get("P_OPERTIME")));
  156 + patients.setDueStatus(0);
  157 +
  158 + if (StringUtils.isNotEmpty(DataUtil.getString(map.get("P_CARDNO")))) {
  159 + String cardType = DataUtil.getString(map.get("P_CARDTYPE")); //证件类型
  160 + String cardTypeName = DataUtil.getDataContentByById(cardType);
  161 + if (cardTypeName != null && !"".equals(cardTypeName)) {
  162 + String id = DataUtil.getMongoBasicConfig(cardTypeName, SystemConfig.CERTE_TYPE_ID);
  163 + patients.setPcerteTypeId(id);
  164 + }
  165 +
  166 + patients.setCardNo(DataUtil.getString(map.get("P_CARDNO"))); //证件号码
  167 + } else {
  168 + patients.setCardNo(DataUtil.getString(map.get("P_MOBILEPHONE"))); //证件号码
  169 + patients.setPcerteTypeId("57e1dcd3f0f02e7ca519d6c6");
  170 + }
  171 +
  172 + //---------------------居住地址
  173 + String proviceId = DataUtil.getString(map.get("P_ADDRESSPROVINCE"));
  174 + if (proviceId != null && !"".equals(proviceId)) {
  175 + String juzhudiProviceName = DataUtil.getOracleBasicConfig(proviceId);
  176 + String id1 = DataUtil.getMongoBasicConfig(juzhudiProviceName, SystemConfig.CHINA_BASIC_ID);
  177 + patients.setProvinceId(id1); //居住地省
  178 +
  179 + String cityId = DataUtil.getString(map.get("P_ADDRESSCITY"));
  180 + if (cityId != null && !"".equals(cityId)) {
  181 + String juzhudiCityName = DataUtil.getOracleBasicConfig(cityId);
  182 + String id2 = DataUtil.getMongoBasicConfig(juzhudiCityName, id1);
  183 + patients.setCityId(id2); //居住地市
  184 + String areaId = DataUtil.getString(DataUtil.getString(map.get("P_ADDRESSCOUNTY")));
  185 + if (areaId != null && !"".equals(areaId)) {
  186 + String juzhudiAreaName = DataUtil.getOracleBasicConfig(areaId);
  187 + String id3 =DataUtil. getMongoBasicConfig(juzhudiAreaName, id2);
  188 + patients.setAreaId(id3); //居住区
  189 +
  190 + String streetId = DataUtil.getString(map.get("P_TOWNSHIP"));
  191 + if (streetId != null && !"".equals(streetId)) {
  192 + String juzhudiStreetName = DataUtil.getOracleBasicConfig(streetId);
  193 + String id4 = DataUtil.getMongoBasicConfig(juzhudiStreetName, id3);
  194 + patients.setStreetId(id4); //街道 镇
  195 + }
  196 + }
  197 + }
  198 + }
  199 +
  200 + patients.setAddress(DataUtil.getString(map.get("P_ADDRESSSTREET"))); // 详细地址
  201 +
  202 + //---------------------居住地址
  203 +
  204 + String pprofessionTypeId = DataUtil.getString(map.get("P_OCCUPATIONID"));
  205 + if (pprofessionTypeId != null && !"".equals(pprofessionTypeId)) {
  206 + String pprofessionTypeName = DataUtil.getOracleBasicConfig(pprofessionTypeId);
  207 + String id = DataUtil.getMongoBasicConfig(pprofessionTypeName, SystemConfig.PROFESSION_TYPE_ID);
  208 + patients.setPprofessionTypeId(id); // 职业
  209 + }
  210 +
  211 + patients.setPhone(DataUtil.getString(map.get("P_MOBILEPHONE"))); //孕妇手机号码
  212 + patients.setUsername(DataUtil.getString(map.get("P_NAME"))); //孕妇姓名
  213 + patients.setBookbuildingDate(DataUtil.getDate(map.get("P_FILINGTIME"))); //建档日期
  214 + patients.setLastMenses(DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD"))); //末次月经
  215 +
  216 + String buildHospitalId = DataUtil.getString(map.get("P_HOSPITALID")); //医院ID
  217 +
  218 +
  219 + Integer P_RESIDETYPE = DataUtil.getInteger(map.get("P_RESIDETYPE")); //居住类别
  220 + if (P_RESIDETYPE != null && P_RESIDETYPE == 0) {
  221 + patients.setPliveTypeId("57624bf90cf23d4631523e9e");
  222 + } else if (P_RESIDETYPE != null && (P_RESIDETYPE == 1 || P_RESIDETYPE == 2)) {
  223 + patients.setPliveTypeId("57624c090cf23d4631523e9f");
  224 + }
  225 +
  226 +
  227 + Integer P_ACCOUNTTYPE = DataUtil.getInteger(map.get("P_ACCOUNTTYPE")); //户口类别
  228 + if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 0) {
  229 + patients.setPliveTypeId("57624c440cf23d4631523ea1");
  230 + } else if (P_ACCOUNTTYPE != null && P_ACCOUNTTYPE == 1) {
  231 + patients.setPliveTypeId("57624c5e0cf23d4631523ea2");
  232 + }
  233 +
  234 + if (buildHospitalId != null && !"".equals(buildHospitalId)) {
  235 + String hname = DataUtil.getPatHosptalById(buildHospitalId);
  236 + String id = DataUtil.getOrgIdByName(hname);
  237 + patients.setHospitalId(id);
  238 + }
  239 +
  240 + patients.setType(type); //患者类型
  241 +
  242 + String doctorId = DataUtil.getString(map.get("P_FILINGOPER"));
  243 + if (doctorId != null && !"".equals(doctorId)) {
  244 + String userName = DataUtil.getEmpNameById(doctorId);
  245 + String id = DataUtil.getUserIdByName(userName);
  246 + patients.setBookbuildingDoctor(id); //建档医生(创建者)
  247 + }
  248 +
  249 +
  250 + String operuserId = DataUtil.getString(map.get("P_OPERUSER"));
  251 + if (StringUtils.isNotEmpty(operuserId)) {
  252 + String userName = DataUtil.getEmpNameById(operuserId);
  253 + String id = DataUtil.getUserIdByName(userName);
  254 + try {
  255 + patients.setOperator(Integer.parseInt(id)); //操作人
  256 + }catch (Exception e)
  257 + {
  258 +
  259 + }
  260 +
  261 + }
  262 +
  263 + Integer isvip = DataUtil.getInteger(map.get("P_ISVIP")); //vip
  264 + if (isvip != null) {
  265 + //会员状态 0不是会员 1 是
  266 + if (0 == isvip) {
  267 + patients.setServiceType(ServiceTypeEnums.STANDARD_SERVICE.getId());
  268 + patients.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getId());
  269 + } else if (1 == isvip) {
  270 + patients.setServiceType(ServiceTypeEnums.ADD_SERVICE.getId());
  271 + patients.setServiceStatus(ServiceStatusEnums.ADD_OPEN.getId());
  272 + }
  273 + }
  274 +
  275 + patients.setExpType(-1);
  276 +
  277 +
  278 + String plevel = DataUtil.getString(map.get("P_EDUCATIONLEVEL"));//孕妇文化程度
  279 + if (plevel != null && !"".equals(plevel)) {
  280 + String plevelName = DataUtil.getOracleBasicConfig(plevel);
  281 + String id = DataUtil.getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID);
  282 + patients.setPlevelTypeId(id);
  283 + }
  284 +
  285 +
  286 + String guoJi = DataUtil.getString(map.get("P_COUNTRY"));//孕妇国籍
  287 + if (guoJi != null && !"".equals(guoJi)) {
  288 + String guoJiName = DataUtil.getOracleBasicConfig(guoJi);
  289 + String id = DataUtil.getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID);
  290 + patients.setPcountryId(id);
  291 + }
  292 +
  293 + patients.setPworkUnit(DataUtil.getString(map.get("P_UNITWORK")));//孕妇工作单位
  294 +
  295 + String pnation = DataUtil.getString(map.get("P_NATION"));
  296 + if (pnation != null && !"".equals(pnation)) {
  297 + String pnationName = DataUtil.getOracleBasicConfig(pnation);
  298 + String id = DataUtil.getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID);
  299 + patients.setPnationId(id);
  300 + }
  301 +
  302 + //---------------------户口地址
  303 + String huKouproviceId = DataUtil.getString(map.get("P_RRPROVINCE"));
  304 + if (huKouproviceId != null && !"".equals(huKouproviceId)) {
  305 + String proviceName = DataUtil.getOracleBasicConfig(huKouproviceId);
  306 + String id1 = DataUtil.getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID);
  307 + patients.setProvinceRegisterId(id1); //户口地省
  308 +
  309 + String huKoucityId = DataUtil.getString(map.get("P_RRCITY"));
  310 + if (huKoucityId != null && !"".equals(huKoucityId)) {
  311 + String cityName = DataUtil.getOracleBasicConfig(huKoucityId);
  312 + String id2 = DataUtil.getMongoBasicConfig(cityName, id1);
  313 + patients.setCityRegisterId(id2); //户口地市
  314 +
  315 + String huKouareaId = DataUtil.getString(DataUtil.getString(map.get("P_RRCOUNTY")));
  316 + if (huKouareaId != null && !"".equals(huKouareaId)) {
  317 + String areaName = DataUtil.getOracleBasicConfig(huKouareaId);
  318 + String id3 = DataUtil.getMongoBasicConfig(areaName, id2);
  319 + patients.setAreaRegisterId(id3); //户口居住区
  320 +
  321 + String huKoustreetId = DataUtil.getString(map.get("P_RRTOWNSHIP"));
  322 + if (huKoustreetId != null && !"".equals(huKoustreetId)) {
  323 + String streetName = DataUtil.getOracleBasicConfig(huKoustreetId);
  324 + String id4 = DataUtil.getMongoBasicConfig(streetName, id3);
  325 + patients.setStreetRegisterId(id4); //户口街道 镇
  326 +
  327 + }
  328 + }
  329 +
  330 + }
  331 + }
  332 + patients.setAddressRegister(DataUtil.getString(map.get("P_RRSTREET"))); // 详细地址
  333 +
  334 + //---------------------户口地址
  335 +
  336 + //----------------------产后修养地
  337 +
  338 + String chanHouproviceId = DataUtil.getString(map.get("P_POSTPARTUMPROVINCE"));
  339 + if (chanHouproviceId != null && !"".equals(chanHouproviceId)) {
  340 + String proviceName = DataUtil.getOracleBasicConfig(chanHouproviceId);
  341 + String id1 = DataUtil.getMongoBasicConfig(proviceName, SystemConfig.LIVE_TYPE_ID);
  342 + patients.setProvincePostRestId(id1);
  343 +
  344 + String chanhoucityId = DataUtil.getString(map.get("P_POSTPARTUMCITY"));
  345 + if (chanhoucityId != null && !"".equals(chanhoucityId)) {
  346 + String cityName = DataUtil.getOracleBasicConfig(chanhoucityId);
  347 + String id2 = DataUtil.getMongoBasicConfig(cityName, id1);
  348 + patients.setCityPostRestId(id2);
  349 +
  350 + String chanhouareaId = DataUtil.getString(DataUtil.getString(map.get("P_POSTPARTUMCOUNTY")));
  351 + if (chanhouareaId != null && !"".equals(chanhouareaId)) {
  352 + String areaName = DataUtil.getOracleBasicConfig(chanhouareaId);
  353 + String id3 = DataUtil.getMongoBasicConfig(areaName, id2);
  354 + patients.setAreaPostRestId(id3);
  355 +
  356 + String chanhoustreetId = DataUtil.getString(map.get("P_POSTPARTUMTOWNSHIP"));
  357 + if (chanhoustreetId != null && !"".equals(chanhoustreetId)) {
  358 + String streetName = DataUtil.getOracleBasicConfig(chanhoustreetId);
  359 + String id4 = DataUtil.getMongoBasicConfig(streetName, id3);
  360 + patients.setStreetPostRestId(id4);
  361 + }
  362 + }
  363 + }
  364 + }
  365 +
  366 + patients.setAddressPostRest(DataUtil.getString(map.get("P_POSTPARTUMSTREET"))); // 详细地址
  367 +
  368 + //----------------------产后修养地
  369 +
  370 + patients.setHusbandName(DataUtil.getString(map.get("P_HUSBANDNAME"))); //丈夫名称
  371 + patients.setHusbandBirth(DataUtil.getDate(map.get("P_HUSBANDBIRTHDAY"))); //丈夫生日
  372 + patients.setHusbandPhone(DataUtil.getString(map.get("P_HUSBANDMOBILEPHONE"))); //丈夫电话
  373 + patients.setHworkUnit(DataUtil.getString(map.get("P_HUSBANDUNITWORK"))); //丈夫工作单位
  374 +
  375 + String hprofessionTypeId = DataUtil.getString(map.get("P_HUSBANDOCCUPATIONID"));// 职业
  376 + if (hprofessionTypeId != null && !"".equals(hprofessionTypeId)) {
  377 + String professionTypeName = DataUtil.getOracleBasicConfig(hprofessionTypeId);
  378 + String id = DataUtil.getMongoBasicConfig(professionTypeName, SystemConfig.PROFESSION_TYPE_ID);
  379 + patients.setHprofessionTypeId(id);
  380 + }
  381 +
  382 + String P_HUSBANDCARDTYPE = DataUtil.getString(map.get("P_HUSBANDCARDTYPE")); //丈夫证件类
  383 + if (StringUtils.isNotEmpty(P_HUSBANDCARDTYPE)) {
  384 + String hcardTypeName = DataUtil.getDataContentByById(P_HUSBANDCARDTYPE);
  385 + if (hcardTypeName != null && !"".equals(hcardTypeName)) {
  386 + String id = DataUtil.getMongoBasicConfig(hcardTypeName, SystemConfig.CERTE_TYPE_ID);
  387 + patients.setHcertificateTypeId(id);
  388 + }
  389 + }
  390 + patients.setHcertificateNum(DataUtil.getString(map.get("P_HUSBANDCARDNO"))); //证件号码
  391 +
  392 +
  393 + String hlevel = DataUtil.getString(map.get("P_HUSBANDEDUCATIONLEVEL"));//丈夫文化程度
  394 + if (hlevel != null && !"".equals(hlevel)) {
  395 + String plevelName = DataUtil.getOracleBasicConfig(hlevel);
  396 + String id = DataUtil.getMongoBasicConfig(plevelName, SystemConfig.LEVEL_TYPE_ID);
  397 + patients.setHlevelTypeId(id);
  398 + }
  399 +
  400 +
  401 + String hguoji = DataUtil.getString(map.get("P_HUSBANDCOUNTRY"));//丈夫国籍
  402 + if (hguoji != null && !"".equals(hguoji)) {
  403 + String guoJiName = DataUtil.getOracleBasicConfig(hguoji);
  404 + String id = DataUtil.getMongoBasicConfig(guoJiName, SystemConfig.COUNTRY_TYPE_ID);
  405 + patients.setHcountryId(id);
  406 + }
  407 +
  408 + String P_HUSBANDNATION = DataUtil.getString(map.get("P_HUSBANDNATION")); //丈夫民族
  409 + if (P_HUSBANDNATION != null && !"".equals(P_HUSBANDNATION)) {
  410 + String pnationName = DataUtil.getOracleBasicConfig(P_HUSBANDNATION);
  411 + String id = DataUtil.getMongoBasicConfig(pnationName, SystemConfig.NATION_TYPE_ID);
  412 + patients.setHnationId(id);
  413 + }
  414 +
  415 + //------丈夫户口所在地
  416 +
  417 + String hproviceId = DataUtil.getString(map.get("P_HUSBANDRRPROVINCE"));
  418 + if (hproviceId != null && !"".equals(hproviceId)) {
  419 + String name = DataUtil.getOracleBasicConfig(hproviceId);
  420 + String id1 = DataUtil.getMongoBasicConfig(name, SystemConfig.LIVE_TYPE_ID);
  421 + patients.setProvincePostRestId(id1);
  422 +
  423 + String hcityId = DataUtil.getString(map.get("P_HUSBANDRRCITY"));
  424 + if (hcityId != null && !"".equals(hcityId)) {
  425 + String nameCity = DataUtil.getOracleBasicConfig(hcityId);
  426 + String id2 = DataUtil.getMongoBasicConfig(nameCity, id1);
  427 + patients.setCityPostRestId(id2);
  428 +
  429 + String hareId = DataUtil.getString(DataUtil.getString(map.get("P_HUSBANDRRCOUNTY")));
  430 + if (hareId != null && !"".equals(hareId)) {
  431 + String nameArea = DataUtil.getOracleBasicConfig(hareId);
  432 + String id3 = DataUtil.getMongoBasicConfig(nameArea, id2);
  433 + patients.setAreaPostRestId(id3);
  434 +
  435 + String hstreetId = DataUtil.getString(map.get("P_HUSBANDRRTOWNSHIP"));
  436 + if (hstreetId != null && !"".equals(hstreetId)) {
  437 + String nameStreet = DataUtil.getOracleBasicConfig(hstreetId);
  438 + String id4 = DataUtil.getMongoBasicConfig(nameStreet, id3);
  439 + patients.setStreetPostRestId(id4);
  440 + }
  441 + }
  442 + }
  443 + }
  444 +
  445 +
  446 +
  447 +
  448 + patients.setAddressPostRest(DataUtil.getString(map.get("P_HUSBANDRRSTREET"))); // 详细地址
  449 + patients.setFileCode(DataUtil.getString(map.get("P_FILENUMBER"))); //建档编号
  450 + patients.setVcCardNo(DataUtil.getString(map.get("VC_CARDNO"))); //就诊卡号
  451 +
  452 +
  453 + mongoTemplate.save(patients);
  454 + System.out.println(patients.getId() + "============");
  455 +
  456 + //patientsQueue.add(new SimplePatient(person.getId(), patients.getId(),DataUtil.getDate(map.get("P_LASTMENSTRUALPERIOD")),weeks));
  457 +
  458 + }
  459 +
  460 +
  461 +}
platform-sync-data/src/main/java/com/lyms/platform/sync/data/util/HsDataUtil.java View file @ aa503fe
  1 +package com.lyms.platform.sync.data.util;
  2 +
  3 +
  4 +import java.util.*;
  5 +
  6 +/**
  7 + * Created by Administrator on 2016/10/13.
  8 + */
  9 +public class HsDataUtil {
  10 +
  11 + private static Map<String, String> employees = new HashMap<>();
  12 + private static Map<String, String> oracleHosps = new HashMap<>();
  13 + private static Map<String, String> users = new HashMap<>();
  14 + private static Map<String, String> mysqlHosps = new HashMap<>();
  15 + private static Map<String, String> datacontents = new HashMap<>();
  16 + private static Map<String, String> basicConfigs = new HashMap<>();
  17 +
  18 + private static Integer orgId = 0;
  19 +
  20 +
  21 + public static void initData() {
  22 + List<Map<String, Object>> listEmp = JDBCUtil.getOracleListDataBySql("select e.e_code,e.e_name,e.e_id,e_hospitalid from mommy_employee e ");
  23 + for (Map<String, Object> map : listEmp) {
  24 + employees.put(getString(map.get("E_ID")), getString(map.get("E_NAME"))+getString(map.get("E_CODE")));
  25 + }
  26 + System.out.println("employees------" + employees.size());
  27 +
  28 +
  29 + List<Map<String, Object>> datacontentsList = JDBCUtil.getOracleListDataBySql("select dc_name,dc_id from plat_datacontent ");
  30 + for (Map<String, Object> map : datacontentsList) {
  31 + datacontents.put(getString(map.get("DC_ID")), getString(map.get("DC_NAME")));
  32 + }
  33 +
  34 + System.out.println("datacontents------" + datacontents.size());
  35 +
  36 + List<Map<String, Object>> orcleHospsList = JDBCUtil.getOracleListDataBySql("select h_name,h_id from plat_hospital h");
  37 + for (Map<String, Object> map : orcleHospsList) {
  38 + oracleHosps.put(getString(map.get("H_ID")), getString(map.get("H_NAME")));
  39 + }
  40 +
  41 + System.out.println("oracleHosps------" + oracleHosps.size());
  42 +
  43 + List<Map<String, Object>> 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 ");
  44 + for (Map<String, Object> map : usersList) {
  45 + users.put(getString(map.get("name"))+getString(map.get("account")), getString(map.get("id")));
  46 + }
  47 + System.out.println("users------" + users.size());
  48 +
  49 + List<Map<String, Object>> mysqlHospsList = JDBCUtil.getMysqlListDataBySql("select id,name from organization ");
  50 + for (Map<String, Object> map : mysqlHospsList) {
  51 + mysqlHosps.put(getString(map.get("name")), getString(map.get("id")));
  52 + }
  53 + System.out.println("mysqlHosps------" + mysqlHosps.size());
  54 +
  55 +
  56 + List<Map<String, Object>> oracleBasicList = JDBCUtil.getOracleListDataBySql("select id,name,parentId from lyms_basicconfig ");
  57 + for (Map<String, Object> map : oracleBasicList) {
  58 + basicConfigs.put(getString(map.get("NAME")) + getString(map.get("PARENTID")), getString(map.get("ID")));
  59 + }
  60 +
  61 + System.out.println("basicConfigs------" + basicConfigs.size());
  62 +
  63 + }
  64 + public static String getDataContentByById(String id) {
  65 + return datacontents.get(id);
  66 +
  67 + }
  68 +
  69 + public static String getPatHosptalById(String id) {
  70 + return oracleHosps.get(id);
  71 +
  72 + }
  73 +
  74 + public static String getOrgIdByName(String name) {
  75 + return String.valueOf(orgId);
  76 + }
  77 +
  78 + public static String getEmpNameById(String id) {
  79 + return employees.get(id);
  80 + }
  81 +
  82 +
  83 + public static String getUserIdByName(String name) {
  84 + return users.get(name);
  85 + }
  86 +
  87 + public static String getBasicConfigByNameAndParentId(String name, String parentId) {
  88 + return basicConfigs.get(name + parentId);
  89 + }
  90 +
  91 + public static String getString(Object obj) {
  92 + return obj == null ? null : String.valueOf(obj);
  93 + }
  94 +
  95 + public static String getMongoBasicConfig(String name, String parentId) {
  96 + return getBasicConfigByNameAndParentId(name, parentId);
  97 + }
  98 +
  99 + public static String getOracleBasicConfig(String id) {
  100 + return getDataContentByById(id);
  101 + }
  102 +
  103 + public static Double getDouble(Object obj) {
  104 + return obj == null ? null : Double.valueOf(String.valueOf(obj));
  105 + }
  106 +
  107 + public static Integer getInteger(Object obj) {
  108 + return obj == null ? null : Integer.valueOf(String.valueOf(obj));
  109 + }
  110 +
  111 + public static Date getDate(Object obj) {
  112 + return obj == null ? null : (Date) obj;
  113 + }
  114 +
  115 +}
platform-sync-data/src/main/java/com/lyms/platform/sync/data/web/controller/SyncDataController.java View file @ aa503fe
1 1 package com.lyms.platform.sync.data.web.controller;
2 2  
3   -import com.lyms.platform.common.utils.ExceptionUtils;
  3 +import com.lyms.platform.sync.data.service.SyncBaseInfoService;
4 4 import com.lyms.platform.sync.data.service.SyncDataService;
  5 +import com.lyms.platform.sync.data.service.SyncHsPatientService;
5 6 import org.springframework.beans.factory.annotation.Autowired;
6 7 import org.springframework.beans.factory.annotation.Qualifier;
7 8 import org.springframework.stereotype.Controller;
... ... @@ -22,6 +23,15 @@
22 23 @Qualifier("job-index-syncdataservice")
23 24 private SyncDataService syncDataService;
24 25  
  26 + @Autowired
  27 + @Qualifier("syncBaseInfoService")
  28 + private SyncBaseInfoService syncBaseInfoService;
  29 +
  30 +
  31 + @Autowired
  32 + @Qualifier("syncHsPatientService")
  33 + private SyncHsPatientService syncHsPatientService;
  34 +
25 35 /**
26 36 * 孕妇同步
27 37 *
28 38  
... ... @@ -48,9 +58,26 @@
48 58 @RequestMapping(value = "/delete", method = RequestMethod.GET)
49 59 @ResponseBody
50 60 public String deleteData(@RequestParam(required = true) String hospitalId,@RequestParam(required = false) String pid) {
51   - syncDataService.deleteData(hospitalId,pid);
  61 + syncDataService.deleteData(hospitalId, pid);
52 62 return "delete starting...........";
53 63 }
  64 +
  65 +
  66 + @RequestMapping(value = "/syncBaseInfo", method = RequestMethod.GET)
  67 + @ResponseBody
  68 + public String syncBaseInfo() {
  69 + syncBaseInfoService.syncBaseInfo();
  70 + return "syncBaseInfo starting...........";
  71 + }
  72 +
  73 + @RequestMapping(value = "/synchsPatientData", method = RequestMethod.GET)
  74 + @ResponseBody
  75 + public String synchsPatientData() {
  76 + syncHsPatientService.synchsPatientData();
  77 + return "synchsPatientData starting...........";
  78 + }
  79 +
  80 +
54 81  
55 82 }