From 96b631561e8e8df6ad54de053a4ec2aa2ecdf807 Mon Sep 17 00:00:00 2001 From: xiejunyu Date: Thu, 21 Apr 2022 21:54:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectRelatedPersonnelController.java | 45 ++++--- .../entity/ProjectRelatedPersonnel.java | 8 +- .../mapper/ProjectRelatedPersonnelMapper.java | 3 +- .../IProjectRelatedPersonnelService.java | 9 +- .../ProjectRelatedPersonnelServiceImpl.java | 117 ++++++++++++++++-- 5 files changed, 146 insertions(+), 36 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java index 9e3784076..3e4f144fe 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectRelatedPersonnelController.java @@ -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 queryPageList(@RequestBody Map params) { - IPage pageList= projectRelatedPersonnelService.queryPageList(params); + List pageList= projectRelatedPersonnelService.queryPageList(params); return Result.OK(params.get("cut").toString(),pageList); } @@ -133,18 +132,30 @@ public class ProjectRelatedPersonnelController extends JeroController params) { + + //获取导出的数据 + List 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 importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ProjectRelatedPersonnel.class); + return projectRelatedPersonnelService.importExcel(request, response, ProjectRelatedPersonnel.class); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java index b1f046602..f55f709a9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectRelatedPersonnel.java @@ -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; /**备注*/ diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java index ede78379e..e0535b4e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectRelatedPersonnelMapper.java @@ -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 { - IPage queryPageList(IPage page, Map params); + List queryPageList(Map params); List queryById(String id); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java index 73dd4ce1e..d9593a2c5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRelatedPersonnelService.java @@ -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 queryList(); - IPage queryPageList(Map params); + List queryPageList(Map params); Result queryPersonByProjectId(String projectId,String dutyTerritory); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java index 006bf4b48..103ad7aa3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRelatedPersonnelServiceImpl.java @@ -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 queryPageList(Map params) { - Integer pageNo = Integer.parseInt(params.get("pageNo").toString()); - Integer pageSize = Integer.parseInt(params.get("pageSize").toString()); - IPage page = new Page(pageNo, pageSize); - IPage result = projectRelatedPersonnelMapper.queryPageList(page, params); - List records = result.getRecords(); - disposeData(records); + public List queryPageList(Map params) { + List result = projectRelatedPersonnelMapper.queryPageList(params); + disposeData(result); return result; } + public void disposeData(List records) { for (ProjectRelatedPersonnel projectRelatedPersonnel:records) { //法规工程师 @@ -324,4 +331,94 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl disposeExportXls(Map params){ + List records=queryPageList(params); + //id有值,按id过滤 + if(!params.get("id").toString().isEmpty()){//多个id + List idList = Arrays.asList(params.get("id").toString().split(",")); + records.stream().filter(e -> idList.equals(e.getId())).collect(Collectors.toList());//.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(",")); + } + //id无值,传全部 + return records; + } + /** + * 根据查到的数据,导出excel + * + * @param request + */@Override + public ModelAndView exportDataToXls(HttpServletRequest request, List dataList, Class clazz, String title) { + //Result result = new Result(); + // 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 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 clazz) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 获取上传文件对象 + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List 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("文件导入失败!"); + } }