改成同步部署。解决问题。

jp2demo1.0
zhanghai 1 year ago
parent 19a67a1cc8
commit 6d6f8e1388

@ -40,115 +40,110 @@ public class WebServiceImpl implements IWebService {
@Override
public CommonResult<?> syncInspection(SyncBasicDataDto syncBasicDataDto) {
CompletableFuture.runAsync(() -> {
try {
//页码
int current;
//每页1000条数据
int limit = syncBasicDataDto.getLimit();
for (current = 1; ; current++) {
//查询基础数据
List<Tbasic> tbasicList = basicMapper.getOldBasicListLimit((current - 1) * limit, limit, syncBasicDataDto.getInpatientNoList(), syncBasicDataDto);
log.info("病案大小" + tbasicList.size());
if (tbasicList.size() == 0) {
break;
}
try {
//页码
int current;
//每页1000条数据
int limit = syncBasicDataDto.getLimit();
for (current = 1; ; current++) {
//查询基础数据
List<Tbasic> tbasicList = basicMapper.getOldBasicListLimit((current - 1) * limit, limit, syncBasicDataDto.getInpatientNoList(), syncBasicDataDto);
log.info("病案大小" + tbasicList.size());
if (tbasicList.size() == 0) {
break;
}
for (int j = 0; j < tbasicList.size(); j++) {
Tbasic tbasic = tbasicList.get(j);
log.info("正在同步" + tbasic.getInpatientNo() + " " + tbasic.getAdmissTimes());
for (int j = 0; j < tbasicList.size(); j++) {
Tbasic tbasic = tbasicList.get(j);
log.info("正在同步" + tbasic.getInpatientNo() + " " + tbasic.getAdmissTimes());
List<ScanAssort> oldScanAssortList = scanAssortMapper.getListByAssortId("A5A7AA6796D1715A2F1E35699C706C84", tbasic.getPatientId());
log.info("旧数据" + oldScanAssortList.size());
if (oldScanAssortList.size()>0){
log.info("跳过同步" + tbasic.getInpatientNo() + " " + tbasic.getAdmissTimes());
continue;
}
List<ScanAssort> oldScanAssortList = scanAssortMapper.getListByAssortId("A5A7AA6796D1715A2F1E35699C706C84", tbasic.getPatientId());
log.info("旧数据" + oldScanAssortList.size());
if (oldScanAssortList.size()>0){
log.info("跳过同步" + tbasic.getInpatientNo() + " " + tbasic.getAdmissTimes());
continue;
}
String pNo = tbasic.getInpatientNo();
String times = tbasic.getAdmissTimes().toString();
String pNo = tbasic.getInpatientNo();
String times = tbasic.getAdmissTimes().toString();
// String StartDate = sdf.format(tbasic.getAdmissDate());
// String EndDate = sdf.format(tbasic.getDisDate());
String StartDate = "2018-01-01 00:00:00";
String EndDate = "2025-01-01 00:00:00";
String patientId = tbasic.getPatientId();
String StartDate = "2018-01-01 00:00:00";
String EndDate = "2025-01-01 00:00:00";
String patientId = tbasic.getPatientId();
//获取所有的报告列表
PatientListResult patientListResult = getCommonResult(pNo, times, StartDate, EndDate);
//获取所有的报告列表
PatientListResult patientListResult = getCommonResult(pNo, times, StartDate, EndDate);
// log.info("返回结果"+patientListResult);
if (patientListResult == null) {
log.error(pNo + " " + times + "调用失败");
continue;
}
if (patientListResult == null) {
log.error(pNo + " " + times + "调用失败");
continue;
}
List<ScanAssort> scanAssortList = new ArrayList<>();
List<ScanAssort> scanAssortList = new ArrayList<>();
for (int i = 0; i < patientListResult.getResult().getPidReportMain().size(); i++) {
//根据旧数据判断是否需要做同步
PatientListResult.Result.ReportInfo item = patientListResult.getResult().getPidReportMain().get(i);
for (int i = 0; i < patientListResult.getResult().getPidReportMain().size(); i++) {
//根据旧数据判断是否需要做同步
PatientListResult.Result.ReportInfo item = patientListResult.getResult().getPidReportMain().get(i);
// ScanAssort oldAssort = oldScanAssortList.stream()
// .filter(f -> f.getFileTitle().equals(item.getPidComName())).findAny().orElse(null);
String root = "F:\\jianyan" + File.separator
+ tbasic.getInpatientNo() + File.separator
+ tbasic.getAdmissTimes();
String root = "F:\\jianyan" + File.separator
+ tbasic.getInpatientNo() + File.separator
+ tbasic.getAdmissTimes();
// log.info("开始转换"+root);
//时间段内如果查询到住院次数相同的数据 则数据入库
if (item.getPidAddmissTimes().equals(times) && item.getPidInNo().equals(pNo)) {
log.info("正在同步" + item.getPidComName() + i);
//时间段内如果查询到住院次数相同的数据 则数据入库
if (item.getPidAddmissTimes().equals(times) && item.getPidInNo().equals(pNo)) {
log.info("正在同步" + item.getPidComName() + i);
// log.info("进入条件");
PatientReportResult patientReportResult = this.getReportResult(item.getRepId());
String base64Result = patientReportResult.getResult().getPatient().getPatientReport();
List<ScanAssort> addScanList = new ArrayList<>();
try {
log.info("开始转换");
addScanList = PDFFileUtils.base64StringToPDF(base64Result, root, item.getRepId(), item.getPidComName(), i);
log.info("转换结束");
} catch (IOException e) {
log.error("检验pdf转化出错" + e.getMessage(),e);
}
addScanList.forEach(scanAssort -> {
ScanAssort oldAssort = oldScanAssortList.stream()
.filter(f -> f.getScanPage().equals(scanAssort.getScanPage())).findAny().orElse(null);
if (oldAssort != null) {
scanAssort.setId(oldAssort.getId());
} else {
scanAssort.setId(snowflakeIdWorker.nextId());
}
scanAssort.setPatientId(patientId);
scanAssortList.add(scanAssort);
log.info("结果" + scanAssort);
});
PatientReportResult patientReportResult = this.getReportResult(item.getRepId());
String base64Result = patientReportResult.getResult().getPatient().getPatientReport();
List<ScanAssort> addScanList = new ArrayList<>();
try {
log.info("开始转换");
addScanList = PDFFileUtils.base64StringToPDF(base64Result, root, item.getRepId(), item.getPidComName(), i);
log.info("转换结束");
} catch (IOException e) {
log.error("检验pdf转化出错" + e.getMessage(),e);
}
}
//数据写入到3.0
if (ObjectUtil.isNotEmpty(scanAssortList)) {
log.info("开始写入" + scanAssortList.size());
scanAssortMapper.insertOrUpdateBatch(scanAssortList);
log.info("写入结束" + scanAssortList.size());
addScanList.forEach(scanAssort -> {
ScanAssort oldAssort = oldScanAssortList.stream()
.filter(f -> f.getScanPage().equals(scanAssort.getScanPage())).findAny().orElse(null);
if (oldAssort != null) {
scanAssort.setId(oldAssort.getId());
} else {
scanAssort.setId(snowflakeIdWorker.nextId());
}
scanAssort.setPatientId(patientId);
scanAssortList.add(scanAssort);
log.info("结果" + scanAssort);
});
}
}
log.info("业务结束");
//数据写入到3.0
if (ObjectUtil.isNotEmpty(scanAssortList)) {
log.info("开始写入" + scanAssortList.size());
scanAssortMapper.insertOrUpdateBatch(scanAssortList);
log.info("写入结束" + scanAssortList.size());
}
}
log.info("业务结束");
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}, executor);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return CommonResult.success("同步检验数据成功");

@ -86,7 +86,7 @@
create_time,
sort
FROM docus_archivefile.t_scan_assort
WHERE assort_id = #{assortId} and patient_id = #{pid}
WHERE assort_id = #{assortId} and patient_id = #{pid} and source='jy'
</select>
<select id="getScanAssort" resultType="com.docus.demo.entity.ScanAssort">

Loading…
Cancel
Save