package com.panzhihua.service_community.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO; import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO; import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO; import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO; import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO; import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO; import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO; 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.elders.ComElderAuthUserAppVO; import com.panzhihua.common.model.vos.partybuilding.ComEldersAuthHistoryExcelVO; import com.panzhihua.common.model.vos.user.SysUserVO; import com.panzhihua.common.utlis.AgeUtils; import com.panzhihua.common.utlis.DateUtils; 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.EldersAuthService; import cn.hutool.core.util.IdcardUtil; import lombok.extern.slf4j.Slf4j; /** * @auther lyq * @create 2021-04-14 15:03:01 * @describe 服务实现类 */ @Slf4j @Service public class EldersAuthServiceImpl extends ServiceImpl implements EldersAuthService { @Resource private EldersAuthDAO eldersAuthDAO; @Resource private EldersAuthFeedbackDAO eldersAuthFeedbackDAO; @Resource private ComEldersAuthUserMapper comEldersAuthUserMapper; @Resource private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper; @Resource private SysConfMapper sysConfDao; @Resource private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper; @Resource private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper; @Resource private ComActDAO comActDAO; @Resource private ComElderAuthRecordsDAO comElderAuthRecordsDAO; @Resource private ComElderAuthElderliesDAO comElderAuthElderliesDAO; @Resource private ComPensionAuthHistoryRecordMapper comPensionAuthHistoryRecordMapper; @Resource private ComPensionAuthRecordDAO comPensionAuthRecordDAO; @Resource private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO; @Value("${domain.aesKey:}") private String aesKey; /** * 新增高龄认证 * * @param eldersAuthAddDTO * @return 新增结果 */ public R add(EldersAuthAddDTO eldersAuthAddDTO) { EldersAuthDO eldersAuthDO = new EldersAuthDO(); BeanUtils.copyProperties(eldersAuthAddDTO, eldersAuthDO); eldersAuthDO.setCreateAt(new Date()); eldersAuthDO.setCreateBy(eldersAuthAddDTO.getSumitUserId()); if (eldersAuthDAO.insert(eldersAuthDO) > 0) { return R.ok(); } return R.fail(); } /** * 修改高龄认证 * * @param eldersAuthEditDTO * @return 维护结果 */ public R edit(EldersAuthEditDTO eldersAuthEditDTO) { EldersAuthDO eldersAuthDO = new EldersAuthDO(); BeanUtils.copyProperties(eldersAuthEditDTO, eldersAuthDO); eldersAuthDO.setUpdateAt(new Date()); eldersAuthDO.setUpdateBy(eldersAuthEditDTO.getSumitUserId()); if (eldersAuthDAO.updateById(eldersAuthDO) > 0) { return R.ok(); } return R.fail(); } /** * 分页查找高龄认证 * * @param pageEldersAuthDTO * @return 维护结果 */ public R> query(PageEldersAuthDTO pageEldersAuthDTO) { Page page = new Page<>(); page.setSize(pageEldersAuthDTO.getPageSize()); page.setCurrent(pageEldersAuthDTO.getPageNum()); return R.ok(eldersAuthDAO.selectByPage(page, pageEldersAuthDTO)); } /** * 删除高龄认证 * * @param EldersAuthDeleteDTO * @return 平台用户信息 */ public R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO) { return R.fail(); } /** * 查询高龄认证详细信息 * * @param id * 高龄认证 id * @return 查找结果 */ public R eldersAuthDetails(Long id) { EldersAuthDetailsVO eldersAuthDetailsVO = eldersAuthDAO.selectDetails(id); if (eldersAuthDetailsVO != null) { // 社区反馈 List list = eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper() .eq(EldersAuthFeedbackDO::getAuthId, eldersAuthDetailsVO.getId())); List listVO = new ArrayList<>(); list.forEach(feedDo -> { EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO(); BeanUtils.copyProperties(feedDo, eldersAuthFeedbackVO); listVO.add(eldersAuthFeedbackVO); }); eldersAuthDetailsVO.setEldersAuthFeedbackVOList(listVO); return R.ok(eldersAuthDetailsVO); } return R.fail(); } /** * 新增高龄认证社区反馈 * * @param eldersAuthFeedbackAddDTO * @return 新增结果 */ @Transactional(rollbackFor = Exception.class) public R addFeedback(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO) { EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(eldersAuthFeedbackAddDTO.getAuthId()); if (eldersAuthDO == null) { return R.fail("认证记录不存在"); } if (eldersAuthDO.getType() == null) { return R.fail("认证方式未知"); } if (eldersAuthDO.getType().intValue() != 1) { return R.fail("当前认证方式不能进行反馈"); } EldersAuthFeedbackDO eldersAuthFeedbackDO = new EldersAuthFeedbackDO(); eldersAuthFeedbackDO.setCreateBy(eldersAuthFeedbackAddDTO.getUserId()); eldersAuthFeedbackDO.setCreateAt(new Date()); BeanUtils.copyProperties(eldersAuthFeedbackAddDTO, eldersAuthFeedbackDO); if (eldersAuthFeedbackDAO.insert(eldersAuthFeedbackDO) > 0) { eldersAuthDO.setStatus("1"); eldersAuthDO.setIdCard(null); int updated = eldersAuthDAO.updateById(eldersAuthDO); if (updated != 1) { throw new ServiceException("更新认证记录状态失败"); } Long familyUserId = eldersAuthDO.getFamilyUserId(); ComEldersAuthUserDO comEldersAuthUserDO = comEldersAuthUserMapper.selectById(familyUserId); /** * ComEldersAuthUserDO comEldersAuthUserDOToUpdate = new ComEldersAuthUserDO(); * * comEldersAuthUserDOToUpdate.setId(comEldersAuthUserDO.getId()); * comEldersAuthUserDOToUpdate.setIsAuth(2);//是否已认证(1.是 2.否) int updatedEAU = * comEldersAuthUserMapper.updateById(comEldersAuthUserDOToUpdate); if(updatedEAU!=1){ throw new * ServiceException("更新认证记录状态失败"); } */ return R.ok(); } return R.fail(); } /** * 查找高龄认证导出数据 * * @param pageEldersAuthDTO * @return 维护结果 */ public R> queryExportData(PageEldersAuthDTO pageEldersAuthDTO) { Page page = new Page<>(); page.setSize(pageEldersAuthDTO.getPageSize()); page.setCurrent(10000); return R.ok(eldersAuthDAO.selectByParams(pageEldersAuthDTO)); } @Override public String queryDomicile(String idCard) { return eldersAuthDAO.selectDomicile(idCard); } @Override public R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO) { Page page = new Page<>(); page.setSize(pageComEldersRecordsDTO.getPageSize()); page.setCurrent(pageComEldersRecordsDTO.getPageNum()); List eldersAuthDOList = eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO); return R.ok(eldersAuthDOList); } @Override public R comEldersAuthElderlyDetails(Long id) { EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(id); if (eldersAuthDO == null) { return R.fail("未查询到认证记录"); } ComEldersAuthElderlyDetailsVO comEldersAuthElderlyDetailsVO = new ComEldersAuthElderlyDetailsVO(); BeanUtils.copyProperties(eldersAuthDO, comEldersAuthElderlyDetailsVO); String communityName = eldersAuthDAO.selectCommunityNameByAuth(id); comEldersAuthElderlyDetailsVO.setCommunityName(communityName); List eldersAuthFeedbackDOList = eldersAuthFeedbackDAO .selectList(new LambdaQueryWrapper().eq(EldersAuthFeedbackDO::getAuthId, id)); List eldersAuthFeedbackVOList = new ArrayList<>(); eldersAuthFeedbackDOList.forEach(edo -> { EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO(); BeanUtils.copyProperties(edo, eldersAuthFeedbackVO); eldersAuthFeedbackVOList.add(eldersAuthFeedbackVO); }); comEldersAuthElderlyDetailsVO.setFeedback(eldersAuthFeedbackVOList); return R.ok(comEldersAuthElderlyDetailsVO); } @Override public R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) { Long communityId = eldersAuthTypeQueryDTO.getCommunityId(); List confDOList = sysConfDao.selectList(new LambdaQueryWrapper() .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt)); if (confDOList == null || confDOList.size() == 0) { SysConfDO sysConfDO = new SysConfDO(); sysConfDO.setCode("ELDER_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() .eq(SysConfDO::getCommunityId, eldersAuthTypeQueryDTO.getOperUserId()) .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(); } /** * 人脸核验新增高龄认证记录 * * @param authGetResultDTO * 请求参数 * @return 新增结果 */ @Override @Transactional(rollbackFor = Exception.class) public R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO) throws Exception { ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authGetResultDTO.getAuthUserId()); if (authUserDO != null) { String idCard = authUserDO.getIdCard(); EldersAuthDO eldersAuthDO = new EldersAuthDO(); eldersAuthDO.setIdCard(idCard); eldersAuthDO.setAuthUserName(authUserDO.getName()); eldersAuthDO.setCreateBy(authGetResultDTO.getUserId()); eldersAuthDO.setCreateAt(new Date()); eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId()); String domicile = this.baseMapper.selectDomicile(idCard); if (org.springframework.util.StringUtils.isEmpty(domicile)) { domicile = "暂无"; } eldersAuthDO.setDomicile(domicile); eldersAuthDO.setBirthDay(IdcardUtil.getBirthDate(idCard)); eldersAuthDO.setFamilyUserId(authUserDO.getId()); Integer age = IdcardUtil.getAgeByIdCard(idCard); eldersAuthDO.setAge(age); eldersAuthDO.setType(2); eldersAuthDO.setVerificationResult(authGetResultDTO.getVerificationResult()); this.baseMapper.insert(eldersAuthDO); // 认证成功 添加认证记录 List authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper().lambda() .eq(ComEldersAuthHistoryRecordDO::getIdCard, eldersAuthDO.getIdCard()) .ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth())); if (authHistoryRecordDOList.isEmpty()) { ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO(); authHistoryRecordDO.setUserId(authGetResultDTO.getAuthUserId()); authHistoryRecordDO.setAuthId(eldersAuthDO.getId()); BeanUtils.copyProperties(eldersAuthDO, authHistoryRecordDO); authHistoryRecordDO.setId(null); authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard))); authHistoryRecordDO.setAge(age); authHistoryRecordDO.setIsAuth(1); authHistoryRecordDO.setDomicile(domicile); comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO); } authUserDO.setIsAuth(ComEldersAuthUserDO.isAuth.yes); authUserDO.setIdCard(AESUtil.encrypt128(authUserDO.getIdCard(), aesKey)); comEldersAuthUserMapper.updateById(authUserDO); return R.ok(eldersAuthDO.getId()); } log.error("人脸核验新增认证记录失败,错误原因:未查询到老人记录,老人id:" + authGetResultDTO.getAuthUserId()); return R.fail(); } /** * 高龄认证分页接口 * * @param authPageDTO * 请求参数 * @return 查询结果 */ @Override public R pageEldersByApp(ComEldersAuthPageDTO authPageDTO) throws Exception { // 判断当前用户是否是高龄老人,如果是则将这个人新增到高龄老人的列表里 SysUserVO userVO = this.eldersAuthDAO.getSysUserByUserId(authPageDTO.getUserId()); if (userVO != null) { String idCard = userVO.getIdCard(); userVO.setIdCard(AESUtil.encrypt128(userVO.getIdCard(), aesKey)); // 查询当前用户是否已存在用户关联中 ComEldersAuthUserDO oldAuthUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper().lambda() .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard())); if (oldAuthUserDO == null) { // 查询老人库是否存在当前用户信息 ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(new QueryWrapper().lambda() .eq(ComEldersAuthElderlyDO::getIdCard, userVO.getIdCard())); if (authElderlyDO != null) { ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO(); authUserDO.setUserId(userVO.getUserId()); authUserDO.setRelation(ComEldersAuthUserDO.relation.br); authUserDO.setName(userVO.getName()); authUserDO.setIdCard(idCard); authUserDO.setCommunityId(authElderlyDO.getCommunityId()); authUserDO.setBigAgeId(authElderlyDO.getId()); comEldersAuthUserMapper.insert(authUserDO); } } } IPage authUserAppVOIPage = comEldersAuthUserMapper .findByPage(new Page(authPageDTO.getPageNum(), authPageDTO.getPageSize()), authPageDTO.getUserId()); if (!authUserAppVOIPage.getRecords().isEmpty()) { authUserAppVOIPage.getRecords().forEach(authUser -> { if (authUser.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)) { List authDOS = eldersAuthDAO.selectList(new QueryWrapper().lambda() .eq(EldersAuthDO::getFamilyUserId, authUser.getElderId()) .orderByDesc(EldersAuthDO::getCreateAt)); if (!authDOS.isEmpty()) { EldersAuthDO authDO = authDOS.get(0); if (authDO.getType().equals(1)) {// 视频认证 Integer count = eldersAuthFeedbackDAO.selectCount(new QueryWrapper() .lambda().eq(EldersAuthFeedbackDO::getAuthId, authDO.getId())); if (count > 0) { authUser.setIsFeedback(1); } } } } ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUser.getElderId()); if (authUserDO != null) { try { authUser.setAge(IdcardUtil.getAgeByIdCard(authUserDO.getIdCard())); } catch (NullPointerException e) { log.error("获取用户年龄出错了:" + authUser.getIdCard()); } } }); } return R.ok(authUserAppVOIPage); } /** * 添加高龄老人接口 * * @param authUserAddAppDTO * 请求参数 * @return 添加结果 */ @Override public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) { ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper() .lambda().eq(ComEldersAuthUserDO::getIdCard, authUserAddAppDTO.getIdCard())); if (authUserDO != null) { return R.fail("当前老人已存在"); } String encryptedIdCard = authUserAddAppDTO.getIdCard(); try { encryptedIdCard = AESUtil.encrypt128(authUserAddAppDTO.getIdCard(), aesKey); } catch (Exception e) { e.printStackTrace(); } ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne( new QueryWrapper().lambda().eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard)); if (authElderlyDO == null) { return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员"); } authUserDO = new ComEldersAuthUserDO(); BeanUtils.copyProperties(authUserAddAppDTO, authUserDO); authUserDO.setBigAgeId(authElderlyDO.getId()); authUserDO.setName(authElderlyDO.getName()); if (comEldersAuthUserMapper.insert(authUserDO) > 0) { return R.ok(authUserDO.getId()); } return R.fail("添加失败"); } /** * 修改高龄老人接口 * * @param authUserAddAppDTO * 请求参数 * @return 修改结果 */ @Override public R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) { ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUserAddAppDTO.getElderId()); if (authUserDO == null) { return R.fail("未查询到老人信息"); } if (StringUtils.isNotEmpty(authUserAddAppDTO.getName())) { authUserDO.setName(authUserAddAppDTO.getName()); } if (authUserAddAppDTO.getRelation() != null) { authUserDO.setRelation(authUserAddAppDTO.getRelation()); } if (comEldersAuthUserMapper.updateById(authUserDO) > 0) { return R.ok(); } return R.fail(); } @Override public R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) { Page page = new Page(); page.setCurrent(pageEldersAuthElderlyDTO.getPageNum()); page.setSize(pageEldersAuthElderlyDTO.getPageSize()); IPage ipage = eldersAuthDAO.selectCommunityEldersRecordByPage(page, pageEldersAuthElderlyDTO); return R.ok(ipage); } @Override public R setCommunityAuthType(Long communityId, Integer type) { List authConf = sysConfDao.selectList(new LambdaQueryWrapper().eq(SysConfDO::getCommunityId, communityId) .eq(SysConfDO::getCode, "ELDER_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 getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) { return R.ok(comEldersAuthStatisticsMapper.findByPage( new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()), pageEldersAuthElderlyDTO)); } @Override public R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) { Date startTime = DateUtils.getYearMonthStart(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth()); Date endTime = DateUtils.getYearMonthEnd(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth()); List userList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper().lambda() .eq(ComEldersAuthHistoryRecordDO::getCommunityId, pageEldersAuthElderlyDTO.getCommunityId()) .ge(ComEldersAuthHistoryRecordDO::getCreateAt, startTime) .le(ComEldersAuthHistoryRecordDO::getCreateAt, endTime)); List authHistoryExcelVOS = new ArrayList<>(); userList.forEach(user -> { ComEldersAuthHistoryExcelVO authHistoryExcelVO = new ComEldersAuthHistoryExcelVO(); BeanUtils.copyProperties(user, authHistoryExcelVO); authHistoryExcelVOS.add(authHistoryExcelVO); }); return R.ok(authHistoryExcelVOS); } @Override @Transactional(rollbackFor = Exception.class) public R timedTaskEldersAuthJobHandler(){ Date nowDate = new Date(); //查询所有启用中社区 List actList = comActDAO.selectList(new QueryWrapper().lambda().eq(ComActDO::getState,0)); actList.forEach(act -> { //查询社区老人认证统计信息,并存储到数据库中 Map resultMap = this.baseMapper.getEldersAuthStatistics(act.getCommunityId()); if(resultMap != null){ ComEldersAuthStatisticsDO authStatisticsDO = new ComEldersAuthStatisticsDO(); authStatisticsDO.setCommunityId(act.getCommunityId()); authStatisticsDO.setMonth(DateUtils.getMonth(nowDate) + 1); authStatisticsDO.setYear(DateUtils.getYear(nowDate)); authStatisticsDO.setCreateAt(nowDate); authStatisticsDO.setSum(Integer.parseInt(resultMap.get("oldCount").toString())); authStatisticsDO.setNoAuthSum(Integer.parseInt(resultMap.get("noCount").toString())); authStatisticsDO.setAuthSum(Integer.parseInt(resultMap.get("yesCount").toString())); comEldersAuthStatisticsMapper.insert(authStatisticsDO); } }); //重置所有人的认证状态 comEldersAuthUserMapper.updateAuthStatus(); return R.ok(); } /** * 身份认证定时任务 * @return 执行结果 */ @Override @Transactional(rollbackFor = Exception.class) public R timedTaskEldersRecordAuthJobHandler(){ Date nowDate = new Date(); //高龄认证本期期数 String elderAuthPeriod = DateUtils.getCurrentDateString_YYYY_MM(); //养老认证本期期数 String pensionAuthPeriod = DateUtils.getCurrentDateString_YYYY(); //查询所有老人信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作 List authElderliesList = comElderAuthElderliesDAO.getAuthElderLiesList(); authElderliesList.forEach(authElderlies -> { //查询高龄认证记录 ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper().lambda() .eq(ComEldersAuthHistoryRecordDO::getElderliesId,authElderlies.getId()) .eq(ComEldersAuthHistoryRecordDO::getAuthPeriod,elderAuthPeriod)); if(authHistoryRecordDO == null){ authHistoryRecordDO = new ComEldersAuthHistoryRecordDO(); BeanUtils.copyProperties(authElderlies,authHistoryRecordDO); authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.no); authHistoryRecordDO.setElderliesId(authElderlies.getId()); authHistoryRecordDO.setAuthPeriod(elderAuthPeriod); authHistoryRecordDO.setCreateAt(nowDate); authHistoryRecordDO.setBrithday(IdcardUtil.getBirthByIdCard(authElderlies.getIdCard())); authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderlies.getIdCard())); comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO); } }); //查询所有养老人员信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作 List pensionAuthPensionerList = comPensionAuthPensionerDAO.getAuthPensionList(); pensionAuthPensionerList.forEach(authPension -> { //查询养老认证记录 ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper().lambda() .eq(ComPensionAuthHistoryRecordDO::getElderliesId,authPension.getId()) .eq(ComPensionAuthHistoryRecordDO::getAuthPeriod,pensionAuthPeriod)); if(pensionAuthDO == null){ pensionAuthDO = new ComPensionAuthHistoryRecordDO(); BeanUtils.copyProperties(authPension,pensionAuthDO); pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.no); pensionAuthDO.setElderliesId(authPension.getId()); pensionAuthDO.setAuthPeriod(pensionAuthPeriod); pensionAuthDO.setCreateAt(nowDate); pensionAuthDO.setBrithday(IdcardUtil.getBirthByIdCard(authPension.getIdCard())); pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPension.getIdCard())); comPensionAuthHistoryRecordMapper.insert(pensionAuthDO); } }); return R.ok(); } @Override public R setAuthType(Long communityId, Integer type){ List authConf = sysConfDao.selectList(new LambdaQueryWrapper().eq(SysConfDO::getCommunityId, communityId) .eq(SysConfDO::getCode, "ELDER_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 getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO){ Long communityId = eldersAuthTypeQueryDTO.getCommunityId(); List confDOList = sysConfDao.selectList(new LambdaQueryWrapper() .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt)); if (confDOList == null || confDOList.size() == 0) { SysConfDO sysConfDO = new SysConfDO(); sysConfDO.setCode("ELDER_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() .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(); } /** * 高龄认证统计-分页查询 * @param pageElderAuthStatisticDTO 请求参数 * @return 高龄认证统计列表 */ @Override public R pageAuthStatisticAdmin(PageElderAuthStatisticDTO pageElderAuthStatisticDTO){ IPage authStatisticPage = comEldersAuthHistoryRecordMapper.pageAuthStatisticAdmin( new Page(pageElderAuthStatisticDTO.getPageNum(),pageElderAuthStatisticDTO.getPageSize()),pageElderAuthStatisticDTO); authStatisticPage.getRecords().forEach(authStatistic -> { authStatistic.setAge(IdcardUtil.getAgeByIdCard(authStatistic.getIdCard())); authStatistic.setBirthday(IdcardUtil.getBirth(authStatistic.getIdCard())); }); return R.ok(authStatisticPage); } /** * 高龄认证统计-标记 * @param signElderAuthStatisticDTO 请求参数 * @return 标记结果 */ @Override public R signAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO){ ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectById(signElderAuthStatisticDTO.getId()); if(authHistoryRecordDO == null){ return R.fail("未查询到该记录"); } authHistoryRecordDO.setMark(signElderAuthStatisticDTO.getMark()); if(comEldersAuthHistoryRecordMapper.updateById(authHistoryRecordDO) > 0){ return R.ok(); } return R.fail(); } /** * 高龄认证统计-统计表头数据 * @param statisticHeaderDTO 请求参数 * @return 统计表头数据 */ @Override public R getAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO){ return R.ok(comEldersAuthHistoryRecordMapper.getAuthHeaderStatisticAdmin(statisticHeaderDTO)); } }