Browse Source

项目信息批量导入

environment_dev
gjh 4 weeks ago
parent
commit
f9763aea0c
  1. 40
      ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/ExcelController.java
  2. 4
      ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ProjectInfoVo.java
  3. 32
      ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/listener/ProjectInfoListener.java
  4. 3
      ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IProjectInfoService.java
  5. 8
      ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ProjectInfoServiceImpl.java

40
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/ExcelController.java

@ -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));
}
}

4
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/domain/vo/ProjectInfoVo.java

@ -88,7 +88,7 @@ public class ProjectInfoVo implements Serializable {
/**
* 前期设计字符串数组JSON格式存储
*/
@ExcelProperty(value = "前期设计", converter = ExcelDictConvert.class)
@ExcelProperty(value = "前期设计")
//@ExcelDictFormat(readConverterExp = "字=符串数组,JSON格式存储")
private String earlyDesign;
@ -113,7 +113,7 @@ public class ProjectInfoVo implements Serializable {
/**
* 项目类别字符串数组JSON格式存储
*/
@ExcelProperty(value = "项目类别", converter = ExcelDictConvert.class)
@ExcelProperty(value = "项目类别")
//@ExcelDictFormat(readConverterExp = "字=符串数组,JSON格式存储")
private String projectTypeList;

32
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/listener/ProjectInfoListener.java

@ -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) {
}
}

3
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/IProjectInfoService.java

@ -1,5 +1,6 @@
package org.dromara.demo.service;
import org.dromara.demo.domain.ProjectInfo;
import org.dromara.demo.domain.vo.ProjectInfoVo;
import org.dromara.demo.domain.bo.ProjectInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -65,4 +66,6 @@ public interface IProjectInfoService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
void addData(List<ProjectInfo> list);
}

8
ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/ProjectInfoServiceImpl.java

@ -1,5 +1,6 @@
package org.dromara.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -27,7 +28,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Service
public class ProjectInfoServiceImpl implements IProjectInfoService {
public class ProjectInfoServiceImpl extends ServiceImpl<ProjectInfoMapper, ProjectInfo> implements IProjectInfoService {
private final ProjectInfoMapper baseMapper;
@ -161,4 +162,9 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public void addData(List<ProjectInfo> list) {
this.saveBatch(list);
}
}

Loading…
Cancel
Save