diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java index 5da334c..d7c78a9 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java @@ -90,7 +90,7 @@ public class MongoSyncService { template.getDb().authenticate("platform", "platform123".toCharArray()); Query query = new MongoQuery(new MongoCondition("hospitalId", hospitalId, MongoOper.IS)).convertToMongoQuery(); for (Class cla:classList) { - sb.append("start... "); + sb.append("sync start... "); sb.append(cla.getName()); sb.append(" query size:"); List list = mongoTemplate.find(query, cla); @@ -125,5 +125,53 @@ public class MongoSyncService { } } + public String downloadByHospitalId(String hospitalId) { + if (org.apache.commons.lang.StringUtils.isBlank(hospitalId)) { + return "hospitalId is null"; + } + StringBuffer sb = new StringBuffer(); + List classList = new ArrayList<>(); + classList.add(SmsTemplateModel.class); + try { + Mongo mongo = new Mongo("119.90.43.68", 27018); + MongoTemplate template = new MongoTemplate(mongo, "platform"); + template.getDb().authenticate("platform", "platform123".toCharArray()); + Query query = new MongoQuery(new MongoCondition("hospitalId", hospitalId, MongoOper.IS)).convertToMongoQuery(); + for (Class cla:classList) { + sb.append("download start... "); + sb.append(cla.getName()); + sb.append(" query size:"); + List list = template.find(query, cla); + sb.append(list.size()); + int insert = 0; + int modified = 0; + for (Object obj:list) { + String id = cla.getMethod("getId").invoke(obj).toString(); + if (StringUtils.isNotBlank(id)) { + Object temp = mongoTemplate.findById(id, cla); + if (temp == null) { + mongoTemplate.insert(obj); + insert++; + } else { + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + mongoTemplate.updateMulti(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), update, cla); + modified++; + } + } + } + sb.append(" insert:"); + sb.append(insert); + sb.append(" modified:"); + sb.append(modified); + sb.append("\r\n
"); + } + return sb.toString(); + } catch (Exception e) { + e.printStackTrace(); + sb.append(e.getMessage()); + return sb.toString(); + } + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java index f94b947..c3c57c7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java @@ -40,4 +40,10 @@ public class MongoSyncController extends BaseController { return mongoSyncService.syncByHospitalId(hospitalId); } + @ResponseBody + @RequestMapping(method = RequestMethod.GET,value = "/downloadByHospitalId") + public String downloadByHospitalId(String hospitalId){ + return mongoSyncService.downloadByHospitalId(hospitalId); + } + }