From 575e94e9db7e507ecec2441d24a13e9415fd9f03 Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期三, 19 五月 2021 19:56:05 +0800
Subject: [PATCH] Merge branch 'cedoodev' into test

---
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java |   62 ++++++++++++++------
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java      |   17 +++++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java     |   47 +++++++++++++--
 3 files changed, 101 insertions(+), 25 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java
index ce0d976..71d8e95 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java
@@ -89,5 +89,22 @@
     @ApiModelProperty(value = "出生日期", hidden = false, example = "2021-05-01 18:05:50")
     private Date birthDay;
 
+    @ApiModelProperty(value = "导出的ID", hidden = false, example = "")
+	private Long[] ids;
+
+    @ApiModelProperty(value = "查询类型 1 按月 2 按时间", hidden = false, example = "")
+    private String type;
+
+
+    @ApiModelProperty(value = "月份(1-12)", hidden = false, example = "")
+    private Integer month;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建起始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtStart;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建结束时间", hidden = false, example = "2021-05-02 18:05:50")
+    private Date createAtEnd;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
index 856c157..970bf56 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
@@ -4,19 +4,18 @@
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSONArray;
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.dtos.community.*;
-import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
-import com.panzhihua.common.model.vos.IPageVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
 import com.panzhihua.common.model.vos.community.EldersAuthVO;
 import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.utlis.ClazzUtils;
 import com.panzhihua.common.utlis.SFTPUtil;
