diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index fa11304..9848e0c 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; +import com.lyms.platform.biz.dal.impl.YunBookbuildingDaoImpl; import com.lyms.platform.biz.service.GuidelinesService; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.JsonUtil; @@ -26,6 +27,8 @@ public class BasicConfigServiceTest { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); + + // PuerperaService basicConfigService = (PuerperaService) applicationContext.getBean(PuerperaService.class); /* PuerperaModel obj = new PuerperaModel(); obj.setAddress("成都市高新区天府2街"); @@ -82,7 +85,7 @@ public class BasicConfigServiceTest { // addaw(applicationContext, "0-83月龄体重标准差数值表(男、女).csv", 0); // addZhenduan(applicationContext); - addHealthConfig(applicationContext); +// addHealthConfig(applicationContext); } public static void addZhenduan(ApplicationContext applicationContext) { 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 0b81556..5da334c 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 @@ -4,12 +4,20 @@ 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.utils.*; +import com.lyms.platform.pojo.*; +import com.mongodb.Mongo; +import org.apache.commons.lang.*; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; 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.stereotype.Service; import org.springframework.util.Assert; +import java.util.ArrayList; +import java.util.List; + /** * Created by Administrator on 2016/9/13 0013. */ @@ -55,5 +63,67 @@ public class MongoSyncService { } } + public String syncByHospitalId(String hospitalId) { + if (org.apache.commons.lang.StringUtils.isBlank(hospitalId)) { + return "hospitalId is null"; + } + StringBuffer sb = new StringBuffer(); + List classList = new ArrayList<>(); + classList.add(AntenatalExaminationModel.class); + classList.add(AntExChuModel.class); + classList.add(BabyModel.class); + classList.add(BabyCheckModel.class); + classList.add(MaternalDeliverModel.class); + classList.add(Patients.class); + classList.add(PersonModel.class); + classList.add(PostReviewModel.class); + classList.add(PuerperaModel.class); + classList.add(ReferralApplyOrderModel.class); + classList.add(ReferValue.class); + classList.add(SieveModel.class); + classList.add(SieveApplyOrderModel.class); + classList.add(SieveResultModel.class); + classList.add(StopPregModel.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("start... "); + sb.append(cla.getName()); + sb.append(" query size:"); + List list = mongoTemplate.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 = template.findById(id, cla); + if (temp == null) { + template.insert(obj); + insert++; + } else { + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + template.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 e2065be..f94b947 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 @@ -34,4 +34,10 @@ public class MongoSyncController extends BaseController { return "token vaild"; } + @ResponseBody + @RequestMapping(method = RequestMethod.POST,value = "/initByHospitalId") + public String initByHospitalId(String hospitalId){ + return mongoSyncService.syncByHospitalId(hospitalId); + } + }