diff --git a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java index 326cdd1..0accff6 100644 --- a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java +++ b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java @@ -18,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; import java.util.Collections; +import java.util.List; @Api(value = "数据同步接口", tags = "数据同步接口") @RestController("/sync") @@ -148,4 +149,18 @@ public class SyncBasicDataController { } } + + @ApiOperation("根据 病案号、姓名、出院日期、住院次数 进行筛选数据保留一条") + @PostMapping("/chooseByInpatientNo") + public CommonResult chooseByInpatientNo(@RequestBody List inpatientNos){ + log.info("根据 病案号、姓名、出院日期、住院次数 进行筛选数据保留一条"); + try { + syncBasicDataService.choose(inpatientNos); + log.info("根据 病案号、姓名、出院日期、住院次数 进行筛选数据保留一条,已完成!"); + return CommonResult.success("筛选完成!"); + } catch (Exception ex) { + log.error("根据 病案号、姓名、出院日期、住院次数 进行筛选数据保留一条,出现异常!" + ex.getMessage(), ex); + return CommonResult.failed("筛选异常!"); + } + } } diff --git a/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java b/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java index b5bbceb..9957887 100644 --- a/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java +++ b/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java @@ -17,4 +17,6 @@ public interface ISyncBasicDataService { void scanBasicCorrect(List basicCorrectDtos); void choose(); + + void choose(List inpatientNos); } diff --git a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java index ab8301e..0c895c4 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java @@ -175,6 +175,14 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { log.info("本次筛选完成!"); } + @Override + public void choose(List inpatientNos) { + for (String inpatientNo : inpatientNos) { + choose(inpatientNo); + log.info("已经筛选病案号:{} ", inpatientNo); + } + } + /** * 根据 病案号、姓名、出院日期、住院次数 判断是同一个人,进行数据筛选。 * 有盘号/箱号 优先级 +10 @@ -330,6 +338,11 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { }).collect(Collectors.toList()); if (CollUtil.isEmpty(allScanAssorts)) { + List notSelectedPids = allPatientIds.stream().filter(e -> !e.equals(selectPatientId)).collect(Collectors.toList()); + basicMapper.delTbasic(notSelectedPids); + for (String notSelectedPid : notSelectedPids) { + basicMapper.delTbasicSub(notSelectedPid); + } return; }