浏览代码

word模板导出

459242451@qq.com 3 年之前
父节点
当前提交
42c8177d08
共有 38 个文件被更改,包括 1412 次插入1282 次删除
  1. 33 5
      pom.xml
  2. 8 0
      ruoyi-admin/pom.xml
  3. 122 32
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java
  4. 二进制
      ruoyi-admin/src/main/resources/word/incidentTask.docx
  5. 25 3
      ruoyi-common/pom.xml
  6. 30 16
      ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
  7. 51 51
      ruoyi-common/src/main/java/com/ruoyi/common/convert/ExcelBigNumberConvert.java
  8. 69 69
      ruoyi-common/src/main/java/com/ruoyi/common/convert/ExcelDictConvert.java
  9. 108 107
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
  10. 62 61
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
  11. 133 131
      ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
  12. 92 81
      ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
  13. 34 37
      ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java
  14. 21 24
      ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java
  15. 24 24
      ruoyi-framework/pom.xml
  16. 35 36
      ruoyi-generator/src/main/resources/vm/java/vo.java.vm
  17. 18 17
      ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java
  18. 43 25
      ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java
  19. 12 11
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
  20. 11 14
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
  21. 20 23
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
  22. 12 11
      ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
  23. 30 33
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java
  24. 70 71
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java
  25. 44 45
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserImportVo.java
  26. 12 18
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/DutyEmpVo.java
  27. 18 24
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/DutyReportVo.java
  28. 16 20
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentProcessVo.java
  29. 14 14
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskCommandVo.java
  30. 15 21
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskPersonVo.java
  31. 11 13
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskVo.java
  32. 58 62
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java
  33. 17 19
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanFileVo.java
  34. 19 23
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanTaskVo.java
  35. 19 22
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanVo.java
  36. 24 30
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceDetailVo.java
  37. 37 40
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceVo.java
  38. 45 49
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/SingleDeviceVo.java

+ 33 - 5
pom.xml

@@ -2,7 +2,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+    <modelVersion>4.0.0</modelVersion>
 
     <groupId>com.ruoyi</groupId>
     <artifactId>ruoyi-vue-plus</artifactId>
@@ -78,16 +78,45 @@
             </dependency>
 
             <!-- excel工具 -->
-            <dependency>
+            <!--<dependency>
                 <groupId>org.apache.poi</groupId>
                 <artifactId>poi-ooxml</artifactId>
                 <version>${poi.version}</version>
-            </dependency>
+            </dependency>-->
 
-            <dependency>
+            <!--<dependency>
                 <groupId>com.alibaba</groupId>
                 <artifactId>easyexcel</artifactId>
                 <version>${easyexcel.version}</version>
+            </dependency>-->
+
+            <!-- easypoi -->
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-spring-boot-starter</artifactId>
+                <version>4.1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-base</artifactId>
+                <version>4.1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-web</artifactId>
+                <version>4.1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>cn.afterturn</groupId>
+                <artifactId>easypoi-annotation</artifactId>
+                <version>4.1.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>ooxml-schemas</artifactId>
+                <version>1.3</version>
+                <optional>true</optional>
             </dependency>
 
             <!-- velocity代码生成使用模板 -->
@@ -233,7 +262,6 @@
             </dependency>
 
 
-
         </dependencies>
     </dependencyManagement>
 

+ 8 - 0
ruoyi-admin/pom.xml

@@ -138,6 +138,14 @@
                 </configuration>
             </plugin>
         </plugins>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*</include>
+                </includes>
+            </resource>
+        </resources>
     </build>
 
 </project>

+ 122 - 32
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java

@@ -1,53 +1,63 @@
 package com.ruoyi.web.controller.zhdd;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
+import cn.afterturn.easypoi.word.WordExportUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.zhdd.domain.Incident;
 import com.ruoyi.zhdd.domain.IncidentProcess;
-import com.ruoyi.zhdd.domain.IncidentTask;
+import com.ruoyi.zhdd.domain.IncidentTaskCommand;
 import com.ruoyi.zhdd.domain.IncidentTaskPerson;
 import com.ruoyi.zhdd.domain.Plan;
-import com.ruoyi.zhdd.domain.bo.IncidentTaskBo;
+import com.ruoyi.zhdd.domain.bo.IncidentBo;
 import com.ruoyi.zhdd.domain.bo.IncidentTasksBo;
+import com.ruoyi.zhdd.domain.vo.IncidentTaskCommandVo;
+import com.ruoyi.zhdd.domain.vo.IncidentTaskVo;
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
 import com.ruoyi.zhdd.domain.vo.PlanVo;
-import com.ruoyi.zhdd.domain.vo.ResourceVo;
 import com.ruoyi.zhdd.service.IIncidentProcessService;
+import com.ruoyi.zhdd.service.IIncidentService;
+import com.ruoyi.zhdd.service.IIncidentTaskCommandService;
 import com.ruoyi.zhdd.service.IIncidentTaskPersonService;
 import com.ruoyi.zhdd.service.IIncidentTaskService;
 import com.ruoyi.zhdd.service.IPlanService;
 import com.ruoyi.zhdd.service.IPlanTaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.*;
-
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.zhdd.domain.vo.IncidentVo;
-import com.ruoyi.zhdd.domain.bo.IncidentBo;
-import com.ruoyi.zhdd.service.IIncidentService;
-import com.ruoyi.common.core.page.TableDataInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 事件基础Controller
@@ -68,12 +78,16 @@ public class IncidentController extends BaseController {
 
     private final IIncidentTaskPersonService incidentTaskPersonService;
 
+    private final IIncidentTaskCommandService incidentTaskCommandService;
+
     private final IIncidentProcessService iIncidentProcessService;
 
     private final IPlanTaskService planTaskService;
 
     private final IPlanService planService;
 
+    private final ISysDictDataService sysDictDataService;
+
     /**
      * 查询事件基础列表
      */
@@ -187,5 +201,81 @@ public class IncidentController extends BaseController {
         return AjaxResult.success(result);
     }
 
+    @ApiOperation("应急方案导出")
+//    @Log(title = "应急方案导出", businessType = BusinessType.EXPORT)
+    @GetMapping("/download")
+    public void download(@RequestParam String id, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = new HashMap<>();
+        // 查询处置方案
+        IncidentTaskVo incidentTaskVo = incidentTaskService.queryById(id);
+        if (incidentTaskVo != null) {
+            map.put("taskName", incidentTaskVo.getTaskName());
+
+            // 查询事件详情
+            IncidentVo incidentVo = iIncidentService.queryById(incidentTaskVo.getIncidentId());
+            if (incidentVo != null) {
+                map.put("name", incidentVo.getName());
+                if (ObjectUtil.isNotEmpty(incidentVo.getType())) {
+                    map.put("type", sysDictDataService.selectDictLabel("zhdd_plan_type", Convert.toStr(incidentVo.getType())));
+                } else {
+                    map.put("type", "-");
+                }
+                map.put("createTime", DateUtil.formatDateTime(incidentVo.getCreateTime()));
+                map.put("addr", incidentVo.getAddr());
+                if (StrUtil.isNotBlank(incidentVo.getSource())) {
+                    map.put("source", sysDictDataService.selectDictLabel("zhdd_incident_source", incidentVo.getSource()));
+                } else {
+                    map.put("source", "-");
+                }
+                if (ObjectUtil.isNotEmpty(incidentVo.getLevel())) {
+                    map.put("level", sysDictDataService.selectDictLabel("zhdd_incident_level", Convert.toStr(incidentVo.getLevel())));
+                } else {
+                    map.put("level", "-");
+                }
+            }
+            // 查询方案人员
+            map.put("incidentPerson", incidentTaskPersonService.listVo(Wrappers.<IncidentTaskPerson>lambdaQuery().eq(IncidentTaskPerson::getIncidentTaskId, id)));
+            // 查询方案指令
+            List<IncidentTaskCommandVo> incidentTaskCommandVos = incidentTaskCommandService.listVo(Wrappers.<IncidentTaskCommand>lambdaQuery().eq(IncidentTaskCommand::getIncidentTaskId, id));
+            for (int i = 0; i < incidentTaskCommandVos.size(); i++) {
+                incidentTaskCommandVos.get(i).setIndex(i + 1);
+            }
+            map.put("incidentCommand", incidentTaskCommandVos);
+            // 查询处置过程
+            List<IncidentProcess> incidentProcess = iIncidentProcessService.list(Wrappers.<IncidentProcess>lambdaQuery()
+                .eq(IncidentProcess::getIncidentId, incidentTaskVo.getIncidentId()).orderByDesc(IncidentProcess::getCreateTime));
+            if (incidentProcess != null && incidentProcess.size() > 0) {
+                IncidentProcess processData = incidentProcess.get(0);
+                map.put("process", DateUtil.formatDateTime(processData.getCreateTime()) + ":" + processData.getDes());
+            }
+        }
+        String fileName = "plan_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".docx";
+        try {
+            XWPFDocument doc = WordExportUtil.exportWord07(
+                "word/incidentTask.docx", map);
+            FileOutputStream fos = new FileOutputStream(ExcelUtil.getAbsoluteFile(fileName));
+            doc.write(fos);
+            // 设置强制下载不打开
+            response.setContentType("application/force-download");
+            // 设置文件名
+            response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);
+            OutputStream out = response.getOutputStream();
+            doc.write(out);
+            out.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            delFileWord(ExcelUtil.getAbsoluteFile(fileName));
+        }
+    }
+
+    /**
+     * 删除零时生成的文件
+     */
+    public static void delFileWord(String filePath) {
+        File file = new File(filePath);
+        file.delete();
+    }
+
 
 }

二进制
ruoyi-admin/src/main/resources/word/incidentTask.docx


+ 25 - 3
ruoyi-common/pom.xml

@@ -54,14 +54,36 @@
         </dependency>
 
         <!-- excel工具 -->
-        <dependency>
+        <!--<dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi-ooxml</artifactId>
-        </dependency>
+        </dependency>-->
 
-        <dependency>
+        <!--<dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
+        </dependency>-->
+
+        <!-- easypoi -->
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-base</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-web</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-annotation</artifactId>
+            <version>4.1.0</version>
         </dependency>
 
         <!-- yml解析器 -->

+ 30 - 16
ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java

@@ -18,48 +18,62 @@ import org.springframework.stereotype.Component;
 @Accessors(chain = true)
 @Component
 @ConfigurationProperties(prefix = "ruoyi")
