项目库相关人员导入导出

This commit is contained in:
xiejunyu
2022-04-21 21:54:53 +08:00
parent 4fe3807716
commit 96b631561e
5 changed files with 146 additions and 36 deletions
@@ -1,6 +1,5 @@
package com.jero.modules.project.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
@@ -10,6 +9,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -20,8 +20,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
/**
* @Description: 项目库-相关人员维护表
* @Author: jero-boot
* @Date: 2022-04-11
@@ -43,7 +42,7 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
@ApiOperation(value="项目库-相关人员维护表-分页列表查询", notes="项目库-相关人员维护表-分页列表查询")
@PostMapping(value = "/page")
public Result<?> queryPageList(@RequestBody Map<String,Object> params) {
IPage<ProjectRelatedPersonnel> pageList= projectRelatedPersonnelService.queryPageList(params);
List<ProjectRelatedPersonnel> pageList= projectRelatedPersonnelService.queryPageList(params);
return Result.OK(params.get("cut").toString(),pageList);
}
@@ -133,18 +132,30 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
return Result.OK(projectRelatedPersonnel);
}
/**
* 导出excel
*
* @param request
* @param projectRelatedPersonnel
*/
@AutoLog(value = "项目库-相关人员维护表-导出excel")
@ApiOperation(value="项目库-相关人员维护表-导出excel", notes="项目库-相关人员维护表-导出excel")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectRelatedPersonnel projectRelatedPersonnel) {
return super.exportXls(request, projectRelatedPersonnel, ProjectRelatedPersonnel.class, "项目库-相关人员维护表");
}
/**
* 导出excel
*/
@AutoLog(value = "项目库-相关人员维护表-导出excel")
@ApiOperation(value="项目库-相关人员维护表-导出excel", notes="项目库-相关人员维护表-导出excel")
@GetMapping(value = "/exportXls", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ModelAndView exportXls(HttpServletRequest request, Map<String, Object> params) {
//获取导出的数据
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelService.disposeExportXls(params);
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "相关人员名单");
}
/**
* 导出excel模板
*/
@AutoLog(value = "项目库-相关人员维护表-导出excel模板")
@ApiOperation(value="项目库-相关人员维护表-导出excel模板", notes="项目库-相关人员维护表-导出excel模板")
@GetMapping(value = "/exportTemplate", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ModelAndView exportTemplate(HttpServletRequest request,ProjectRelatedPersonnel projectRelatedPersonnel) {
return projectRelatedPersonnelService.exportTemplate(request, ProjectRelatedPersonnel.class, "相关人员名单");
}
/**
* 通过excel导入数据
@@ -157,7 +168,7 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
@ApiOperation(value="项目库-相关人员维护表-通过excel导入数据", notes="项目库-相关人员维护表-通过excel导入数据")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectRelatedPersonnel.class);
return projectRelatedPersonnelService.importExcel(request, response, ProjectRelatedPersonnel.class);
}
/**
@@ -37,26 +37,26 @@ public class ProjectRelatedPersonnel implements Serializable {
private java.lang.String projectId;
/**责任领域*/
@Excel(name = "责任领域", width = 15,orderNum = "1")
@Excel(name = "责任领域", width = 15,orderNum = "1",dicCode = "duty_territory")
@Dict(dicCode = "duty_territory")
private java.lang.String dutyTerritory;
/**法规工程师*/
@Excel(name = "法规工程师", width = 30,orderNum = "2")
private java.lang.String lawEngineer;
@TableField(exist = false)
@Excel(name = "法规工程师", width = 30,orderNum = "2")
private java.lang.String lawEngineerName;
/**工程接口人*/
@Excel(name = "工程接口人", width = 30,orderNum = "3")
private java.lang.String engineeringInterfacePerson;
@TableField(exist = false)
@Excel(name = "工程接口人", width = 30,orderNum = "3")
private java.lang.String engineeringInterfacePersonName;
/**认证工程师*/
@Excel(name = "认证工程师", width = 30,orderNum = "4")
private java.lang.String certificationEngineer;
@TableField(exist = false)
@Excel(name = "认证工程师", width = 30,orderNum = "4")
private java.lang.String certificationEngineerName;
/**备注*/
@@ -1,7 +1,6 @@
package com.jero.modules.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import java.util.List;
@@ -15,7 +14,7 @@ import java.util.Map;
*/
public interface ProjectRelatedPersonnelMapper extends BaseMapper<ProjectRelatedPersonnel> {
IPage<ProjectRelatedPersonnel> queryPageList(IPage page, Map<String, Object> params);
List<ProjectRelatedPersonnel> queryPageList(Map<String, Object> params);
List<ProjectRelatedPersonnel> queryById(String id);
}
@@ -1,9 +1,12 @@
package com.jero.modules.project.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -62,7 +65,7 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
*/
List<ProjectRelatedPersonnel> queryList();
IPage<ProjectRelatedPersonnel> queryPageList(Map<String, Object> params);
List<ProjectRelatedPersonnel> queryPageList(Map<String, Object> params);
Result<?> queryPersonByProjectId(String projectId,String dutyTerritory);
}
@@ -2,10 +2,9 @@ package com.jero.modules.project.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
@@ -16,9 +15,20 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@@ -127,20 +137,17 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
/**
* 分页列表查询
* 分页列表查询
*
* @return
*/
@Override
public IPage<ProjectRelatedPersonnel> queryPageList(Map<String, Object> params) {
Integer pageNo = Integer.parseInt(params.get("pageNo").toString());
Integer pageSize = Integer.parseInt(params.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize);
IPage<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(page, params);
List<ProjectRelatedPersonnel> records = result.getRecords();
disposeData(records);
public List<ProjectRelatedPersonnel> queryPageList(Map<String, Object> params) {
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(params);
disposeData(result);
return result;
}
public void disposeData(List<ProjectRelatedPersonnel> records) {
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
//法规工程师
@@ -324,4 +331,94 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
return Result.OK(result);
}
/**处理导出数据*/
@Override
public List<ProjectRelatedPersonnel> disposeExportXls(Map<String, Object> params){
List<ProjectRelatedPersonnel> records=queryPageList(params);
//id有值,按id过滤
if(!params.get("id").toString().isEmpty()){//多个id
List<String> idList = Arrays.asList(params.get("id").toString().split(","));
records.stream().filter(e -> idList.equals(e.getId())).collect(Collectors.<ProjectRelatedPersonnel>toList());//.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
}
//id无值,传全部
return records;
}
/**
* 根据查到的数据,导出excel
*
* @param request
*/@Override
public ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList, Class<ProjectRelatedPersonnel> clazz, String title) {
//Result<ProjectRelatedPersonnel> result = new Result<ProjectRelatedPersonnel>();
// Step.1 组装查询条件
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
try {
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, clazz);
ExportParams exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title);
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, dataList);
return mv;}catch(Exception e){
throw new JeroBootException("Attribute already exists, please check!");
}
}
/**
* 导出excel模板
*
* @param request
*/
@Override
public ModelAndView exportTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title) {
// Step.1 组装查询条件
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, clazz);
ExportParams exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title);
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
return mv;
}
/**
* 导入excel数据
*
* @param request
*/
@Override
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<ProjectRelatedPersonnel> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
saveBatch(list);
return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("文件导入失败:" + e.getMessage());
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
}