CeDo
2021-05-19 b988886bafb2ef52d6be68cafc3f5f96604b600e
update
3个文件已修改
104 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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("导出数据失败");
    }
    /**
     * 新增高龄认证
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -91,14 +91,25 @@
            " 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> " +
            " </where>" +
            " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " +