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(); + } }