5 changed files with 84 additions and 3 deletions
@ -0,0 +1,40 @@ |
|||||
|
package org.dromara.demo.controller; |
||||
|
|
||||
|
import com.alibaba.excel.EasyExcel; |
||||
|
import jakarta.annotation.Resource; |
||||
|
import jakarta.servlet.http.HttpServletResponse; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.dromara.demo.domain.vo.ProjectInfoVo; |
||||
|
import org.dromara.demo.listener.ProjectInfoListener; |
||||
|
import org.dromara.demo.service.IProjectInfoService; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
|
||||
|
@Slf4j |
||||
|
@Validated |
||||
|
@RequiredArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/evr/excel") |
||||
|
public class ExcelController { |
||||
|
|
||||
|
@Resource |
||||
|
private IProjectInfoService projectInfoService ; |
||||
|
|
||||
|
@PostMapping("/uploadProjectInfo") |
||||
|
public void uploadPointInfo(MultipartFile file, HttpServletResponse response) throws IOException { |
||||
|
long t1 = System.currentTimeMillis(); |
||||
|
// 业务层
|
||||
|
EasyExcel.read(file.getInputStream(), ProjectInfoVo.class, new ProjectInfoListener(projectInfoService)).sheet().doRead(); |
||||
|
response.setContentType("text/html;charset=utf8"); |
||||
|
long t2 = System.currentTimeMillis(); |
||||
|
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1)+"ms"); |
||||
|
log.info("批量项目信息成功! 共用时:{}ms",(t2-t1)); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
package org.dromara.demo.listener; |
||||
|
|
||||
|
import com.alibaba.excel.context.AnalysisContext; |
||||
|
import com.alibaba.excel.read.listener.ReadListener; |
||||
|
import jakarta.annotation.Resource; |
||||
|
import org.dromara.demo.domain.bo.ProjectInfoBo; |
||||
|
import org.dromara.demo.domain.vo.ProjectInfoVo; |
||||
|
import org.dromara.demo.service.IProjectInfoService; |
||||
|
import org.springframework.beans.BeanUtils; |
||||
|
|
||||
|
public class ProjectInfoListener implements ReadListener<ProjectInfoVo> { |
||||
|
|
||||
|
@Resource |
||||
|
private IProjectInfoService projectInfoService ; |
||||
|
|
||||
|
public ProjectInfoListener(IProjectInfoService projectInfoService) { |
||||
|
this.projectInfoService = projectInfoService; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void invoke(ProjectInfoVo projectInfoVo, AnalysisContext analysisContext) { |
||||
|
ProjectInfoBo projectInfo = new ProjectInfoBo(); |
||||
|
BeanUtils.copyProperties(projectInfoVo,projectInfo); |
||||
|
projectInfoService.insertByBo(projectInfo); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) { |
||||
|
|
||||
|
} |
||||
|
} |
Loading…
Reference in new issue