From c02d7b0044c55afca59448c74548fb2f73eef0f9 Mon Sep 17 00:00:00 2001 From: lxd <1004405501@qq.com> Date: Wed, 16 Apr 2025 11:13:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E=E6=82=A3?= =?UTF-8?q?=E8=80=85=E4=BD=93=E6=A3=80=E7=BC=96=E5=8F=B7=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectPatientController.java | 26 ++++++++++++++----- .../inspectpatient/InspectPatientService.java | 4 +++ .../InspectPatientServiceImpl.java | 7 +++++ 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java index 4c1bacc..3bb671a 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java @@ -89,7 +89,7 @@ import java.util.Locale; @RequestMapping("/inspect/patient") @Validated public class InspectPatientController { - private static final AtomicInteger counter = new AtomicInteger(0); + // private static final AtomicInteger counter = new AtomicInteger(0); @Resource private InspectPatientService patientService; @Resource @@ -206,13 +206,17 @@ public class InspectPatientController { // 获取当前日期并格式化为 yyyyMMdd 格式 LocalDate currentDate = LocalDate.now(); String datePart = currentDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); - // 生成一个6位的序列号 - int sequenceNumber = counter.incrementAndGet() % 1000000; // 确保序列号是6位数 - String MedicalSn = datePart + String.format("%06d", sequenceNumber); + // 生成一个唯一的6位的随机数 + Random random = new Random(); + String sequencePart; + do { + int sequenceNumber = 100000 + random.nextInt(900000); // 生成一个6位的随机数 + sequencePart = datePart + String.format("%06d", sequenceNumber); + } while (patientService.IsMedicalSnExist(sequencePart)); // 检查是否存在,如果存在则继续生成 //患者信息 InspectPatientSaveReqVO rowData = new InspectPatientSaveReqVO(); - rowData.setMedicalSn(MedicalSn); + rowData.setMedicalSn(sequencePart); //填充患者信息 for (int i = 0; i < row.getLastCellNum(); i++) { Cell cell = row.getCell(i); @@ -341,8 +345,16 @@ public class InspectPatientController { LocalDate currentDate = LocalDate.now(); String datePart = currentDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); // 生成一个6位的序列号 - int sequenceNumber = counter.incrementAndGet() % 1000000; // 确保序列号是6位数 - String sequencePart = datePart + String.format("%06d", sequenceNumber); + // int sequenceNumber = counter.incrementAndGet() % 1000000; // 确保序列号是6位数 + // String sequencePart = datePart + String.format("%06d", sequenceNumber); + // 生成一个唯一的6位的随机数 + Random random = new Random(); + String sequencePart; + do { + int sequenceNumber = 100000 + random.nextInt(900000); // 生成一个6位的随机数 + sequencePart = datePart + String.format("%06d", sequenceNumber); + } while (patientService.IsMedicalSnExist(sequencePart)); // 检查是否存在,如果存在则继续生成 + //患者信息 InspectPatientSaveReqVO rowData = new InspectPatientSaveReqVO(); rowData.setMedicalSn(sequencePart); diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java index fc03b12..b7f1ec4 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java @@ -101,6 +101,10 @@ public interface InspectPatientService { InspectPatientDO getPatientOfMedicalSn(String medicalSn); //验证身份证号是否存在 boolean validateIdCardExists(String idCard); + /* + * 通过体检编号判断体检编号是否存在 + * */ + boolean IsMedicalSnExist(String medicalSn); //根据身份证、姓名、体检编码获取患者信息 List getPatientBySearchKey(String searchKey); diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java index e0cdd85..0cdf0dd 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java @@ -210,6 +210,13 @@ public class InspectPatientServiceImpl implements InspectPatientService { lambdaQuery.eq(InspectPatientDO::getCardId, idCard); return patientMapper.selectCount(lambdaQuery) > 0; } + + @Override + public boolean IsMedicalSnExist(String medicalSn) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InspectPatientDO::getMedicalSn, medicalSn); + return patientMapper.selectCount(queryWrapper) > 0; + } @Override public List getPatientBySearchKey(String searchKey) { LambdaQueryWrapper lambdaQuery = new LambdaQueryWrapper<>();