From a6c12e55d60ba3e023e15e6e7f6ac1791f424a1c Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期一, 06 九月 2021 09:28:34 +0800
Subject: [PATCH] 高龄老人认证

---
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java |  237 +++++++++++++++++++++++++++++++++++++--
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java     |   71 +++++++++++
 2 files changed, 291 insertions(+), 17 deletions(-)

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 fef9d54..00fb00c 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
@@ -2,18 +2,30 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 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.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.listen.ComElderAuthRecordImportExcelListen;
+import com.panzhihua.common.listen.ComMngPopulationDrugExcelListen;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -25,20 +37,12 @@
 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.EldersAuthAddDTO;
-import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO;
-import com.panzhihua.common.model.dtos.community.ExcelElderAuthDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
 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 io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  *
@@ -71,6 +75,9 @@
 
     @Resource
     private CommunityService communityService;
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
 
     @Value("${excel.elderimporturl}")
     private Object elderimporturl;
@@ -227,4 +234,208 @@
         return R.ok(elderimporturl);
     }
 
+
+    //2021-8-30 身份认证改版(高龄老人认证管理)接口
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-分页查询高龄老人认证记录", response = ComElderAuthRecordVO.class)
+    @PostMapping("/authRecords/page")
+    public R pageElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthRecordsDTO.setCommunityId(communityId);
+        return communityService.pageElderAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-根据高龄认证记录id查询详情", response = ComElderAuthRecordVO.class)
+    @GetMapping("/authRecords/detail")
+    public R detailElderAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return communityService.detailElderAuthRecords(authRecordId);
+    }
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证审核")
+    @PostMapping("/authRecords/examine")
+    public R examineElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return communityService.examineElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证标记")
+    @PostMapping("/authRecords/sign")
+    public R signElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return communityService.signElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证导出 exportElderAuthRecords  高龄认证导出
+     * @param    ids   高龄认证记录id集合
+     * @return    R  导出结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证导出")
+    @PostMapping("/authRecords/export")
+    public R exportElderAuthRecords(@RequestBody List<Long> ids) {
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "高龄认证导出数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    R r = communityService.getElderAuthRecordsByIds(ids);
+                    List<ComElderAuthRecordExcleVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordExcleVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证导出数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    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);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "高龄认证-下载模板-线下认证居民导入")
+    @GetMapping("/authRecords/uderLine/export")
+    public R exportUnderLineElderAuthRecords() {
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "线下认证居民导入模板.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<List<String>> list = new ArrayList<>();
+                    list = headDataFilling();
+                    EasyExcel.write(fileName).head(list).sheet("线下认证居民导入模板").doWrite(null);
+                    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);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "高龄认证-excel导入线下认证居民")
+    @PostMapping(value = "/authRecords/uderLine/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComElderAuthRecordImportExcelListen comElderAuthRecordImportExcelListen = new ComElderAuthRecordImportExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comElderAuthRecordImportExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    private List<List<String>> headDataFilling() {
+        List<List<String>> list = new ArrayList<List<String>>();
+        List<String> head0 = new ArrayList<String>();
+        head0.add("认证姓名");
+        List<String> head1 = new ArrayList<String>();
+        head1.add("认证身份证号码");
+        List<String> head2 = new ArrayList<String>();
+        head2.add("联系电话");
+        List<String> head3 = new ArrayList<String>();
+        head3.add("现居住地址");
+        List<String> head4 = new ArrayList<String>();
+        head4.add("认证时间");
+        List<String> head5 = new ArrayList<String>();
+        head5.add("健在(是/否)");
+
+        list.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        return list;
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
index d81b515..4344379 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -5,17 +5,17 @@
 import javax.annotation.Resource;
 
 import cn.hutool.core.util.IdcardUtil;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
 import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
+import com.panzhihua.service_community.service.ComElderAuthRecordsService;
 import com.panzhihua.service_community.service.ComEldersAuthElderlyService;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.panzhihua.common.exceptions.ServiceException;
-import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
-import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthHistoryDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
@@ -48,6 +48,8 @@
     private EldersAuthService eldersAuthService;
     @Resource
     private ComEldersAuthElderlyService comEldersAuthElderlyService;
+    @Resource
+    private ComElderAuthRecordsService comElderAuthRecordsService;
 
     @PostMapping("/getAuth")
     public R getAuth(@RequestParam("authUserId") Long authUserId) {
@@ -205,4 +207,65 @@
         return eldersAuthService.timedTaskEldersRecordAuthJobHandler();
     }
 
+    //2021-8-30 身份认证改版(高龄老人认证管理)接口
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/page")
+    public R pageElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        return comElderAuthRecordsService.pageElderAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @GetMapping("/authRecords/detail")
+    public R detailElderAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return comElderAuthRecordsService.detailElderAuthRecords(authRecordId);
+    }
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/examine")
+    public R examineElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return comElderAuthRecordsService.examineElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/sign")
+    public R signElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return comElderAuthRecordsService.signElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 根据高龄认证记录id批量查询 getElderAuthRecordsByIds  根据高龄认证记录id批量查询
+     * @param    ids   高龄认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/getList")
+    public R getElderAuthRecordsByIds(@RequestBody List<Long> ids){
+        return comElderAuthRecordsService.getElderAuthRecordsByIds(ids);
+    }
+
 }

--
Gitblit v1.7.1