From 904aa68f912903cd6f01e9ccb4874dd7eff3ae4f Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 21 Oct 2025 09:14:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=81=8C=E5=B7=A5=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E3=80=81=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KhEmployeeController.java | 23 ++++++ .../com/ruoyi/kaohe/domain/KhEmployee.java | 2 +- .../kaohe/service/IKhEmployeeService.java | 2 + .../service/impl/KhEmployeeServiceImpl.java | 72 ++++++++++++++++++- 4 files changed, 97 insertions(+), 2 deletions(-) diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java index f8821ec..a1f058a 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhEmployeeController.java @@ -2,6 +2,8 @@ package com.ruoyi.kaohe.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.entity.SysUser; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -20,6 +22,7 @@ import com.ruoyi.kaohe.domain.KhEmployee; import com.ruoyi.kaohe.service.IKhEmployeeService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 职工信息Controller @@ -59,6 +62,26 @@ public class KhEmployeeController extends BaseController util.exportExcel(response, list, "职工信息数据"); } + + @Log(title = "职工信息", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('kaohe:employee:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(KhEmployee.class); + List empList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = khEmployeeService.importEmp(empList, updateSupport, operName); + return success(message); + } + + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) + { + ExcelUtil util = new ExcelUtil(KhEmployee.class); + util.importTemplateExcel(response, "职工数据"); + } + /** * 获取职工信息详细信息 */ diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java index d80bbc2..3140a12 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhEmployee.java @@ -19,7 +19,7 @@ public class KhEmployee extends BaseEntity private Long id; /** 登录用户id */ - @Excel(name = "登录用户id") + //@Excel(name = "登录用户id") private Long userId; /** 职工所属部门 */ diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java index 91566c9..76ffa37 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhEmployeeService.java @@ -58,4 +58,6 @@ public interface IKhEmployeeService * @return 结果 */ public int deleteKhEmployeeById(Long id); + + String importEmp(List empList, boolean updateSupport, String operName); } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java index 1b9eb83..ba6714a 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java @@ -1,13 +1,23 @@ package com.ruoyi.kaohe.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.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.kaohe.mapper.KhEmployeeMapper; import com.ruoyi.kaohe.domain.KhEmployee; import com.ruoyi.kaohe.service.IKhEmployeeService; +import javax.annotation.Resource; + /** * 职工信息Service业务层处理 * @@ -17,9 +27,11 @@ import com.ruoyi.kaohe.service.IKhEmployeeService; @Service public class KhEmployeeServiceImpl implements IKhEmployeeService { - @Autowired + @Resource private KhEmployeeMapper khEmployeeMapper; + private static final Logger log = LoggerFactory.getLogger(KhEmployeeServiceImpl.class); + /** * 查询职工信息 * @@ -93,4 +105,62 @@ public class KhEmployeeServiceImpl implements IKhEmployeeService { return khEmployeeMapper.deleteKhEmployeeById(id); } + + @Override + public String importEmp(List empList, boolean updateSupport, String operName) { + if (StringUtils.isNull(empList) || empList.size() == 0) + { + throw new ServiceException("导入职工数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (KhEmployee employee : empList) + { + try + { + // 验证是否存在这个职工 + KhEmployee param = new KhEmployee(); + param.setEmpName(employee.getEmpName()); + param.setDeptId(employee.getDeptId()); + List e = khEmployeeMapper.selectKhEmployeeList(param); + if (StringUtils.isNull(e)||e.size()==0) + { + khEmployeeMapper.insertKhEmployee(employee); + successNum++; + successMsg.append("
" + successNum + "、账号 " + employee.getEmpName() + " 导入成功"); + } + else if (updateSupport) + { + employee.setId(param.getId()); + khEmployeeMapper.updateKhEmployee(employee); + successNum++; + successMsg.append("
" + successNum + "、账号 " + employee.getEmpName() + " 更新成功"); + } + else + { + failureNum++; + failureMsg.append("
" + failureNum + "、账号 " + employee.getEmpName() + " 已存在"); + } + } + catch (Exception e) + { + failureNum++; + String msg = "
" + failureNum + "、账号 " + employee.getEmpName() + " 导入失败:"; + 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(); + } }