diff --git a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java index 177efb8..cb3b6a2 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java @@ -26,8 +26,6 @@ import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.stream.Collectors; @Slf4j @@ -171,7 +169,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { private List getTbasicList(List oldBasicList, List tpatientvisitList, List tdiagnoses, List toperations) { - + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 根据病案号 住院次数 名称 做去重判断 return tpatientvisitList.stream().map(m -> { @@ -179,6 +177,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { .filter(old -> ObjectUtil.equal(m.getFprn(), old.getInpatientNo().toLowerCase(Locale.ROOT)) && ObjectUtil.equal(m.getFtimes(), old.getAdmissTimes()) && ObjectUtil.equal(m.getFname(), old.getName()) + && sdf.format(m.getFcydate()).equals(sdf.format(old.getDisDate())) ) .findFirst() .orElse(null); @@ -300,18 +299,20 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { } private List getInsertTbasic(List oldBasicList, List cardInfoList) { - + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List cardInfos = cardInfoList.stream().filter(f -> { //根据病案号 名称 住院次数 出院时间 去重 String pno = f.getPatNo(); String name = f.getPatName(); Integer pNum = f.getPatNum(); + Date outDate = f.getOutDate(); Tbasic tbasic = oldBasicList.stream().filter(o -> ObjectUtil.equal(pno, o.getInpatientNo().toLowerCase(Locale.ROOT)) && ObjectUtil.equal(name, o.getName()) && ObjectUtil.equal(pNum, o.getAdmissTimes()) - ) + && ObjectUtil.equal(pNum, o.getAdmissTimes()) + && sdf.format(outDate).equals(sdf.format(o.getDisDate()))) .findAny() .orElse(null); diff --git a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java index 12b3c1a..1fdf273 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java @@ -290,6 +290,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { } private Tbasic getOldTbasic(FileUploadJpgDto fileUploadJpgDto) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String admissId = fileUploadJpgDto.getAdmissId(); Tbasic getByAdmissId = basicMapper.getTbasicByAdmissId(admissId); if (getByAdmissId != null) { @@ -297,14 +298,17 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { } String jpgDtoInpatientNo = fileUploadJpgDto.getInpatientNo(); Integer jpgDtoAdmissTimes = fileUploadJpgDto.getAdmissTimes(); + Date jpgDtoDisDate = fileUploadJpgDto.getDisDate(); List inpatientNos = Collections.singletonList(jpgDtoInpatientNo); SyncBasicDataDto dto = new SyncBasicDataDto(); List oldBasicList = basicMapper.getOldBasicList(inpatientNos, dto); for (Tbasic tbasic : oldBasicList) { - // 名字,病案号,住院次数 相同 ,人为是一个数据 + + // 名字,病案号,住院次数,出院时间 相同 ,人为是一个数据 if (ObjectUtil.equals(tbasic.getName(), fileUploadJpgDto.getName()) && tbasic.getInpatientNo().equalsIgnoreCase(jpgDtoInpatientNo) - && ObjectUtil.equals(jpgDtoAdmissTimes, tbasic.getAdmissTimes())) { + && ObjectUtil.equals(jpgDtoAdmissTimes, tbasic.getAdmissTimes()) + && sdf.format(jpgDtoDisDate).equals(sdf.format(tbasic.getDisDate()))) { return tbasic; } }