From 5a8a90c095280fbd2106869ecd2bad10e01a57a6 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期四, 23 十二月 2021 18:10:22 +0800
Subject: [PATCH] 12/23  大屏修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java |  245 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 199 insertions(+), 46 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
index 6736bbb..0f99651 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -15,6 +15,9 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComElderAuthElderliesService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -38,21 +41,9 @@
 import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
 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.ComElderAuthElderliesDAO;
-import com.panzhihua.service_community.dao.ComElderAuthRecordsDAO;
-import com.panzhihua.service_community.dao.ComEldersAuthStatisticsMapper;
-import com.panzhihua.service_community.dao.ComMngPopulationDAO;
-import com.panzhihua.service_community.model.dos.ComActDO;
-import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
-import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
-import com.panzhihua.service_community.model.dos.ComEldersAuthStatisticsDO;
-import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
 import com.panzhihua.service_community.service.ComElderAuthRecordsService;
 
 import cn.hutool.core.util.IdcardUtil;
@@ -86,6 +77,16 @@
     private ComActActSignDAO comActActSignDAO;
     @Value("${domain.aesKey:}")
     private String aesKey;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComPensionAuthHistoryRecordMapper comPensionAuthHistoryRecordMapper;
+    @Resource
+    private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComElderAuthElderliesService comElderAuthElderliesService;
 
     @Override
     public R pageElderAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
@@ -121,9 +122,26 @@
     }
 
     @Override
+    public R export(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        try {
+            //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录
+            String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey);
+            pageElderAuthRecordsDTO.setIdCard(idCard);
+        }catch (Exception e){
+            log.error("查询高龄认证记录转换身份证号失败");
+        }
+        return R.ok(comElderAuthRecordsDAO.export(pageElderAuthRecordsDTO));
+    }
+
+    @Override
     public R detailElderAuthRecords(Long authRecordId) {
         ComElderAuthRecordVO comElderAuthRecordVO = comElderAuthRecordsDAO.detailElderAuthRecords(authRecordId);
         comElderAuthRecordVO.setNextIds(comElderAuthRecordsDAO.getNextIds(comElderAuthRecordVO.getCommunityId(),authRecordId));
+        try {
+            comElderAuthRecordVO.setAge(IdcardUtil.getAgeByIdCard(comElderAuthRecordVO.getIdCard()));
+        }catch (Exception e){
+            log.error("身份证转换失败");
+        }
         return R.ok(comElderAuthRecordVO);
     }
 
@@ -147,10 +165,13 @@
         if (comElderAuthRecordVO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) {
             comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
             sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", "认证成功!");
+
+            authElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+            comElderAuthElderliesDAO.updateById(authElderliesDO);
         } else {
             sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", comElderAuthRecordVO.getRejectReason());
         }
-        comElderAuthRecordsDO.setApprovalDate(new Date());
+//        comElderAuthRecordsDO.setApprovalDate(new Date());
         int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
         if (nub < 1) {
             return R.fail("审核失败");
@@ -209,7 +230,10 @@
         List<ComElderAuthRecordsDO> saveList = new ArrayList<>();
         // 需要修改的认证记录集合
         List<ComElderAuthRecordsDO> updateList = new ArrayList<>();
+        //需要更新的老人信息
+        List<ComElderAuthElderliesDO> updateElderliesList = new ArrayList<>();
         log.info("开始处理导入数据");
+
 
         List<ComElderAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
         try {
@@ -269,15 +293,30 @@
                                     }else if (comElderAuthRecordsDO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.dsh)) {
                                         comElderAuthRecordsDO = updateElderAuthRecordsDO(vo, comElderAuthRecordsDO,userId,communityId,nowDate);
                                         updateList.add(comElderAuthRecordsDO);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
                                     }else {
                                         // 驳回状态,则新增
                                         comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
                                         saveList.add(comElderAuthRecordsDO);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
                                     }
                                 }else {
                                     // 不存在记录,则新增
                                     comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
                                     saveList.add(comElderAuthRecordsDO);
+
+                                    if(StringUtils.isNotEmpty(vo.getAddress())){
+                                        comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                        updateElderliesList.add(comElderAuthElderliesDO);
+                                    }
                                 }
                             }
                         }
@@ -308,6 +347,9 @@
             comElderAuthRecordsDAO.updateAll(updateList);
             log.info("数据库更新线下认证记录完成");
         }
+        if(!updateElderliesList.isEmpty()){
+            comElderAuthElderliesService.updateBatchById(updateElderliesList);
+        }
         log.info("执行数据库导入完成");
 
         if (!mistakes.isEmpty()) {
@@ -330,42 +372,108 @@
         return R.ok(comElderAuthRecordStatisticExcleVOS);
     }
 
