101captain
2021-12-23 5a8a90c095280fbd2106869ecd2bad10e01a57a6
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -3,9 +3,15 @@
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;
@@ -60,6 +66,18 @@
    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;
@@ -247,10 +265,10 @@
    public R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
            .eq(SysConfDO::getCommunityId, communityId).orderByDesc(SysConfDO::getCreateAt));
            .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");
            sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId);
            sysConfDO.setName("高龄认证类型");
            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
            sysConfDO.setDescription("高龄认证默认添加的核验类型");
@@ -484,7 +502,7 @@
    public R setCommunityAuthType(Long communityId, Integer type) {
        List<SysConfDO> authConf =
            sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
                .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE").orderByDesc(SysConfDO::getCreateAt));
                .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
        if (authConf != null && authConf.size() > 0) {
            SysConfDO first = authConf.get(0);
            first.setValue(type + "");
@@ -503,6 +521,7 @@
            pageEldersAuthElderlyDTO));
    }
    @Override
    public R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
        Date startTime =
            DateUtils.getYearMonthStart(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth());
@@ -523,4 +542,178 @@
        });
        return R.ok(authHistoryExcelVOS);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R timedTaskEldersAuthJobHandler(){
        Date nowDate = new Date();
        //查询所有启用中社区
        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
        actList.forEach(act -> {
            //查询社区老人认证统计信息,并存储到数据库中
            Map<String,Object> 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<ComElderAuthElderliesDO> authElderliesList = comElderAuthElderliesDAO.getAuthElderLiesList();
        authElderliesList.forEach(authElderlies -> {
            //查询高龄认证记录
            ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComEldersAuthHistoryRecordDO>().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<ComPensionAuthPensionerDO> pensionAuthPensionerList = comPensionAuthPensionerDAO.getAuthPensionList();
        pensionAuthPensionerList.forEach(authPension -> {
            //查询养老认证记录
            ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComPensionAuthHistoryRecordDO>().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<SysConfDO> authConf =
                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().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<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
                .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<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();
    }
    /**
     * 高龄认证统计-分页查询
     * @param pageElderAuthStatisticDTO 请求参数
     * @return  高龄认证统计列表
     */
    @Override
    public R pageAuthStatisticAdmin(PageElderAuthStatisticDTO pageElderAuthStatisticDTO){
        IPage<ComEldersAuthStatisticVO> 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));
    }
}