From 6d6f8e1388112e3cbaa6b58615890ea2faa26162 Mon Sep 17 00:00:00 2001 From: zhanghai <120228220@qq.com> Date: Tue, 16 Jul 2024 14:51:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E6=88=90=E5=90=8C=E6=AD=A5=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E3=80=82=E8=A7=A3=E5=86=B3=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docus/demo/service/WebServiceImpl.java | 153 +++++++++--------- .../mapper/mysql/ScanAssortMapper.xml | 2 +- 2 files changed, 75 insertions(+), 80 deletions(-) diff --git a/src/main/java/com/docus/demo/service/WebServiceImpl.java b/src/main/java/com/docus/demo/service/WebServiceImpl.java index 31d8aa5..8330e84 100644 --- a/src/main/java/com/docus/demo/service/WebServiceImpl.java +++ b/src/main/java/com/docus/demo/service/WebServiceImpl.java @@ -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 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 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 oldScanAssortList = scanAssortMapper.getListByAssortId("A5A7AA6796D1715A2F1E35699C706C84", tbasic.getPatientId()); - log.info("旧数据" + oldScanAssortList.size()); - if (oldScanAssortList.size()>0){ - log.info("跳过同步" + tbasic.getInpatientNo() + " " + tbasic.getAdmissTimes()); - continue; - } + List 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 scanAssortList = new ArrayList<>(); + List 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 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 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("同步检验数据成功"); diff --git a/src/main/resources/mapper/mysql/ScanAssortMapper.xml b/src/main/resources/mapper/mysql/ScanAssortMapper.xml index e898304..300bb12 100644 --- a/src/main/resources/mapper/mysql/ScanAssortMapper.xml +++ b/src/main/resources/mapper/mysql/ScanAssortMapper.xml @@ -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'