+    /**
+     * 身份认证定时任务
+     * @return  执行结果
+     */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R timedTaskElderAuthStatisticsJobHandler() {
-        Date nowDate = new Date();
-        int month = DateUtils.getMonth(nowDate) + 1;
-        int year = DateUtils.getYear(nowDate);
-        //查询所有启用中社区
-        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
-        actList.forEach(act -> {
-            //高龄认证统计本期应认证人数
-            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = new ComEldersAuthStatisticsDO();
-            comEldersAuthStatisticsDO.setCommunityId(act.getCommunityId());
-            comEldersAuthStatisticsDO.setMonth(month);
-            comEldersAuthStatisticsDO.setYear(year);
-            comEldersAuthStatisticsDO.setCreateAt(nowDate);
-            List<ComElderAuthElderliesDO> comElderAuthElderliesDOS = comElderAuthElderliesDAO.selectList(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
-                    .eq(ComElderAuthElderliesDO::getCommunityId, act.getCommunityId())
-                    .eq(ComElderAuthElderliesDO::getIsAlive, 1)
-                    .eq(ComElderAuthElderliesDO::getIsRegister, 1));
-            if (null != comElderAuthElderliesDOS) {
-                comEldersAuthStatisticsDO.setSum(comElderAuthElderliesDOS.size());
+        //查询高龄认证记录列表
+        List<ComElderAuthRecordsDO> authRecordsList = comElderAuthRecordsDAO.selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda()
+                .eq(ComElderAuthRecordsDO::getAuthStatus,ComElderAuthRecordsDO.authStatus.yrz));
+        //遍历高龄认证记录列表
+        authRecordsList.forEach(authRecords -> {
+            if(authRecords.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)){
+                ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+                        .eq(ComEldersAuthHistoryRecordDO::getElderliesId,authRecords.getElderliesId())
+                        .eq(ComEldersAuthHistoryRecordDO::getAuthPeriod,authRecords.getAuthPeriod()));
+                if(authHistoryRecordDO != null){//存在记录
+                    if(authHistoryRecordDO.getIsAuth().equals(ComEldersAuthHistoryRecordDO.isAuth.no)){
+                        //查询老人信息
+                        ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
+                        if(authElderliesDO != null){
+                            Long authId = authHistoryRecordDO.getId();
+                            BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
+                            authHistoryRecordDO.setId(authId);
+                            authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                            authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
+                        }
+                        authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.yes);
+                        authHistoryRecordDO.setAuthDate(authRecords.getApprovalDate());
+                        authHistoryRecordDO.setApprovalDate(authRecords.getApprovalDate());
+                        authHistoryRecordDO.setApproverId(authRecords.getApproverId());
+                        authHistoryRecordDO.setSubmitUserId(authRecords.getSubmitUserId());
+                        authHistoryRecordDO.setAuthMethod(authRecords.getAuthMethod());
+                        authHistoryRecordDO.setVerificationResult(authRecords.getVerificationResult());
+                        authHistoryRecordDO.setAuthId(authRecords.getId());
+
+                        comEldersAuthHistoryRecordMapper.updateById(authHistoryRecordDO);
+                    }
+                }else{
+                    authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                    //查询老人信息
+                    ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
+                    if(authElderliesDO != null){
+                        BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
+                        authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                        authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
+                    }
+                    BeanUtils.copyProperties(authRecords,authHistoryRecordDO);
+                    authHistoryRecordDO.setAuthDate(authRecords.getApprovalDate());
+                    authHistoryRecordDO.setMark(null);
+                    authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.yes);
+                    authHistoryRecordDO.setAuthId(authRecords.getId());
+                    comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+                }
             }
-            comEldersAuthStatisticsMapper.insert(comEldersAuthStatisticsDO);
-            //上期已认证人数
-            String authPeriod = "";
-            if (month < 10) {
-                authPeriod = String.valueOf(year) + 0 + month;
-            } else {
-                authPeriod = String.valueOf(year) + month;
+        });
+
+        //查询养老认证记录列表
+        List<ComPensionAuthRecordDO> pensionAuthList = comPensionAuthRecordDAO.selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda()
+                .eq(ComPensionAuthRecordDO::getAuthStatus,ComPensionAuthRecordDO.authStatus.rez));
+        //遍历养老认证记录列表
+        pensionAuthList.forEach(authRecords -> {
+            ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComPensionAuthHistoryRecordDO>().lambda()
+                    .eq(ComPensionAuthHistoryRecordDO::getElderliesId,authRecords.getPensionerId())
+                    .eq(ComPensionAuthHistoryRecordDO::getAuthPeriod,authRecords.getAuthPeriod()));
+            if(pensionAuthDO != null){//存在记录
+                if(pensionAuthDO.getIsAuth().equals(ComPensionAuthHistoryRecordDO.isAuth.no)){
+                    //查询老人信息
+                    ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
+                    if(authPensionerDO != null){
+                        Long authId = pensionAuthDO.getId();
+                        BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
+                        pensionAuthDO.setId(authId);
+                        pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                        pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
+                    }
+                    pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.yes);
+                    pensionAuthDO.setAuthDate(authRecords.getApprovalDate());
+                    pensionAuthDO.setApprovalDate(authRecords.getApprovalDate());
+                    pensionAuthDO.setApproverId(authRecords.getApproverId());
+                    pensionAuthDO.setSubmitUserId(authRecords.getSubmitUserId());
+                    pensionAuthDO.setAuthMethod(authRecords.getAuthMethod());
+                    pensionAuthDO.setVerificationResult(authRecords.getVerificationResult());
+                    pensionAuthDO.setAuthId(authRecords.getId());
+                    comPensionAuthHistoryRecordMapper.updateById(pensionAuthDO);
+                }
+            }else{
+                pensionAuthDO = new ComPensionAuthHistoryRecordDO();
+                //查询老人信息
+                ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
+                if(authPensionerDO != null){
+                    BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
+                    pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                    pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
+                }
+                BeanUtils.copyProperties(authRecords,pensionAuthDO);
+                pensionAuthDO.setAuthDate(authRecords.getApprovalDate());
+                pensionAuthDO.setMark(null);
+                pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.yes);
+                pensionAuthDO.setAuthId(authRecords.getId());
+                comPensionAuthHistoryRecordMapper.insert(pensionAuthDO);
             }
