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