-import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -28,9 +27,13 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
 
 /**
  *
@@ -58,6 +61,8 @@
     private int port;
     @Value("${ftp.url}")
     private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
 
     @Resource
     private CommunityService communityService;
@@ -106,35 +111,56 @@
     @PostMapping("export")
     @ApiOperation(value = "导出高龄认证信息")
     R<String> export(@Validated @ModelAttribute PageEldersAuthDTO pageEldersAuthDTO){
-        String name = "gaolinbutie-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
         String ftpUrl = "/mnt/data/web/excel/";
-//        用户搜索了就下载搜索的用户否则下载所有用户
+
+        ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO);
+        String url=excelUrl;
+        String uuid= UUID.randomUUID().toString().replace("-","");
+        //String name=uuid+".xlsx";
+
         R r = communityService.eldersAuthQuery(pageEldersAuthDTO);
         if (R.isOk(r)) {
-            List<ExcelElderAuthDTO> excelElderAuthDTOList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelElderAuthDTO.class);
+            List<ExcelElderAuthDTO> excelElderAuthDTO = JSONArray.parseArray(JSONArray.toJSONString(r.getData()),ExcelElderAuthDTO.class);
+            if(excelElderAuthDTO==null||excelElderAuthDTO.size()==0){
+                return R.ok("未找到数据");
+            }
+
+            List<ExcelElderAuthDTO> sortedList = excelElderAuthDTO.stream().sorted(Comparator.comparingInt(ExcelElderAuthDTO::getSeq)).collect(Collectors.toList());
             try {
-                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                SFTPUtil sftp = new SFTPUtil(userName,password,host,port);
                 sftp.login();
-                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                String name =  "高龄认证-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                boolean existDir = sftp.isExistDir(ftpUrl+name);
                 if (!existDir) {
                     String property = System.getProperty("user.dir");
-                    String fileName = property + File.separator + name;
+                    String fileName = property + File.separator+name;
                     // 这里 需要指定写用哪个class去写
                     ExcelWriter excelWriter = null;
-                    InputStream inputStream = null;
+                    InputStream inputStream=null;
                     try {
-                        excelWriter = EasyExcel.write(fileName, EexcelUserDTO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(new CustomSheetWriteHandler()).build();
-                        WriteSheet writeSheet = EasyExcel.writerSheet("高龄补贴").build();
-                        excelWriter.write(excelElderAuthDTOList, writeSheet);
+
+                        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+
+                        contentWriteCellStyle.setWrapped(true);
+                        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+
+                        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                                new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+
+                        excelWriter = EasyExcel.write(fileName, ExcelElderAuthDTO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(horizontalCellStyleStrategy).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证").build();
+                        excelWriter.write(sortedList, writeSheet);
                         excelWriter.finish();
-                        File file = new File(fileName);
-                        inputStream = new FileInputStream(file);
+                        File file=new File(fileName);
+                        inputStream=new FileInputStream(file);
                         sftp.uploadMore(ftpUrl, name, inputStream);
                         sftp.logout();
                         inputStream.close();
                         String absolutePath = file.getAbsolutePath();
                         boolean delete = file.delete();
-                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                        log.info("删除excel【{}】结果【{}】",absolutePath,delete);
                     } finally {
                         // 千万别忘记finish 会帮忙关闭流
                         if (inputStream != null) {
@@ -145,14 +171,14 @@
                         }
                     }
                 }
-                return R.ok(url + name);
+                return R.ok(url+ URLEncoder.encode(name,"UTF-8"));
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error("文件传输失败【{}】", e.getMessage());
                 return R.fail();
             }
         }
-        return R.fail("未查询到高龄认证用户");
+        return R.fail("导出数据失败");
     }
     /**
      * 新增高龄认证
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
index eee310c..cf1f080 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -49,6 +49,17 @@
             "<if test='pageEldersAuthDTO.authUserName != null'>" +
             " AND ea.AUTH_USER_NAME = #{pageEldersAuthDTO.authUserName} " +
             " </if> " +
+            "<if test='pageEldersAuthDTO.type == 1 '>" +
+            "  AND ea.AUTH_USER_NAME = #{pageEldersAuthDTO.month} " +
+            " </if> " +
+            "<if test='pageEldersAuthDTO.type == 2 '>" +
+                "<if test='pageEldersAuthDTO.createAtStart != null'>" +
+                " AND ea.create_at <![CDATA[>=]]> #{pageComShopOrderSearchDTO.createAtStart} " +
+                " </if> " +
+                "<if test='pageEldersAuthDTO.createAtEnd != null'>" +
+                " AND ea.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " +
+                " </if> " +
+            " </if> " +
             " </where>" +
             " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " +
             "</script>")
@@ -91,14 +102,36 @@
             " LEFT JOIN sys_user u ON ea.SUMIT_USER_ID = u.user_id\n" +
             " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" +
             " <where> " +
-            "<if test='pageEldersAuthDTO.sumitUserId != null'>" +
-            " AND ea.SUMIT_USER_ID = #{pageEldersAuthDTO.sumitUserId} " +
+
+
+            "<if test='pageEldersAuthDTO.ids != null and pageEldersAuthDTO.ids.length>0 '>" +
+            " AND ea.id in " +
+            "<foreach collection='pageEldersAuthDTO.ids' item='id' index='index' open='(' close=')' separator=',' >\n" +
+            "  #{id}" +
+            "</foreach>" +
             " </if> " +
-            "<if test='pageEldersAuthDTO.idCard != null'>" +
-            " AND ea.ID_CARD = #{pageEldersAuthDTO.idCard} " +
-            " </if> " +
-            "<if test='pageEldersAuthDTO.authUserName != null'>" +
-            " AND ea.AUTH_USER_NAME = #{pageEldersAuthDTO.authUserName} " +
+
+            "<if test='pageEldersAuthDTO.ids == null or pageEldersAuthDTO.ids.length==0 '>" +
+                "<if test='pageEldersAuthDTO.sumitUserId != null'>" +
+                " AND ea.SUMIT_USER_ID = #{pageEldersAuthDTO.sumitUserId} " +
+                " </if> " +
+                "<if test='pageEldersAuthDTO.idCard != null'>" +
+                " AND ea.ID_CARD = #{pageEldersAuthDTO.idCard} " +
+                " </if> " +
+                "<if test='pageEldersAuthDTO.authUserName != null'>" +
+                " AND ea.AUTH_USER_NAME = #{pageEldersAuthDTO.authUserName} " +
+                " </if> " +
+                "<if test='pageEldersAuthDTO.type == 1 '>" +
+                "  AND ea.AUTH_USER_NAME = #{pageEldersAuthDTO.month} " +
+                " </if> " +
+                "<if test='pageEldersAuthDTO.type == 2 '>" +
+                    "<if test='pageEldersAuthDTO.createAtStart != null'>" +
+                    " AND ea.create_at <![CDATA[>=]]> #{pageComShopOrderSearchDTO.createAtStart} " +
+                    " </if> " +
+                    "<if test='pageEldersAuthDTO.createAtEnd != null'>" +
+                    " AND ea.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " +
+                    " </if> " +
+                " </if> " +
             " </if> " +
             " </where>" +
             " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " +

--
Gitblit v1.7.1