-            int authSum = comElderAuthElderliesDAO.haveElderAuthElderliesAmount(act.getCommunityId(), authPeriod);
-            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO1 = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
-                    .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComEldersAuthStatisticsDO::getYear, year)
-                    .eq(ComEldersAuthStatisticsDO::getMonth, month - 1));
-            comEldersAuthStatisticsDO1.setAuthSum(authSum);
-            comEldersAuthStatisticsDO1.setNoAuthSum(comEldersAuthStatisticsDO1.getSum() - comEldersAuthStatisticsDO1.getAuthSum());
-            comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO1);
         });
         return R.ok();
     }
@@ -388,7 +496,6 @@
             ,  ComElderAuthElderliesDO comElderAuthElderliesDO, String authPeriod, Long userId, Long communityId,Date date) {
         ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO();
         BeanUtils.copyProperties(vo, comElderAuthRecordsDO);
-        comElderAuthRecordsDO.setId(Snowflake.getId());
         comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
         comElderAuthRecordsDO.setAuthPeriod(authPeriod);
         comElderAuthRecordsDO.setSubmitUserId(userId);
@@ -498,4 +605,50 @@
     public R retrieveElderAuthDetail(Long identityAuthId) {
         return R.ok(comElderAuthRecordsDAO.findById(identityAuthId));
     }
+
+    @Override
+    public R add(ComElderAuthRecordVO comElderAuthRecordVO) {
+        if(!comElderAuthRecordVO.getIdCard().isEmpty()){
+            List<ComMngPopulationDO>  comMngPopulationDOS=comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,comElderAuthRecordVO.getIdCard()).orderByDesc(ComMngPopulationDO::getCreateAt));
+            if(!comMngPopulationDOS.isEmpty()){
+                ComMngPopulationDO comMngPopulationDO=comMngPopulationDOS.get(0);
+                ComElderAuthElderliesDO comElderAuthElderliesDO=comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda().eq(ComElderAuthElderliesDO::getPopulationId,comMngPopulationDO.getId()));
+                if(comElderAuthElderliesDO!=null){
+                    Integer count=comElderAuthRecordsDAO.selectCount(new QueryWrapper<ComElderAuthRecordsDO>().lambda().eq(ComElderAuthRecordsDO::getElderliesId,comElderAuthElderliesDO.getId()).eq(ComElderAuthRecordsDO::getAuthPeriod,comElderAuthRecordVO.getAuthPeriod()));
+                    if(count==0){
+                        ComElderAuthRecordsDO comElderAuthRecordsDO=new ComElderAuthRecordsDO();
+                        BeanUtils.copyProperties(comElderAuthRecordVO,comElderAuthRecordsDO);
+                        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
+                        comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
+                        comElderAuthRecordsDO.setApprovalDate(new Date());
+                        comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
+                        comElderAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+                        comElderAuthRecordsDO.setApproverId(comElderAuthRecordVO.getSubmitUserId());
+                        comElderAuthRecordsDO.setSubmitUserId(comElderAuthRecordVO.getSubmitUserId());
+                        if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) {
+                            return R.fail("认证失败,请重新尝试");
+                        }
+                        comMngPopulationDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comMngPopulationDAO.updateById(comMngPopulationDO);
+                        comElderAuthElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+                        comElderAuthElderliesDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comElderAuthElderliesDO.setIdCard(null);
+                        comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+                        ComPensionAuthPensionerDO comPensionAuthPensionerDO=comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda().eq(ComPensionAuthPensionerDO::getPopulationId,comMngPopulationDO.getId()));
+                        if(comPensionAuthPensionerDO!=null){
+                            comPensionAuthPensionerDO.setAddress(comElderAuthRecordVO.getAddress());
+                            comPensionAuthPensionerDO.setPhone(comElderAuthRecordVO.getPhone());
+                            comPensionAuthPensionerDO.setIdCard(null);
+                            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+                        }
+                        return R.ok();
+                    }
+                    return R.fail("当前期数已认证,请勿重复认证");
+                }
+                return R.fail("无养老认证数据");
+            }
+            return R.fail("该身份证无实有人口信息");
+        }
+        return R.fail("身份证不能为空");
+    }
 }

--
Gitblit v1.7.1