From ee1940455aeb730321deba0706ee4bb31c51ee8f Mon Sep 17 00:00:00 2001 From: wangxy <1481820854@qq.com> Date: Tue, 13 May 2025 17:13:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=B2=97=E4=BD=8D=E6=83=85=E5=86=B5?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/ClassifiedPostManager.java | 46 +++++++++++++++++++ .../spost/ClassifiedPostController.java | 24 ++++++++++ .../system/newdev/spost/classifiedPost.html | 19 ++++++++ 3 files changed, 89 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/manager/ClassifiedPostManager.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/manager/ClassifiedPostManager.java index 653cb9e9..6b940e4a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/manager/ClassifiedPostManager.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/manager/ClassifiedPostManager.java @@ -3,7 +3,12 @@ package com.ruoyi.web.controller.manager; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.text.CharSequenceUtil; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.bean.BeanValidators; +import com.ruoyi.common.utils.security.Md5Utils; import com.ruoyi.system.domain.check.TdCheckReport; import com.ruoyi.system.domain.check.TdCheckType; import com.ruoyi.system.domain.check.dto.TdCheckReportDTO; @@ -11,6 +16,7 @@ import com.ruoyi.system.domain.check.dto.TdCheckTypeDTO; import com.ruoyi.system.domain.spost.TdClassifiedPost; import com.ruoyi.system.domain.spost.dto.TdClassifiedPostDTO; import com.ruoyi.system.service.spost.TdClassifiedPostService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -29,6 +35,7 @@ import java.util.List; * @Version 1.0 */ @Component +@Slf4j public class ClassifiedPostManager { @Resource @@ -66,4 +73,43 @@ public class ClassifiedPostManager { } + /** + * 导入数据 + * @param classifiedPosts 数据列表 + * @return 结果 + */ + public String importPost(List classifiedPosts) { + if (CollUtil.isEmpty(classifiedPosts)) { + throw new ServiceException("导入数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + for (TdClassifiedPost classifiedPost : classifiedPosts) { + try { + classifiedPost.setCreateTime(new Date()); + classifiedPost.setCreateBy(ShiroUtils.getSysUser().getUserName()); + classifiedPost.setDeptId(ShiroUtils.getSysUser().getDeptId()); + classifiedPost.setStatus("0"); + classifiedPostService.save(classifiedPost); + successNum++; + successMsg.append("
").append(successNum).append("、账号 ").append(classifiedPost.getPostName()).append(" 导入成功"); + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、账号 " + classifiedPost.getPostName() + " 导入失败:"; + failureMsg.append(msg).append(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(); + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/spost/ClassifiedPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/spost/ClassifiedPostController.java index 07d87e8d..a0015abf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/spost/ClassifiedPostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/spost/ClassifiedPostController.java @@ -3,6 +3,7 @@ package com.ruoyi.web.controller.system.spost; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -13,6 +14,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.List; @@ -68,6 +70,28 @@ public class ClassifiedPostController extends BaseController { return util.exportExcel(tdClassifiedPosts, "岗位情况管理数据"); } + + + @RequiresPermissions("system:spost:view") + @GetMapping("/importTemplate") + @ResponseBody + public AjaxResult importTemplate() { + ExcelUtil util = new ExcelUtil<>(TdClassifiedPost.class); + return util.importTemplateExcel("岗位情况数据"); + } + + + @Log(title = "岗位情况", businessType = BusinessType.IMPORT) + @RequiresPermissions("system:spost:import") + @PostMapping("/importData") + @ResponseBody + public AjaxResult importData(MultipartFile file) throws Exception { + ExcelUtil util = new ExcelUtil<>(TdClassifiedPost.class); + List classifiedPosts = util.importExcel(file.getInputStream()); + String message = classifiedPostManager.importPost(classifiedPosts); + return AjaxResult.success(message); + } + /** * 新增岗位 */ diff --git a/ruoyi-admin/src/main/resources/templates/system/newdev/spost/classifiedPost.html b/ruoyi-admin/src/main/resources/templates/system/newdev/spost/classifiedPost.html index 018ebb7e..5d764a29 100644 --- a/ruoyi-admin/src/main/resources/templates/system/newdev/spost/classifiedPost.html +++ b/ruoyi-admin/src/main/resources/templates/system/newdev/spost/classifiedPost.html @@ -41,6 +41,9 @@ 删除 + + 导入 + 导出 @@ -64,6 +67,8 @@ detailUrl:prefix + "/detail/{id}", removeUrl: prefix + "/remove", exportUrl: prefix + "/export", + importUrl: prefix + "/importData", + importTemplateUrl: prefix + "/importTemplate", modalName: "岗位情况管理", type: 0, columns: [{ @@ -121,4 +126,18 @@ + +