项目库相关人员-导出+模板中英切换+导入数据处理
This commit is contained in:
+56
-42
@@ -2,9 +2,11 @@ package com.jero.modules.project.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||
import com.jero.modules.project.util.ExcelLangUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -45,17 +47,17 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
|
||||
List<ProjectRelatedPersonnel> pageList= projectRelatedPersonnelService.queryPageList((String) map.get("projectId"));
|
||||
return Result.OK((String)map.get("cut"),pageList);
|
||||
}
|
||||
/**
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-列表查询")
|
||||
@ApiOperation(value="项目库-相关人员维护表-列表查询", notes="项目库-相关人员维护表-列表查询")
|
||||
@ApiOperation(value="项目库-相关人员维护表-列表查询", notes="项目库-相关人员维护表-列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<ProjectRelatedPersonnel>> queryList() {
|
||||
List<ProjectRelatedPersonnel> list = projectRelatedPersonnelService.queryList();
|
||||
return Result.OK(list);
|
||||
List<ProjectRelatedPersonnel> list = projectRelatedPersonnelService.queryList();
|
||||
return Result.OK(list);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,20 +133,25 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
|
||||
return Result.OK(projectRelatedPersonnel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-导出excel")
|
||||
@ApiOperation(value="项目库-相关人员维护表-导出excel", notes="项目库-相关人员维护表-导出excel")
|
||||
@GetMapping(value = "/exportXls", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public ModelAndView exportXls(HttpServletRequest request,@RequestParam(name="id") String id,
|
||||
@RequestParam(name="projectId") String projectId,
|
||||
@RequestParam(name="cut",required=true) String cut) {
|
||||
/**
|
||||
* 导出excel
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-导出excel")
|
||||
@ApiOperation(value="项目库-相关人员维护表-导出excel", notes="项目库-相关人员维护表-导出excel")
|
||||
@GetMapping(value = "/exportXls", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public ModelAndView exportXls(HttpServletRequest request,@RequestParam(name="id") String id,
|
||||
@RequestParam(name="projectId") String projectId,
|
||||
@RequestParam(name="cut") String cut)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
//获取导出的数据
|
||||
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelService.disposeExportXls(id,projectId);
|
||||
List<ProjectRelatedPersonnel> records = projectRelatedPersonnelService.disposeExportXls(id, projectId);
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "相关人员名单", cut);
|
||||
}else{
|
||||
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "List of relevant personnel", cut);
|
||||
}
|
||||
|
||||
return projectRelatedPersonnelService.exportDataToXls(request, records, ProjectRelatedPersonnel.class, "相关人员名单");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel模板
|
||||
@@ -152,34 +159,41 @@ public class ProjectRelatedPersonnelController extends JeroController<ProjectRel
|
||||
@AutoLog(value = "项目库-相关人员维护表-导出excel模板")
|
||||
@ApiOperation(value="项目库-相关人员维护表-导出excel模板", notes="项目库-相关人员维护表-导出excel模板")
|
||||
@GetMapping(value = "/exportTemplate", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public ModelAndView exportTemplate(HttpServletRequest request) {
|
||||
return projectRelatedPersonnelService.setExporTemplate(request, ProjectRelatedPersonnel.class, "相关人员名单");
|
||||
public ModelAndView exportTemplate(HttpServletRequest request,@RequestParam(name="cut",required=true) String cut)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
//return projectRelatedPersonnelService.setExporTemplate(request, ProjectRelatedPersonnel.class, "相关人员名单",cut);
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
return projectRelatedPersonnelService.setExporTemplate(request, ExcelLangUtils.chooseLang(ProjectRelatedPersonnel.class, CutEnum.CN.getValue()), "相关人员名单", cut);
|
||||
}else{
|
||||
return projectRelatedPersonnelService.setExporTemplate(request, ExcelLangUtils.chooseLang(ProjectRelatedPersonnel.class, CutEnum.EN.getValue()), "List of relevant personnel", cut);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-通过excel导入数据")
|
||||
@ApiOperation(value="项目库-相关人员维护表-通过excel导入数据", notes="项目库-相关人员维护表-通过excel导入数据")
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response,@RequestParam(name="projectId",required=true) String projectId) {
|
||||
return projectRelatedPersonnelService.importExcel(request, response, ProjectRelatedPersonnel.class,projectId);
|
||||
}
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response,
|
||||
@RequestParam(name="projectId",required=true) String projectId,
|
||||
@RequestParam(name="cut",required=true) String cut) {
|
||||
return projectRelatedPersonnelService.importExcel(request, response, ProjectRelatedPersonnel.class,projectId,cut);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过projectId查询
|
||||
*
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-根据projectId查询编辑时下拉数据")
|
||||
@ApiOperation(value="项目库-相关人员维护表-根据projectId查询编辑时下拉数据", notes="项目库-相关人员维护表-根据projectId查询编辑时下拉数据")
|
||||
@GetMapping(value = "/queryPersonByProjectId")
|
||||
public Result<?> queryPersonByProjectId(@RequestParam(name="projectId",required=true) String projectId,@RequestParam(name="dutyTerritory",required=true) String dutyTerritory) {
|
||||
return this.projectRelatedPersonnelService.queryPersonByProjectId(projectId,dutyTerritory);
|
||||
}
|
||||
/**
|
||||
* 通过projectId查询
|
||||
*
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-相关人员维护表-根据projectId查询编辑时下拉数据")
|
||||
@ApiOperation(value="项目库-相关人员维护表-根据projectId查询编辑时下拉数据", notes="项目库-相关人员维护表-根据projectId查询编辑时下拉数据")
|
||||
@GetMapping(value = "/queryPersonByProjectId")
|
||||
public Result<?> queryPersonByProjectId(@RequestParam(name="projectId",required=true) String projectId,@RequestParam(name="dutyTerritory",required=true) String dutyTerritory) {
|
||||
return this.projectRelatedPersonnelService.queryPersonByProjectId(projectId,dutyTerritory);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-5
@@ -11,6 +11,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.jeecgframework.poi.excel.annotation.ExcelTarget;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -26,6 +27,7 @@ import java.io.Serializable;
|
||||
@TableName("project_related_personnel")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ExcelTarget("projectRelatedPersonnel")
|
||||
public class ProjectRelatedPersonnel implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -37,30 +39,30 @@ public class ProjectRelatedPersonnel implements Serializable {
|
||||
private java.lang.String projectId;
|
||||
|
||||
/**责任领域*/
|
||||
@Excel(name = "责任领域", width = 15,orderNum = "1",dicCode = "duty_territory")
|
||||
@Excel(name = "责任领域,dutyTerritory", width = 15,orderNum = "1",dicCode = "duty_territory")
|
||||
@Dict(dicCode = "duty_territory")
|
||||
private java.lang.String dutyTerritory;
|
||||
|
||||
/**法规工程师*/
|
||||
private java.lang.String lawEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "法规工程师", width = 30,orderNum = "2")
|
||||
@Excel(name = "法规工程师,lawEngineerName", width = 30,orderNum = "2")
|
||||
private java.lang.String lawEngineerName;
|
||||
|
||||
/**工程接口人*/
|
||||
private java.lang.String engineeringInterfacePerson;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "工程接口人", width = 30,orderNum = "3")
|
||||
@Excel(name = "工程接口人,engineeringInterfacePersonName", width = 30,orderNum = "3")
|
||||
private java.lang.String engineeringInterfacePersonName;
|
||||
|
||||
/**认证工程师*/
|
||||
private java.lang.String certificationEngineer;
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "认证工程师", width = 30,orderNum = "4")
|
||||
@Excel(name = "认证工程师,certificationEngineerName", width = 30,orderNum = "4")
|
||||
private java.lang.String certificationEngineerName;
|
||||
|
||||
/**备注*/
|
||||
@Excel(name = "备注", width = 50,orderNum = "5")
|
||||
@Excel(name = "备注,remark", width = 50,orderNum = "5")
|
||||
private java.lang.String remark;
|
||||
|
||||
/**创建人*/
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.jero.modules.project.enums;
|
||||
/**
|
||||
* 相关人员名单-导出模板枚举类
|
||||
*/
|
||||
public enum ExportTemplateEnum {
|
||||
|
||||
DUTY_TERRITORY("责任领域"," duty_territory"),
|
||||
DUTY_TERRITORY_FIELD_of_PRODUCTION("生产领域","field_of_production"),
|
||||
// LAW_ENGINEER("法规工程师","lawEngineerName"),
|
||||
// ENGINEER_INTERFACE_PERSON("工程接口人","engineeringInterfacePersonName"),
|
||||
// CERTIFICATION_ENGINEER("认证工程师"," certificationEngineerName"),
|
||||
// REMARK("备注","remark"),
|
||||
|
||||
|
||||
;
|
||||
String name;
|
||||
String value;
|
||||
|
||||
ExportTemplateEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
+6
-4
@@ -71,11 +71,13 @@ public interface IProjectRelatedPersonnelService extends IService<ProjectRelated
|
||||
/**处理导出数据*/
|
||||
List<ProjectRelatedPersonnel> disposeExportXls(String id,String projectId);
|
||||
|
||||
/**导出excel*/
|
||||
ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList, Class<ProjectRelatedPersonnel> clazz, String title,String cut);
|
||||
|
||||
/**设置导出模板*/
|
||||
ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title);
|
||||
ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title,String cut);
|
||||
|
||||
ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList, Class<ProjectRelatedPersonnel> clazz, String title);
|
||||
Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz, String projectId,String cut);
|
||||
|
||||
|
||||
Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz, String projectId);
|
||||
List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records);
|
||||
}
|
||||
|
||||
+158
-40
@@ -4,11 +4,14 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
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.enums.ExportTemplateEnum;
|
||||
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
|
||||
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||
import com.jero.modules.project.util.ExcelLangUtils;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
@@ -153,11 +156,11 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
//法规工程师
|
||||
List<SysUser> lawEngineerUsers = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineer())){
|
||||
List<String> lawEngineerIdList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(","));
|
||||
if (CollectionUtils.isNotEmpty(lawEngineerIdList)) {
|
||||
lawEngineerIdList = lawEngineerIdList.stream().distinct().collect(Collectors.toList());
|
||||
List<String> lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineer().split(","));
|
||||
if (CollectionUtils.isNotEmpty(lawEngineerNameList)) {
|
||||
lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
|
||||
userqueryWrapper.in("id ", lawEngineerIdList);
|
||||
userqueryWrapper.in("id ", lawEngineerNameList);
|
||||
lawEngineerUsers = sysUserMapper.selectList(userqueryWrapper);
|
||||
}
|
||||
|
||||
@@ -165,7 +168,7 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
String lawEngineerId = projectRelatedPersonnel.getLawEngineer();
|
||||
String lawEngineerName = null;
|
||||
StringBuilder lawName = new StringBuilder();
|
||||
for (String data : lawEngineerIdList) {
|
||||
for (String data : lawEngineerNameList) {
|
||||
if (StringUtils.isNotEmpty(lawEngineerId)) {
|
||||
lawEngineerName = lawEngineerUsers.stream().filter(e -> data.equals(e.getId()))
|
||||
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
|
||||
@@ -358,22 +361,31 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
*
|
||||
* @param request
|
||||
*/@Override
|
||||
public ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList, Class<ProjectRelatedPersonnel> clazz, String title) {
|
||||
// Step.1 组装查询条件
|
||||
public ModelAndView exportDataToXls(HttpServletRequest request, List<ProjectRelatedPersonnel> dataList,
|
||||
Class<ProjectRelatedPersonnel> clazz, String title,String cut) {
|
||||
// Step.1 组装查询条件
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
// Step.2 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
try {
|
||||
ExportParams exportParams=null;
|
||||
try {
|
||||
//中英切换
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title);
|
||||
mv.addObject(NormalExcelConstants.CLASS, ExcelLangUtils.chooseLang(clazz, CutEnum.CN.getValue()));
|
||||
}
|
||||
else {
|
||||
exportParams=new ExportParams(title , "Exporter:" + sysUser.getUsername(), title);
|
||||
mv.addObject(NormalExcelConstants.CLASS, ExcelLangUtils.chooseLang(clazz, CutEnum.EN.getValue()));
|
||||
}
|
||||
|
||||
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
|
||||
|
||||
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){
|
||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, dataList);
|
||||
return mv;
|
||||
}catch(Exception e){
|
||||
throw new JeroBootException("出现异常,请重新登录");
|
||||
}
|
||||
|
||||
@@ -384,32 +396,34 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title){
|
||||
public ModelAndView setExporTemplate(HttpServletRequest request, Class<ProjectRelatedPersonnel> clazz, String title,String cut){
|
||||
List<ProjectRelatedPersonnel> records=new ArrayList<>();
|
||||
|
||||
ProjectRelatedPersonnel projectRelatedPersonnel=new ProjectRelatedPersonnel();
|
||||
projectRelatedPersonnel.setDutyTerritory("安全领域");
|
||||
projectRelatedPersonnel.setLawEngineerName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setEngineeringInterfacePersonName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setCertificationEngineerName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setRemark("xxxxx");
|
||||
if(projectRelatedPersonnel != null) {
|
||||
records.add(projectRelatedPersonnel);
|
||||
}
|
||||
// Step.1 组装查询条件
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
ExportParams exportParams=null;
|
||||
// Step.2 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
try {
|
||||
|
||||
|
||||
//中英切换模板
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getName());
|
||||
exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title);
|
||||
}else{
|
||||
projectRelatedPersonnel.setDutyTerritory(ExportTemplateEnum.DUTY_TERRITORY_FIELD_of_PRODUCTION.getValue());
|
||||
exportParams=new ExportParams(title , "Exporter:" + sysUser.getUsername(), title);
|
||||
}
|
||||
projectRelatedPersonnel.setLawEngineerName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setEngineeringInterfacePersonName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setCertificationEngineerName("ning.chen xinhui.wei");
|
||||
projectRelatedPersonnel.setRemark("xxxxx");
|
||||
if(projectRelatedPersonnel != null) {
|
||||
records.add(projectRelatedPersonnel);
|
||||
}
|
||||
mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(NormalExcelConstants.CLASS, clazz);
|
||||
ExportParams exportParams=new ExportParams(title , "导出人:" + sysUser.getUsername(), title);
|
||||
mv.addObject(NormalExcelConstants.CLASS, clazz);//!!!!这里设置中英切换
|
||||
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, projectRelatedPersonnel);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, records);
|
||||
return mv;
|
||||
}catch(Exception e){
|
||||
throw new JeroBootException("出现异常,请重新登录");
|
||||
@@ -422,7 +436,9 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
* @param request
|
||||
*/
|
||||
@Override
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response, Class<ProjectRelatedPersonnel> clazz,String projectId) {
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response,
|
||||
Class<ProjectRelatedPersonnel> clazz,String projectId,String cut) {
|
||||
Result<ProjectRelatedPersonnel> result=new Result<>();
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
||||
@@ -432,15 +448,33 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
params.setHeadRows(1);
|
||||
params.setNeedSave(true);
|
||||
try {
|
||||
List<ProjectRelatedPersonnel> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
||||
for(ProjectRelatedPersonnel projectRelatedPersonnel:list){
|
||||
projectRelatedPersonnel.setProjectId(projectId);
|
||||
//接收导入数据
|
||||
List<ProjectRelatedPersonnel> records = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
|
||||
if(CollectionUtils.isNotEmpty(records)) {
|
||||
oppositeDisposeData(records);
|
||||
saveBatch(records);
|
||||
//中英切换提示语
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
result.success("文件导入成功!数据行数:" + records.size());
|
||||
}else{
|
||||
result.success("File import succeeded! Number of data rows:" + records.size());
|
||||
}
|
||||
}else{
|
||||
//中英切换提示语
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
result.error500("数据为空,请检查");
|
||||
}else {
|
||||
result.error500("The data is empty, please check!");
|
||||
}
|
||||
}
|
||||
saveBatch(list);
|
||||
return Result.OK("文件导入成功!数据行数:" + list.size());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("文件导入失败:" + e.getMessage());
|
||||
//中英切换提示语
|
||||
if(CutEnum.CN.getValue().equals(cut)) {
|
||||
result.error500("文件导入失败:" + e.getMessage());
|
||||
}else {
|
||||
result.error500("File import failed.:" + e.getMessage());
|
||||
}
|
||||
} finally {
|
||||
try {
|
||||
file.getInputStream().close();
|
||||
@@ -449,6 +483,90 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
}
|
||||
}
|
||||
return Result.error("文件导入失败!");
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 把导入的数据翻译成对应的id
|
||||
* @return
|
||||
*/
|
||||
public List<ProjectRelatedPersonnel> oppositeDisposeData(List<ProjectRelatedPersonnel> records) {
|
||||
|
||||
for (ProjectRelatedPersonnel projectRelatedPersonnel:records) {
|
||||
//法规工程师
|
||||
List<SysUser> lawEngineerUsers = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getLawEngineerName())){
|
||||
List<String> lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineerName().split(","));
|
||||
if (CollectionUtils.isNotEmpty(lawEngineerNameList)) {
|
||||
lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||
lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList);
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
|
||||
String lawEngineerName = projectRelatedPersonnel.getLawEngineerName();
|
||||
String lawEngineerId = null;
|
||||
StringBuilder midId = new StringBuilder();
|
||||
for (String data : lawEngineerNameList) {
|
||||
if (StringUtils.isNotEmpty(lawEngineerName)) {
|
||||
lawEngineerId = lawEngineerUsers.stream().filter(e -> data.equals(e.getUsername()))
|
||||
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
|
||||
}
|
||||
midId.append(lawEngineerId).append(",");
|
||||
}
|
||||
projectRelatedPersonnel.setLawEngineer(midId.substring(0,midId.toString().length()-1));
|
||||
}
|
||||
}
|
||||
|
||||
//工程接口人
|
||||
List<SysUser> engineeringInterfacePersonUsers = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getEngineeringInterfacePersonName())){
|
||||
List<String> engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(","));
|
||||
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList)) {
|
||||
engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList());
|
||||
engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList);
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
|
||||
String engineeringInterfacePersonName = projectRelatedPersonnel.getEngineeringInterfacePersonName();
|
||||
String engineeringInterfacePersonId = null;
|
||||
StringBuilder midId = new StringBuilder();
|
||||
for (String data : engineeringInterfacePersonNameList) {
|
||||
if (StringUtils.isNotEmpty(engineeringInterfacePersonName)) {
|
||||
engineeringInterfacePersonId = engineeringInterfacePersonUsers.stream().filter(e -> data.equals(e.getUsername()))
|
||||
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
|
||||
}
|
||||
midId.append(engineeringInterfacePersonId).append(",");
|
||||
}
|
||||
projectRelatedPersonnel.setEngineeringInterfacePerson(midId.substring(0,midId.toString().length()-1));
|
||||
}
|
||||
}
|
||||
|
||||
//认证工程师
|
||||
List<SysUser> certificationEngineerUsers = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(projectRelatedPersonnel.getCertificationEngineerName())){
|
||||
List<String> certificationEngineerNameList = Arrays.asList(projectRelatedPersonnel.getCertificationEngineerName().split(","));
|
||||
if (CollectionUtils.isNotEmpty(certificationEngineerNameList)) {
|
||||
certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||
certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList);
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
|
||||
String certificationEngineerName = projectRelatedPersonnel.getCertificationEngineerName();
|
||||
String certificationEngineerId = null;
|
||||
StringBuilder midId = new StringBuilder();
|
||||
for (String data : certificationEngineerNameList) {
|
||||
if (StringUtils.isNotEmpty(certificationEngineerName)) {
|
||||
certificationEngineerId = certificationEngineerUsers.stream().filter(e -> data.equals(e.getUsername()))
|
||||
.map(sysUser -> sysUser.getId()).collect(Collectors.joining(","));
|
||||
}
|
||||
midId.append(certificationEngineerId).append(",");
|
||||
}
|
||||
projectRelatedPersonnel.setCertificationEngineer(midId.substring(0,midId.toString().length()-1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return records;
|
||||
}
|
||||
}
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.jero.modules.project.util;
|
||||
|
||||
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
/**AutoPOI导出时表头中英切换*/
|
||||
public class ExcelLangUtils {
|
||||
|
||||
|
||||
private static final int VALUE_SIZE = 2;
|
||||
|
||||
private ExcelLangUtils() {
|
||||
}
|
||||
|
||||
public static Class chooseLang(Class<?> pojoClass, String lang)
|
||||
throws NoSuchFieldException, IllegalAccessException {
|
||||
|
||||
//获取实体类中所有字段
|
||||
Field[] fields = pojoClass.getDeclaredFields();
|
||||
|
||||
for (Field field : fields) {
|
||||
// 获取字段上的注解
|
||||
Excel anoExcel = field.getAnnotation(Excel.class);
|
||||
if (anoExcel != null) {
|
||||
// 获取代理处理器
|
||||
InvocationHandler invocationHandler = Proxy.getInvocationHandler(anoExcel);
|
||||
// 获取私有 memberValues 属性
|
||||
Field f = invocationHandler.getClass().getDeclaredField("memberValues");
|
||||
f.setAccessible(true);
|
||||
// 获取实例的属性map
|
||||
Map<String, Object> memberValues = (Map<String, Object>) f.get(invocationHandler);
|
||||
// 获取属性值
|
||||
String excelValue = (String) memberValues.get("name");
|
||||
|
||||
if (StringUtils.isNotBlank(excelValue)) {
|
||||
//根据传入的语言标识,重新设置属性值
|
||||
List<String> valueList = Arrays.asList(excelValue.split(","));
|
||||
if (valueList.size() == VALUE_SIZE) {
|
||||
if (CutEnum.CN.getValue().equals(lang)) {
|
||||
memberValues.put("name", valueList.get(0));
|
||||
}else{
|
||||
memberValues.put("name", valueList.get(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return pojoClass;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user