From d9e3e69df97362fdd242bb65f09d2ee474885b48 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期日, 26 九月 2021 17:22:02 +0800
Subject: [PATCH] bug修复

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java |  107 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 67 insertions(+), 40 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..e291b33 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,10 +10,14 @@
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.ComActActSignDAO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -83,6 +87,8 @@
     private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
     @Resource
     private SysConfMapper sysConfDao;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
     @Value("${domain.aesKey:}")
     private String aesKey;
 
@@ -125,6 +131,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 +141,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 +188,7 @@
         // 需要修改的认证记录集合
         List<ComPensionAuthRecordDO> updateList = new ArrayList<>();
         log.info("开始处理导入数据");
+        Date nowDate = new Date();
         List<ComPensionAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
         try {
             // 查询所有人口数据放入HashMap中
@@ -173,7 +200,6 @@
             });
 
             for (ComPensionAuthRecordImportExcelVO vo : list) {
-                String cardNoAES = AESUtil.encrypt128(vo.getIdCard(), aesKey);
                 // 判断实有人口是否已存在
                 log.info("开始查询实有人口是否已存在");
                 ComMngPopulationDO populationDO = null;
@@ -187,54 +213,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 +262,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("开始查询实有人口是否已存在完成");
@@ -360,17 +379,22 @@
         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());
@@ -381,12 +405,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 +446,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 +482,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