From cc2b6d06d5737877ed048186725fb06a8296f2b1 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Thu, 13 Feb 2025 13:08:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jiashi/service/CardInfo.java | 2 + .../com/jiashi/service/UpdateService.java | 65 ++++++++++++++----- 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/jiashi/service/CardInfo.java b/src/main/java/com/jiashi/service/CardInfo.java index fdd5379..5ce3aac 100644 --- a/src/main/java/com/jiashi/service/CardInfo.java +++ b/src/main/java/com/jiashi/service/CardInfo.java @@ -36,6 +36,8 @@ public class CardInfo { private String outdeptname; @Column(name="patsex") private String patsex; + @Column(name="pat_path") + private String pat_path; @Column(name="patbirthday") private Date patbirthday; private Integer state; diff --git a/src/main/java/com/jiashi/service/UpdateService.java b/src/main/java/com/jiashi/service/UpdateService.java index 1fdbf5c..23fcbc3 100644 --- a/src/main/java/com/jiashi/service/UpdateService.java +++ b/src/main/java/com/jiashi/service/UpdateService.java @@ -24,7 +24,7 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; -import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -46,6 +46,12 @@ public class UpdateService { private Set lianZhongPatPicDirs = new HashSet<>(); + /** + * 最终保存文件的目录两位标识+10位病案号相关+8位日期,将标识作为第一级检索,病案号相关位第二层检索 + */ + private Map>> lianZhongPatPicDirMap = new HashMap<>(); + + public List updateData() { List cardInfos = dataQuery.dateQuery(); dataQuery.updateBatchState(cardInfos, 1); @@ -229,8 +235,14 @@ public class UpdateService { public static void main(String[] args) { UpdateService updateService = new UpdateService(); System.out.println(new Gson().toJson(updateService.lianZhongPatPicDirs)); + System.out.println(new Gson().toJson(updateService.lianZhongPatPicDirMap)); updateService.initLianZhongPatPicDir(); System.out.println(new Gson().toJson(updateService.lianZhongPatPicDirs)); + System.out.println(new Gson().toJson(updateService.lianZhongPatPicDirMap)); + Map> stringSetMap = updateService.lianZhongPatPicDirMap.get("75"); + System.out.println(new Gson().toJson(stringSetMap)); + Set strings = stringSetMap.get("12345"); + System.out.println(new Gson().toJson(strings)); } private void initLianZhongPatPicDir() { @@ -243,6 +255,7 @@ public class UpdateService { while ((line = bufferedReader.readLine()) != null) { lianZhongPatPicDirs.add(line); } + initLianZhongPatPicDirsMap(lianZhongPatPicDirs); return; } catch (Exception ex) { log.error(">>>>>>>>>>>> 初始化联众患者文件目录读取存储文件错误!"); @@ -292,6 +305,7 @@ public class UpdateService { } } if (!lianZhongPatPicDirs.isEmpty()) { + initLianZhongPatPicDirsMap(lianZhongPatPicDirs); try (BufferedWriter writer = new BufferedWriter(new FileWriter(readFile));) { for (String picDir : lianZhongPatPicDirs) { writer.write(picDir); @@ -307,6 +321,24 @@ public class UpdateService { } + /** + * 最终保存文件的目录两位标识+10位病案号相关+8位日期,将标识作为第一级检索,病案号相关位第二层检索 + */ + private void initLianZhongPatPicDirsMap(Set lianZhongPatPicDirs) { + for (String lianZhongPatPicDir : lianZhongPatPicDirs) { + File patPicDirFile = new File(lianZhongPatPicDir); + String name = patPicDirFile.getName(); + String flag = name.substring(0, 2); + String maybe = name.substring(2).substring(0, 10); + maybe = removeLeadingZeros(maybe); + Map> maybeMap = lianZhongPatPicDirMap.getOrDefault(flag, new HashMap<>()); + Set maybeVal = maybeMap.getOrDefault(maybe, new HashSet<>()); + maybeVal.add(lianZhongPatPicDir); + maybeMap.put(maybe, maybeVal); + lianZhongPatPicDirMap.put(flag, maybeMap); + } + } + private LianZhongUploadInfo.PatientInfo convert(CardInfo cardInfo) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -349,24 +381,23 @@ public class UpdateService { private String findLianZhongDir(CardInfo cardInfo) { String gestno = cardInfo.getGestno(); String patno = cardInfo.getPatno(); - Date outdate = cardInfo.getOutdate(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); - String outDateFormat = sdf.format(outdate); - for (String lianZhongPatPicDir : lianZhongPatPicDirs) { - String dirName = new File(lianZhongPatPicDir).getName(); - String disDatePart = dirName.substring(12); - String comparePart = dirName.substring(2).substring(0, 10); - comparePart = removeLeadingZeros(comparePart); - // gestno 或者 patno 进行 识别 - if (StringUtils.hasText(gestno)) { - if (comparePart.equals(removeLeadingZeros(gestno)) && outDateFormat.equals(disDatePart)) { - return lianZhongPatPicDir; - } - } - if (comparePart.equals(removeLeadingZeros(patno)) && outDateFormat.equals(disDatePart)) { - return lianZhongPatPicDir; + // Date outdate = cardInfo.getOutdate(); + String pathPrefix = cardInfo.getPat_path().substring(0, 2); + /// 取消出院日期判断,日期可能不是出院日期 + //SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + // String outDateFormat = sdf.format(outdate); + Map> maybeMap = lianZhongPatPicDirMap.get(pathPrefix); + // gestno 或者 patno 进行 识别 + if (StringUtils.hasText(gestno)) { + Set picsByGestno = maybeMap.get(removeLeadingZeros(gestno)); + if(!CollectionUtils.isEmpty(picsByGestno) && picsByGestno.size() == 1){ + return new ArrayList<>(picsByGestno).get(0); } } + Set picsByPatno = maybeMap.get(removeLeadingZeros(patno)); + if(!CollectionUtils.isEmpty(picsByPatno) && picsByPatno.size() == 1){ + return new ArrayList<>(picsByPatno).get(0); + } return null; }