| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import cn.hutool.core.util.IdcardUtil; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO; |
| | | import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO; |
| | | import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportMistakeExcelVO; |
| | | import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO; |
| | | 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.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | import com.google.common.base.Joiner; |
| | | import com.panzhihua.common.constants.Constants; |
| | | import com.panzhihua.common.enums.*; |
| | | import com.panzhihua.common.enums.PopulHouseUseEnum; |
| | | import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO; |
| | | import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO; |
| | | import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO; |
| | | 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.*; |
| | | 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.service_community.dao.*; |
| | | import com.panzhihua.service_community.model.dos.*; |
| | | 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 lombok.extern.slf4j.Slf4j; |
| | | 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 javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | 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: ComElderAuthRecordsServiceImpl 社区政务》高龄老人认证》认证记录表服务实现类 |
| | |
| | | if (comElderAuthRecordVO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) { |
| | | comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz); |
| | | } |
| | | |
| | | comElderAuthRecordsDO.setApprovalDate(new Date()); |
| | | int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO); |
| | | if (nub < 1) { |
| | | return R.fail("审核失败"); |
| | |
| | | return ObjectUtils.isEmpty(hashMap.get(key)); |
| | | } |
| | | |
| | | /** |
| | | * 新增高龄认证 |
| | | * @param addIdentityAuthDTO 请求参数 |
| | | * @return 新增结果 |
| | | */ |
| | | @Override |
| | | public R addElderAuth(AddIdentityAuthDTO addIdentityAuthDTO) { |
| | | String idCard; |
| | | try { |
| | | idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("加密失败【{}】", e.getMessage()); |
| | | return R.fail("认证失败,请重新尝试"); |
| | | } |
| | | ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>() |
| | | .lambda().eq(ComElderAuthElderliesDO::getIdCard, idCard).eq(ComElderAuthElderliesDO::getCommunityId, addIdentityAuthDTO.getCommunityId())); |
| | | if (Objects.isNull(comElderAuthElderliesDO)) { |
| | | return R.fail("该人员未在社区报道无法认证"); |
| | | } |
| | | boolean isInfoCorrect = !comElderAuthElderliesDO.getName().equals(addIdentityAuthDTO.getName()) || |
| | | !(comElderAuthElderliesDO.getIsRegister().equals(1) && comElderAuthElderliesDO.getIsAlive().equals(1)); |
| | | if (isInfoCorrect) { |
| | | return R.fail("信息有误,请检查!"); |
| | | } |
| | | Date dateNow = new Date(); |
| | | String currentAuthPeriod = new SimpleDateFormat("yyyyMM").format(dateNow); |
| | | List<ComElderAuthRecordsDO> currentAuthPeriodRecords = comElderAuthRecordsDAO |
| | | .selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda() |
| | | .eq(ComElderAuthRecordsDO::getAuthPeriod, currentAuthPeriod) |
| | | .eq(ComElderAuthRecordsDO::getElderliesId, comElderAuthElderliesDO.getId())); |
| | | if (!currentAuthPeriodRecords.isEmpty()) { |
| | | boolean alreadyAuth = currentAuthPeriodRecords.stream() |
| | | .filter(record -> record.getAuthStatus().equals(CERTIFIED.getStatus())).findFirst().isPresent(); |
| | | if (alreadyAuth) { |
| | | return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod)); |
| | | } |
| | | boolean isPendingReview = currentAuthPeriodRecords.stream() |
| | | .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent(); |
| | | if (isPendingReview) { |
| | | return R.fail("该人员本期有尚未审核的认证,请稍后再试!"); |
| | | } |
| | | } |
| | | ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO(); |
| | | BeanUtils.copyProperties(addIdentityAuthDTO, comElderAuthRecordsDO); |
| | | comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId()); |
| | | comElderAuthRecordsDO.setAuthDate(dateNow); |
| | | comElderAuthRecordsDO.setAuthPeriod(currentAuthPeriod); |
| | | if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) { |
| | | comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus()); |
| | | comElderAuthRecordsDO.setApprovalDate(dateNow); |
| | | comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus()); |
| | | } |
| | | if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) { |
| | | return R.fail("认证失败,请重新尝试"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询高龄认证记录 |
| | | * @param pageIdentityAuthRecordDTO 高龄认证记录vo |
| | | * @return 高龄认证记录列表 |
| | | */ |
| | | @Override |
| | | public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { |
| | | return R.ok(comElderAuthRecordsDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(), |
| | | pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO)); |
| | | } |
| | | |
| | | /** |
| | | * 获取高龄认证详情 |
| | | * @param identityAuthId 认证id |
| | | * @return 认证记录详情 |
| | | */ |
| | | @Override |
| | | public R retrieveElderAuthDetail(Long identityAuthId) { |
| | | return R.ok(comElderAuthRecordsDAO.findById(identityAuthId)); |
| | | } |
| | | } |