Browse Source

患者管理模块excel批量导入功能完成

ry
loser 1 year ago
parent
commit
81d2ee7d07
  1. 24
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/PatientManageController.java
  2. 2
      ruoyi-admin/src/main/resources/templates/check/checkManage/add.html
  3. 4
      ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html
  4. 2
      ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html
  5. 2
      ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html
  6. 2
      ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html
  7. 23
      ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html
  8. 1
      ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
  9. 4
      ruoyi-system/src/main/java/com/ruoyi/system/domain/CheckManage.java
  10. 4
      ruoyi-system/src/main/java/com/ruoyi/system/domain/PatientManage.java
  11. 8
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/PatientManageMapper.java
  12. 8
      ruoyi-system/src/main/java/com/ruoyi/system/service/IPatientManageService.java
  13. 90
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PatientManageServiceImpl.java
  14. 5
      ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml

24
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<PatientManage> util = new ExcelUtil<PatientManage>(PatientManage.class);
List<PatientManage> 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<PatientManage> util = new ExcelUtil<PatientManage>(PatientManage.class);
return util.importTemplateExcel("患者数据");
}
/**
* 导出患者管理列表
*/
@RequiresPermissions("patient:patientManage:export")
@ -68,6 +91,7 @@ public class PatientManageController extends BaseController
return util.exportExcel(list, "患者管理数据");
}
/**
* 新增患者管理
*/

2
ruoyi-admin/src/main/resources/templates/check/checkManage/add.html

@ -19,7 +19,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话</label>
<label class="col-sm-3 control-label">身份证</label>
<div class="col-sm-8">
<input name="patientIdCard" class="form-control" type="text">
</div>

4
ruoyi-admin/src/main/resources/templates/check/checkManage/checkManage.html

@ -19,7 +19,7 @@
<input type="text" name="checkAge"/>
</li>
<li>
<label>联系电话</label>
<label>身份证</label>
<input type="text" name="patientIdCard"/>
</li>
<li>
@ -114,7 +114,7 @@
},
{
field: 'patientIdCard',
title: '联系电话'
title: '身份证'
},
{
field: 'isDiagnosed',

2
ruoyi-admin/src/main/resources/templates/check/checkManage/edit.html

@ -20,7 +20,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话</label>
<label class="col-sm-3 control-label">身份证</label>
<div class="col-sm-8">
<input name="patientIdCard" th:field="*{patientIdCard}" class="form-control" type="text">
</div>

2
ruoyi-admin/src/main/resources/templates/patient/patientManage/add.html

@ -20,7 +20,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">患者联系电话</label>
<label class="col-sm-3 control-label">患者身份证</label>
<div class="col-sm-8">
<input name="patientIdCard" class="form-control" type="text">
</div>

2
ruoyi-admin/src/main/resources/templates/patient/patientManage/edit.html

@ -21,7 +21,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">患者联系电话</label>
<label class="col-sm-3 control-label">患者身份证</label>
<div class="col-sm-8">
<input name="patientIdCard" th:field="*{patientIdCard}" class="form-control" type="text">
</div>

23
ruoyi-admin/src/main/resources/templates/patient/patientManage/patientManage.html

@ -57,6 +57,9 @@
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="patient:patientManage:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="patient:patientManage:import">
<i class="fa fa-upload"></i> 导入
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="patient:patientManage:export">
<i class="fa fa-download"></i> 导出
</a>
@ -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 @@
});
</script>
</body>
<script id="importTpl" type="text/template">
<form enctype="multipart/form-data" class="mt20 mb10">
<div class="col-xs-offset-1">
<input type="file" id="file" name="file"/>
<div class="mt10 pt5">
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
</div>
<font color="red" class="pull-left mt10">
提示:仅允许导入“xls”或“xlsx”格式文件!
</font>
</div>
</form>
</script>
</html>

1
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@ -226,4 +226,5 @@ public class BaseController
{
return getSysUser().getLoginName();
}
}

4
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;
/** 确诊状态 */

4
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;
/** 备注 */

8
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);
}

8
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<PatientManage> patientList, Boolean isUpdateSupport);
}

90
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<PatientManage> 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("<br/>" + successNum + "、身份证: " + patientManage.getPatientIdCard() + " 导入成功");
}
else if (isUpdateSupport)
{
BeanValidators.validateWithException(validator, patientManage);
patientManage.setPatientId(p.getPatientId());
this.updatePatientManage(patientManage);
successNum++;
successMsg.append("<br/>" + successNum + "、身份证: " + patientManage.getPatientIdCard() + " 的患者信息更新成功");
}
else
{
failureNum++;
failureMsg.append("<br/>" + failureNum + "、身份证 " + patientManage.getPatientIdCard() + " 已存在");
}
}
catch (Exception e)
{
failureNum++;
String msg = "<br/>" + 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();
}
}

5
ruoyi-system/src/main/resources/mapper/PatientManageMapper.xml

@ -108,5 +108,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{patientId}
</foreach>
</delete>
<select id="selectPatientByPatientIdCard" parameterType="String" resultMap="PatientManageResult">
<include refid="selectPatientManageVo"/>
where patient_id_card = #{patientIdCard}
</select>
</mapper>
Loading…
Cancel
Save