From 55b91c9938a8eaa4a96910f6fce633c7bcdaa85f Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 18 九月 2021 16:02:43 +0800
Subject: [PATCH] 1

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java |  128 +++++++++++++++++++++++++++++++++---------
 1 files changed, 100 insertions(+), 28 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 7265164..ddc8b29 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
@@ -1,5 +1,10 @@
 package com.panzhihua.service_community.service.impl;
 
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
+import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
+import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
+
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -9,29 +14,31 @@
 
 import javax.annotation.Resource;
 
-import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
-import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
-import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
-import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
-import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
-import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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;
 import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
 import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
 import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
 import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
+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;
@@ -40,18 +47,17 @@
 import com.panzhihua.service_community.dao.ComMngPopulationDAO;
 import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
 import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO;
+import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
+import com.panzhihua.service_community.dao.SysConfMapper;
 import com.panzhihua.service_community.model.dos.ComActDO;
 import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
 import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
 import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
 import com.panzhihua.service_community.service.ComPensionAuthRecordService;
 
 import lombok.extern.slf4j.Slf4j;
-
-import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
-import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
-import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
-import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
 
 /**
  * @title: ComPensionAuthRecordServiceImpl
@@ -75,6 +81,8 @@
     private ComActDAO comActDAO;
     @Resource
     private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
+    @Resource
+    private SysConfMapper sysConfDao;
     @Value("${domain.aesKey:}")
     private String aesKey;
 
@@ -181,6 +189,7 @@
                         BeanUtils.copyProperties(vo, mistake);
                         setMistake(mistake, vo);
                         mistake.setMistake("该实有人口已存在,但本社区不存在养老信息,请先导入养老人口");
+                        mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
                         mistakes.add(mistake);
                     }else {
                         //存在养老信息,判断是否满足认证条件
@@ -189,9 +198,11 @@
                             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();
                             // 获取当前年
@@ -203,30 +214,38 @@
                                 authPeriod = String.valueOf(year);
                             }
 
-                            comPensionAuthRecordDO = comPensionAuthRecordDAO.selectOne(new QueryWrapper<ComPensionAuthRecordDO>().lambda().
-                                    eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId()).eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod));
-                            if (null != comPensionAuthRecordDO) {
+                            pensionAuthList = comPensionAuthRecordDAO.selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda().
+                                    eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId())
+                                    .eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod).orderByDesc(ComPensionAuthRecordDO::getCreateAt));
+
+                            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.setSubmitUserId(userId);
+                                    comPensionAuthRecordDO.setApproverId(userId);
+                                    comPensionAuthRecordDO.setApprovalStatus(ComPensionAuthRecordDO.approvalStatus.tg);
+                                    comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+                                    comPensionAuthRecordDO.setApprovalDate(new Date());
+                                    comPensionAuthRecordDO.setAuthStatus(ComPensionAuthRecordDO.authStatus.rez);
+                                    comPensionAuthRecordDO.setCommunityId(communityId);
+                                    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);
+                                    saveList.add(comPensionAuthRecordDO);
                                 }
                             }else {
                                 // 不存在记录,则新增
-                                comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId);
+                                comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId);
                                 saveList.add(comPensionAuthRecordDO);
                             }
                         }
@@ -237,6 +256,7 @@
                     BeanUtils.copyProperties(vo, mistake);
                     setMistake(mistake, vo);
                     mistake.setMistake("不存在该实有人口,请先导入实有人口信息");
+                    mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
                     mistakes.add(mistake);
                 }
                 log.info("开始查询实有人口是否已存在完成");
@@ -273,6 +293,52 @@
     }
 
     @Override
+    public R setPensionAuthType(Long communityId, Integer type) {
+        List<SysConfDO> authConf =
+                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+                        .eq(SysConfDO::getCode, "PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (authConf != null && authConf.size() > 0) {
+            SysConfDO first = authConf.get(0);
+            first.setValue(type + "");
+            int updated = sysConfDao.updateById(first);
+            if (updated == 1) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R communityPensionAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
+        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (confDOList == null || confDOList.size() == 0) {
+            SysConfDO sysConfDO = new SysConfDO();
+            sysConfDO.setCode("PENSION_AUTH_TYPE_" + communityId);
+            sysConfDO.setName("养老认证类型");
+            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
+            sysConfDO.setDescription("养老认证默认添加的核验类型");
+            sysConfDO.setCommunityId(communityId);
+            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
+            int inserted = sysConfDao.insert(sysConfDO);
+            if (inserted != 1) {
+                throw new ServiceException("添加养老认证默认添加的核验类型失败");
+            }
+            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                    .eq(SysConfDO::getCommunityId, communityId)
+                    .orderByDesc(SysConfDO::getCreateAt));
+        }
+        if (confDOList != null && confDOList.size() > 0) {
+            SysConfDO latest = confDOList.get(0);
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(latest, sysConfVO);
+            return R.ok(sysConfVO.getValue());
+        }
+        return R.ok();
+    }
+
+    @Override
     public R timedTaskPensionAuthStatisticsJobHandler() {
         Date nowDate = new Date();
         int month = DateUtils.getMonth(nowDate) + 1;
@@ -306,17 +372,21 @@
         return R.ok();
     }
 
-    private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo, ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId) {
+    private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo
+            , ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId , Long communityId) {
         BeanUtils.copyProperties(vo, comPensionAuthRecordsDO);
         comPensionAuthRecordsDO.setSubmitUserId(userId);
         comPensionAuthRecordsDO.setApproverId(userId);
         comPensionAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
         comPensionAuthRecordsDO.setApprovalDate(new Date());
         comPensionAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
+        comPensionAuthRecordsDO.setCommunityId(communityId);
+        comPensionAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
         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) {
         ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO();
         BeanUtils.copyProperties(vo, comPensionAuthRecordDO);
         comPensionAuthRecordDO.setId(Snowflake.getId());
@@ -327,6 +397,8 @@
         comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
         comPensionAuthRecordDO.setApprovalDate(new Date());
         comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+        comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+        comPensionAuthRecordDO.setCommunityId(communityId);
         return comPensionAuthRecordDO;
     }
 

--
Gitblit v1.7.1