From 6eaa933fde733e858784e1778ff341be3feec104 Mon Sep 17 00:00:00 2001 From: Lucky0829 <641787296@qq.com> Date: Tue, 21 May 2019 14:22:08 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96.=20=E5=85=AC?= =?UTF-8?q?=E5=85=B1=E5=8F=82=E6=95=B0=E5=BC=95=E5=85=A5=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pigx-upms/pigx-upms-api/pom.xml | 4 + .../pigx/admin/api/entity/SysPublicParam.java | 36 +++++-- .../controller/SysPublicParamController.java | 93 ++++++++++++++++++- 3 files changed, 120 insertions(+), 13 deletions(-) diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml index df9f82ff2..4e1639c5f 100644 --- a/pigx-upms/pigx-upms-api/pom.xml +++ b/pigx-upms/pigx-upms-api/pom.xml @@ -44,5 +44,9 @@ com.baomidou mybatis-plus-extension + + com.pig4cloud + pigx-common-autopoi + diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java index 055862894..773da7f22 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/entity/SysPublicParam.java @@ -20,12 +20,15 @@ package com.pig4cloud.pigx.admin.api.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.pig4cloud.pigx.common.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; +import java.util.Date; /** * 公共参数配置 @@ -49,18 +52,21 @@ public class SysPublicParam extends Model { * 公共参数名称 */ @ApiModelProperty(value = "公共参数名称", required = true, example = "公共参数名称") + @Excel(name = "名称", width = 15) private String publicName; /** * 公共参数地址值,英文大写+下划线 */ @ApiModelProperty(value = "键[英文大写+下划线]", required = true, example = "PIGX_PUBLIC_KEY") + @Excel(name = "键", width = 15) private String publicKey; /** * 值 */ @ApiModelProperty(value = "值", required = true, example = "999") + @Excel(name = "值", width = 15) private String publicValue; /** @@ -80,29 +86,43 @@ public class SysPublicParam extends Model { * 公共参数编码 */ @ApiModelProperty(value = "编码", example = "^(PIG|PIGX)$") + @Excel(name = "编码", width = 15) private String validateCode; /** * 创建时间 */ @ApiModelProperty(value = "创建时间", example = "2019-03-21 12:28:48") - private LocalDateTime createTime; - - /** - * 是否是系统内置 - */ - private String system; + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; /** * 修改时间 */ @ApiModelProperty(value = "修改时间", example = "2019-03-21 12:28:48") - private LocalDateTime updateTime; + //TODO 待处理 时间导入导出 java.util.Date类型,java.time.LocalDateTime报错 + //时间格式三要素:Excel JsonFormat DateTimeFormat + @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 是否是系统内置 + */ + @ApiModelProperty(value = "是否是系统内置") + @Excel(name = "备注", width = 15) + private String system; + + /** * 配置类型:0-默认;1-检索;2-原文;3-报表;4-安全;5-文档;6-消息;9-其他 */ @ApiModelProperty(value = "类型[1-检索;2-原文...]", example = "1") + @Excel(name = "配置类型", width = 15) private String publicType; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java index f8aac1f39..66c0e041d 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysPublicParamController.java @@ -17,22 +17,29 @@ package com.pig4cloud.pigx.admin.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pig4cloud.pigx.admin.api.entity.SysPublicParam; import com.pig4cloud.pigx.admin.service.SysPublicParamService; -import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.log.annotation.SysLog; +import com.pig4cloud.pigx.common.poi.excel.ExcelImportUtil; +import com.pig4cloud.pigx.common.poi.excel.def.NormalExcelConstants; +import com.pig4cloud.pigx.common.poi.excel.entity.ExportParams; +import com.pig4cloud.pigx.common.poi.excel.entity.ImportParams; +import com.pig4cloud.pigx.common.poi.excel.view.PigxEntityExcelView; import com.pig4cloud.pigx.common.security.annotation.Inner; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.cache.annotation.CacheEvict; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.ModelAndView; + +import java.io.IOException; +import java.util.List; /** @@ -57,7 +64,6 @@ public class SysPublicParamController { */ @Inner(value = false) @ApiOperation(value = "查询公共参数值", notes = "根据key查询公共参数值") - @ApiImplicitParams({@ApiImplicitParam(name = "publicKey", value = "键值,譬如:VERSION_INSTRUCTIONS", required = true)}) @GetMapping("/publicValue/{publicKey}") public R publicKey(@PathVariable("publicKey") String publicKey) { return R.ok(sysPublicParamService.getSysPublicParamKeyToValue(publicKey)); @@ -70,6 +76,7 @@ public class SysPublicParamController { * @param sysPublicParam 公共参数 * @return */ + @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public R getSysPublicParamPage(Page page, SysPublicParam sysPublicParam) { return R.ok(sysPublicParamService.page(page, Wrappers.query(sysPublicParam))); @@ -82,6 +89,7 @@ public class SysPublicParamController { * @param publicId id * @return R */ + @ApiOperation(value = "通过id查询公共参数", notes = "通过id查询公共参数") @GetMapping("/{publicId}") public R getById(@PathVariable("publicId") Long publicId) { return R.ok(sysPublicParamService.getById(publicId)); @@ -93,6 +101,7 @@ public class SysPublicParamController { * @param sysPublicParam 公共参数 * @return R */ + @ApiOperation(value = "新增公共参数", notes = "新增公共参数") @SysLog("新增公共参数") @PostMapping @PreAuthorize("@pms.hasPermission('admin_syspublicparam_add')") @@ -106,6 +115,7 @@ public class SysPublicParamController { * @param sysPublicParam 公共参数 * @return R */ + @ApiOperation(value = "修改公共参数", notes = "修改公共参数") @SysLog("修改公共参数") @PutMapping @PreAuthorize("@pms.hasPermission('admin_syspublicparam_edit')") @@ -119,6 +129,7 @@ public class SysPublicParamController { * @param publicId id * @return R */ + @ApiOperation(value = "删除公共参数", notes = "删除公共参数") @SysLog("删除公共参数") @DeleteMapping("/{publicId}") @PreAuthorize("@pms.hasPermission('admin_syspublicparam_del')") @@ -126,4 +137,76 @@ public class SysPublicParamController { return sysPublicParamService.removeParam(publicId); } + + /** + * 导出excel + * + */ + //临时接口调试开启Inner + @Inner(value = false) + @SysLog("导出excel数据") + @ApiOperation(value = "导出excel数据", notes = "导出excel数据") + @GetMapping(value = "/exportXls") +// @PostMapping(value = "/exportXls") + public ModelAndView exportXls() { + // Step.1 组装查询条件 + // TODO 后续封装完成 通用查询条件 包含权限、排序、普通检索、高级检索 QueryGenerator.initQueryWrapper(...); + QueryWrapper queryWrapper = null; + queryWrapper = Wrappers.query(); + + // Step.2 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new PigxEntityExcelView()); + List pageList = sysPublicParamService.list(Wrappers.query()); + + //Step.3 导出文件名称 + mv.addObject(NormalExcelConstants.FILE_NAME, "参数配置列表"); + mv.addObject(NormalExcelConstants.CLASS, SysPublicParam.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("参数配置列表数据", "导出人:pigx", "导出信息")); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + return mv; + } + + /** + * 通过excel导入数据 + * + * @param file + * @return + */ + //临时接口调试开启Inner + @Inner(value = false) + @SysLog("导入excel数据") + @ApiOperation(value = "导入excel数据", notes = "导入excel数据") + @PostMapping(value = "/importExcel") + public R importExcel(@RequestParam("file") MultipartFile file) { +// HttpServletRequest request +// 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 listSysPublicParams = null; + if(file.getInputStream() != null){ + listSysPublicParams = ExcelImportUtil.importExcel(file.getInputStream(), SysPublicParam.class, params); + for (SysPublicParam sysPublicParamExcel : listSysPublicParams) { + sysPublicParamService.save(sysPublicParamExcel); + } + } + + return R.ok("文件导入成功!数据行数:" + listSysPublicParams.size()); + } catch (Exception e) { + return R.failed("文件导入失败!"); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //} + } }