diff --git a/epdc-commons-tools/pom.xml b/epdc-commons-tools/pom.xml
index a41cf53..2919e38 100644
--- a/epdc-commons-tools/pom.xml
+++ b/epdc-commons-tools/pom.xml
@@ -17,7 +17,7 @@
3.7
1.3.3
4.1.8
- 3.1.0
+ 4.3.0
2.9.9
1.2.59
1.11.3
diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/dto/ExcelSelectionDto.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/dto/ExcelSelectionDto.java
new file mode 100644
index 0000000..58e1002
--- /dev/null
+++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/dto/ExcelSelectionDto.java
@@ -0,0 +1,28 @@
+package com.elink.esua.epdc.commons.tools.dto;
+
+import lombok.Data;
+
+/**
+ * @author songyunpeng
+ * @Description excel导出模板的下拉列表实体
+ * @create 2020-09-03
+ */
+@Data
+public class ExcelSelectionDto {
+ /**
+ * sheet页索引 0开始
+ */
+ private Integer sheetIndex;
+ /**
+ * 区域中第一个单元格的列号 (下标0开始)
+ */
+ private Integer firstCol;
+ /**
+ * 区域中最后一个单元格的列号
+ */
+ private Integer lastCol;
+ /**
+ * 下拉数据
+ */
+ private String[] excelSelections;
+}
diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserSexEnum.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserSexEnum.java
index 3bcc815..01b7b75 100644
--- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserSexEnum.java
+++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/UserSexEnum.java
@@ -26,6 +26,11 @@ public enum UserSexEnum {
*/
FEMALE("0"),
+ /**
+ * 未知
+ */
+ UNKNOWN_SEX("2"),
+
/**
* 男
*/
diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java
index a20719a..e30225d 100644
--- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java
+++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/redis/RedisKeys.java
@@ -280,4 +280,28 @@ public class RedisKeys {
public static String getWorkUserListKey(String partyFlag, String authenticatedFlag, Long userId,Integer pageIndex,Integer pageSize) {
return rootPrefix.concat("work:user:List:").concat(partyFlag + ":").concat(authenticatedFlag + ":").concat(pageIndex + ":").concat(pageSize + ":").concat(userId.toString());
}
+
+ /**
+ * 疫苗接种权限
+ *
+ * @param userId
+ * @return java.lang.String
+ * @author zhy
+ * @date 2021/6/3 17:19
+ */
+ public static String getVaccinationAuthParamKey(String userId) {
+ return rootPrefix.concat("vaccination:auth:param:").concat(userId);
+ }
+
+ /**
+ * 疫苗接种权限
+ *
+ * @param userId
+ * @return java.lang.String
+ * @author zhy
+ * @date 2021/6/3 17:19
+ */
+ public static String getVaccinationAuthKey(String userId) {
+ return rootPrefix.concat("vaccination:auth:role:").concat(userId);
+ }
}
diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ExcelUtils.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ExcelUtils.java
index fe9b5a8..7a8b175 100644
--- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ExcelUtils.java
+++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ExcelUtils.java
@@ -10,23 +10,33 @@ package com.elink.esua.epdc.commons.tools.utils;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import cn.afterturn.easypoi.excel.export.ExcelBatchExportService;
+import cn.afterturn.easypoi.handler.inter.IExcelExportServer;
+import com.elink.esua.epdc.commons.tools.dto.ExcelSelectionDto;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.DVConstraint;
import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFDataValidation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.CellRangeAddressList;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -67,6 +77,46 @@ public class ExcelUtils {
out.close();
}
+ /**
+ * 导出大量数据(超百万行的数据,建议用CSV导出。)
+ *
+ * @param fileName 文件名
+ * @param queryParams 查询条件
+ * @param server 查询服务
+ * @param response 浏览器请求返回
+ * @param params Excel属性
+ * @param pojoClass Excel对象Class
+ * @return void
+ * @author work@yujt.net.cn
+ * @date 2021/6/17 13:55
+ */
+ public static void exportBigExcel(String fileName, Object queryParams, IExcelExportServer server,
+ HttpServletResponse response, ExportParams params, Class pojoClass) throws IOException {
+ ExcelBatchExportService batchService = new ExcelBatchExportService();
+ batchService.init(params, pojoClass);
+ Workbook workbook = batchService.exportBigExcel(server, queryParams);
+
+ if (StringUtils.isBlank(fileName)) {
+ //当前日期
+ fileName = DateUtils.format(new Date());
+ }
+
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("content-Type", "application/vnd.ms-excel");
+ response.setHeader("Content-Disposition",
+ "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
+
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ workbook.write(byteArrayOutputStream);
+ response.setHeader("Content-Length", String.valueOf(byteArrayOutputStream.size()));
+
+ ServletOutputStream out = response.getOutputStream();
+ out.write(byteArrayOutputStream.toByteArray());
+
+ out.flush();
+ out.close();
+ }
+
/**
* Excel导出,先sourceList转换成List,再导出
*
@@ -87,6 +137,92 @@ public class ExcelUtils {
exportExcel(response, fileName, targetList, targetClass);
}
+ /**
+ * Excel导出,先sourceList转换成List,再导出
+ *
+ * @param response response
+ * @param fileName 文件名
+ * @param sourceList 原数据List
+ * @param sheetNames sheet名字列表
+ */
+ public static void exportExcelToTargetWithSheets(HttpServletResponse response, String fileName, List sheetNames,
+ List> targetClassList, List excelSelectionDtos, Collection>... sourceList) throws Exception {
+ if (sheetNames.size() != targetClassList.size() && targetClassList.size() != sourceList.length) {
+ throw new RenException("参数传递出错");
+ }
+ // 将sheets使用得map进行包装
+ List