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