|
|
|
|
@ -30,31 +30,45 @@ public class PatientInfoSyncJob {
|
|
|
|
|
@XxlJob("FoShanSyPatientInfoSyncJob")
|
|
|
|
|
public void foShanSyPatientInfoSyncJob() {
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步任务开始 ===================");
|
|
|
|
|
String jobConfigPath = "data-config\\job-config";
|
|
|
|
|
String jobConfigName = "FoShanSyPatientInfoSyncJob.json";
|
|
|
|
|
TableJsonRead jsonReader = new TableJsonRead();
|
|
|
|
|
FoShanSyPatientInfoSyncJobConfig syncJobConfig = jsonReader.Read(jobConfigPath, jobConfigName, FoShanSyPatientInfoSyncJobConfig.class);
|
|
|
|
|
syncJobConfig = FoShanSyPatientInfoSyncJobConfig.checkAndInit(syncJobConfig);
|
|
|
|
|
Integer pageSize = syncJobConfig.getPageSize();
|
|
|
|
|
Integer pageNumber = syncJobConfig.getPageNumber();
|
|
|
|
|
String startDate = syncJobConfig.getStartDate();
|
|
|
|
|
LocalDate runLocalDate = LocalDate.now();
|
|
|
|
|
String runJobDate = runLocalDate.toString();
|
|
|
|
|
|
|
|
|
|
patientInfoSyncService.syncInHospitalData();
|
|
|
|
|
while (true) {
|
|
|
|
|
int syscCount = patientInfoSyncService.syncDischargeData(startDate + " 00:00:00", runJobDate + " 23:59:59", pageNumber, pageSize);
|
|
|
|
|
if (syscCount < pageSize) {
|
|
|
|
|
break;
|
|
|
|
|
try {
|
|
|
|
|
String jobConfigPath = "data-config\\job-config";
|
|
|
|
|
String jobConfigName = "FoShanSyPatientInfoSyncJob.json";
|
|
|
|
|
TableJsonRead jsonReader = new TableJsonRead();
|
|
|
|
|
FoShanSyPatientInfoSyncJobConfig syncJobConfig = jsonReader.Read(jobConfigPath, jobConfigName, FoShanSyPatientInfoSyncJobConfig.class);
|
|
|
|
|
syncJobConfig = FoShanSyPatientInfoSyncJobConfig.checkAndInit(syncJobConfig);
|
|
|
|
|
Integer pageSize = syncJobConfig.getPageSize();
|
|
|
|
|
Integer pageNumber = syncJobConfig.getPageNumber();
|
|
|
|
|
String startDate = syncJobConfig.getStartDate();
|
|
|
|
|
LocalDate runLocalDate = LocalDate.now();
|
|
|
|
|
String runJobDate = runLocalDate.toString();
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步在院开始 ===================");
|
|
|
|
|
patientInfoSyncService.syncInHospitalData();
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步在院结束 ===================");
|
|
|
|
|
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步出院开始 ===================");
|
|
|
|
|
while (true) {
|
|
|
|
|
int syscCount = patientInfoSyncService.syncDischargeData(startDate + " 00:00:00", runJobDate + " 23:59:59", pageNumber, pageSize);
|
|
|
|
|
if (syscCount < pageSize) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
pageNumber += 1;
|
|
|
|
|
}
|
|
|
|
|
pageNumber += 1;
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步出院结束 ===================");
|
|
|
|
|
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步退院开始 ===================");
|
|
|
|
|
patientInfoSyncService.syncCancelHospitalData();
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步退院结束 ===================");
|
|
|
|
|
// 下次同步则开始多同步一天,防止时间差引起同步缺漏 例如 10分钟同步一次 导致 23:50:01 出院未同步到
|
|
|
|
|
String nexRunStartDate = runLocalDate.plusDays(-1).toString();
|
|
|
|
|
syncJobConfig.setPageNumber(1);
|
|
|
|
|
syncJobConfig.setStartDate(nexRunStartDate);
|
|
|
|
|
jsonReader.Save(jobConfigPath, jobConfigName, Func.toJson(syncJobConfig));
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步任务结束 ===================");
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步任务异常 ==================="+e.getMessage(),e);
|
|
|
|
|
}
|
|
|
|
|
// 下次同步则开始多同步一天,防止时间差引起同步缺漏 例如 10分钟同步一次 导致 23:50:01 出院未同步到
|
|
|
|
|
String nexRunStartDate = runLocalDate.plusDays(-1).toString();
|
|
|
|
|
syncJobConfig.setPageNumber(1);
|
|
|
|
|
syncJobConfig.setStartDate(nexRunStartDate);
|
|
|
|
|
jsonReader.Save(jobConfigPath, jobConfigName, Func.toJson(syncJobConfig));
|
|
|
|
|
log.info("====================> 佛山三院基础数据同步任务结束 ===================");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static class FoShanSyPatientInfoSyncJobConfig {
|
|
|
|
|
|