From 4b7bb257baa0629077bffcf70326b0e1acda6b75 Mon Sep 17 00:00:00 2001 From: wangliwen Date: Thu, 16 Jun 2022 15:24:35 +0800 Subject: [PATCH] =?UTF-8?q?web=E5=AF=BC=E5=85=A5=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ResourceController.java | 54 +++++++- .../excel/ResourceExcelImportListener.java | 116 +++++++++--------- 2 files changed, 113 insertions(+), 57 deletions(-) diff --git a/renren-admin/src/main/java/io/renren/modules/resource/controller/ResourceController.java b/renren-admin/src/main/java/io/renren/modules/resource/controller/ResourceController.java index 7d0143ac..fa679bd2 100644 --- a/renren-admin/src/main/java/io/renren/modules/resource/controller/ResourceController.java +++ b/renren-admin/src/main/java/io/renren/modules/resource/controller/ResourceController.java @@ -1,5 +1,6 @@ package io.renren.modules.resource.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import io.renren.common.annotation.LogOperation; @@ -10,6 +11,7 @@ import io.renren.common.validator.ValidatorUtils; import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.DefaultGroup; import io.renren.modules.resource.dto.ResourceDTO; +import io.renren.modules.resource.excel.ResourceExcelImportListener; import io.renren.modules.resource.service.ResourceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -22,14 +24,20 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; -import java.util.HashMap; -import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.*; /** * 资源表 @@ -72,12 +80,20 @@ public class ResourceController { @Value("${zsk.catalogIds}") private String[] catalogIds; + @Value("${resource.path}") + private String uploadPath; + @Autowired private ResourceService resourceService; @Autowired private RestTemplate restTemplate; + @Autowired + private JdbcTemplate jdbcTemplate; + + private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/"); + private static final Logger logger = LoggerFactory.getLogger(ResourceController.class); @GetMapping("/page") @@ -186,6 +202,40 @@ public class ResourceController { return new Result().ok(dto.getId() == null ? "" : dto.getId()); } + @PostMapping("/importResource") + @ApiOperation("导入") + @LogOperation("导入") + @ApiImplicitParams({ + @ApiImplicitParam(name = "source", value = "请求来源", paramType = "string", dataType = "string") + }) + public Result importResource(@RequestParam("file") MultipartFile uploadFile, HttpServletRequest request) { + List> dept = + jdbcTemplate.queryForList("SELECT id,`name` FROM sys_dept"); + logger.info("上传文件:" + uploadFile.getOriginalFilename()); + String format = sdf.format(new Date()); + File folder = new File(uploadPath + "upload" + File.separator + format); + logger.info(uploadPath + format); + if (!folder.isDirectory()) { + folder.mkdirs(); + } + // 对上传的文件重命名,避免文件重名 + String oldName = uploadFile.getOriginalFilename(); + String newName = UUID.randomUUID().toString() + + oldName.substring(oldName.lastIndexOf("."), oldName.length()); + try { + // 文件保存 + File file = new File(folder, newName); + uploadFile.transferTo(file); + EasyExcel.read(file, new ResourceExcelImportListener(0, dept, resourceService)).sheet(0).headRowNumber(6).doRead(); + EasyExcel.read(file, new ResourceExcelImportListener(1, dept, resourceService)).sheet(1).headRowNumber(5).doRead(); + EasyExcel.read(file, new ResourceExcelImportListener(2, dept, resourceService)).sheet(2).headRowNumber(5).doRead(); + EasyExcel.read(file, new ResourceExcelImportListener(3, dept, resourceService)).sheet(3).headRowNumber(6).doRead(); + } catch (IOException e) { + return new Result().error(e.getMessage()); + } + return new Result().ok(LocalDateTime.now().toString()); + } + @PutMapping("/update") @ApiOperation("修改") @LogOperation("修改") diff --git a/renren-admin/src/main/java/io/renren/modules/resource/excel/ResourceExcelImportListener.java b/renren-admin/src/main/java/io/renren/modules/resource/excel/ResourceExcelImportListener.java index 1eb6ecd8..9d319b04 100644 --- a/renren-admin/src/main/java/io/renren/modules/resource/excel/ResourceExcelImportListener.java +++ b/renren-admin/src/main/java/io/renren/modules/resource/excel/ResourceExcelImportListener.java @@ -30,6 +30,12 @@ public class ResourceExcelImportListener extends AnalysisEventListener headMap = null; + public ResourceExcelImportListener(int sheet, List> deptList, ResourceService resourceService) { + this.sheet = sheet; + this.deptList = deptList; + this.resourceService = resourceService; + } + /** * When analysis one row trigger invoke function. * @@ -110,202 +116,202 @@ public class ResourceExcelImportListener extends AnalysisEventListener { // 表头后1个 - AttrEntity attrEntity = new AttrEntity(); - attrEntity.setAttrType(this.headMap.get(key)); - attrEntity.setAttrValue(date.get(key)); - infoList.add(attrEntity); + AttrEntity attrEntity_ = new AttrEntity(); + attrEntity_.setAttrType(this.headMap.get(key)); + attrEntity_.setAttrValue(date.get(key)); + infoList.add(attrEntity_); }); }