| | |
| | | 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; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | 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.*; |
| | | 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; |
| | | import com.panzhihua.common.utlis.StringUtils; |
| | | import com.panzhihua.service_community.dao.*; |
| | | import com.panzhihua.service_community.model.dos.*; |
| | | import com.panzhihua.service_community.service.ComPensionAuthPensionerService; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.panzhihua.service_community.dao.ComActDAO; |
| | | 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 org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @title: ComPensionAuthRecordServiceImpl |
| | |
| | | return R.fail("未查询到养老认证记录"); |
| | | } |
| | | BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO); |
| | | if (comPensionAuthRecordVO.getApprovalStatus().equals(3)) { |
| | | comPensionAuthRecordDO.setAuthStatus(1); |
| | | if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) { |
| | | comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); |
| | | } |
| | | comPensionAuthRecordDO.setApprovalDate(new Date()); |
| | | int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO); |
| | |
| | | BeanUtils.copyProperties(vo, comPensionAuthRecordsDO); |
| | | comPensionAuthRecordsDO.setSubmitUserId(userId); |
| | | comPensionAuthRecordsDO.setApproverId(userId); |
| | | comPensionAuthRecordsDO.setApprovalStatus(3); |
| | | comPensionAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus()); |
| | | comPensionAuthRecordsDO.setApprovalDate(new Date()); |
| | | comPensionAuthRecordsDO.setAuthStatus(1); |
| | | comPensionAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus()); |
| | | comPensionAuthRecordsDO.setCommunityId(communityId); |
| | | comPensionAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz); |
| | | return comPensionAuthRecordsDO; |
| | |
| | | comPensionAuthRecordDO.setAuthPeriod(authPeriod); |
| | | comPensionAuthRecordDO.setSubmitUserId(userId); |
| | | comPensionAuthRecordDO.setApproverId(userId); |
| | | comPensionAuthRecordDO.setApprovalStatus(3); |
| | | comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus()); |
| | | comPensionAuthRecordDO.setApprovalDate(new Date()); |
| | | comPensionAuthRecordDO.setAuthStatus(1); |
| | | comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); |
| | | comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz); |
| | | comPensionAuthRecordDO.setCommunityId(communityId); |
| | | return comPensionAuthRecordDO; |
| | |
| | | private boolean isOnly(String key, HashMap<String, Object> hashMap) { |
| | | return ObjectUtils.isEmpty(hashMap.get(key)); |
| | | } |
| | | |
| | | /** |
| | | * 新增养老认证 |
| | | * @param addIdentityAuthDTO 请求参数 |
| | | * @return 新增结果 |
| | | */ |
| | | @Override |
| | | public R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO) { |
| | | String idCard; |
| | | try { |
| | | idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("加密失败【{}】", e.getMessage()); |
| | | return R.fail("认证失败,请重新尝试"); |
| | | } |
| | | ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>() |
| | | .lambda().eq(ComPensionAuthPensionerDO::getIdCard, idCard).eq(ComPensionAuthPensionerDO::getCommunityId, addIdentityAuthDTO.getCommunityId())); |
| | | if (Objects.isNull(comPensionAuthPensionerDO)) { |
| | | return R.fail("该人员未在社区报道无法认证"); |
| | | } |
| | | boolean isInfoCorrect = !comPensionAuthPensionerDO.getName().equals(addIdentityAuthDTO.getName()) || |
| | | !(comPensionAuthPensionerDO.getIsRegister() && comPensionAuthPensionerDO.getIsAlive()); |
| | | if (isInfoCorrect) { |
| | | return R.fail("信息有误,请检查!"); |
| | | } |
| | | Date dateNow = new Date(); |
| | | String currentAuthPeriod = new SimpleDateFormat("yyyy").format(dateNow); |
| | | List<ComPensionAuthRecordDO> currentAuthPeriodRecords = comPensionAuthRecordDAO |
| | | .selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda() |
| | | .eq(ComPensionAuthRecordDO::getAuthPeriod, currentAuthPeriod) |
| | | .eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.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("该人员本期有尚未审核的认证,请稍后再试!"); |
| | | } |
| | | } |
| | | ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO(); |
| | | BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO); |
| | | comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId()); |
| | | comPensionAuthRecordDO.setAuthDate(dateNow); |
| | | comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod); |
| | | if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) { |
| | | comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus()); |
| | | comPensionAuthRecordDO.setApprovalDate(dateNow); |
| | | comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus()); |
| | | } |
| | | if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) { |
| | | return R.fail("认证失败,请重新尝试"); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询养老认证记录 |
| | | * @param pageIdentityAuthRecordDTO 查询参数 |
| | | * @return 养老认证记录列表 |
| | | */ |
| | | @Override |
| | | public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) { |
| | | return R.ok(comPensionAuthRecordDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(), |
| | | pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO)); |
| | | } |
| | | |
| | | /** |
| | | * 获取养老认证详情 |
| | | * @param identityAuthId 认证id |
| | | * @return 认证记录详情 |
| | | */ |
| | | @Override |
| | | public R retrievePensionAuthDetail(Long identityAuthId) { |
| | | return R.ok(comPensionAuthRecordDAO.findById(identityAuthId)); |
| | | } |
| | | } |