From 81d2ee7d0728aef5930dbbcc56d1382889299fe4 Mon Sep 17 00:00:00 2001 From: loser <12524321+loser111@user.noreply.gitee.com> Date: Wed, 10 May 2023 13:21:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=82=A3=E8=80=85=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97excel=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/PatientManageController.java | 24 ++++++ .../resources/templates/check/checkManage/add.html | 2 +- .../templates/check/checkManage/checkManage.html | 4 +- .../templates/check/checkManage/edit.html | 2 +- .../templates/patient/patientManage/add.html | 2 +- .../templates/patient/patientManage/edit.html | 2 +- .../patient/patientManage/patientManage.html | 23 +++++- .../common/core/controller/BaseController.java | 1 + .../java/com/ruoyi/system/domain/CheckManage.java | 4 +- .../com/ruoyi/system/domain/PatientManage.java | 4 +- .../ruoyi/system/mapper/PatientManageMapper.java | 8 ++ .../system/service/IPatientManageService.java | 8 ++ .../service/impl/PatientManageServiceImpl.java | 90 ++++++++++++++++++++++ .../main/resources/mapper/PatientManageMapper.xml | 5 +- 14 files changed, 167 insertions(+), 12 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/PatientManageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/PatientManageController.java index 3c64456..58f1b35 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/PatientManageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/PatientManageController.java @@ -18,6 +18,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 患者管理Controller @@ -55,6 +56,28 @@ public class PatientManageController extends BaseController } /** + * 导入患者管理列表 + */ + @Log(title = "患者管理", businessType = BusinessType.IMPORT) + @RequiresPermissions("patient:patientManage:import") + @PostMapping("/importData") + @ResponseBody + public AjaxResult importData(MultipartFile file,boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(PatientManage.class); + List patientList = util.importExcel(file.getInputStream()); + String message = patientManageService.importPatient(patientList,updateSupport); + return AjaxResult.success(message); + } + @RequiresPermissions("patient:patientManage:view") + @GetMapping("/importTemplate") + @ResponseBody + public AjaxResult importTemplate() + { + ExcelUtil util = new ExcelUtil(PatientManage.class); + return util.importTemplateExcel("患者数据"); + } + /** * 导出患者管理列表 */ @RequiresPermissions("patient:patientManage:export") @@ -68,6 +91,7 @@ public class PatientManageController extends BaseController return util.exportExcel(list, "患者管理数据"); } + /** * 新增患者管理 */ diff --git a/ruoyi-admin/src/main/resources/templates/check/checkManage/add.html b/ruoyi-admin/src/main/resources/templates/check/checkManage/add.html index 0e64753..417dd39 100644 --- a/ruoyi-admin/src/main/resources/templates/check/checkManage/add.html +++ b/ruoyi-admin/src/main/resources/templates/check/checkManage/add.html @@ -19,7 +19,7 @@
- +
diff --git a/ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html b/ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html index 141c47e..aa82178 100644 --- a/ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html +++ b/ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html @@ -19,7 +19,7 @@
  • - +
  • @@ -114,7 +114,7 @@ }, { field: 'patientIdCard', - title: '联系电话' + title: '身份证' }, { field: 'isDiagnosed', diff --git a/ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html b/ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html index 8b63072..3b5754c 100644 --- a/ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html +++ b/ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html @@ -20,7 +20,7 @@
  • - +
    diff --git a/ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html b/ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html index 40667eb..0c76eae 100644 --- a/ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html +++ b/ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html @@ -20,7 +20,7 @@
    - +
    diff --git a/ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html b/ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html index b18d535..0b7dc45 100644 --- a/ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html +++ b/ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html @@ -21,7 +21,7 @@
    - +
    diff --git a/ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html b/ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html index e92f831..b691a4a 100644 --- a/ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html +++ b/ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html @@ -57,6 +57,9 @@ 删除 + + 导入 + 导出 @@ -79,6 +82,8 @@ updateUrl: prefix + "/edit/{id}", removeUrl: prefix + "/remove", exportUrl: prefix + "/export", + importUrl: prefix + "/importData", + importTemplateUrl: prefix + "/importTemplate", modalName: "患者管理", columns: [{ checkbox: true @@ -89,6 +94,7 @@ visible: false }, { + isName:true, field: 'patientName', title: '患者姓名' }, @@ -101,8 +107,9 @@ title: '患者性别' }, { + isIdentity:true, field: 'patientIdCard', - title: '患者联系电话' + title: '患者身份证' }, { field: 'description', @@ -151,4 +158,18 @@ }); + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index ade047b..74516f2 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -226,4 +226,5 @@ public class BaseController { return getSysUser().getLoginName(); } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CheckManage.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/CheckManage.java index f241b45..fc933e0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/CheckManage.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/CheckManage.java @@ -30,8 +30,8 @@ public class CheckManage extends BaseEntity @Excel(name = "打卡人性别") private Integer checkSex; - /** 联系电话 */ - @Excel(name = "联系电话") + /** 身份证 */ + @Excel(name = "身份证") private String patientIdCard; /** 确诊状态 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/PatientManage.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/PatientManage.java index 9c94d8d..dbc27b7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/PatientManage.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/PatientManage.java @@ -32,8 +32,8 @@ public class PatientManage extends BaseEntity @Excel(name = "患者性别") private String patientSex; - /** 患者联系电话 */ - @Excel(name = "患者联系电话") + /** 患者身份证 */ + @Excel(name = "患者身份证") private String patientIdCard; /** 备注 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PatientManageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PatientManageMapper.java index 1f7f01d..f8f368c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PatientManageMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/PatientManageMapper.java @@ -58,4 +58,12 @@ public interface PatientManageMapper * @return 结果 */ public int deletePatientManageByPatientIds(String[] patientIds); + + /** + * 通过身份证查询患者 + * + * @param patientIdCard 身份证 + * @return 患者信息 + */ + public PatientManage selectPatientByPatientIdCard(String patientIdCard); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/IPatientManageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/IPatientManageService.java index 3c485b6..82d2f59 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/IPatientManageService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/IPatientManageService.java @@ -58,4 +58,12 @@ public interface IPatientManageService * @return 结果 */ public int deletePatientManageByPatientId(Long patientId); + /** + * 导入患者数据 + * + * @param patientList 患者数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @return 结果 + */ + public String importPatient(List patientList, Boolean isUpdateSupport); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PatientManageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PatientManageServiceImpl.java index b5649f2..2fc5cc7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PatientManageServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PatientManageServiceImpl.java @@ -1,6 +1,15 @@ package com.ruoyi.system.service.impl; import java.util.List; + +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import com.ruoyi.common.utils.security.Md5Utils; +import com.ruoyi.system.service.ISysConfigService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.PatientManageMapper; @@ -8,6 +17,8 @@ import com.ruoyi.system.domain.PatientManage; import com.ruoyi.system.service.IPatientManageService; import com.ruoyi.common.core.text.Convert; +import javax.validation.Validator; + /** * 患者管理Service业务层处理 * @@ -17,8 +28,13 @@ import com.ruoyi.common.core.text.Convert; @Service public class PatientManageServiceImpl implements IPatientManageService { + private static final Logger log = LoggerFactory.getLogger(PatientManageServiceImpl.class); @Autowired private PatientManageMapper patientManageMapper; + @Autowired + private ISysConfigService configService; + @Autowired + protected Validator validator; /** * 查询患者管理 @@ -91,4 +107,78 @@ public class PatientManageServiceImpl implements IPatientManageService { return patientManageMapper.deletePatientManageByPatientId(patientId); } + + /** + * 通过患者身份证查询患者 + * + * @param patientIdCard 患者身份证 + * @return 患者对象信息 + */ + public PatientManage selectPatientByPatientIdCard(String patientIdCard) { + return patientManageMapper.selectPatientByPatientIdCard(patientIdCard); + } + + /** + * 导入用户数据 + * + * @param patientList 用户数据列表 + * @return 结果 + */ + @Override + public String importPatient(List patientList, Boolean isUpdateSupport) + { + if (StringUtils.isNull(patientList) || patientList.size() == 0) + { + throw new ServiceException("导入患者数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (PatientManage patientManage : patientList) + { + try + { + // 验证是否存在这个患者 + PatientManage p = patientManageMapper.selectPatientByPatientIdCard(patientManage.getPatientIdCard()); + if (StringUtils.isNull(p)) + { + BeanValidators.validateWithException(validator, patientManage); + this.insertPatientManage(patientManage); + successNum++; + successMsg.append("
    " + successNum + "、身份证: " + patientManage.getPatientIdCard() + " 导入成功"); + } + else if (isUpdateSupport) + { + BeanValidators.validateWithException(validator, patientManage); + patientManage.setPatientId(p.getPatientId()); + this.updatePatientManage(patientManage); + successNum++; + successMsg.append("
    " + successNum + "、身份证: " + patientManage.getPatientIdCard() + " 的患者信息更新成功"); + } + else + { + failureNum++; + failureMsg.append("
    " + failureNum + "、身份证 " + patientManage.getPatientIdCard() + " 已存在"); + } + } + catch (Exception e) + { + failureNum++; + String msg = "
    " + failureNum + "、账号 " + patientManage.getPatientIdCard() + " 导入失败:"; + failureMsg.append(msg + e.getMessage()); + log.error(msg, e); + } + } + if (failureNum > 0) + { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } } diff --git a/ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml b/ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml index 1e52e61..002d3a0 100644 --- a/ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml @@ -108,5 +108,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{patientId} - + \ No newline at end of file