diff --git a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/system/SysDictTypeController.java b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/system/SysDictTypeController.java index da0e74d3..d61889c0 100644 --- a/acupuncture-admin/src/main/java/com/acupuncture/web/controller/system/SysDictTypeController.java +++ b/acupuncture-admin/src/main/java/com/acupuncture/web/controller/system/SysDictTypeController.java @@ -2,6 +2,8 @@ package com.acupuncture.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.acupuncture.common.core.domain.entity.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -21,6 +23,7 @@ import com.acupuncture.common.core.page.TableDataInfo; import com.acupuncture.common.enums.BusinessType; import com.acupuncture.common.utils.poi.ExcelUtil; import com.acupuncture.system.service.ISysDictTypeService; +import org.springframework.web.multipart.MultipartFile; /** * 数据字典信息 @@ -63,6 +66,18 @@ public class SysDictTypeController extends BaseController return success(dictTypeService.selectDictTypeById(dictId)); } + @Log(title = "字典类型", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('system:dict:export')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(SysDictType.class); + List sysDictTypes = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = dictTypeService.importDictType(sysDictTypes, updateSupport, operName); + return success(message); + } + /** * 新增字典类型 */ diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/ISysDictTypeService.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/ISysDictTypeService.java index 277b2878..c2ca6eb9 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/ISysDictTypeService.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/ISysDictTypeService.java @@ -95,4 +95,6 @@ public interface ISysDictTypeService * @return 结果 */ public boolean checkDictTypeUnique(SysDictType dictType); + + String importDictType(List sysDictTypes, boolean updateSupport, String operName); } diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java index 76bfb673..49ba9ced 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java @@ -17,6 +17,7 @@ import org.apache.ibatis.ognl.ASTInstanceof; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.regex.Matcher; @@ -252,8 +253,8 @@ public class ExternalServiceImpl implements ExternalService { // double height = Double.parseDouble(hValue); HmsWeightHeight hmsWeightHeight = new HmsWeightHeight(); - hmsWeightHeight.setHeight(height + ""); - hmsWeightHeight.setWeight(width + ""); + hmsWeightHeight.setHeight(new BigDecimal(height).toString()); + hmsWeightHeight.setWeight(new BigDecimal(width) + ""); hmsWeightHeight.setId(IdUtil.getSnowflakeNextId()); hmsWeightHeight.setTestId(testId); hmsWeightHeightMapper.insertSelective(hmsWeightHeight); diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsPatientServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsPatientServiceImpl.java index fa9c60ff..31bde663 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsPatientServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsPatientServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdcardUtil; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.poi.excel.BigExcelWriter; @@ -66,7 +67,7 @@ public class PmsPatientServiceImpl implements PmsPatientService { PmsPatientExample.Criteria criteria = pmsPatientExample.createCriteria().andDelFlagEqualTo((byte) 0); if (StrUtil.isNotEmpty(dto.getIdCard())) { criteria.andIdCardEqualTo(dto.getIdCard()).andIdCardTypeEqualTo(dto.getIdCardType()); - }else { + } else { criteria.andPhoneEqualTo(dto.getPhone()).andNameEqualTo(dto.getName()); } List pmsPatients = pmsPatientMapper.selectByExample(pmsPatientExample); @@ -190,22 +191,24 @@ public class PmsPatientServiceImpl implements PmsPatientService { } } writer.writeCellValue(8, row, patientList.get(i).getIdCard()); + writer.writeCellValue(9, row, patientList.get(i).getWeight()); + writer.writeCellValue(10, row, patientList.get(i).getHeight()); Integer source = patientList.get(i).getSource(); if (source != null) { switch (source) { case 0: - writer.writeCellValue(9, row, "筛查"); + writer.writeCellValue(11, row, "筛查"); break; case 1: - writer.writeCellValue(9, row, "录入"); + writer.writeCellValue(11, row, "录入"); break; case 2: - writer.writeCellValue(9, row, "HIS"); + writer.writeCellValue(11, row, "HIS"); } } - writer.writeCellValue(10, row, patientList.get(i).getCurrentIllnessHistory()); - writer.writeCellValue(11, row, patientList.get(i).getCurrentIllnessHistoryQt()); - writer.writeCellValue(12, row, patientList.get(i).getTenantName()); + writer.writeCellValue(12, row, patientList.get(i).getCurrentIllnessHistory()); + writer.writeCellValue(13, row, patientList.get(i).getCurrentIllnessHistoryQt()); + writer.writeCellValue(14, row, patientList.get(i).getTenantName()); } String filename = StrUtil.format("患者档案-{}.xlsx", DateUtil.date().toString("yyyyMMdd")); @@ -248,9 +251,9 @@ public class PmsPatientServiceImpl implements PmsPatientService { patient.setEthnicity(rowList.get(4).toString()); patient.setEducationYears(Integer.parseInt(rowList.get(5).toString())); patient.setPhone(rowList.get(6).toString()); - patient.setIdCardType(rowList.get(7).toString().trim().equals("身份证") ? (byte) 0 : rowList.get(7).toString().trim().equals("护照或外国人永居证") ? (byte) 1: rowList.get(7).toString().trim().equals("港澳居民来往内地通行证") ? (byte) 2 : rowList.get(7).toString().trim().equals("台湾居民来往大陆通行证") ? (byte) 3 : (byte) 4); + patient.setIdCardType(rowList.get(7).toString().trim().equals("身份证") ? (byte) 0 : rowList.get(7).toString().trim().equals("护照或外国人永居证") ? (byte) 1 : rowList.get(7).toString().trim().equals("港澳居民来往内地通行证") ? (byte) 2 : rowList.get(7).toString().trim().equals("台湾居民来往大陆通行证") ? (byte) 3 : (byte) 4); patient.setIdCard(rowList.get(8).toString()); - patient.setSource(rowList.get(9).toString().trim().equals("筛查")? (byte) 0 : rowList.get(9).toString().trim().equals("录入")? (byte) 1 : (byte) 2); + patient.setSource(rowList.get(9).toString().trim().equals("筛查") ? (byte) 0 : rowList.get(9).toString().trim().equals("录入") ? (byte) 1 : (byte) 2); patient.setCurrentIllnessHistory(rowList.get(10).toString()); patient.setCreateBy(SecurityUtils.getUsername()); patient.setId(IdUtil.getSnowflakeNextId()); @@ -278,18 +281,23 @@ public class PmsPatientServiceImpl implements PmsPatientService { //中铝新材料有限公司电解厂2024年度职工健康体检统计表(非高温) //序号 姓名 性别 出生日期 身份证号 婚姻状况 联系电话 部门 工号 工种 民族 国籍 防护措施 总工龄(年) 总工龄(月) 接害工龄(年) 接害工龄(月) 体检类别 try { - if (rowIndex < 4) { + if (rowIndex < 5) { return; } PmsPatient patient = new PmsPatient(); - patient.setName(rowList.get(1).toString() + "-" + rowList.get(2).toString()); - patient.setGender(rowList.get(3).toString().trim().equals("男") ? (byte) 0 : (byte) 1); - patient.setPinyinFull(PinyinUtil.getPinyin(rowList.get(2).toString(), "")); - patient.setPinyinSimple(PinyinUtil.getFirstLetter(rowList.get(2).toString(), "")); - patient.setBirthDate(DateUtil.parse(rowList.get(4).toString())); + patient.setName(ObjUtil.isEmpty(rowList.get(1)) ? "" : rowList.get(1) + "-" + rowList.get(2)); + patient.setGender(ObjUtil.isEmpty(rowList.get(3)) ? (byte) 0 : rowList.get(3).toString().trim().equals("男") ? (byte) 0 : (byte) 1); + patient.setPinyinFull(ObjUtil.isEmpty(rowList.get(2)) ? null : PinyinUtil.getPinyin(rowList.get(2).toString(), "")); + patient.setPinyinSimple(ObjUtil.isEmpty(rowList.get(2)) ? null : PinyinUtil.getFirstLetter(rowList.get(2).toString(), "")); + try { + patient.setBirthDate(ObjUtil.isNotEmpty(rowList.get(4)) ? IdcardUtil.getBirthDate(rowList.get(4).toString()) : null); + }catch (Exception e) { + patient.setBirthDate(null); + } patient.setCreateBy(SecurityUtils.getUsername()); patient.setId(IdUtil.getSnowflakeNextId()); patient.setTenantId(SecurityUtils.getTenantId()); + patient.setPhone(ObjUtil.isEmpty(rowList.get(9)) ? null : rowList.get(9).toString()); patient.setDelFlag((byte) 0); patient.setCreateTime(new Date()); pmsPatientList.add(patient); diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysDictTypeServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysDictTypeServiceImpl.java index 9f871a38..e79012cf 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysDictTypeServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysDictTypeServiceImpl.java @@ -5,6 +5,11 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; import javax.annotation.PostConstruct; + +import cn.hutool.core.collection.CollectionUtil; +import com.acupuncture.common.core.domain.entity.SysUser; +import com.acupuncture.common.utils.SecurityUtils; +import com.acupuncture.common.utils.bean.BeanValidators; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,6 +29,7 @@ import com.acupuncture.system.service.ISysDictTypeService; * @author acupuncture */ @Service +@Transactional public class SysDictTypeServiceImpl implements ISysDictTypeService { @Autowired @@ -220,4 +226,23 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService } return UserConstants.UNIQUE; } + + @Override + public String importDictType(List sysDictTypes, boolean updateSupport, String operName) { + if (StringUtils.isNull(sysDictTypes) || sysDictTypes.size() == 0) + { + throw new ServiceException("导入用户数据不能为空!"); + } + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (SysDictType sysDictType : sysDictTypes) + { + List sysDictTypes1 = selectDictTypeList(sysDictType); + if (CollectionUtil.isNotEmpty(sysDictTypes1)) { + deleteDictTypeByIds(new Long[]{sysDictType.getDictId()}); + } + insertDictType(sysDictType); + } + return successMsg.toString(); + } }