From 5389773b2d1ae86daec68b00f67c3682dc907e01 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 22 十一月 2024 14:35:48 +0800 Subject: [PATCH] 代码提交(长期任务电话完成) --- smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java | 97 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 82 insertions(+), 15 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java index c5ea8c6..4307289 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java @@ -1,24 +1,29 @@ package com.smartor.service.impl; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.domain.entity.SysUserRole; import com.smartor.domain.PatArchiveImport; import com.smartor.mapper.PatArchiveImportMapper; import com.smartor.service.IPatArchiveImportService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.regex.Pattern; /** * Excel瀵煎叆鎮h�呮。妗圫ervice涓氬姟灞傚鐞� @@ -30,6 +35,7 @@ public class PatArchiveImportServiceImpl implements IPatArchiveImportService { @Autowired private PatArchiveImportMapper patArchiveImportMapper; + /** * 鏌ヨExcel瀵煎叆鎮h�呮。妗� @@ -100,58 +106,119 @@ } @Override - public List<PatArchiveImport> importPatInfo(MultipartFile multipartFile) { + public List<PatArchiveImport> importPatInfo(MultipartFile multipartFile, SysUser user) { //鐢ㄤ簬杩斿洖 List<PatArchiveImport> patArchiveImports = new ArrayList<>(); + + //鍘婚噸 + List<String> qc = new ArrayList<>(); try { Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream()); Sheet sheet = workbook.getSheetAt(0); - for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { + for (int i = sheet.getFirstRowNum() + 1; i <= sheet.getLastRowNum(); i++) { //瀵煎叆鎮h�呭璞� PatArchiveImport patArchiveImport = new PatArchiveImport(); Row row = sheet.getRow(i); //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜� - if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) { + if (ObjectUtils.isEmpty(row.getCell(0)) && StringUtils.isNotEmpty(row.getCell(0) + "") && ObjectUtils.isEmpty(row.getCell(1)) && StringUtils.isNotEmpty(row.getCell(1) + "") && ObjectUtils.isEmpty(row.getCell(2)) && StringUtils.isNotEmpty(row.getCell(2) + "")) { continue; } //鍒ゆ柇鏁版嵁鏄惁鏈夐棶棰� - if (ObjectUtils.isNotEmpty(row.getCell(0).toString())) { + if (ObjectUtils.isNotEmpty(row.getCell(0)) && StringUtils.isNotEmpty(row.getCell(0) + "")) { patArchiveImport.setName(row.getCell(0).toString()); + } else { + continue; } - if (ObjectUtils.isNotEmpty(row.getCell(1))) { - patArchiveImport.setIdcardno(row.getCell(1).toString()); + if (ObjectUtils.isNotEmpty(row.getCell(1)) && StringUtils.isNotEmpty(row.getCell(1) + "")) { + Cell cell = row.getCell(1); + if (row.getCell(1).toString().contains("X") || row.getCell(1).toString().contains("x")) { + patArchiveImport.setIdcardno(row.getCell(1).toString()); + } else { + Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); + boolean matches = pattern.matcher(row.getCell(1).toString()).matches(); + if (matches) { + patArchiveImport.setIdcardno(row.getCell(1).toString()); + } else { + double numericCellValue = cell.getNumericCellValue(); + DecimalFormat decimalFormat = new DecimalFormat("#"); + String formattedValue = decimalFormat.format(numericCellValue); + patArchiveImport.setIdcardno(formattedValue); + } + } + + boolean contains = qc.contains(row.getCell(1).toString()); + PatArchiveImport pt = new PatArchiveImport(); + pt.setIdcardno(patArchiveImport.getIdcardno()); + pt.setDelFlag("0"); + List<PatArchiveImport> patArchiveImports1 = patArchiveImportMapper.selectPatArchiveImportList(pt); + if (contains || CollectionUtils.isNotEmpty(patArchiveImports1)) continue; } - if (ObjectUtils.isNotEmpty(row.getCell(2))) { - patArchiveImport.setTelcode(row.getCell(2).toString()); + if (ObjectUtils.isNotEmpty(row.getCell(2)) && StringUtils.isNotEmpty(row.getCell(2) + "")) { + Cell cell = row.getCell(2); + double numericCellValue = cell.getNumericCellValue(); + DecimalFormat decimalFormat = new DecimalFormat("#"); + String formattedValue = decimalFormat.format(numericCellValue); + patArchiveImport.setTelcode(formattedValue); } - if (ObjectUtils.isNotEmpty(row.getCell(3))) { + if (ObjectUtils.isNotEmpty(row.getCell(3)) && StringUtils.isNotEmpty(row.getCell(3) + "")) { patArchiveImport.setBatchName(row.getCell(3).toString()); } - if (ObjectUtils.isNotEmpty(row.getCell(4))) { + if (ObjectUtils.isNotEmpty(row.getCell(4)) && StringUtils.isNotEmpty(row.getCell(4) + "")) { patArchiveImport.setPatientno(row.getCell(4).toString()); } - if (ObjectUtils.isNotEmpty(row.getCell(5))) { + if (ObjectUtils.isNotEmpty(row.getCell(5)) && StringUtils.isNotEmpty(row.getCell(5) + "")) { patArchiveImport.setPattype(row.getCell(5).toString()); } - if (ObjectUtils.isNotEmpty(row.getCell(6))) { + if (ObjectUtils.isNotEmpty(row.getCell(6)) && StringUtils.isNotEmpty(row.getCell(6) + "")) { patArchiveImport.setSex(Long.valueOf(row.getCell(6).toString())); } - if (ObjectUtils.isNotEmpty(row.getCell(7))) { + if (ObjectUtils.isNotEmpty(row.getCell(7)) && StringUtils.isNotEmpty(row.getCell(7) + "")) { patArchiveImport.setAge(Long.valueOf(row.getCell(7).toString())); } - patArchiveImports.add(patArchiveImport); patArchiveImport.setCreateTime(new Date()); patArchiveImport.setUpdateTime(new Date()); //鎵归噺鍙凤紙褰撳墠鏃堕棿锛� patArchiveImport.setBatchNo(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); + patArchiveImport.setCreateBy(user.getNickName()); insertPatArchiveImport(patArchiveImport); + //缁欏綋鍓嶅鍏ユ偅鑰咃紝娉ㄥ唽甯愬彿 sys_user sys_user_role + if (patArchiveImport.getAccount() == 1) { + //鏌ヨ涓�涓嬶紝璇ユ偅鑰呮槸鍚﹀凡缁忓湪琛ㄩ噷鍒涘缓浜嗗笎鍙� + SysUser sysUser = patArchiveImportMapper.checkUserExist(patArchiveImport.getIdcardno()); + if (ObjectUtils.isEmpty(sysUser)) { + sysUser = new SysUser(); + //濡傛灉涓虹┖锛屽垯杩涜鏂板sys_user sys_role + sysUser.setIdCard(patArchiveImport.getIdcardno()); + int start = patArchiveImport.getIdcardno().length() - 6; + String lastSixDigits = patArchiveImport.getIdcardno().substring(start, start + 6); + sysUser.setUserName(lastSixDigits); + //瀵嗙爜锛歺h@123456 + sysUser.setPassword("$2a$10$zja67LEWTESHutljd8bqEeRy.VgWb./8iJPpFR6VjTUa7ZYNfRRrO"); + sysUser.setPhonenumber(patArchiveImport.getTelcode()); + sysUser.setUserType("鎮h��"); + sysUser.setDeptId(395L); + sysUser.setNickName(patArchiveImport.getName()); + sysUser.setCreateTime(new Date()); + sysUser.setCreateBy(user.getNickName()); + sysUser.setUpdateTime(new Date()); + sysUser.setUpdateBy(user.getNickName()); + patArchiveImportMapper.insertUser(sysUser); + //灏嗘偅鑰呬笌瑙掕壊缁戝畾 + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRole.setRoleId(6L); + patArchiveImportMapper.insertUserRole(sysUserRole); + } + } + + patArchiveImports.add(patArchiveImport); } } catch (Exception e) { -- Gitblit v1.9.3