From 6424521a768125e66b64a23d2094e05eb95b105f Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期五, 08 十月 2021 11:30:14 +0800 Subject: [PATCH] bug修复 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java | 133 +++++++++++++++++++++++++++---------------- 1 files changed, 83 insertions(+), 50 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java index 1096bd6..23df4fa 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java @@ -10,6 +10,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.annotation.Resource; @@ -25,7 +26,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.panzhihua.common.enums.PopulHouseUseEnum; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO; @@ -41,8 +41,10 @@ import com.panzhihua.common.model.vos.community.SysConfVO; import com.panzhihua.common.utlis.AgeUtils; import com.panzhihua.common.utlis.DateUtils; -import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.common.utlis.WxUtil; +import com.panzhihua.common.utlis.WxXCXTempSend; +import com.panzhihua.service_community.dao.ComActActSignDAO; import com.panzhihua.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.ComMngPopulationDAO; import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO; @@ -57,6 +59,7 @@ import com.panzhihua.service_community.model.dos.SysConfDO; import com.panzhihua.service_community.service.ComPensionAuthRecordService; +import cn.hutool.core.util.IdcardUtil; import lombok.extern.slf4j.Slf4j; /** @@ -83,6 +86,8 @@ private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO; @Resource private SysConfMapper sysConfDao; + @Resource + private ComActActSignDAO comActActSignDAO; @Value("${domain.aesKey:}") private String aesKey; @@ -99,6 +104,13 @@ } page.setSize(pageSize); page.setCurrent(pageNum); + try { + //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录 + String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey); + pageElderAuthRecordsDTO.setIdCard(idCard); + }catch (Exception e){ + log.error("查询高龄认证记录转换身份证号失败"); + } IPage<ComPensionAuthRecordVO> iPage = comPensionAuthRecordDAO.pagePensionAuthRecords(page, pageElderAuthRecordsDTO); if (!iPage.getRecords().isEmpty()) { iPage.getRecords().forEach(comPensionAuthRecordVO -> { @@ -113,6 +125,12 @@ @Override public R detailPensionAuthRecords(Long authRecordId) { ComPensionAuthRecordVO comPensionAuthRecordVO = comPensionAuthRecordDAO.detailPensionAuthRecords(authRecordId); + comPensionAuthRecordVO.setNextIds(comPensionAuthRecordDAO.getNextIds(comPensionAuthRecordVO.getCommunityId(),authRecordId)); + try { + comPensionAuthRecordVO.setAge(IdcardUtil.getAgeByIdCard(comPensionAuthRecordVO.getIdCard())); + }catch (Exception e){ + log.error("身份证转换失败"); + } return R.ok(comPensionAuthRecordVO); } @@ -125,6 +143,9 @@ BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO); if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) { comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!"); + } else { + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", comPensionAuthRecordVO.getRejectReason()); } comPensionAuthRecordDO.setApprovalDate(new Date()); int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO); @@ -132,6 +153,23 @@ return R.fail("审核失败"); } return R.ok(); + } + + private void sendAuthSubscribe(Long userId, String name, String result) { + //发送订阅通知 + Map<String, String> map = comActActSignDAO.getUserOpenId(userId); + if (map != null) { + String openid = map.get("openid"); + try { + WxXCXTempSend util = new WxXCXTempSend(); + String accessToken = util.getAppAccessToken(); + WxUtil.sendSubscribeRZSH(openid, accessToken, name, + DateUtils.format(new Date(), DateUtils.ymdhms_format), + result); + } catch (Exception e) { + log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage()); + } + } } @Override @@ -162,6 +200,7 @@ // 需要修改的认证记录集合 List<ComPensionAuthRecordDO> updateList = new ArrayList<>(); log.info("开始处理导入数据"); + Date nowDate = new Date(); List<ComPensionAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>(); try { // 查询所有人口数据放入HashMap中 @@ -173,7 +212,6 @@ }); for (ComPensionAuthRecordImportExcelVO vo : list) { - String cardNoAES = AESUtil.encrypt128(vo.getIdCard(), aesKey); // 判断实有人口是否已存在 log.info("开始查询实有人口是否已存在"); ComMngPopulationDO populationDO = null; @@ -187,54 +225,47 @@ if (null == comPensionAuthPensionerDO) { ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO(); BeanUtils.copyProperties(vo, mistake); - setMistake(mistake, vo); mistake.setMistake("该实有人口已存在,但本社区不存在养老信息,请先导入养老人口"); + mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format)); mistakes.add(mistake); }else { //存在养老信息,判断是否满足认证条件 if (!comPensionAuthPensionerDO.getIsRegister().equals(1) || !comPensionAuthPensionerDO.getIsAlive().equals(1)) { ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO(); BeanUtils.copyProperties(vo, mistake); - setMistake(mistake, vo); mistake.setMistake("该人口不健在,或者未做养老登记"); + mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format)); mistakes.add(mistake); }else { //满足认证条件,判断是否存在当期认证记录 + List<ComPensionAuthRecordDO> pensionAuthList = null; ComPensionAuthRecordDO comPensionAuthRecordDO = null; - Date nowDate = new Date(); - // 获取当前年 - int year = DateUtils.getYear(nowDate); - String authPeriod = ""; - if (nowDate.before(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(String.valueOf(year) + "-03-01 00:00:00"))) { - authPeriod = String.valueOf(year - 1); - }else { - authPeriod = String.valueOf(year); - } + String authPeriod = vo.getAuthPeriod(); + pensionAuthList = comPensionAuthRecordDAO.selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda(). + eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId()) + .eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod).orderByDesc(ComPensionAuthRecordDO::getCreateAt)); - comPensionAuthRecordDO = comPensionAuthRecordDAO.selectOne(new QueryWrapper<ComPensionAuthRecordDO>().lambda(). - eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId()).eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod)); - if (null != comPensionAuthRecordDO) { + if (null != pensionAuthList && pensionAuthList.size() > 0) { + comPensionAuthRecordDO = pensionAuthList.get(0); //存在记录且状态为已认证,不能修改 - if (comPensionAuthRecordDO.getAuthStatus().equals(CERTIFIED.getStatus())) { + if (comPensionAuthRecordDO.getApprovalStatus().equals(ComPensionAuthRecordDO.approvalStatus.tg)) { ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO(); BeanUtils.copyProperties(vo, mistake); - setMistake(mistake, vo); - mistake.setMistake("该人口本期已认证,不能修改"); + mistake.setMistake("该人口本期已认证,不可重复认证"); + mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format)); mistakes.add(mistake); + }else if (comPensionAuthRecordDO.getApprovalStatus().equals(ComPensionAuthRecordDO.approvalStatus.dsh)) { + //存在待审核记录,进行更新认证信息 + comPensionAuthRecordDO = updatePensionAuthRecordsDO(vo, comPensionAuthRecordDO, userId,communityId,nowDate); + updateList.add(comPensionAuthRecordDO); }else { - //存在记录,执行修改 - ComPensionAuthRecordDO comPensionAuthRecordDO1 = - updatePensionAuthRecordsDO(vo, comPensionAuthRecordDO, userId); - updateList.add(comPensionAuthRecordDO1); - ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO(); - BeanUtils.copyProperties(vo, mistake); - setMistake(mistake, vo); - mistake.setMistake("该认证已存在,执行更新"); - mistakes.add(mistake); + // 不存在记录,则新增 + comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate); + saveList.add(comPensionAuthRecordDO); } }else { // 不存在记录,则新增 - comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId); + comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate); saveList.add(comPensionAuthRecordDO); } } @@ -243,8 +274,8 @@ // 不存在实有人口,则新增 ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO(); BeanUtils.copyProperties(vo, mistake); - setMistake(mistake, vo); mistake.setMistake("不存在该实有人口,请先导入实有人口信息"); + mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format)); mistakes.add(mistake); } log.info("开始查询实有人口是否已存在完成"); @@ -349,31 +380,30 @@ comPensionAuthStatisticsDO.setSum(comPensionAuthPensionerDOS.size()); } comPensionAuthStatisticsDAO.insert(comPensionAuthStatisticsDO); - //上期已认证人数 - int authSum = comPensionAuthPensionerDAO.havePensionAuthPensionerAmount(act.getCommunityId(), String.valueOf(year - 1)); - ComPensionAuthStatisticsDO comPensionAuthStatisticsDO1 = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>() - .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComPensionAuthStatisticsDO::getYear, year - 1)); - comPensionAuthStatisticsDO1.setAuthSum(authSum); - comPensionAuthStatisticsDO1.setNoAuthSum(comPensionAuthStatisticsDO1.getSum() - comPensionAuthStatisticsDO1.getAuthSum()); - comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO1); }); + + return R.ok(); } - private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo, ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId) { + private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo + , ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId , Long communityId,Date date) { BeanUtils.copyProperties(vo, comPensionAuthRecordsDO); comPensionAuthRecordsDO.setSubmitUserId(userId); comPensionAuthRecordsDO.setApproverId(userId); - comPensionAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus()); - comPensionAuthRecordsDO.setApprovalDate(new Date()); - comPensionAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus()); + comPensionAuthRecordsDO.setApprovalStatus(ComPensionAuthRecordDO.approvalStatus.tg); + comPensionAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz); + comPensionAuthRecordsDO.setApprovalDate(date); + comPensionAuthRecordsDO.setAuthStatus(ComPensionAuthRecordDO.authStatus.rez); + comPensionAuthRecordsDO.setCommunityId(communityId); + comPensionAuthRecordsDO.setMark(vo.getMark()); return comPensionAuthRecordsDO; } - private ComPensionAuthRecordDO savePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo, ComPensionAuthPensionerDO comPensionAuthPensionerDO, String authPeriod, Long userId) { + private ComPensionAuthRecordDO savePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo + , ComPensionAuthPensionerDO comPensionAuthPensionerDO, String authPeriod, Long userId, Long communityId,Date date) { ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); BeanUtils.copyProperties(vo, comPensionAuthRecordDO); - comPensionAuthRecordDO.setId(Snowflake.getId()); comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); comPensionAuthRecordDO.setAuthPeriod(authPeriod); comPensionAuthRecordDO.setSubmitUserId(userId); @@ -381,12 +411,11 @@ comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus()); comPensionAuthRecordDO.setApprovalDate(new Date()); comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); + comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz); + comPensionAuthRecordDO.setCommunityId(communityId); + comPensionAuthRecordDO.setCreateAt(date); + comPensionAuthRecordDO.setMark(vo.getMark()); return comPensionAuthRecordDO; - } - - private void setMistake(ComPensionAuthRecordImportMistakeExcelVO mvo, - ComPensionAuthRecordImportExcelVO vo) { - mvo.setIsAlive(PopulHouseUseEnum.getCnDescByName(vo.getIsAlive())); } /** @@ -423,7 +452,8 @@ return R.fail("该人员未在社区报道无法认证"); } boolean isInfoCorrect = !comPensionAuthPensionerDO.getName().equals(addIdentityAuthDTO.getName()) || - !(comPensionAuthPensionerDO.getIsRegister() && comPensionAuthPensionerDO.getIsAlive()); + !(comPensionAuthPensionerDO.getIsRegister().equals(ComPensionAuthPensionerDO.isOk.yes) + && comPensionAuthPensionerDO.getIsAlive().equals(ComPensionAuthPensionerDO.isOk.yes)); if (isInfoCorrect) { return R.fail("信息有误,请检查!"); } @@ -458,6 +488,9 @@ if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { return R.fail("认证失败,请重新尝试"); } + if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) { + sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!"); + } return R.ok(); } -- Gitblit v1.7.1