fix: 优化获取目录

厦门中医院联众-XiaMenZhongLianZhong
wyb 5 months ago
parent 1d15965dc9
commit cc2b6d06d5

@ -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;

@ -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<String> lianZhongPatPicDirs = new HashSet<>();
/**
* +10+8
*/
private Map<String, Map<String, Set<String>>> lianZhongPatPicDirMap = new HashMap<>();
public List<CardInfo> updateData() {
List<CardInfo> 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<String, Set<String>> stringSetMap = updateService.lianZhongPatPicDirMap.get("75");
System.out.println(new Gson().toJson(stringSetMap));
Set<String> 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<String> 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<String, Set<String>> maybeMap = lianZhongPatPicDirMap.getOrDefault(flag, new HashMap<>());
Set<String> 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<String, Set<String>> maybeMap = lianZhongPatPicDirMap.get(pathPrefix);
// gestno 或者 patno 进行 识别
if (StringUtils.hasText(gestno)) {
Set<String> picsByGestno = maybeMap.get(removeLeadingZeros(gestno));
if(!CollectionUtils.isEmpty(picsByGestno) && picsByGestno.size() == 1){
return new ArrayList<>(picsByGestno).get(0);
}
}
Set<String> picsByPatno = maybeMap.get(removeLeadingZeros(patno));
if(!CollectionUtils.isEmpty(picsByPatno) && picsByPatno.size() == 1){
return new ArrayList<>(picsByPatno).get(0);
}
return null;
}

Loading…
Cancel
Save