项目库相关人员导入导出
This commit is contained in:
+28
-17
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+4
-4
@@ -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
-2
@@ -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);
|
||||
}
|
||||
|
||||
+6
-3
@@ -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);
|
||||
}
|
||||
|
||||
+107
-10
@@ -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("文件导入失败!");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user