-public class RuoYiConfig
-{
-    /** 项目名称 */
+public class RuoYiConfig {
+    /**
+     * 项目名称
+     */
     private String name;
 
-    /** 版本 */
+    /**
+     * 版本
+     */
     private String version;
 
-    /** 版权年份 */
+    /**
+     * 版权年份
+     */
     private String copyrightYear;
 
-    /** 实例演示开关 */
+    /**
+     * 实例演示开关
+     */
     private boolean demoEnabled;
 
-    /** 上传路径 */
+    /**
+     * 上传路径
+     */
     private static String profile;
 
-    /** 获取地址开关 */
+    /**
+     * 获取地址开关
+     */
     @Getter
     private static boolean addressEnabled;
 
-    public static String getProfile()
-    {
+    public static String getProfile() {
         return profile;
     }
 
-    public void setProfile(String profile)
-    {
+    public void setProfile(String profile) {
         RuoYiConfig.profile = profile;
     }
 
-    public void setAddressEnabled(boolean addressEnabled)
-    {
+    public void setAddressEnabled(boolean addressEnabled) {
         RuoYiConfig.addressEnabled = addressEnabled;
     }
 
     /**
      * 获取上传路径
      */
-    public static String getUploadPath()
-    {
+    public static String getUploadPath() {
         return getProfile() + "/upload";
     }
 
+    /**
+     * 获取下载路径
+     */
+    public static String getDownloadPath() {
+        return getProfile() + "/download/";
+    }
+
 }

+ 51 - 51
ruoyi-common/src/main/java/com/ruoyi/common/convert/ExcelBigNumberConvert.java

@@ -1,51 +1,51 @@
-package com.ruoyi.common.convert;
-
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.excel.converters.Converter;
-import com.alibaba.excel.enums.CellDataTypeEnum;
-import com.alibaba.excel.metadata.CellData;
-import com.alibaba.excel.metadata.GlobalConfiguration;
-import com.alibaba.excel.metadata.property.ExcelContentProperty;
-import lombok.extern.slf4j.Slf4j;
-
-import java.math.BigDecimal;
-
-/**
- * 大数值转换
- * Excel 数值长度位15位 大于15位的数值转换位字符串
- *
- * @author Lion Li
- */
-@Slf4j
-public class ExcelBigNumberConvert implements Converter<Long> {
-
-	@Override
-	public Class<Long> supportJavaTypeKey() {
-		return Long.class;
-	}
-
-	@Override
-	public CellDataTypeEnum supportExcelTypeKey() {
-		return CellDataTypeEnum.STRING;
-	}
-
-	@Override
-	public Long convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
-		return Convert.toLong(cellData.getData());
-	}
-
-	@Override
-	public CellData<Object> convertToExcelData(Long object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
-		if (ObjectUtil.isNotNull(object)) {
-			String str = Convert.toStr(object);
-			if (str.length() > 15) {
-				return new CellData<>(str);
-			}
-		}
-		CellData<Object> cellData = new CellData<>(new BigDecimal(object));
-		cellData.setType(CellDataTypeEnum.NUMBER);
-		return cellData;
-	}
-
-}
+//package com.ruoyi.common.convert;
+//
+//import cn.hutool.core.convert.Convert;
+//import cn.hutool.core.util.ObjectUtil;
+//import com.alibaba.excel.converters.Converter;
+//import com.alibaba.excel.enums.CellDataTypeEnum;
+//import com.alibaba.excel.metadata.CellData;
+//import com.alibaba.excel.metadata.GlobalConfiguration;
+//import com.alibaba.excel.metadata.property.ExcelContentProperty;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.math.BigDecimal;
+//
+///**
+// * 大数值转换
+// * Excel 数值长度位15位 大于15位的数值转换位字符串
+// *
+// * @author Lion Li
+// */
+//@Slf4j
+//public class ExcelBigNumberConvert implements Converter<Long> {
+//
+//	@Override
+//	public Class<Long> supportJavaTypeKey() {
+//		return Long.class;
+//	}
+//
+//	@Override
+//	public CellDataTypeEnum supportExcelTypeKey() {
+//		return CellDataTypeEnum.STRING;
+//	}
+//
+//	@Override
+//	public Long convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+//		return Convert.toLong(cellData.getData());
+//	}
+//
+//	@Override
+//	public CellData<Object> convertToExcelData(Long object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+//		if (ObjectUtil.isNotNull(object)) {
+//			String str = Convert.toStr(object);
+//			if (str.length() > 15) {
+//				return new CellData<>(str);
+//			}
+//		}
+//		CellData<Object> cellData = new CellData<>(new BigDecimal(object));
+//		cellData.setType(CellDataTypeEnum.NUMBER);
+//		return cellData;
+//	}
+//
+//}

+ 69 - 69
ruoyi-common/src/main/java/com/ruoyi/common/convert/ExcelDictConvert.java

@@ -1,69 +1,69 @@
-package com.ruoyi.common.convert;
-
-import cn.hutool.core.annotation.AnnotationUtil;
-import cn.hutool.core.convert.Convert;
-import com.alibaba.excel.converters.Converter;
-import com.alibaba.excel.enums.CellDataTypeEnum;
-import com.alibaba.excel.metadata.CellData;
-import com.alibaba.excel.metadata.GlobalConfiguration;
-import com.alibaba.excel.metadata.property.ExcelContentProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import lombok.extern.slf4j.Slf4j;
-
-import java.lang.reflect.Field;
-
-/**
- * 字典格式化转换处理
- *
- * @author Lion Li
- */
-@Slf4j
-public class ExcelDictConvert implements Converter<Object> {
-
-	@Override
-	public Class<Object> supportJavaTypeKey() {
-		return Object.class;
-	}
-
-	@Override
-	public CellDataTypeEnum supportExcelTypeKey() {
-		return null;
-	}
-
-	@Override
-	public Object convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
-		ExcelDictFormat anno = getAnnotation(contentProperty.getField());
-		String type = anno.dictType();
-		String label = cellData.getStringValue();
-		String value;
-		if (StringUtils.isBlank(type)) {
-			value = ExcelUtil.reverseByExp(label, anno.readConverterExp(), anno.separator());
-		} else {
-			value = ExcelUtil.reverseDictByExp(label, type, anno.separator());
-		}
-		return Convert.convert(contentProperty.getField().getType(), value);
-	}
-
-	@Override
-	public CellData<String> convertToExcelData(Object object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
-		if (StringUtils.isNull(object)) {
-			return new CellData<>("");
-		}
-		ExcelDictFormat anno = getAnnotation(contentProperty.getField());
-		String type = anno.dictType();
-		String value = Convert.toStr(object);
-		String label;
-		if (StringUtils.isBlank(type)) {
-			label = ExcelUtil.convertByExp(value, anno.readConverterExp(), anno.separator());
-		} else {
-			label = ExcelUtil.convertDictByExp(value, type, anno.separator());
-		}
-		return new CellData<>(label);
-	}
-
-	private ExcelDictFormat getAnnotation(Field field) {
-		return AnnotationUtil.getAnnotation(field, ExcelDictFormat.class);
-	}
-}
+//package com.ruoyi.common.convert;
+//
+//import cn.hutool.core.annotation.AnnotationUtil;
+//import cn.hutool.core.convert.Convert;
+//import com.alibaba.excel.converters.Converter;
+//import com.alibaba.excel.enums.CellDataTypeEnum;
+//import com.alibaba.excel.metadata.CellData;
+//import com.alibaba.excel.metadata.GlobalConfiguration;
+//import com.alibaba.excel.metadata.property.ExcelContentProperty;
+//import com.ruoyi.common.annotation.ExcelDictFormat;
+//import com.ruoyi.common.utils.StringUtils;
+//import com.ruoyi.common.utils.poi.ExcelUtil;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.lang.reflect.Field;
+//
+///**
+// * 字典格式化转换处理
+// *
+// * @author Lion Li
+// */
+//@Slf4j
+//public class ExcelDictConvert implements Converter<Object> {
+//
+//	@Override
+//	public Class<Object> supportJavaTypeKey() {
+//		return Object.class;
+//	}
+//
+//	@Override
+//	public CellDataTypeEnum supportExcelTypeKey() {
+//		return null;
+//	}
+//
+//	@Override
+//	public Object convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+//		ExcelDictFormat anno = getAnnotation(contentProperty.getField());
+//		String type = anno.dictType();
+//		String label = cellData.getStringValue();
+//		String value;
+//		if (StringUtils.isBlank(type)) {
+//			value = ExcelUtil.reverseByExp(label, anno.readConverterExp(), anno.separator());
+//		} else {
+//			value = ExcelUtil.reverseDictByExp(label, type, anno.separator());
+//		}
+//		return Convert.convert(contentProperty.getField().getType(), value);
+//	}
+//
+//	@Override
+//	public CellData<String> convertToExcelData(Object object, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
+//		if (StringUtils.isNull(object)) {
+//			return new CellData<>("");
+//		}
+//		ExcelDictFormat anno = getAnnotation(contentProperty.getField());
+//		String type = anno.dictType();
+//		String value = Convert.toStr(object);
+//		String label;
+//		if (StringUtils.isBlank(type)) {
+//			label = ExcelUtil.convertByExp(value, anno.readConverterExp(), anno.separator());
+//		} else {
+//			label = ExcelUtil.convertDictByExp(value, type, anno.separator());
+//		}
+//		return new CellData<>(label);
+//	}
+//
+//	private ExcelDictFormat getAnnotation(Field field) {
+//		return AnnotationUtil.getAnnotation(field, ExcelDictFormat.class);
+//	}
+//}

+ 108 - 107
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java

@@ -1,11 +1,13 @@
 package com.ruoyi.common.core.domain.entity;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.constant.UserConstants;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -27,109 +29,108 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_data")
-@ExcelIgnoreUnannotated
 public class SysDictData implements Serializable {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 字典编码
-	 */
-	@ExcelProperty(value = "字典编码")
-	@TableId(value = "dict_code", type = IdType.AUTO)
-	private Long dictCode;
-
-	/**
-	 * 字典排序
-	 */
-	@ExcelProperty(value = "字典排序")
-	private Long dictSort;
-
-	/**
-	 * 字典标签
-	 */
-	@ExcelProperty(value = "字典标签")
-	@NotBlank(message = "字典标签不能为空")
-	@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
-	private String dictLabel;
-
-	/**
-	 * 字典键值
-	 */
-	@ExcelProperty(value = "字典键值")
-	@NotBlank(message = "字典键值不能为空")
-	@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
-	private String dictValue;
-
-	/**
-	 * 字典类型
-	 */
-	@ExcelProperty(value = "字典类型")
-	@NotBlank(message = "字典类型不能为空")
-	@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
-	private String dictType;
-
-	/**
-	 * 样式属性(其他样式扩展)
-	 */
-	@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
-	private String cssClass;
-
-	/**
-	 * 表格字典样式
-	 */
-	private String listClass;
-
-	/**
-	 * 是否默认(Y是 N否)
-	 */
-	@ExcelProperty(value = "是否默认", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_yes_no")
-	private String isDefault;
-
-	/**
-	 * 状态(0正常 1停用)
-	 */
-	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
-	private String status;
-
-	/**
-	 * 创建者
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private String createBy;
-
-	/**
-	 * 创建时间
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private Date createTime;
-
-	/**
-	 * 更新者
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private String updateBy;
-
-	/**
-	 * 更新时间
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private Date updateTime;
-
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-	/**
-	 * 请求参数
-	 */
-	@TableField(exist = false)
-	private Map<String, Object> params = new HashMap<>();
-
-	public boolean getDefault() {
-		return UserConstants.YES.equals(this.isDefault) ? true : false;
-	}
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 字典编码
+     */
+    @Excel(name = "字典编码")
+    @TableId(value = "dict_code", type = IdType.AUTO)
+    private Long dictCode;
+
+    /**
+     * 字典排序
+     */
+    @Excel(name = "字典排序")
+    private Long dictSort;
+
+    /**
+     * 字典标签
+     */
+    @Excel(name = "字典标签")
+    @NotBlank(message = "字典标签不能为空")
+    @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
+    private String dictLabel;
+
+    /**
+     * 字典键值
+     */
+    @Excel(name = "字典键值")
+    @NotBlank(message = "字典键值不能为空")
+    @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
+    private String dictValue;
+
+    /**
+     * 字典类型
+     */
+    @Excel(name = "字典类型")
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
+    private String dictType;
+
+    /**
+     * 样式属性(其他样式扩展)
+     */
+    @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
+    private String cssClass;
+
+    /**
+     * 表格字典样式
+     */
+    private String listClass;
+
+    /**
+     * 是否默认(Y是 N否)
+     */
+    @Excel(name = "是否默认")
+    @ExcelDictFormat(dictType = "sys_yes_no")
+    private String isDefault;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    @Excel(name = "状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
+
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 请求参数
+     */
+    @TableField(exist = false)
+    private Map<String, Object> params = new HashMap<>();
+
+    public boolean getDefault() {
+        return UserConstants.YES.equals(this.isDefault) ? true : false;
+    }
 
 }

+ 62 - 61
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java

@@ -1,10 +1,12 @@
 package com.ruoyi.common.core.domain.entity;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,73 +28,72 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_type")
-@ExcelIgnoreUnannotated
 public class SysDictType implements Serializable {
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-	 * 字典主键
-	 */
-	@ExcelProperty(value = "字典主键")
-	@TableId(value = "dict_id", type = IdType.AUTO)
-	private Long dictId;
+    /**
+     * 字典主键
+     */
+    @Excel(name = "字典主键")
+    @TableId(value = "dict_id", type = IdType.AUTO)
+    private Long dictId;
 
-	/**
-	 * 字典名称
-	 */
-	@ExcelProperty(value = "字典名称")
-	@NotBlank(message = "字典名称不能为空")
-	@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
-	private String dictName;
+    /**
+     * 字典名称
+     */
+    @Excel(name = "字典名称")
+    @NotBlank(message = "字典名称不能为空")
+    @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
+    private String dictName;
 
-	/**
-	 * 字典类型
-	 */
-	@ExcelProperty(value = "字典类型")
-	@NotBlank(message = "字典类型不能为空")
-	@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
-	private String dictType;
+    /**
+     * 字典类型
+     */
+    @Excel(name = "字典类型")
+    @NotBlank(message = "字典类型不能为空")
+    @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
+    private String dictType;
 
-	/**
-	 * 状态(0正常 1停用)
-	 */
-	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
-	private String status;
+    /**
+     * 状态(0正常 1停用)
+     */
+    @Excel(name = "状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
 
-	/**
-	 * 创建者
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private String createBy;
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
 
-	/**
-	 * 创建时间
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private Date createTime;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
 
-	/**
-	 * 更新者
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private String updateBy;
+    /**
+     * 更新者
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
 
-	/**
-	 * 更新时间
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private Date updateTime;
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
 
-	/**
-	 * 备注
-	 */
-	private String remark;
+    /**
+     * 备注
+     */
+    private String remark;
 
-	/**
-	 * 请求参数
-	 */
-	@TableField(exist = false)
-	private Map<String, Object> params = new HashMap<>();
+    /**
+     * 请求参数
+     */
+    @TableField(exist = false)
+    private Map<String, Object> params = new HashMap<>();
 
 }

+ 133 - 131
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java

@@ -1,10 +1,13 @@
 package com.ruoyi.common.core.domain.entity;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,133 +29,132 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_role")
-@ExcelIgnoreUnannotated
 public class SysRole implements Serializable {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 角色ID
-	 */
-	@ExcelProperty(value = "角色序号")
-	@TableId(value = "role_id", type = IdType.ASSIGN_ID)
-	private String roleId;
-
-	/**
-	 * 角色名称
-	 */
-	@ExcelProperty(value = "角色名称")
-	@NotBlank(message = "角色名称不能为空")
-	@Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
-	private String roleName;
-
-	/**
-	 * 角色权限
-	 */
-	@ExcelProperty(value = "角色权限")
-	@NotBlank(message = "权限字符不能为空")
-	@Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
-	private String roleKey;
-
-	/**
-	 * 角色排序
-	 */
-	@ExcelProperty(value = "角色排序")
-	@NotBlank(message = "显示顺序不能为空")
-	private String roleSort;
-
-	/**
-	 * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
-	 */
-	@ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
-	private String dataScope;
-
-	/**
-	 * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
-	 */
-	private boolean menuCheckStrictly;
-
-	/**
-	 * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
-	 */
-	private boolean deptCheckStrictly;
-
-	/**
-	 * 角色状态(0正常 1停用)
-	 */
-	@ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
-	private String status;
-
-	/**
-	 * 删除标志(0代表存在 2代表删除)
-	 */
-	@TableLogic
-	private String delFlag;
-
-	/**
-	 * 创建者
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private String createBy;
-
-	/**
-	 * 创建时间
-	 */
-	@TableField(fill = FieldFill.INSERT)
-	private Date createTime;
-
-	/**
-	 * 更新者
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private String updateBy;
-
-	/**
-	 * 更新时间
-	 */
-	@TableField(fill = FieldFill.INSERT_UPDATE)
-	private Date updateTime;
-
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-	/**
-	 * 请求参数
-	 */
-	@TableField(exist = false)
-	private Map<String, Object> params = new HashMap<>();
-
-	/**
-	 * 用户是否存在此角色标识 默认不存在
-	 */
-	@TableField(exist = false)
-	private boolean flag = false;
-
-	/**
-	 * 菜单组
-	 */
-	@TableField(exist = false)
-	private String[] menuIds;
-
-	/**
-	 * 部门组(数据权限)
-	 */
-	@TableField(exist = false)
-	private String[] deptIds;
-
-	public SysRole(String roleId) {
-		this.roleId = roleId;
-	}
-
-	public boolean isAdmin() {
-		return isAdmin(this.roleId);
-	}
-
-	public static boolean isAdmin(String roleId) {
-		return "1".equals(roleId);
-	}
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 角色ID
+     */
+    @Excel(name = "角色序号")
+    @TableId(value = "role_id", type = IdType.ASSIGN_ID)
+    private String roleId;
+
+    /**
+     * 角色名称
+     */
+    @Excel(name = "角色名称")
+    @NotBlank(message = "角色名称不能为空")
+    @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
+    private String roleName;
+
+    /**
+     * 角色权限
+     */
+    @Excel(name = "角色权限")
+    @NotBlank(message = "权限字符不能为空")
+    @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
+    private String roleKey;
+
+    /**
+     * 角色排序
+     */
+    @Excel(name = "角色排序")
+    @NotBlank(message = "显示顺序不能为空")
+    private String roleSort;
+
+    /**
+     * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
+     */
+    @Excel(name = "数据范围")
+    @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
+    private String dataScope;
+
+    /**
+     * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
+     */
+    private boolean menuCheckStrictly;
+
+    /**
+     * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
+     */
+    private boolean deptCheckStrictly;
+
+    /**
+     * 角色状态(0正常 1停用)
+     */
+    @Excel(name = "角色状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 请求参数
+     */
+    @TableField(exist = false)
+    private Map<String, Object> params = new HashMap<>();
+
+    /**
+     * 用户是否存在此角色标识 默认不存在
+     */
+    @TableField(exist = false)
+    private boolean flag = false;
+
+    /**
+     * 菜单组
+     */
+    @TableField(exist = false)
+    private String[] menuIds;
+
+    /**
+     * 部门组(数据权限)
+     */
+    @TableField(exist = false)
+    private String[] deptIds;
+
+    public SysRole(String roleId) {
+        this.roleId = roleId;
+    }
+
+    public boolean isAdmin() {
+        return isAdmin(this.roleId);
+    }
+
+    public static boolean isAdmin(String roleId) {
+        return "1".equals(roleId);
+    }
 
 }

+ 92 - 81
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java

@@ -1,19 +1,13 @@
 package com.ruoyi.common.utils.poi;
 
 import cn.hutool.core.util.IdUtil;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.ruoyi.common.convert.ExcelBigNumberConvert;
+import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.utils.DictUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.file.FileUtils;
 
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+import java.io.File;
 import java.io.InputStream;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -23,25 +17,26 @@ import java.util.List;
  */
 public class ExcelUtil {
 
-	/**
-	 * 对excel表单默认第一个索引名转换成list(EasyExcel)
-	 *
-	 * @param is 输入流
-	 * @return 转换后集合
-	 */
-	public static <T> List<T> importExcel(InputStream is, Class<T> clazz) {
-		return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync();
-	}
+    /**
+     * 对excel表单默认第一个索引名转换成list(EasyExcel)
+     *
+     * @param is 输入流
+     * @return 转换后集合
+     */
+    public static <T> List<T> importExcel(InputStream is, Class<T> clazz) {
+//		return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync();
+        return new ArrayList<>();
+    }
 
-	/**
-	 * 对list数据源将其里面的数据导入到excel表单(EasyExcel)
-	 *
-	 * @param list      导出数据集合
-	 * @param sheetName 工作表的名称
-	 * @return 结果
-	 */
-	public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response) {
-		try {
+    /**
+     * 对list数据源将其里面的数据导入到excel表单(EasyExcel)
+     *
+     * @param list      导出数据集合
+     * @param sheetName 工作表的名称
+     * @return 结果
+     */
+    public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response) {
+		/*try {
 			String filename = encodingFilename(sheetName);
 			response.reset();
 			response.addHeader("Access-Control-Allow-Origin", "*");
@@ -58,19 +53,19 @@ public class ExcelUtil {
 				.sheet(sheetName).doWrite(list);
 		} catch (IOException e) {
 			throw new RuntimeException("导出Excel异常");
-		}
-	}
+		}*/
+    }
 
-	/**
-	 * 解析导出值 0=男,1=女,2=未知
-	 *
-	 * @param propertyValue 参数值
-	 * @param converterExp  翻译注解
-	 * @param separator     分隔符
-	 * @return 解析后值
-	 */
-	public static String convertByExp(String propertyValue, String converterExp, String separator) {
-		StringBuilder propertyString = new StringBuilder();
+    /**
+     * 解析导出值 0=男,1=女,2=未知
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
+     */
+    public static String convertByExp(String propertyValue, String converterExp, String separator) {
+		/*StringBuilder propertyString = new StringBuilder();
 		String[] convertSource = converterExp.split(",");
 		for (String item : convertSource) {
 			String[] itemArray = item.split("=");
@@ -87,19 +82,20 @@ public class ExcelUtil {
 				}
 			}
 		}
-		return StringUtils.stripEnd(propertyString.toString(), separator);
-	}
+		return StringUtils.stripEnd(propertyString.toString(), separator);*/
+        return "";
+    }
 
-	/**
-	 * 反向解析值 男=0,女=1,未知=2
-	 *
-	 * @param propertyValue 参数值
-	 * @param converterExp  翻译注解
-	 * @param separator     分隔符
-	 * @return 解析后值
-	 */
-	public static String reverseByExp(String propertyValue, String converterExp, String separator) {
-		StringBuilder propertyString = new StringBuilder();
+    /**
+     * 反向解析值 男=0,女=1,未知=2
+     *
+     * @param propertyValue 参数值
+     * @param converterExp  翻译注解
+     * @param separator     分隔符
+     * @return 解析后值
+     */
+    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
+		/*StringBuilder propertyString = new StringBuilder();
 		String[] convertSource = converterExp.split(",");
 		for (String item : convertSource) {
 			String[] itemArray = item.split("=");
@@ -116,38 +112,53 @@ public class ExcelUtil {
 				}
 			}
 		}
-		return StringUtils.stripEnd(propertyString.toString(), separator);
-	}
+		return StringUtils.stripEnd(propertyString.toString(), separator);*/
+        return "";
+    }
+
+    /**
+     * 解析字典值
+     *
+     * @param dictValue 字典值
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典标签
+     */
+    public static String convertDictByExp(String dictValue, String dictType, String separator) {
+        return DictUtils.getDictLabel(dictType, dictValue, separator);
+    }
 
-	/**
-	 * 解析字典值
-	 *
-	 * @param dictValue 字典值
-	 * @param dictType  字典类型
-	 * @param separator 分隔符
-	 * @return 字典标签
-	 */
-	public static String convertDictByExp(String dictValue, String dictType, String separator) {
-		return DictUtils.getDictLabel(dictType, dictValue, separator);
-	}
+    /**
+     * 反向解析值字典值
+     *
+     * @param dictLabel 字典标签
+     * @param dictType  字典类型
+     * @param separator 分隔符
+     * @return 字典值
+     */
+    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
+        return DictUtils.getDictValue(dictType, dictLabel, separator);
+    }
 
-	/**
-	 * 反向解析值字典值
-	 *
-	 * @param dictLabel 字典标签
-	 * @param dictType  字典类型
-	 * @param separator 分隔符
-	 * @return 字典值
-	 */
-	public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
-		return DictUtils.getDictValue(dictType, dictLabel, separator);
-	}
+    /**
+     * 编码文件名
+     */
+    public static String encodingFilename(String filename) {
+        return IdUtil.fastSimpleUUID() + "_" + filename + ".xlsx";
+    }
 
-	/**
-	 * 编码文件名
-	 */
-	public static String encodingFilename(String filename) {
-		return IdUtil.fastSimpleUUID() + "_" + filename + ".xlsx";
-	}
+    /**
+     * 获取下载路径
+     *
+     * @param filename 文件名称
+     */
+    public static String getAbsoluteFile(String filename) {
+        String downloadPath = RuoYiConfig.getDownloadPath() + filename;
+        File desc = new File(downloadPath);
+        if (!desc.getParentFile().exists()) {
+            desc.getParentFile().mkdirs();
+        }
+        return downloadPath;
+    }
 
 }

+ 34 - 37
ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestDemoVo.java

@@ -1,7 +1,6 @@
 package com.ruoyi.demo.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -9,7 +8,6 @@ import lombok.Data;
 import java.util.Date;
 
 
-
 /**
  * 测试单表视图对象 test_demo
  *
@@ -18,80 +16,79 @@ import java.util.Date;
  */
 @Data
 @ApiModel("测试单表视图对象")
-@ExcelIgnoreUnannotated
 public class TestDemoVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键
+    /**
+     * 主键
      */
-	@ExcelProperty(value = "主键")
-	@ApiModelProperty("主键")
-	private Long id;
+    @Excel(name = "主键")
+    @ApiModelProperty("主键")
+    private Long id;
 
     /**
      * 部门id
      */
-	@ExcelProperty(value = "部门id")
-	@ApiModelProperty("部门id")
-	private Long deptId;
+    @Excel(name = "部门id")
+    @ApiModelProperty("部门id")
+    private Long deptId;
 
     /**
      * 用户id
      */
-	@ExcelProperty(value = "用户id")
-	@ApiModelProperty("用户id")
-	private Long userId;
+    @Excel(name = "用户id")
+    @ApiModelProperty("用户id")
+    private Long userId;
 
     /**
      * 排序号
      */
-	@ExcelProperty(value = "排序号")
-	@ApiModelProperty("排序号")
-	private Long orderNum;
+    @Excel(name = "排序号")
+    @ApiModelProperty("排序号")
+    private Long orderNum;
 
     /**
      * key键
      */
-	@ExcelProperty(value = "key键")
-	@ApiModelProperty("key键")
-	private String testKey;
+    @Excel(name = "key键")
+    @ApiModelProperty("key键")
+    private String testKey;
 
     /**
      * 值
      */
-	@ExcelProperty(value = "值")
-	@ApiModelProperty("值")
-	private String value;
+    @Excel(name = "值")
+    @ApiModelProperty("值")
+    private String value;
 
     /**
      * 创建时间
      */
-	@ExcelProperty(value = "创建时间")
-	@ApiModelProperty("创建时间")
-	private Date createTime;
+    @Excel(name = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
 
     /**
      * 创建人
      */
-	@ExcelProperty(value = "创建人")
-	@ApiModelProperty("创建人")
-	private String createBy;
+    @Excel(name = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
 
     /**
      * 更新时间
      */
-	@ExcelProperty(value = "更新时间")
-	@ApiModelProperty("更新时间")
-	private Date updateTime;
+    @Excel(name = "更新时间")
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
 
     /**
      * 更新人
      */
-	@ExcelProperty(value = "更新人")
-	@ApiModelProperty("更新人")
-	private String updateBy;
+    @Excel(name = "更新人")
+    @ApiModelProperty("更新人")
+    private String updateBy;
 
 
 }

+ 21 - 24
ruoyi-demo/src/main/java/com/ruoyi/demo/domain/vo/TestTreeVo.java

@@ -1,7 +1,6 @@
 package com.ruoyi.demo.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -9,7 +8,6 @@ import lombok.Data;
 import java.util.Date;
 
 
-
 /**
  * 测试树表视图对象 test_tree
  *
@@ -18,51 +16,50 @@ import java.util.Date;
  */
 @Data
 @ApiModel("测试树表视图对象")
-@ExcelIgnoreUnannotated
 public class TestTreeVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键
+    /**
+     * 主键
      */
-	@ApiModelProperty("主键")
-	private Long id;
+    @ApiModelProperty("主键")
+    private Long id;
 
     /**
      * 父id
      */
-	@ExcelProperty(value = "父id")
-	@ApiModelProperty("父id")
-	private Long parentId;
+    @Excel(name = "父id")
+    @ApiModelProperty("父id")
+    private Long parentId;
 
     /**
      * 部门id
      */
-	@ExcelProperty(value = "部门id")
-	@ApiModelProperty("部门id")
-	private Long deptId;
+    @Excel(name = "部门id")
+    @ApiModelProperty("部门id")
+    private Long deptId;
 
     /**
      * 用户id
      */
-	@ExcelProperty(value = "用户id")
-	@ApiModelProperty("用户id")
-	private Long userId;
+    @Excel(name = "用户id")
+    @ApiModelProperty("用户id")
+    private Long userId;
 
     /**
      * 树节点名
      */
-	@ExcelProperty(value = "树节点名")
-	@ApiModelProperty("树节点名")
-	private String treeName;
+    @Excel(name = "树节点名")
+    @ApiModelProperty("树节点名")
+    private String treeName;
 
     /**
      * 创建时间
      */
-	@ExcelProperty(value = "创建时间")
-	@ApiModelProperty("创建时间")
-	private Date createTime;
+    @Excel(name = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
 
 
 }

+ 24 - 24
ruoyi-framework/pom.xml

@@ -19,15 +19,15 @@
 
         <!-- BEGIN 如果想使用 Tomcat 注释掉以下代码 -->
         <!-- SpringBoot Web容器 -->
-         <dependency>
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
-             <exclusions>
-                 <exclusion>
-                     <artifactId>spring-boot-starter-tomcat</artifactId>
-                     <groupId>org.springframework.boot</groupId>
-                 </exclusion>
-             </exclusions>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                    <groupId>org.springframework.boot</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <!-- web 容器使用 undertow 性能更强 -->
         <dependency>
@@ -37,10 +37,10 @@
         <!-- END -->
 
         <!-- BEGIN 如果想使用 Tomcat 解除以下代码注释 -->
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.boot</groupId>-->
-<!--            <artifactId>spring-boot-starter-web</artifactId>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-starter-web</artifactId>-->
+        <!--        </dependency>-->
         <!-- END -->
 
         <!-- SpringBoot 拦截器 -->
@@ -67,19 +67,19 @@
             <artifactId>ruoyi-system</artifactId>
         </dependency>
 
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.cloud</groupId>-->
-<!--            <artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
-<!--            <version>${alicloud.version}</version>-->
-<!--            <type>pom</type>-->
-<!--            <scope>import</scope>-->
-<!--            <exclusions>-->
-<!--                <exclusion>-->
-<!--                    <groupId>org.springframework.cloud</groupId>-->
-<!--                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>-->
-<!--                </exclusion>-->
-<!--            </exclusions>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.alibaba.cloud</groupId>-->
+        <!--            <artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
+        <!--            <version>${alicloud.version}</version>-->
+        <!--            <type>pom</type>-->
+        <!--            <scope>import</scope>-->
+        <!--            <exclusions>-->
+        <!--                <exclusion>-->
+        <!--                    <groupId>org.springframework.cloud</groupId>-->
+        <!--                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>-->
+        <!--                </exclusion>-->
+        <!--            </exclusions>-->
+        <!--        </dependency>-->
 
         <dependency>
             <groupId>com.alibaba.cloud</groupId>

+ 35 - 36
ruoyi-generator/src/main/resources/vm/java/vo.java.vm

@@ -1,17 +1,16 @@
 package ${packageName}.domain.vo;
 
-#foreach ($import in $importList)
-import ${import};
-#end
+    #foreach ($import in $importList)
+    import ${import};
+    #end
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.Date;
 
 
 /**
@@ -22,41 +21,41 @@ import java.util.Date;
  */
 @Data
 @ApiModel("${functionName}视图对象")
-@ExcelIgnoreUnannotated
+    ##@ExcelIgnoreUnannotated
 public class ${ClassName}Vo {
 
-	private static final long serialVersionUID = 1L;
-
-	/**
-     *  $pkColumn.columnComment
-     */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private ${pkColumn.javaType} ${pkColumn.javaField};
+    private static final long serialVersionUID = 1L;
 
-#foreach ($column in $columns)
-#if($column.isList && $column.isPk!=1)
     /**
-     * $column.columnComment
+     *  $pkColumn.columnComment
      */
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if(${column.dictType} && ${column.dictType} != '')
-    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(dictType = "${column.dictType}")
-#elseif($parentheseIndex != -1)
-	@ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
-#else
-	@ExcelProperty(value = "${comment}")
-#end
-	@ApiModelProperty("$column.columnComment")
-	private $column.javaType $column.javaField;
-
-#end
-#end
+    @ApiModelProperty("$pkColumn.columnComment")
+    private ${pkColumn.javaType} ${pkColumn.javaField};
+
+    #foreach ($column in $columns)
+        #if($column.isList && $column.isPk!=1)
+            /**
+             * $column.columnComment
+             */
+            #set($parentheseIndex=$column.columnComment.indexOf("("))
+            #if($parentheseIndex != -1)
+                #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+            #else
+                #set($comment=$column.columnComment)
+            #end
+            #if(${column.dictType} && ${column.dictType} != '')
+            @Excel(name = "${comment}")
+            @ExcelDictFormat(dictType = "${column.dictType}")
+            #elseif($parentheseIndex != -1)
+            @Excel(name = "${comment}")
+            @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
+            #else
+            @Excel(name = "${comment}")
+            #end
+        @ApiModelProperty("$column.columnComment")
+        private $column.javaType $column.javaField;
+
+        #end
+    #end
 
 }

+ 18 - 17
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java

@@ -1,12 +1,14 @@
 package com.ruoyi.quartz.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.constant.ScheduleConstants;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.quartz.util.CronUtils;
 import lombok.Data;
@@ -30,14 +32,13 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_job")
-@ExcelIgnoreUnannotated
 public class SysJob implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 任务ID
      */
-    @ExcelProperty(value = "任务序号")
+    @Excel(name = "任务序号")
     @TableId(value = "job_id", type = IdType.AUTO)
     private Long jobId;
 
@@ -46,14 +47,14 @@ public class SysJob implements Serializable {
      */
     @NotBlank(message = "任务名称不能为空")
     @Size(min = 0, max = 64, message = "任务名称不能超过64个字符")
-    @ExcelProperty(value = "任务名称")
+    @Excel(name = "任务名称")
     private String jobName;
 
     /**
      * 任务组名
      */
-	@ExcelProperty(value = "任务组名", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_job_group")
+    @Excel(name = "任务组名")
+    @ExcelDictFormat(dictType = "sys_job_group")
     private String jobGroup;
 
     /**
@@ -61,7 +62,7 @@ public class SysJob implements Serializable {
      */
     @NotBlank(message = "调用目标字符串不能为空")
     @Size(min = 0, max = 500, message = "调用目标字符串长度不能超过500个字符")
-    @ExcelProperty(value = "调用目标字符串")
+    @Excel(name = "调用目标字符串")
     private String invokeTarget;
 
     /**
@@ -69,28 +70,28 @@ public class SysJob implements Serializable {
      */
     @NotBlank(message = "Cron执行表达式不能为空")
     @Size(min = 0, max = 255, message = "Cron执行表达式不能超过255个字符")
-    @ExcelProperty(value = "执行表达式")
+    @Excel(name = "执行表达式")
     private String cronExpression;
 
     /**
      * cron计划策略
      */
-    @ExcelProperty(value = "计划策略 ", converter = ExcelDictConvert.class)
+    @Excel(name = "计划策略 ")
     @ExcelDictFormat(readConverterExp = "0=默认,1=立即触发执行,2=触发一次执行,3=不触发立即执行")
-	private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT;
+    private String misfirePolicy = ScheduleConstants.MISFIRE_DEFAULT;
 
     /**
      * 是否并发执行(0允许 1禁止)
      */
-    @ExcelProperty(value = "并发执行", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(readConverterExp = "0=允许,1=禁止")
+    @Excel(name = "并发执行")
+    @ExcelDictFormat(readConverterExp = "0=允许,1=禁止")
     private String concurrent;
 
     /**
      * 任务状态(0正常 1暂停)
      */
-    @ExcelProperty(value = "任务状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_job_status")
+    @Excel(name = "任务状态")
+    @ExcelDictFormat(dictType = "sys_job_status")
     private String status;
 
     /**

+ 43 - 25
ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java

@@ -1,10 +1,12 @@
 package com.ruoyi.quartz.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -23,40 +25,52 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_job_log")
-@ExcelIgnoreUnannotated
-public class SysJobLog
-{
+public class SysJobLog {
     private static final long serialVersionUID = 1L;
 
-    /** ID */
-    @ExcelProperty(value = "日志序号")
+    /**
+     * ID
+     */
+    @Excel(name = "日志序号")
     @TableId(value = "job_log_id", type = IdType.AUTO)
     private Long jobLogId;
 
-    /** 任务名称 */
-    @ExcelProperty(value = "任务名称")
+    /**
+     * 任务名称
+     */
+    @Excel(name = "任务名称")
     private String jobName;
 
-    /** 任务组名 */
-    @ExcelProperty(value = "任务组名", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_job_group")
+    /**
+     * 任务组名
+     */
+    @Excel(name = "任务组名")
+    @ExcelDictFormat(dictType = "sys_job_group")
     private String jobGroup;
 
-    /** 调用目标字符串 */
-    @ExcelProperty(value = "调用目标字符串")
+    /**
+     * 调用目标字符串
+     */
+    @Excel(name = "调用目标字符串")
     private String invokeTarget;
 
-    /** 日志信息 */
-    @ExcelProperty(value = "日志信息")
+    /**
+     * 日志信息
+     */
+    @Excel(name = "日志信息")
     private String jobMessage;
 
-    /** 执行状态(0正常 1失败) */
-    @ExcelProperty(value = "执行状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
+    /**
+     * 执行状态(0正常 1失败)
+     */
+    @Excel(name = "执行状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
-    /** 异常信息 */
-    @ExcelProperty(value = "异常信息")
+    /**
+     * 异常信息
+     */
+    @Excel(name = "异常信息")
     private String exceptionInfo;
 
     /**
@@ -71,11 +85,15 @@ public class SysJobLog
     @TableField(exist = false)
     private Map<String, Object> params = new HashMap<>();
 
-    /** 开始时间 */
+    /**
+     * 开始时间
+     */
     @TableField(exist = false)
     private Date startTime;
 
-    /** 停止时间 */
+    /**
+     * 停止时间
+     */
     @TableField(exist = false)
     private Date stopTime;
 

+ 12 - 11
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java

@@ -1,10 +1,12 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,21 +28,20 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_config")
-@ExcelIgnoreUnannotated
 public class SysConfig implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 参数主键
      */
-    @ExcelProperty(value = "参数主键")
+    @Excel(name = "参数主键")
     @TableId(value = "config_id", type = IdType.AUTO)
     private Long configId;
 
     /**
      * 参数名称
      */
-    @ExcelProperty(value = "参数名称")
+    @Excel(name = "参数名称")
     @NotBlank(message = "参数名称不能为空")
     @Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
     private String configName;
@@ -48,7 +49,7 @@ public class SysConfig implements Serializable {
     /**
      * 参数键名
      */
-    @ExcelProperty(value = "参数键名")
+    @Excel(name = "参数键名")
     @NotBlank(message = "参数键名长度不能为空")
     @Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
     private String configKey;
@@ -56,7 +57,7 @@ public class SysConfig implements Serializable {
     /**
      * 参数键值
      */
-    @ExcelProperty(value = "参数键值")
+    @Excel(name = "参数键值")
     @NotBlank(message = "参数键值不能为空")
     @Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
     private String configValue;
@@ -64,8 +65,8 @@ public class SysConfig implements Serializable {
     /**
      * 系统内置(Y是 N否)
      */
-    @ExcelProperty(value = "系统内置", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_yes_no")
+    @Excel(name = "系统内置")
+    @ExcelDictFormat(dictType = "sys_yes_no")
     private String configType;
 
     /**

+ 11 - 14
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java

@@ -1,13 +1,11 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -27,64 +25,63 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_logininfor")
-@ExcelIgnoreUnannotated
 public class SysLogininfor implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * ID
      */
-    @ExcelProperty(value = "序号")
+    @Excel(name = "序号")
     @TableId(value = "info_id", type = IdType.AUTO)
     private Long infoId;
 
     /**
      * 用户账号
      */
-    @ExcelProperty(value = "用户账号")
+    @Excel(name = "用户账号")
     private String userName;
 
     /**
      * 登录状态 0成功 1失败
      */
-    @ExcelProperty(value = "登录状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
+    @Excel(name = "登录状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**
      * 登录IP地址
      */
-    @ExcelProperty(value = "登录地址")
+    @Excel(name = "登录地址")
     private String ipaddr;
 
     /**
      * 登录地点
      */
-    @ExcelProperty(value = "登录地点")
+    @Excel(name = "登录地点")
     private String loginLocation;
 
     /**
      * 浏览器类型
      */
-    @ExcelProperty(value = "浏览器")
+    @Excel(name = "浏览器")
     private String browser;
 
     /**
      * 操作系统
      */
-    @ExcelProperty(value = "操作系统")
+    @Excel(name = "操作系统")
     private String os;
 
     /**
      * 提示消息
      */
-    @ExcelProperty(value = "提示消息")
+    @Excel(name = "提示消息")
     private String msg;
 
     /**
      * 访问时间
      */
-    @ExcelProperty(value = "访问时间")
+    @Excel(name = "访问时间")
     private Date loginTime;
 
     /**

+ 20 - 23
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java

@@ -1,13 +1,11 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -27,28 +25,27 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_oper_log")
-@ExcelIgnoreUnannotated
 public class SysOperLog implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 日志主键
      */
-    @ExcelProperty(value = "操作序号")
+    @Excel(name = "操作序号")
     @TableId(value = "oper_id", type = IdType.AUTO)
     private Long operId;
 
     /**
      * 操作模块
      */
-    @ExcelProperty(value = "操作模块")
+    @Excel(name = "操作模块")
     private String title;
 
     /**
      * 业务类型(0其它 1新增 2修改 3删除)
      */
-    @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_oper_type")
+    @Excel(name = "业务类型")
+    @ExcelDictFormat(dictType = "sys_oper_type")
     private Integer businessType;
 
     /**
@@ -60,81 +57,81 @@ public class SysOperLog implements Serializable {
     /**
      * 请求方法
      */
-    @ExcelProperty(value = "请求方法")
+    @Excel(name = "请求方法")
     private String method;
 
     /**
      * 请求方式
      */
-    @ExcelProperty(value = "请求方式")
+    @Excel(name = "请求方式")
     private String requestMethod;
 
     /**
      * 操作类别(0其它 1后台用户 2手机端用户)
      */
-    @ExcelProperty(value = "操作类别", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(readConverterExp = "0=其它,1=后台用户,2=手机端用户")
+    @Excel(name = "操作类别")
+    @ExcelDictFormat(readConverterExp = "0=其它,1=后台用户,2=手机端用户")
     private Integer operatorType;
 
     /**
      * 操作人员
      */
-    @ExcelProperty(value = "操作人员")
+    @Excel(name = "操作人员")
     private String operName;
 
     /**
      * 部门名称
      */
-    @ExcelProperty(value = "部门名称")
+    @Excel(name = "部门名称")
     private String deptName;
 
     /**
      * 请求url
      */
-    @ExcelProperty(value = "请求地址")
+    @Excel(name = "请求地址")
     private String operUrl;
 
     /**
      * 操作地址
      */
-    @ExcelProperty(value = "操作地址")
+    @Excel(name = "操作地址")
     private String operIp;
 
     /**
      * 操作地点
      */
-    @ExcelProperty(value = "操作地点")
+    @Excel(name = "操作地点")
     private String operLocation;
 
     /**
      * 请求参数
      */
-    @ExcelProperty(value = "请求参数")
+    @Excel(name = "请求参数")
     private String operParam;
 
     /**
      * 返回参数
      */
-    @ExcelProperty(value = "返回参数")
+    @Excel(name = "返回参数")
     private String jsonResult;
 
     /**
      * 操作状态(0正常 1异常)
      */
-    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
+    @Excel(name = "状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
     private Integer status;
 
     /**
      * 错误消息
      */
-    @ExcelProperty(value = "错误消息")
+    @Excel(name = "错误消息")
     private String errorMsg;
 
     /**
      * 操作时间
      */
-    @ExcelProperty(value = "操作时间")
+    @Excel(name = "操作时间")
     private Date operTime;
 
     /**

+ 12 - 11
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java

@@ -1,10 +1,12 @@
 package com.ruoyi.system.domain;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.baomidou.mybatisplus.annotation.*;
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,21 +28,20 @@ import java.util.Map;
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_post")
-@ExcelIgnoreUnannotated
 public class SysPost implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 岗位序号
      */
-    @ExcelProperty(value = "岗位序号")
+    @Excel(name = "岗位序号")
     @TableId(value = "post_id", type = IdType.AUTO)
     private Long postId;
 
     /**
      * 岗位编码
      */
-    @ExcelProperty(value = "岗位编码")
+    @Excel(name = "岗位编码")
     @NotBlank(message = "岗位编码不能为空")
     @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
     private String postCode;
@@ -48,7 +49,7 @@ public class SysPost implements Serializable {
     /**
      * 岗位名称
      */
-    @ExcelProperty(value = "岗位名称")
+    @Excel(name = "岗位名称")
     @NotBlank(message = "岗位名称不能为空")
     @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
     private String postName;
@@ -56,15 +57,15 @@ public class SysPost implements Serializable {
     /**
      * 岗位排序
      */
-    @ExcelProperty(value = "岗位排序")
+    @Excel(name = "岗位排序")
     @NotBlank(message = "显示顺序不能为空")
     private String postSort;
 
     /**
      * 状态(0正常 1停用)
      */
-	@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
+    @Excel(name = "状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**

+ 30 - 33
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysOssConfigVo.java

@@ -1,12 +1,10 @@
 package com.ruoyi.system.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 
-
 /**
  * 云存储配置视图对象 sys_oss_config
  *
@@ -16,81 +14,80 @@ import lombok.Data;
  */
 @Data
 @ApiModel("云存储配置视图对象")
-@ExcelIgnoreUnannotated
 public class SysOssConfigVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
+    /**
      * 主建
      */
-	@ApiModelProperty("主建")
-	private Long ossConfigId;
+    @ApiModelProperty("主建")
+    private Long ossConfigId;
 
     /**
      * 配置key
      */
-	@ApiModelProperty("配置key")
-	private String configKey;
+    @ApiModelProperty("配置key")
+    private String configKey;
 
     /**
      * accessKey
      */
-	@ApiModelProperty("accessKey")
-	private String accessKey;
+    @ApiModelProperty("accessKey")
+    private String accessKey;
 
     /**
      * 秘钥
      */
-	@ApiModelProperty("secretKey")
-	private String secretKey;
+    @ApiModelProperty("secretKey")
+    private String secretKey;
 
     /**
      * 桶名称
      */
-	@ApiModelProperty("桶名称")
-	private String bucketName;
+    @ApiModelProperty("桶名称")
+    private String bucketName;
 
     /**
      * 前缀
      */
-	@ApiModelProperty("前缀")
-	private String prefix;
+    @ApiModelProperty("前缀")
+    private String prefix;
 
     /**
      * 访问站点
      */
-	@ApiModelProperty("访问站点")
-	private String endpoint;
+    @ApiModelProperty("访问站点")
+    private String endpoint;
 
     /**
      * 是否https(Y=是,N=否)
      */
-	@ApiModelProperty("是否https(Y=是,N=否)")
-	private String isHttps;
+    @ApiModelProperty("是否https(Y=是,N=否)")
+    private String isHttps;
 
     /**
      * 域
      */
-	@ApiModelProperty("域")
-	private String region;
+    @ApiModelProperty("域")
+    private String region;
 
     /**
      * 状态(0=正常,1=停用)
      */
-	@ApiModelProperty("状态(0=正常,1=停用)")
-	private String status;
+    @ApiModelProperty("状态(0=正常,1=停用)")
+    private String status;
 
     /**
      * 扩展字段
      */
-	@ApiModelProperty("扩展字段")
-	private String ext1;
-
-	/**
-	 * 备注
-	 */
-	@ApiModelProperty("备注")
-	private String remark;
+    @ApiModelProperty("扩展字段")
+    private String ext1;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
 
 }

+ 70 - 71
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserExportVo.java

@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -20,74 +19,74 @@ import java.util.Date;
 @NoArgsConstructor
 @Accessors(chain = true)
 public class SysUserExportVo implements Serializable {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 用户ID
-	 */
-	@ExcelProperty(value = "用户序号")
-	private String userId;
-
-	/**
-	 * 用户账号
-	 */
-	@ExcelProperty(value = "登录名称")
-	private String userName;
-
-	/**
-	 * 用户昵称
-	 */
-	@ExcelProperty(value = "用户名称")
-	private String nickName;
-
-	/**
-	 * 用户邮箱
-	 */
-	@ExcelProperty(value = "用户邮箱")
-	private String email;
-
-	/**
-	 * 手机号码
-	 */
-	@ExcelProperty(value = "手机号码")
-	private String phonenumber;
-
-	/**
-	 * 用户性别
-	 */
-	@ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_user_sex")
-	private String sex;
-
-	/**
-	 * 帐号状态(0正常 1停用)
-	 */
-	@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
-	private String status;
-
-	/**
-	 * 最后登录IP
-	 */
-	@ExcelProperty(value = "最后登录IP")
-	private String loginIp;
-
-	/**
-	 * 最后登录时间
-	 */
-	@ExcelProperty(value = "最后登录时间")
-	private Date loginDate;
-
-	/**
-	 * 部门名称
-	 */
-	@ExcelProperty(value = "部门名称")
-	private String deptName;
-
-	/**
-	 * 负责人
-	 */
-	@ExcelProperty(value = "部门负责人")
-	private String leader;
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID
+     */
+    @Excel(name = "用户序号")
+    private String userId;
+
+    /**
+     * 用户账号
+     */
+    @Excel(name = "登录名称")
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    @Excel(name = "用户名称")
+    private String nickName;
+
+    /**
+     * 用户邮箱
+     */
+    @Excel(name = "用户邮箱")
+    private String email;
+
+    /**
+     * 手机号码
+     */
+    @Excel(name = "手机号码")
+    private String phonenumber;
+
+    /**
+     * 用户性别
+     */
+    @Excel(name = "用户性别")
+    @ExcelDictFormat(dictType = "sys_user_sex")
+    private String sex;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @Excel(name = "帐号状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
+
+    /**
+     * 最后登录IP
+     */
+    @Excel(name = "最后登录IP")
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    @Excel(name = "最后登录时间")
+    private Date loginDate;
+
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    private String deptName;
+
+    /**
+     * 负责人
+     */
+    @Excel(name = "部门负责人")
+    private String leader;
 
 }

+ 44 - 45
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserImportVo.java

@@ -1,8 +1,7 @@
 package com.ruoyi.system.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -18,56 +17,56 @@ import java.io.Serializable;
 @NoArgsConstructor
 // @Accessors(chain = true) // 导入不允许使用 会找不到set方法
 public class SysUserImportVo implements Serializable {
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-	 * 用户ID
-	 */
-	@ExcelProperty(value = "用户序号")
-	private String userId;
+    /**
+     * 用户ID
+     */
+    @Excel(name = "用户序号")
+    private String userId;
 
-	/**
-	 * 部门ID
-	 */
-	@ExcelProperty(value = "部门编号")
-	private String deptId;
+    /**
+     * 部门ID
+     */
+    @Excel(name = "部门编号")
+    private String deptId;
 
-	/**
-	 * 用户账号
-	 */
-	@ExcelProperty(value = "登录名称")
-	private String userName;
+    /**
+     * 用户账号
+     */
+    @Excel(name = "登录名称")
+    private String userName;
 
-	/**
-	 * 用户昵称
-	 */
-	@ExcelProperty(value = "用户名称")
-	private String nickName;
+    /**
+     * 用户昵称
+     */
+    @Excel(name = "用户名称")
+    private String nickName;
 
-	/**
-	 * 用户邮箱
-	 */
-	@ExcelProperty(value = "用户邮箱")
-	private String email;
+    /**
+     * 用户邮箱
+     */
+    @Excel(name = "用户邮箱")
+    private String email;
 
-	/**
-	 * 手机号码
-	 */
-	@ExcelProperty(value = "手机号码")
-	private String phonenumber;
+    /**
+     * 手机号码
+     */
+    @Excel(name = "手机号码")
+    private String phonenumber;
 
-	/**
-	 * 用户性别
-	 */
-	@ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_user_sex")
-	private String sex;
+    /**
+     * 用户性别
+     */
+    @Excel(name = "用户性别")
+    @ExcelDictFormat(dictType = "sys_user_sex")
+    private String sex;
 
-	/**
-	 * 帐号状态(0正常 1停用)
-	 */
-	@ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
-	@ExcelDictFormat(dictType = "sys_common_status")
-	private String status;
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @Excel(name = "帐号状态")
+    @ExcelDictFormat(dictType = "sys_common_status")
+    private String status;
 
 }

+ 12 - 18
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/DutyEmpVo.java

@@ -1,14 +1,9 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
-
 
 
 /**
@@ -19,30 +14,29 @@ import java.util.Date;
  */
 @Data
 @ApiModel("值班排班信息视图对象")
-@ExcelIgnoreUnannotated
 public class DutyEmpVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  $pkColumn.columnComment
+    /**
+     * $pkColumn.columnComment
      */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private String id;
+    @ApiModelProperty("$pkColumn.columnComment")
+    private String id;
 
     /**
      * 日期
      */
-	@ExcelProperty(value = "日期")
-	@ApiModelProperty("日期")
-	private Integer period;
+    @Excel(name = "日期")
+    @ApiModelProperty("日期")
+    private Integer period;
 
     /**
      * 值班人
      */
-	@ExcelProperty(value = "值班人")
-	@ApiModelProperty("值班人")
-	private String empName;
+    @Excel(name = "值班人")
+    @ApiModelProperty("值班人")
+    private String empName;
 
 
 }

+ 18 - 24
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/DutyReportVo.java

@@ -1,16 +1,11 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.Date;
 
 
 /**
@@ -21,42 +16,41 @@ import java.util.Date;
  */
 @Data
 @ApiModel("值班报告信息视图对象")
-@ExcelIgnoreUnannotated
 public class DutyReportVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  $pkColumn.columnComment
+    /**
+     * $pkColumn.columnComment
      */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private String id;
+    @ApiModelProperty("$pkColumn.columnComment")
+    private String id;
 
     /**
      * 报告内容
      */
-	@ExcelProperty(value = "报告内容")
-	@ApiModelProperty("报告内容")
-	private String reportContent;
+    @Excel(name = "报告内容")
+    @ApiModelProperty("报告内容")
+    private String reportContent;
 
     /**
      * 报告状态
      */
-	@ExcelProperty(value = "报告状态")
-	@ApiModelProperty("报告状态")
-	private Integer status;
+    @Excel(name = "报告状态")
+    @ApiModelProperty("报告状态")
+    private Integer status;
 
     /**
      * 值班日期
      */
-	@ExcelProperty(value = "值班日期")
-	@ApiModelProperty("值班日期")
-	private Date dutyDate;
+    @Excel(name = "值班日期")
+    @ApiModelProperty("值班日期")
+    private Date dutyDate;
 
-    @ExcelProperty(value = "报告人")
+    @Excel(name = "报告人")
     private String createBy;
 
-    @ExcelProperty(value = "更新时间")
+    @Excel(name = "更新时间")
     private Date updateTime;
 
 }

+ 16 - 20
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentProcessVo.java

@@ -1,14 +1,11 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.Date;
 
 
 /**
@@ -19,40 +16,39 @@ import java.util.Date;
  */
 @Data
 @ApiModel("事件处置流程视图对象")
-@ExcelIgnoreUnannotated
 public class IncidentProcessVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键id
+    /**
+     * 主键id
      */
-	@ApiModelProperty("主键id")
-	private String id;
+    @ApiModelProperty("主键id")
+    private String id;
 
     /**
      * 所属事件id
      */
-	@ExcelProperty(value = "所属事件id")
-	@ApiModelProperty("所属事件id")
-	private String incidentId;
+    @Excel(name = "所属事件id")
+    @ApiModelProperty("所属事件id")
+    private String incidentId;
 
     /**
      * 处置过程
      */
-	@ExcelProperty(value = "处置过程")
-	@ApiModelProperty("处置过程")
-	private String des;
+    @Excel(name = "处置过程")
+    @ApiModelProperty("处置过程")
+    private String des;
 
-    @ExcelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+    @Excel(name = "事件状态 1:预警,2:事件 3:归档")
     @ApiModelProperty("事件状态 1:预警,2:事件 3:归档")
     private Integer status;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 }

+ 14 - 14
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskCommandVo.java

@@ -1,7 +1,6 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,30 +14,31 @@ import lombok.Data;
  */
 @Data
 @ApiModel("事件处置方案指令视图对象")
-@ExcelIgnoreUnannotated
 public class IncidentTaskCommandVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键
+    /**
+     * 主键
      */
-	@ApiModelProperty("主键")
-	private String id;
+    @ApiModelProperty("主键")
+    private String id;
 
     /**
      * 事件id
      */
-	@ExcelProperty(value = "事件方案id")
-	@ApiModelProperty("事件方案id")
-	private String incidentTaskId;
+    @Excel(name = "事件方案id")
+    @ApiModelProperty("事件方案id")
+    private String incidentTaskId;
 
     /**
      * 指令
      */
-	@ExcelProperty(value = "指令")
-	@ApiModelProperty("指令")
-	private String command;
+    @Excel(name = "指令")
+    @ApiModelProperty("指令")
+    private String command;
+
+    private int index;
 
 
 }

+ 15 - 21
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskPersonVo.java

@@ -1,14 +1,9 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
-
 
 
 /**
@@ -19,37 +14,36 @@ import java.util.Date;
  */
 @Data
 @ApiModel("事件处置方案人员视图对象")
-@ExcelIgnoreUnannotated
 public class IncidentTaskPersonVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键
+    /**
+     * 主键
      */
-	@ApiModelProperty("主键")
-	private String id;
+    @ApiModelProperty("主键")
+    private String id;
 
     /**
      * 事件id
      */
-	@ExcelProperty(value = "事件id")
-	@ApiModelProperty("事件id")
-	private String incidentTaskId;
+    @Excel(name = "事件id")
+    @ApiModelProperty("事件id")
+    private String incidentTaskId;
 
     /**
      * 人员职位
      */
-	@ExcelProperty(value = "人员职位")
-	@ApiModelProperty("人员职位")
-	private String position;
+    @Excel(name = "人员职位")
+    @ApiModelProperty("人员职位")
+    private String position;
 
     /**
      * 人员姓名
      */
-	@ExcelProperty(value = "人员姓名")
-	@ApiModelProperty("人员姓名")
-	private String person;
+    @Excel(name = "人员姓名")
+    @ApiModelProperty("人员姓名")
+    private String person;
 
 
 }

+ 11 - 13
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentTaskVo.java

@@ -1,7 +1,6 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -18,23 +17,22 @@ import java.util.List;
  */
 @Data
 @ApiModel("事件处置流程视图对象")
-@ExcelIgnoreUnannotated
 public class IncidentTaskVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键id
+    /**
+     * 主键id
      */
-	@ApiModelProperty("主键id")
-	private String id;
+    @ApiModelProperty("主键id")
+    private String id;
 
     /**
      * 所属事件id
      */
-	@ExcelProperty(value = "所属事件id")
-	@ApiModelProperty("所属事件id")
-	private String incidentId;
+    @Excel(name = "所属事件id")
+    @ApiModelProperty("所属事件id")
+    private String incidentId;
 
     @ApiModelProperty(value = "任务名称")
     private String taskName;
@@ -43,11 +41,11 @@ public class IncidentTaskVo {
 
     private List<IncidentTaskPersonVo> taskPersonVos;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 }

+ 58 - 62
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java

@@ -1,14 +1,11 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.Date;
 
 
 /**
@@ -19,100 +16,99 @@ import java.util.Date;
  */
 @Data
 @ApiModel("事件基础视图对象")
-@ExcelIgnoreUnannotated
 public class IncidentVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键id
+    /**
+     * 主键id
      */
-	@ApiModelProperty("主键id")
-	private String id;
+    @ApiModelProperty("主键id")
+    private String id;
 
     /**
      * 事件类型
      */
-	@ExcelProperty(value = "事件类型")
-	@ApiModelProperty("事件类型")
-	private Integer type;
+    @Excel(name = "事件类型")
+    @ApiModelProperty("事件类型")
+    private Integer type;
 
     /**
      * 事件等级
      */
-	@ExcelProperty(value = "事件等级")
-	@ApiModelProperty("事件等级")
-	private Integer level;
+    @Excel(name = "事件等级")
+    @ApiModelProperty("事件等级")
+    private Integer level;
 
     /**
      * 事件地址
      */
-	@ExcelProperty(value = "事件地址")
-	@ApiModelProperty("事件地址")
-	private String addr;
+    @Excel(name = "事件地址")
+    @ApiModelProperty("事件地址")
+    private String addr;
 
     /**
      * 经纬度
      */
-	@ExcelProperty(value = "经纬度")
-	@ApiModelProperty("经纬度")
-	private String locations;
+    @Excel(name = "经纬度")
+    @ApiModelProperty("经纬度")
+    private String locations;
 
     /**
      * 上报部门
      */
-	@ExcelProperty(value = "上报部门")
-	@ApiModelProperty("上报部门")
-	private String createDept;
+    @Excel(name = "上报部门")
+    @ApiModelProperty("上报部门")
+    private String createDept;
 
     /**
      * 事件来源
      */
-	@ExcelProperty(value = "事件来源")
-	@ApiModelProperty("事件来源")
-	private String source;
+    @Excel(name = "事件来源")
+    @ApiModelProperty("事件来源")
+    private String source;
 
     /**
      * 事件描述
      */
-	@ExcelProperty(value = "事件描述")
-	@ApiModelProperty("事件描述")
-	private String des;
+    @Excel(name = "事件描述")
+    @ApiModelProperty("事件描述")
+    private String des;
 
     /**
      * 上传图片地址
      */
-	@ExcelProperty(value = "上传图片地址")
-	@ApiModelProperty("上传图片地址")
-	private String pic;
+    @Excel(name = "上传图片地址")
+    @ApiModelProperty("上传图片地址")
+    private String pic;
 
     /**
      * 上传视频地址
      */
-	@ExcelProperty(value = "上传视频地址")
-	@ApiModelProperty("上传视频地址")
-	private String video;
+    @Excel(name = "上传视频地址")
+    @ApiModelProperty("上传视频地址")
+    private String video;
 
     /**
      * 拓展1
      */
-	@ExcelProperty(value = "拓展1")
-	@ApiModelProperty("拓展1")
-	private String expr1;
+    @Excel(name = "拓展1")
+    @ApiModelProperty("拓展1")
+    private String expr1;
 
     /**
      * 拓展2
      */
-	@ExcelProperty(value = "拓展2")
-	@ApiModelProperty("拓展2")
-	private String expr2;
+    @Excel(name = "拓展2")
+    @ApiModelProperty("拓展2")
+    private String expr2;
 
     /**
      * json拓展,用于存取多出的字段
      */
-	@ExcelProperty(value = "json拓展,用于存取多出的字段")
-	@ApiModelProperty("json拓展,用于存取多出的字段")
-	private String exprJson;
+    @Excel(name = "json拓展,用于存取多出的字段")
+    @ApiModelProperty("json拓展,用于存取多出的字段")
+    private String exprJson;
 
     @ApiModelProperty(value = "归档总结")
     private String conclusion;
@@ -123,40 +119,40 @@ public class IncidentVo {
     /**
      * 事件标题
      */
-	@ExcelProperty(value = "事件标题")
-	@ApiModelProperty("事件标题")
-	private String name;
+    @Excel(name = "事件标题")
+    @ApiModelProperty("事件标题")
+    private String name;
 
     /**
      * 事件状态 1:预警,2:事件 3:归档
      */
-	@ExcelProperty(value = "事件状态 1:预警,2:事件 3:归档")
-	@ApiModelProperty("事件状态 1:预警,2:事件 3:归档")
-	private Integer status;
+    @Excel(name = "事件状态 1:预警,2:事件 3:归档")
+    @ApiModelProperty("事件状态 1:预警,2:事件 3:归档")
+    private Integer status;
 
     /**
      * 主办单位
      */
-	@ExcelProperty(value = "主办单位")
-	@ApiModelProperty("主办单位")
-	private String madinDept;
+    @Excel(name = "主办单位")
+    @ApiModelProperty("主办单位")
+    private String madinDept;
 
     /**
      * 协办单位 多个数据用,分割
      */
-	@ExcelProperty(value = "协办单位 多个数据用,分割")
-	@ApiModelProperty("协办单位 多个数据用,分割")
-	private String assistDept;
+    @Excel(name = "协办单位 多个数据用,分割")
+    @ApiModelProperty("协办单位 多个数据用,分割")
+    private String assistDept;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 
-    @ExcelProperty(value = "更新时间")
+    @Excel(name = "更新时间")
     @ApiModelProperty("更新时间")
     private Date updateTime;
 }

+ 17 - 19
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanFileVo.java

@@ -1,7 +1,6 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -17,43 +16,42 @@ import java.util.Date;
  */
 @Data
 @ApiModel("预案文件管理视图对象")
-@ExcelIgnoreUnannotated
 public class PlanFileVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  任务id
+    /**
+     * 任务id
      */
-	@ApiModelProperty("任务id")
-	private String id;
+    @ApiModelProperty("任务id")
+    private String id;
 
     /**
      * 所属预案id
      */
-	@ExcelProperty(value = "所属预案id")
-	@ApiModelProperty("所属预案id")
-	private String planId;
+    @Excel(name = "所属预案id")
+    @ApiModelProperty("所属预案id")
+    private String planId;
 
     /**
      * 任务名称
      */
-	@ExcelProperty(value = "文件名称")
-	@ApiModelProperty("文件名称")
-	private String fileName;
+    @Excel(name = "文件名称")
+    @ApiModelProperty("文件名称")
+    private String fileName;
 
     /**
      * 任务描述
      */
-	@ExcelProperty(value = "文件地址")
-	@ApiModelProperty("文件地址")
-	private String fileUrl;
+    @Excel(name = "文件地址")
+    @ApiModelProperty("文件地址")
+    private String fileUrl;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 }

+ 19 - 23
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanTaskVo.java

@@ -1,14 +1,11 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.util.Date;
 
 
 /**
@@ -19,50 +16,49 @@ import java.util.Date;
  */
 @Data
 @ApiModel("预案任务管理视图对象")
-@ExcelIgnoreUnannotated
 public class PlanTaskVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  任务id
+    /**
+     * 任务id
      */
-	@ApiModelProperty("任务id")
-	private String id;
+    @ApiModelProperty("任务id")
+    private String id;
 
     /**
      * 所属预案id
      */
-	@ExcelProperty(value = "所属预案id")
-	@ApiModelProperty("所属预案id")
-	private String planId;
+    @Excel(name = "所属预案id")
+    @ApiModelProperty("所属预案id")
+    private String planId;
 
     /**
      * 预案等级
      */
-    @ExcelProperty(value = "预案等级")
+    @Excel(name = "预案等级")
     @ApiModelProperty("预案等级")
     private Integer level;
 
     /**
      * 任务名称
      */
-	@ExcelProperty(value = "任务名称")
-	@ApiModelProperty("任务名称")
-	private String taskName;
+    @Excel(name = "任务名称")
+    @ApiModelProperty("任务名称")
+    private String taskName;
 
     /**
      * 任务描述
      */
-	@ExcelProperty(value = "任务描述")
-	@ApiModelProperty("任务描述")
-	private String taskDes;
+    @Excel(name = "任务描述")
+    @ApiModelProperty("任务描述")
+    private String taskDes;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 }

+ 19 - 22
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanVo.java

@@ -1,12 +1,10 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -20,47 +18,46 @@ import java.util.Map;
  */
 @Data
 @ApiModel("预案管理视图对象")
-@ExcelIgnoreUnannotated
 public class PlanVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  主键id
+    /**
+     * 主键id
      */
-	@ApiModelProperty("主键id")
-	private String id;
+    @ApiModelProperty("主键id")
+    private String id;
 
     /**
      * 预案名称
      */
-	@ExcelProperty(value = "预案名称")
-	@ApiModelProperty("预案名称")
-	private String name;
+    @Excel(name = "预案名称")
+    @ApiModelProperty("预案名称")
+    private String name;
 
     /**
      * 预案类型
      */
-	@ExcelProperty(value = "预案类型")
-	@ApiModelProperty("预案类型")
-	private Integer type;
+    @Excel(name = "预案类型")
+    @ApiModelProperty("预案类型")
+    private Integer type;
 
     /**
      * 创建部门
      */
-	@ExcelProperty(value = "创建部门")
-	@ApiModelProperty("创建部门")
-	private String createDept;
+    @Excel(name = "创建部门")
+    @ApiModelProperty("创建部门")
+    private String createDept;
 
-    @ExcelProperty(value = "创建人")
+    @Excel(name = "创建人")
     @ApiModelProperty("创建人")
     private String createBy;
 
-    @ExcelProperty(value = "创建时间")
+    @Excel(name = "创建时间")
     @ApiModelProperty("创建时间")
     private Date createTime;
 
-    @ExcelProperty(value = "更新时间")
+    @Excel(name = "更新时间")
     @ApiModelProperty("更新时间")
     private Date updateTime;
 

+ 24 - 30
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceDetailVo.java

@@ -1,14 +1,9 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
-
 
 
 /**
@@ -19,58 +14,57 @@ import java.util.Date;
  */
 @Data
 @ApiModel("应急资源明细视图对象")
-@ExcelIgnoreUnannotated
 public class ResourceDetailVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  $pkColumn.columnComment
+    /**
+     * $pkColumn.columnComment
      */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private String id;
+    @ApiModelProperty("$pkColumn.columnComment")
+    private String id;
 
     /**
      * 资源id
      */
-	@ExcelProperty(value = "资源id")
-	@ApiModelProperty("资源id")
-	private String resourceId;
+    @Excel(name = "资源id")
+    @ApiModelProperty("资源id")
+    private String resourceId;
 
     /**
      * 名称
      */
-	@ExcelProperty(value = "名称")
-	@ApiModelProperty("名称")
-	private String name;
+    @Excel(name = "名称")
+    @ApiModelProperty("名称")
+    private String name;
 
     /**
      * 型号
      */
-	@ExcelProperty(value = "型号")
-	@ApiModelProperty("型号")
-	private String model;
+    @Excel(name = "型号")
+    @ApiModelProperty("型号")
+    private String model;
 
     /**
      * 规格
      */
-	@ExcelProperty(value = "规格")
-	@ApiModelProperty("规格")
-	private String size;
+    @Excel(name = "规格")
+    @ApiModelProperty("规格")
+    private String size;
 
     /**
      * 数量
      */
-	@ExcelProperty(value = "数量")
-	@ApiModelProperty("数量")
-	private Integer num;
+    @Excel(name = "数量")
+    @ApiModelProperty("数量")
+    private Integer num;
 
     /**
      * 单位
      */
-	@ExcelProperty(value = "单位")
-	@ApiModelProperty("单位")
-	private String unit;
+    @Excel(name = "单位")
+    @ApiModelProperty("单位")
+    private String unit;
 
 
 }

+ 37 - 40
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/ResourceVo.java

@@ -1,14 +1,12 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.zhdd.domain.ResourceDetail;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
+
 import java.util.List;
 
 
@@ -20,23 +18,22 @@ import java.util.List;
  */
 @Data
 @ApiModel("应急资源视图对象")
-@ExcelIgnoreUnannotated
 public class ResourceVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	/**
-     *  $pkColumn.columnComment
+    /**
+     * $pkColumn.columnComment
      */
-	@ApiModelProperty("$pkColumn.columnComment")
-	private String id;
+    @ApiModelProperty("$pkColumn.columnComment")
+    private String id;
 
     /**
      * 资源类型。1-仓库。2-队伍.3-车辆
      */
-	@ExcelProperty(value = "资源类型。1-仓库。2-队伍.3-车辆")
-	@ApiModelProperty("资源类型。1-仓库。2-队伍.3-车辆")
-	private Integer resourceType;
+    @Excel(name = "资源类型。1-仓库。2-队伍.3-车辆")
+    @ApiModelProperty("资源类型。1-仓库。2-队伍.3-车辆")
+    private Integer resourceType;
 
     @ApiModelProperty("位置类型")
     private String locationType;
@@ -44,68 +41,68 @@ public class ResourceVo {
     /**
      * 名称
      */
-	@ExcelProperty(value = "名称")
-	@ApiModelProperty("名称")
-	private String name;
+    @Excel(name = "名称")
+    @ApiModelProperty("名称")
+    private String name;
 
     /**
      * 地址
      */
-	@ExcelProperty(value = "地址")
-	@ApiModelProperty("地址")
-	private String address;
+    @Excel(name = "地址")
+    @ApiModelProperty("地址")
+    private String address;
 
     /**
      * 经度
      */
-	@ExcelProperty(value = "经度")
-	@ApiModelProperty("经度")
-	private String longitude;
+    @Excel(name = "经度")
+    @ApiModelProperty("经度")
+    private String longitude;
 
     /**
      * 纬度
      */
-	@ExcelProperty(value = "纬度")
-	@ApiModelProperty("纬度")
-	private String latitude;
+    @Excel(name = "纬度")
+    @ApiModelProperty("纬度")
+    private String latitude;
 
     /**
      * 管理单位
      */
-	@ExcelProperty(value = "管理单位")
-	@ApiModelProperty("管理单位")
-	private String manageUnit;
+    @Excel(name = "管理单位")
+    @ApiModelProperty("管理单位")
+    private String manageUnit;
 
     private String carType;
 
     /**
      * 人数
      */
-	@ExcelProperty(value = "人数")
-	@ApiModelProperty("人数")
-	private Integer num;
+    @Excel(name = "人数")
+    @ApiModelProperty("人数")
+    private Integer num;
 
     /**
      * 携带物资(应急时)
      */
-	@ExcelProperty(value = "携带物资", converter = ExcelDictConvert.class)
+    @Excel(name = "携带物资")
     @ExcelDictFormat(readConverterExp = "应=急时")
-	@ApiModelProperty("携带物资(应急时)")
-	private String carryGoods;
+    @ApiModelProperty("携带物资(应急时)")
+    private String carryGoods;
 
     /**
      * 联系人
      */
-	@ExcelProperty(value = "联系人")
-	@ApiModelProperty("联系人")
-	private String contactName;
+    @Excel(name = "联系人")
+    @ApiModelProperty("联系人")
+    private String contactName;
 
     /**
      * 联系电话
      */
-	@ExcelProperty(value = "联系电话")
-	@ApiModelProperty("联系电话")
-	private String contactPhone;
+    @Excel(name = "联系电话")
+    @ApiModelProperty("联系电话")
+    private String contactPhone;
 
     private List<ResourceDetail> resourceDetailList;
 

+ 45 - 49
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/SingleDeviceVo.java

@@ -1,15 +1,12 @@
 package com.ruoyi.zhdd.domain.vo;
 
-import java.math.BigDecimal;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.ruoyi.common.annotation.ExcelDictFormat;
-import com.ruoyi.common.convert.ExcelDictConvert;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
 
+import java.math.BigDecimal;
 
 
 /**
@@ -20,110 +17,109 @@ import java.util.Date;
  */
 @Data
 @ApiModel("单兵数据信息视图对象")
-@ExcelIgnoreUnannotated
 public class SingleDeviceVo {
 
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
     /**
      * 用户id
      */
-	@ExcelProperty(value = "用户id")
-	@ApiModelProperty("用户id")
-	private String userId;
+    @Excel(name = "用户id")
+    @ApiModelProperty("用户id")
+    private String userId;
 
     /**
      * 用户名
      */
-	@ExcelProperty(value = "用户名")
-	@ApiModelProperty("用户名")
-	private String userName;
+    @Excel(name = "用户名")
+    @ApiModelProperty("用户名")
+    private String userName;
 
     /**
      * 用户类型
      */
-	@ExcelProperty(value = "用户类型")
-	@ApiModelProperty("用户类型")
-	private String userType;
+    @Excel(name = "用户类型")
+    @ApiModelProperty("用户类型")
+    private String userType;
 
     /**
      * 设备id
      */
-	@ExcelProperty(value = "设备id")
-	@ApiModelProperty("设备id")
-	private String deviceCode;
+    @Excel(name = "设备id")
+    @ApiModelProperty("设备id")
+    private String deviceCode;
 
     /**
      * 经度
      */
-	@ExcelProperty(value = "经度")
-	@ApiModelProperty("经度")
-	private BigDecimal gpsX;
+    @Excel(name = "经度")
+    @ApiModelProperty("经度")
+    private BigDecimal gpsX;
 
     /**
      * 纬度
      */
-	@ExcelProperty(value = "纬度")
-	@ApiModelProperty("纬度")
-	private BigDecimal gpsY;
+    @Excel(name = "纬度")
+    @ApiModelProperty("纬度")
+    private BigDecimal gpsY;
 
     /**
      * 高度信息。单位米
      */
-	@ExcelProperty(value = "高度信息。单位米")
-	@ApiModelProperty("高度信息。单位米")
-	private BigDecimal height;
+    @Excel(name = "高度信息。单位米")
+    @ApiModelProperty("高度信息。单位米")
+    private BigDecimal height;
 
     /**
      * 方向角(正北方为原点,顺时针为正)
      */
-	@ExcelProperty(value = "方向角(正北方为原点,顺时针为正)")
-	@ApiModelProperty("方向角(正北方为原点,顺时针为正)")
-	private BigDecimal angle;
+    @Excel(name = "方向角(正北方为原点,顺时针为正)")
+    @ApiModelProperty("方向角(正北方为原点,顺时针为正)")
+    private BigDecimal angle;
 
     /**
      * 时速。单位(公里/小时)
      */
-	@ExcelProperty(value = "时速。单位", converter = ExcelDictConvert.class)
+    @Excel(name = "时速。单位")
     @ExcelDictFormat(readConverterExp = "公=里/小时")
-	@ApiModelProperty("时速。单位(公里/小时)")
-	private BigDecimal speed;
+    @ApiModelProperty("时速。单位(公里/小时)")
+    private BigDecimal speed;
 
     /**
      * 定位星数
      */
-	@ExcelProperty(value = "定位星数")
-	@ApiModelProperty("定位星数")
-	private Integer startCount;
+    @Excel(name = "定位星数")
+    @ApiModelProperty("定位星数")
+    private Integer startCount;
 
     /**
      * 数据来源(1:app。2:车载。3:单兵。4:PDT 350M。5:无人机)
      */
-	@ExcelProperty(value = "数据来源", converter = ExcelDictConvert.class)
+    @Excel(name = "数据来源")
     @ExcelDictFormat(readConverterExp = "1=:app。2:车载。3:单兵。4:PDT,3=50M。5:无人机")
-	@ApiModelProperty("数据来源(1:app。2:车载。3:单兵。4:PDT 350M。5:无人机)")
-	private Integer dataSource;
+    @ApiModelProperty("数据来源(1:app。2:车载。3:单兵。4:PDT 350M。5:无人机)")
+    private Integer dataSource;
 
     /**
      * gps上报时间 20060102T150405Z
      */
-	@ExcelProperty(value = "gps上报时间 20060102T150405Z")
-	@ApiModelProperty("gps上报时间 20060102T150405Z")
-	private String time;
+    @Excel(name = "gps上报时间 20060102T150405Z")
+    @ApiModelProperty("gps上报时间 20060102T150405Z")
+    private String time;
 
     /**
      * 扩展信息。gps上报带的扩展信息。1:app带扩展字段。5:无人机带扩展字段
      */
-	@ExcelProperty(value = "扩展信息。gps上报带的扩展信息。1:app带扩展字段。5:无人机带扩展字段")
-	@ApiModelProperty("扩展信息。gps上报带的扩展信息。1:app带扩展字段。5:无人机带扩展字段")
-	private String extendInfo;
+    @Excel(name = "扩展信息。gps上报带的扩展信息。1:app带扩展字段。5:无人机带扩展字段")
+    @ApiModelProperty("扩展信息。gps上报带的扩展信息。1:app带扩展字段。5:无人机带扩展字段")
+    private String extendInfo;
 
     /**
      * 设备的扩展信息
      */
-	@ExcelProperty(value = "设备的扩展信息")
-	@ApiModelProperty("设备的扩展信息")
-	private String deviceExtendInfo;
+    @Excel(name = "设备的扩展信息")
+    @ApiModelProperty("设备的扩展信息")
+    private String deviceExtendInfo;
 
     private String channelId;