tangxiaobao
2021-09-10 59fd2e5033cbaa182f949e707735178b2234c4cd
身份认证
30个文件已修改
11个文件已添加
2504 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
@@ -180,6 +180,8 @@
    public static final String ELDER_RECORD_ERROR_LIST = "ELDER_RECORD_ERROR_LIST_";
    public static final String PENSION_RECORD_ERROR_LIST = "PENSION_RECORD_ERROR_LIST_";
    /**
     * 高德地图获取天气url
     */
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java
@@ -234,8 +234,8 @@
    private void setElderAuthMistake(Map<Integer, String> map, ComElderAuthRecordImportMistakeExcelVO vo) {
        vo.setName(map.get(0));
        vo.setIdCard(map.get(1));
        vo.setPhone(map.get(3));
        vo.setNowAddress(map.get(2));
        vo.setPhone(map.get(2));
        vo.setNowAddress(map.get(3));
        vo.setAuthDate(map.get(4));
        vo.setIsAlive(map.get(5));
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java
New file
@@ -0,0 +1,241 @@
package com.panzhihua.common.listen;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
import com.panzhihua.common.constants.BcDictionaryConstants;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.enums.PopulHouseUseEnum;
import com.panzhihua.common.enums.PopulSexEnum;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.vos.BcDictionaryVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * @title: ComPensionAuthRecordImportExcelListen
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老线下认证导入监听
 * @author: txb
 * @date: 2021/09/08 09:16
 */
@Slf4j
public class ComPensionAuthRecordImportExcelListen extends AnalysisEventListener<Map<Integer, String>> {
    /**
     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
     */
    private static final int BATCH_COUNT = 5000;
    private static int headSize = 0;
    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
    private CommunityService communityService;
    private Long communityId;
    private Long userId;
    private Map<Integer, String> headData;
    private StringRedisTemplate stringRedisTemplate;
    public ComPensionAuthRecordImportExcelListen(CommunityService communityService, Long communityId, Long userId,
                                                 StringRedisTemplate stringRedisTemplate) {
        this.communityService = communityService;
        this.communityId = communityId;
        this.userId = userId;
        this.stringRedisTemplate = stringRedisTemplate;
    }
    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
        list.add(data);
        if (list.size() >= BATCH_COUNT) {
            saveData();
            list.clear();
        }
    }
    /**
     * 这里会一行行的返回头
     *
     * @param headMap
     * @param context
     */
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        headSize = headMap.size();
        headData = headMap;
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        saveData();
        log.info("所有数据解析完成!");
    }
    /**
     * 不是固定的列只能手动处理
     */
    private void saveData() {
        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
        log.info("开始导入线下认证居民数据");
        log.info("表格总数据:" + list.size());
        if (list.size() == 0) {
            throw new ServiceException("100", "导入数据为空!");
        }
        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
        String key = Constants.PENSION_RECORD_ERROR_LIST;
        Map<String, String> dictMap = dictionaryR.getData().stream()
            .collect(Collectors.toMap(BcDictionaryVO::getDictName, BcDictionaryVO::getDictValue));
        // Map<String,Integer> dictMap = new HashMap<>();
        // for(BcDictionaryVO vo : dictionaryR.getData()){
        // dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
        // }
        int index = 2;
        try {
            String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
                "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
            ArrayList<ComPensionAuthRecordImportExcelVO> voList = Lists.newArrayList();
            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ArrayList<ComPensionAuthRecordImportMistakeExcelVO> mistakes = Lists.newArrayList();
            for (Map<Integer, String> oneData : list) {
                ComPensionAuthRecordImportExcelVO vo = new ComPensionAuthRecordImportExcelVO();
                if (StringUtils.isEmpty(oneData.get(0))) {
                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                    index++;
                    setPensionAuthMistake(oneData, mistake);
                    mistake.setMistake("名字不可为空,请填写姓名");
                    mistakes.add(mistake);
                    continue;
                }
                vo.setName(oneData.get(0));
                if (StringUtils.isEmpty(oneData.get(1))) {
                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                    index++;
                    setPensionAuthMistake(oneData, mistake);
                    mistake.setMistake("身份证号不可为空,请填写身份证");
                    mistakes.add(mistake);
                    continue;
                }
                // 判断身份证号码位数
                if (oneData.get(1).length() != 18) {
                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                    index++;
                    setPensionAuthMistake(oneData, mistake);
                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
                    mistakes.add(mistake);
                    continue;
                }
                vo.setIdCard(oneData.get(1).toUpperCase());
                // 根据身份证号码解析年龄以及性别
                // 获取用户生日
                String birthday = vo.getIdCard().substring(6, 14);
                if (StringUtils.isNotEmpty(birthday)) {
                    String year = birthday.substring(0, 4);
                    String month = birthday.substring(4, 6);
                    String day = birthday.substring(6, 8);
                    vo.setBirthday(year + "-" + month + "-" + day);
                }
                // //设置用户年龄
                // vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
                // 获取用户性别
                int sex = Integer.parseInt(vo.getIdCard().substring(16, 17));
                if (sex % 2 == 1) {
                    vo.setSex(PopulSexEnum.nan.getCode());
                } else {
                    vo.setSex(PopulSexEnum.nv.getCode());
                }
                if (StringUtils.isNotEmpty(oneData.get(2))) {
                    vo.setPhone(oneData.get(2));
                }
                if (StringUtils.isNotEmpty(oneData.get(3))) {
                    vo.setNowAddress(oneData.get(3));
                }
                if (StringUtils.isEmpty(oneData.get(4))) {
                    index++;
                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                    setPensionAuthMistake(oneData, mistake);
                    mistake.setMistake("认证时间不可为空");
                    mistakes.add(mistake);
                    continue;
                }
                vo.setAuthDate(DateUtil.parse(oneData.get(4).trim(), parsePatterns));
                if (StringUtils.isNotEmpty(oneData.get(5))) {
                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(5));
                    if (isOk.equals(-1)) {
                        index++;
                        ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                        setPensionAuthMistake(oneData, mistake);
                        mistake.setMistake("您填写的健在(是/否)有误");
                        mistakes.add(mistake);
                        continue;
                    }
                    vo.setIsAlive(isOk);
                } else {
                    vo.setIsAlive(PopulHouseUseEnum.getCodeByName("否"));
                }
                voList.add(vo);
                index++;
            }
            log.info("开始进入业务层处理逻辑");
            R r = communityService.listSavePensionAuthRecordExcelVO(voList, communityId, userId);
            log.info("业务层处理逻辑完成");
            if (!R.isOk(r)) {
                log.info("业务层处理成功");
                List<ComPensionAuthRecordImportMistakeExcelVO> list =
                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordImportMistakeExcelVO.class);
                // String errMsg = r.getMsg();
                // List<ComMngPopulationImportErrorVO> errorList =
                // JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
                // if(!errorList.isEmpty()){
                // populationImportErrorVOList.addAll(errorList);
                // }
                mistakes.addAll(list);
                log.info("将错误数据存入redis中");
                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
                log.info("将错误数据存入redis中成功");
                throw new ServiceException("500", key);
            } else {
                log.info("业务层处理逻辑失败");
                if (!mistakes.isEmpty()) {
                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
                    throw new ServiceException("500", key);
                }
            }
        } catch (NumberFormatException e) {
            log.info("处理数据时失败");
            e.printStackTrace();
            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            // importErrorVO.setErrorPosition("第" + index + "行");
            // importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
            // populationImportErrorVOList.add(importErrorVO);
            log.error("数据格式有误,第" + index + "行");
            throw new ServiceException("500", "导入失败111");
        }
    }
    private void setPensionAuthMistake(Map<Integer, String> map, ComPensionAuthRecordImportMistakeExcelVO vo) {
        vo.setName(map.get(0));
        vo.setIdCard(map.get(1));
        vo.setPhone(map.get(2));
        vo.setNowAddress(map.get(3));
        vo.setAuthDate(map.get(4));
        vo.setIsAlive(map.get(5));
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java
@@ -1,6 +1,7 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
@@ -40,7 +41,7 @@
    private String sex;
    @ExcelProperty(value = "年龄", index = 5)
    private String age;
    private Integer age;
    @ExcelProperty(value = "出生日期", index = 6)
    private String birthday;
@@ -58,7 +59,8 @@
    private String authPeriod;
    @ExcelProperty(value = "认证时间", index = 11)
    private String authDate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "标记", index = 12)
    private String mark;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java
New file
@@ -0,0 +1,64 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 * @title: ComElderAuthRecordStatisticExcleVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 高龄认证记录统计
 * @author: hans
 * @date: 2021/09/01 16:16
 */
@Data
@ApiModel("高龄认证记录统计")
@EncryptDecryptClass
public class ComElderAuthRecordStatisticExcleVO {
    @ExcelProperty(value = "联系电话", index = 0)
    private String phone;
    @ExcelProperty(value = "认证姓名", index = 1)
    private String name;
    @ExcelProperty(value = "身份证号", index = 2)
    @EncryptDecryptField
    private String idCard;
    @ExcelProperty(value = "性别", index = 3)
    private String sex;
    @ExcelProperty(value = "年龄", index = 4)
    private Integer age;
    @ExcelProperty(value = "出生日期", index = 6)
    private String birthday;
    @ExcelProperty(value = "人员类别", index = 5)
    private String personnelCategory;
    @ExcelProperty(value = "现居住地址", index = 7)
    private String address;
    @ExcelProperty(value = "健在", index = 8)
    private String isAlive;
    @ExcelProperty(value = "认证期数", index = 9)
    private String authPeriod;
    @ExcelProperty(value = "认证时间", index = 10)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "标记", index = 11)
    private String mark;
    @ExcelProperty(value = "认证状态", index = 12)
    private String authStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java
@@ -71,7 +71,7 @@
    private String authVideo;
    @ApiModelProperty(value = "审核人员id")
    private Long approver;
    private Long approverId;
    @ApiModelProperty(value = "审核人员姓名")
    private String approverName;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java
New file
@@ -0,0 +1,58 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 * @title: ComPensionAuthRecordExcleVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老认证记录
 * @author: txb
 * @date: 2021/09/07 16:16
 */
@Data
@ApiModel("养老认证记录")
@EncryptDecryptClass
public class ComPensionAuthRecordExcleVO {
    @ExcelProperty(value = "提交用户", index = 0)
    private String submitUserName;
    @ExcelProperty(value = "联系电话", index = 1)
    private String phone;
    @ExcelProperty(value = "认证姓名", index = 2)
    private String name;
    @ExcelProperty(value = "认证身份证号", index = 3)
    @EncryptDecryptField
    private String idCard;
    @ExcelProperty(value = "现居住地址", index = 4)
    private String address;
    @ExcelProperty(value = "健在", index = 5)
    private String isAlive;
    @ExcelProperty(value = "认证期数", index = 6)
    private String authPeriod;
    @ExcelProperty(value = "认证时间", index = 7)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "认证方式", index = 8)
    private String authMethod;
    @ExcelProperty(value = "标记", index = 9)
    private String mark;
    @ExcelProperty(value = "审核状态", index = 10)
    private String approvalStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java
New file
@@ -0,0 +1,60 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @title: ComPensionAuthRecordImportExcelVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老线下认证导入
 * @author: txb
 * @date: 2021/09/08 09:16
 */
@Data
@EncryptDecryptClass
public class ComPensionAuthRecordImportExcelVO implements Serializable {
    @ExcelProperty(value = "认证姓名", index = 0)
    private String name;
    @ExcelProperty(value = "认证身份证号码", index = 1)
    @EncryptDecryptField
    private String IdCard;
    @ExcelProperty(value = "联系电话", index = 2)
    private String phone;
    @ExcelProperty(value = "现居住地址", index = 3)
    private String nowAddress;
    @ExcelProperty(value = "认证时间", index = 4)
    private Date authDate;
    @ExcelProperty(value = "健在(是/否)", index = 5)
    private Integer isAlive;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 性别(1.男 2.女)
     */
    private Integer sex;
    /**
     * 出生年月日
     */
    private String birthday;
    /**
     * 地址
     */
    private String address;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java
New file
@@ -0,0 +1,42 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
/**
 * @title: ComPensionAuthRecordImportMistakeExcelVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老线下认证导入错误记录
 * @author: txb
 * @date: 2021/09/08 09:16
 */
@Data
@EncryptDecryptClass
public class ComPensionAuthRecordImportMistakeExcelVO implements Serializable {
    @ExcelProperty(value = "认证姓名", index = 0)
    private String name;
    @ExcelProperty(value = "认证身份证号码", index = 1)
    @EncryptDecryptField
    private String IdCard;
    @ExcelProperty(value = "联系电话", index = 2)
    private String phone;
    @ExcelProperty(value = "现居住地址", index = 3)
    private String nowAddress;
    @ExcelProperty(value = "认证时间", index = 4)
    private String authDate;
    @ExcelProperty(value = "健在(是/否)", index = 5)
    private String isAlive;
    @ExcelProperty(value = "错误信息", index = 6)
    private String mistake;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java
New file
@@ -0,0 +1,55 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
 * @title: ComPensionAuthRecordStatisticExcleVO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老认证记录统计
 * @author: txb
 * @date: 2021/09/08 16:16
 */
@Data
@ApiModel("养老认证记录统计")
@EncryptDecryptClass
public class ComPensionAuthRecordStatisticExcleVO {
    @ExcelProperty(value = "联系电话", index = 0)
    private String phone;
    @ExcelProperty(value = "认证姓名", index = 1)
    private String name;
    @ExcelProperty(value = "身份证号", index = 2)
    @EncryptDecryptField
    private String idCard;
    @ExcelProperty(value = "现居住地址", index = 3)
    private String address;
    @ExcelProperty(value = "健在", index = 4)
    private String isAlive;
    @ExcelProperty(value = "认证期数", index = 5)
    private String authPeriod;
    @ExcelProperty(value = "认证时间", index = 6)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date authDate;
    @ExcelProperty(value = "认证方式", index = 7)
    private String authMethod;
    @ExcelProperty(value = "标记", index = 8)
    private String mark;
    @ExcelProperty(value = "认证状态", index = 9)
    private String authStatus;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java
@@ -4,6 +4,7 @@
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -32,11 +33,45 @@
    @ApiModelProperty(value = "提交用户")
    private Long submitUserId;
    @ApiModelProperty(value = "提交用户姓名")
    private String submitUserName;
    @ApiModelProperty(value = "联系电话")
    private String phone;
    @ApiModelProperty(value = "姓名")
    private String name;
    @ApiModelProperty(value = "身份证号")
    @EncryptDecryptField
    private String idCard;
    @ApiModelProperty(value = "性别(1.男 2.女 3.其他)")
    private String sex;
    @ApiModelProperty(value = "年龄")
    private Integer age;
    @ApiModelProperty(value = "出生日期")
    private String birthday;
    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
    private Integer personnelCategory;
    @ApiModelProperty(value = "是否高龄老人登记(1.是  0.否)")
    private Integer isRegister;
    @ApiModelProperty(value = "是否健在(1.是  0.否)")
    private Integer isAlive;
    @ApiModelProperty(value = "居住地址")
    private String address;
    @ApiModelProperty(value = "认证视频url")
    private String authVideo;
    @ApiModelProperty(value = "审核人员")
    private String approver;
    @ApiModelProperty(value = "审核人员id")
    private String approverId;
    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
    private Integer approvalStatus;
@@ -51,7 +86,7 @@
    private String rejectReason;
    @ApiModelProperty(value = "认证状态")
    private Boolean authStatus;
    private Integer authStatus;
    @ApiModelProperty(value = "认证时间")
    private Date authDate;
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
@@ -17,6 +17,7 @@
import com.panzhihua.common.enums.*;
import com.panzhihua.common.listen.ComElderAuthRecordImportExcelListen;
import com.panzhihua.common.listen.ComMngPopulationDrugExcelListen;
import com.panzhihua.common.listen.ComPensionAuthRecordImportExcelListen;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.service.community.CommunityService;
@@ -321,7 +322,7 @@
                    if (R.isOk(r)) {
                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordExcleVO.class);
                    }
                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordVO.class)
                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordExcleVO.class)
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证导出数据").build();
@@ -353,12 +354,12 @@
        }
    }
    @ApiOperation(value = "高龄认证-下载模板-线下认证居民导入")
    @ApiOperation(value = "高龄认证统计-下载模板-线下认证居民导入")
    @GetMapping("/authRecords/uderLine/export")
    public R exportUnderLineElderAuthRecords() {
        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "线下认证居民导入模板.xlsx";
        String name = "高龄线下认证居民导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
@@ -372,7 +373,7 @@
                try {
                    List<List<String>> list = new ArrayList<>();
                    list = headDataFilling();
                    EasyExcel.write(fileName).head(list).sheet("线下认证居民导入模板").doWrite(null);
                    EasyExcel.write(fileName).head(list).sheet("高龄线下认证居民导入模板").doWrite(null);
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
@@ -396,9 +397,9 @@
        }
    }
    @ApiOperation(value = "高龄认证-excel导入线下认证居民")
    @ApiOperation(value = "高龄认证统计-excel导入线下认证居民")
    @PostMapping(value = "/authRecords/uderLine/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
    public R importUnderLineElderAuthRecords(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
        log.info("传入文件名字【{}】", fileName);
@@ -415,6 +416,297 @@
        return R.ok();
    }
    @ApiOperation(value = "高龄认证统计-导出高龄认证统计")
    @PostMapping(value = "/authRecords/statistic/export")
    public R exportElderAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        Long communityId = this.getLoginUserInfo().getCommunityId();
        pageElderAuthRecordsDTO.setCommunityId(communityId);
        String ftpUrl = "/mnt/data/web/excel/";
        String nowDate = DateUtils.getCurrentDateString();
        String name = "高龄认证统计导出数据" + nowDate + ".xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    R r = communityService.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
                    List<ComElderAuthRecordStatisticExcleVO> list = new ArrayList<>();
                    if (R.isOk(r)) {
                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordStatisticExcleVO.class);
                    }
                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordStatisticExcleVO.class)
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证统计导出数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    if (excelWriter != null) {
                        excelWriter.finish();
                    }
                }
            }
            return R.ok(excelUrl + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    /**
     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 14:03
     */
    @ApiOperation(value = "养老认证-分页查询养老金人员认证记录", response = ComPensionAuthRecordVO.class)
    @PostMapping("/pensionAuthRecords/page")
    public R pagePensionAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        Long communityId = this.getLoginUserInfo().getCommunityId();
        pageElderAuthRecordsDTO.setCommunityId(communityId);
        return communityService.pagePensionAuthRecords(pageElderAuthRecordsDTO);
    }
    /**
     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
     * @param    authRecordId   养老认证记录id
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    @ApiOperation(value = "养老认证-根据养老认证记录id查询详情", response = ComPensionAuthRecordVO.class)
    @GetMapping("/pensionAuthRecords/detail")
    public R detailPensionAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
        return communityService.detailPensionAuthRecords(authRecordId);
    }
    /**
     * 养老认证审核 examinePensionAuthRecords  养老认证审核
     * @param    comPensionAuthRecordVO   养老认证审核参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    @ApiOperation(value = "养老认证-养老认证审核")
    @PostMapping("/pensionAuthRecords/examine")
    public R examinePensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
        return communityService.examinePensionAuthRecords(comPensionAuthRecordVO);
    }
    /**
     * 养老认证标记 signPensionAuthRecords  养老认证标记
     * @param    comPensionAuthRecordVO   养老认证标记参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @ApiOperation(value = "养老认证-养老认证标记")
    @PostMapping("/pensionAuthRecords/sign")
    public R signPensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
        return communityService.signPensionAuthRecords(comPensionAuthRecordVO);
    }
    /**
     * 养老认证导出 exportPensionAuthRecords  养老认证导出
     * @param    ids   养老认证记录id集合
     * @return    R  导出结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @ApiOperation(value = "养老认证-养老认证导出")
    @PostMapping("/pensionAuthRecords/export")
    public R exportPensionAuthRecords(@RequestBody List<Long> ids) {
        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String nowDate = DateUtils.getCurrentDateString();
        String name = "养老认证导出数据" + nowDate + ".xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    R r = communityService.getPensionAuthRecordsByIds(ids);
                    List<ComPensionAuthRecordExcleVO> list = new ArrayList<>();
                    if (R.isOk(r)) {
                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordExcleVO.class);
                    }
                    excelWriter = EasyExcel.write(fileName, ComPensionAuthRecordExcleVO.class)
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("养老认证导出数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    if (excelWriter != null) {
                        excelWriter.finish();
                    }
                }
            }
            return R.ok(excelUrl + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "养老认证统计-下载模板-线下认证居民导入")
    @GetMapping("/pensionAuthRecords/uderLine/export")
    public R exportUnderLinePensionAuthRecords() {
        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "养老线下认证居民导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    List<List<String>> list = new ArrayList<>();
                    list = headDataFilling();
                    EasyExcel.write(fileName).head(list).sheet("养老线下认证居民导入模板").doWrite(null);
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
            return R.ok(excelUrl + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "养老认证统计-excel导入线下认证居民")
    @PostMapping(value = "/pensionAuthRecords/uderLine/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R importUnderLinePensionAuthRecords(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
        log.info("传入文件名字【{}】", fileName);
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
            ComPensionAuthRecordImportExcelListen comPensionAuthRecordImportExcelListen = new ComPensionAuthRecordImportExcelListen(
                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
            EasyExcel.read(inputStream, null, comPensionAuthRecordImportExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
            e.printStackTrace();
        }
        return R.ok();
    }
    @ApiOperation(value = "养老认证统计-导出养老认证统计")
    @PostMapping(value = "/pensionAuthRecords/statistic/export")
    public R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        Long communityId = this.getLoginUserInfo().getCommunityId();
        pageElderAuthRecordsDTO.setCommunityId(communityId);
        String ftpUrl = "/mnt/data/web/excel/";
        String nowDate = DateUtils.getCurrentDateString();
        String name = "养老认证统计导出数据" + nowDate + ".xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    R r = communityService.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
                    List<ComPensionAuthRecordStatisticExcleVO> list = new ArrayList<>();
                    if (R.isOk(r)) {
                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordStatisticExcleVO.class);
                    }
                    excelWriter = EasyExcel.write(fileName, ComPensionAuthRecordStatisticExcleVO.class)
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("养老认证统计导出数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    if (excelWriter != null) {
                        excelWriter.finish();
                    }
                }
            }
            return R.ok(excelUrl + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    private List<List<String>> headDataFilling() {
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -407,7 +407,8 @@
    @ApiOperation(value = "实有人口详情", response = ComMngPopulationVO.class)
    @PostMapping("/detail")
    public R detailPopulation(@RequestParam(value = "populationId") Long populationId) {
        return communityService.detailPopulation(populationId);
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.detailPopulation(populationId, communityId);
    }
    @ApiOperation(value = "查询实有人口电子档案", response = UserElectronicFileVO.class)
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -560,8 +560,8 @@
     * @return 实有人口详情查询结果
     */
    @PostMapping("/population/detail")
    public R detailPopulation(@RequestParam(value = "populationId") Long populationId) {
        return comMngPopulationService.detailPopulation(populationId);
    public R detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId) {
        return comMngPopulationService.detailPopulation(populationId, communityId);
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -6,12 +6,12 @@
import cn.hutool.core.util.IdcardUtil;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
import com.panzhihua.service_community.service.ComElderAuthRecordsService;
import com.panzhihua.service_community.service.ComEldersAuthElderlyService;
import com.panzhihua.service_community.service.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,13 +20,10 @@
import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO;
import com.panzhihua.common.model.vos.elders.ComElderAuthUserDetailVO;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
import com.panzhihua.service_community.model.dos.EldersAuthDO;
import com.panzhihua.service_community.service.ComEldersAuthUserService;
import com.panzhihua.service_community.service.EldersAuthService;
import lombok.extern.slf4j.Slf4j;
@@ -50,6 +47,8 @@
    private ComEldersAuthElderlyService comEldersAuthElderlyService;
    @Resource
    private ComElderAuthRecordsService comElderAuthRecordsService;
    @Resource
    private ComPensionAuthRecordService comPensionAuthRecordService;
    @PostMapping("/getAuth")
    public R getAuth(@RequestParam("authUserId") Long authUserId) {
@@ -268,4 +267,139 @@
        return comElderAuthRecordsService.getElderAuthRecordsByIds(ids);
    }
    /**
     * 批量导入高龄老人线下认证记录  listSaveElderAuthRecordExcelVO  批量导入高龄老人线下认证记录
     * @param    list  高龄老人线下认证记录数据
     * @param    communityId   社区id
     * @param    userId   登录人id
     * @return    R   导入结果
     * @author txb
     * @date 2021/9/01 15:03
     */
    @Transactional(rollbackFor = Exception.class)
    @PostMapping("/authRecords/underLine/import")
    public R listSaveElderAuthRecordExcelVO(@RequestBody List<ComElderAuthRecordImportExcelVO> list,
                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
        return comElderAuthRecordsService.listSaveElderAuthRecordExcelVO(list, communityId, userId);
    }
    /**
     * 导出高龄认证记录 exportElderAuthRecordsStatistic  导出高龄认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @PostMapping("/authRecords/statistic/export")
    public R exportElderAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO){
        return comElderAuthRecordsService.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
    }
    /**
     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 14:03
     */
    @PostMapping("/pensionAuthRecords/page")
    public R pagePensionAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        return comPensionAuthRecordService.pagePensionAuthRecords(pageElderAuthRecordsDTO);
    }
    /**
     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
     * @param    authRecordId   养老认证记录id
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    @GetMapping("/pensionAuthRecords/detail")
    public R detailPensionAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
        return comPensionAuthRecordService.detailPensionAuthRecords(authRecordId);
    }
    /**
     * 养老认证审核 examinePensionAuthRecords  养老认证审核
     * @param    comPensionAuthRecordVO   养老认证审核参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    @PostMapping("/pensionAuthRecords/examine")
    public R examinePensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
        return comPensionAuthRecordService.examinePensionAuthRecords(comPensionAuthRecordVO);
    }
    /**
     * 养老认证标记 signPensionAuthRecords  养老认证标记
     * @param    comPensionAuthRecordVO   养老认证标记参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @PostMapping("/pensionAuthRecords/sign")
    public R signPensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
        return comPensionAuthRecordService.signPensionAuthRecords(comPensionAuthRecordVO);
    }
    /**
     * 根据养老认证记录id批量查询 getPensionAuthRecordsByIds  根据养老认证记录id批量查询
     * @param    ids   养老认证记录id集合
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @PostMapping("/pensionAuthRecords/getList")
    public R getPensionAuthRecordsByIds(@RequestBody List<Long> ids){
        return comPensionAuthRecordService.getPensionAuthRecordsByIds(ids);
    }
    /**
     * 批量导入养老线下认证记录  listSavePensionAuthRecordExcelVO  批量导入养老线下认证记录
     * @param    list  养老线下认证记录数据
     * @param    communityId   社区id
     * @param    userId   登录人id
     * @return    R   导入结果
     * @author txb
     * @date 2021/9/08 10:03
     */
    @Transactional(rollbackFor = Exception.class)
    @PostMapping("/pensionAuthRecords/underLine/import")
    R listSavePensionAuthRecordExcelVO(@RequestBody List<ComPensionAuthRecordImportExcelVO> list,
                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
        return comPensionAuthRecordService.listSavePensionAuthRecordExcelVO(list, communityId, userId);
    }
    /**
     * 导出养老认证记录 exportPensionAuthRecordsStatistic  导出养老认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    @PostMapping("/pensionAuthRecords/statistic/export")
    public R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO){
        return comPensionAuthRecordService.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
    }
    /**
     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
     * @return  执行结果
     */
    @PostMapping("/authRecords/statistics")
    public R timedTaskElderAuthStatisticsJobHandler(){
        return comElderAuthRecordsService.timedTaskElderAuthStatisticsJobHandler();
    }
    /**
     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
     * @return  执行结果
     */
    @PostMapping("/pensionAuthRecords/statistics")
    R timedTaskPensionAuthStatisticsJobHandler(){
        return comPensionAuthRecordService.timedTaskPensionAuthStatisticsJobHandler();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * title: ComElderAuthElderliesDAO  社区政务》高龄老人认证》高龄老人表mapper类
@@ -15,4 +16,5 @@
@Mapper
public interface ComElderAuthElderliesDAO extends BaseMapper<ComElderAuthElderliesDO> {
    int haveElderAuthElderliesAmount(@Param("communityId") Long communityId, @Param("authPeriod") String authPeriod);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
@@ -6,9 +6,11 @@
import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -32,4 +34,8 @@
    List<ComElderAuthRecordExcleVO> getElderAuthRecordsByIds(@Param("ids") List<Long> ids);
    void updateAll(@Param("comElderAuthRecordsDOS") List<ComElderAuthRecordsDO> comElderAuthRecordsDOS);
    List<ComElderAuthRecordStatisticExcleVO> exportElderAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java
@@ -1,9 +1,13 @@
package com.panzhihua.service_community.dao;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @title: ComPensionAuthPensionerDAO
@@ -14,4 +18,7 @@
 */
@Mapper
public interface ComPensionAuthPensionerDAO extends BaseMapper<ComPensionAuthPensionerDO> {
    int havePensionAuthPensionerAmount(@Param("communityId") Long communityId, @Param("authPeriod") String authPeriod);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
@@ -1,9 +1,17 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @title: ComPensionAuthRecordDAO
@@ -14,4 +22,14 @@
 */
@Mapper
public interface ComPensionAuthRecordDAO extends BaseMapper<ComPensionAuthRecordDO> {
    IPage<ComPensionAuthRecordVO> pagePensionAuthRecords(Page page,
                                                         @Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    ComPensionAuthRecordVO detailPensionAuthRecords(@Param("authRecordId") Long authRecordId);
    List<ComPensionAuthRecordExcleVO> getPensionAuthRecordsByIds(@Param("ids") List<Long> ids);
    void updateAll(@Param("comPensionAuthRecordDOS") List<ComPensionAuthRecordDO> comPensionAuthRecordDOS);
    List<ComPensionAuthRecordStatisticExcleVO> exportPensionAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java
New file
@@ -0,0 +1,17 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
import org.apache.ibatis.annotations.Mapper;
/**
 * @title: ComPensionAuthStatisticsDAO
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老认证统计表mapper
 * @author: txb
 * @date: 2021/09/07 17:28
 */
@Mapper
public interface ComPensionAuthStatisticsDAO extends BaseMapper<ComPensionAuthStatisticsDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java
@@ -1,6 +1,8 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
@@ -17,6 +19,7 @@
@Data
@TableName("com_elder_auth_elderlies")
@EncryptDecryptClass
public class ComElderAuthElderliesDO implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -55,6 +58,7 @@
    /**
    * 身份证号
    */
    @EncryptDecryptField
    private String idCard;
    /**
@@ -116,6 +120,7 @@
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
@@ -51,7 +51,7 @@
    /**
    * 审核人员
    */
    private String approver;
    private Long approverId;
    /**
    * 审核状态(1.待审核 2.驳回 3.通过)
@@ -76,7 +76,7 @@
    /**
    * 认证状态(1.已认证 0.未认证)
    */
    private Boolean authStatus;
    private Integer authStatus;
    /**
    * 认证时间
@@ -92,25 +92,6 @@
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
@Override
public String toString() {
        return "ComElderAuthRecordsDO{" +
                "id=" + id +
                ", elderliesId=" + elderliesId +
                ", authPeriod=" + authPeriod +
                ", submitUserId=" + submitUserId +
                ", authVideo=" + authVideo +
                ", approver=" + approver +
                ", approvalStatus=" + approvalStatus +
                ", approvalDate=" + approvalDate +
                ", mark=" + mark +
                ", rejectReason=" + rejectReason +
                ", authStatus=" + authStatus +
                ", authDate=" + authDate +
                ", createAt=" + createAt +
                ", updateAt=" + updateAt +
        "}";
        }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java
@@ -7,6 +7,8 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
/**
@@ -18,6 +20,7 @@
 */
@Data
@TableName("com_pension_auth_pensioners")
@EncryptDecryptClass
public class ComPensionAuthPensionerDO implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -50,6 +53,7 @@
    /**
     * 身份证号
     */
    @EncryptDecryptField
    private String idCard;
    /**
     * 性别
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
@@ -3,9 +3,7 @@
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -46,7 +44,7 @@
    /**
     *审核人员
     */
    private String approver;
    private Long approverId;
    /**
     *审核状态(1.待审核 2.驳回 3.通过)
     */
@@ -78,30 +76,11 @@
    /**
     *创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
     *更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    @Override
    public String toString() {
        return "ComPensionAuthRecordDO{" +
                "id=" + id +
                ", pensionerId=" + pensionerId +
                ", submitUserId=" + submitUserId +
                ", authPeriod='" + authPeriod + '\'' +
                ", authVideo='" + authVideo + '\'' +
                ", approver='" + approver + '\'' +
                ", approvalStatus=" + approvalStatus +
                ", approvalDate=" + approvalDate +
                ", mark='" + mark + '\'' +
                ", rejectReason='" + rejectReason + '\'' +
                ", authStatus=" + authStatus +
                ", authDate=" + authDate +
                ", communityId=" + communityId +
                ", createAt=" + createAt +
                ", updateAt=" + updateAt +
                '}';
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java
New file
@@ -0,0 +1,78 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @title: ComPensionAuthStatisticsDO 社区政务》养老认证》认证统计表
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 社区政务》养老认证》认证统计表
 * @author: txb
 * @date: 2021/09/07 16:31
 */
@Data
@TableName("com_pension_auth_statistics")
public class ComPensionAuthStatisticsDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 主键id
    */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
    * 年份
    */
    private Integer year;
    /**
    * 月份
    */
    private Integer month;
    /**
    * 总人数
    */
    private Integer sum;
    /**
    * 认证人数
    */
    private Integer authSum;
    /**
    * 未认证人数
    */
    private Integer noAuthSum;
    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
    * 社区id
    */
    private Long communityId;
    @Override
    public String toString() {
            return "ComPensionAuthStatisticsDO{" +
                    "id=" + id +
                    ", year=" + year +
                    ", month=" + month +
                    ", sum=" + sum +
                    ", authSum=" + authSum +
                    ", noAuthSum=" + noAuthSum +
                    ", createAt=" + createAt +
                    ", communityId=" + communityId +
            "}";
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import org.springframework.web.bind.annotation.GetMapping;
@@ -68,4 +69,29 @@
     */
    R getElderAuthRecordsByIds(@RequestBody List<Long> ids);
    /**
     * 批量导入高龄老人线下认证记录  listSaveElderAuthRecordExcelVO  批量导入高龄老人线下认证记录
     * @param    list  高龄老人线下认证记录数据
     * @param    communityId   社区id
     * @param    userId   登录人id
     * @return    R   导入结果
     * @author txb
     * @date 2021/9/01 15:03
     */
    R listSaveElderAuthRecordExcelVO(List<ComElderAuthRecordImportExcelVO> list, Long communityId, Long userId);
    /**
     * 导出高龄认证记录 exportElderAuthRecordsStatistic  导出高龄认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    R exportElderAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
     * @return  执行结果
     */
    R timedTaskElderAuthStatisticsJobHandler();
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -62,7 +62,7 @@
     *            实有人口id
     * @return 实有人口详情
     */
    R detailPopulation(Long populationId);
    R detailPopulation(Long populationId, Long communityId);
    /**
     * 分页查询实有人口
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
@@ -1,7 +1,18 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * @title: ComPensionAuthRecordService
@@ -12,4 +23,74 @@
 */
public interface ComPensionAuthRecordService extends IService<ComPensionAuthRecordDO> {
    /**
     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 14:03
     */
    R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
     * @param    authRecordId   养老认证记录id
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    R detailPensionAuthRecords(Long authRecordId);
    /**
     * 养老认证审核 examinePensionAuthRecords  养老认证审核
     * @param    comPensionAuthRecordVO   养老认证审核参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/07 11:03
     */
    R examinePensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO);
    /**
     * 养老认证标记 signPensionAuthRecords  养老认证标记
     * @param    comPensionAuthRecordVO   养老认证标记参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    R signPensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO);
    /**
     * 根据养老认证记录id批量查询 getPensionAuthRecordsByIds  根据养老认证记录id批量查询
     * @param    ids   养老认证记录id集合
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    R getPensionAuthRecordsByIds(List<Long> ids);
    /**
     * 批量导入养老线下认证记录  listSavePensionAuthRecordExcelVO  批量导入养老线下认证记录
     * @param    list  养老线下认证记录数据
     * @param    communityId   社区id
     * @param    userId   登录人id
     * @return    R   导入结果
     * @author txb
     * @date 2021/9/08 10:03
     */
    R listSavePensionAuthRecordExcelVO(List<ComPensionAuthRecordImportExcelVO> list, Long communityId, Long userId);
    /**
     * 导出养老认证记录 exportPensionAuthRecordsStatistic  导出养老认证记录
     * @param    pageElderAuthRecordsDTO   查询参数
     * @return    R  查询结果
     * @author txb
     * @date 2021/9/02 11:03
     */
    R exportPensionAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
    /**
     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
     * @return  执行结果
     */
    R timedTaskPensionAuthStatisticsJobHandler();
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java
New file
@@ -0,0 +1,15 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
/**
 * @title: ComPensionAuthStatisticsService
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老认证统计服务类
 * @author: txb
 * @date: 2021/09/07 17:33
 */
public interface ComPensionAuthStatisticsService extends IService<ComPensionAuthStatisticsDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -1,30 +1,32 @@
package com.panzhihua.service_community.service.impl;
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.PopulCultureLevelEnum;
import com.panzhihua.common.enums.PopulMarriageEnum;
import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
import com.panzhihua.common.enums.PopulRelationEnum;
import com.google.common.base.Joiner;
import com.panzhihua.common.enums.*;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.common.model.vos.community.*;
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.ComElderAuthRecordsDAO;
import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
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.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * title: ComElderAuthRecordsServiceImpl  社区政务》高龄老人认证》认证记录表服务实现类
@@ -40,6 +42,19 @@
    @Resource
    private ComElderAuthRecordsDAO comElderAuthRecordsDAO;
    @Resource
    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
    @Resource
    private ComMngPopulationDAO comMngPopulationDAO;
    @Resource
    private ComElderAuthRecordsService comElderAuthRecordsService;
    @Resource
    private ComActDAO comActDAO;
    @Resource
    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
    @Value("${domain.aesKey:}")
    private String aesKey;
    @Override
    public R pageElderAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        Page page = new Page<>();
@@ -77,6 +92,9 @@
            return R.fail("未查询到高龄老人认证记录");
        }
        BeanUtils.copyProperties(comElderAuthRecordVO, comElderAuthRecordsDO);
        if (comElderAuthRecordVO.getApprovalStatus().equals(3)) {
            comElderAuthRecordsDO.setAuthStatus(1);
        }
        comElderAuthRecordsDO.setApprovalDate(new Date());
        int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
        if (nub < 1) {
@@ -102,7 +120,234 @@
    @Override
    public R getElderAuthRecordsByIds(List<Long> ids) {
        List<ComElderAuthRecordExcleVO> comElderAuthRecordExcleVOS = comElderAuthRecordsDAO.getElderAuthRecordsByIds(ids);
        if (null != comElderAuthRecordExcleVOS && comElderAuthRecordExcleVOS.size() > 0) {
            comElderAuthRecordExcleVOS.forEach(comElderAuthRecordExcleVO -> {
                if (StringUtils.isNotEmpty(comElderAuthRecordExcleVO.getBirthday())) {
                    comElderAuthRecordExcleVO.setAge(AgeUtils.getAgeFromBirthTimes(comElderAuthRecordExcleVO.getBirthday()));
                }
            });
        }
        return R.ok(comElderAuthRecordExcleVOS);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveElderAuthRecordExcelVO(List<ComElderAuthRecordImportExcelVO> list, Long communityId, Long userId) {
        // 需要新增的认证记录集合
        List<ComElderAuthRecordsDO> saveList = new ArrayList<>();
        // 需要修改的认证记录集合
        List<ComElderAuthRecordsDO> updateList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComElderAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
        try {
            // 查询所有人口数据放入HashMap中
            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
            HashMap<String, Object> populationMap = new HashMap<>();
            populationList.forEach(population -> {
                String key = population.getCardNo();
                populationMap.put(key, population);
            });
            for (ComElderAuthRecordImportExcelVO vo : list) {
                String cardNoAES = AESUtil.encrypt128(vo.getIdCard(), aesKey);
                // 判断实有人口是否已存在
                log.info("开始查询实有人口是否已存在");
                ComMngPopulationDO populationDO = null;
                String populationKey = vo.getIdCard();
                if (!isOnly(populationKey, populationMap)) {
                    // 存在实有人口信息,则查询高龄信息(是否符合认证条件(健在且登记了高龄认证))
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>()
                            .lambda().eq(ComElderAuthElderliesDO::getPopulationId, populationDO.getId()).eq(ComElderAuthElderliesDO::getCommunityId, communityId));
                    //不存在高龄信息,需要先导入高龄信息
                    if (null == comElderAuthElderliesDO) {
                        ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在,但本社区不存在高龄信息,请先导入高龄人口");
                        mistakes.add(mistake);
                    }else {
                        //存在高龄信息,判断是否满足认证条件
                        if (StringUtils.isNotEmpty(vo.getBirthday())) {
                            int age = AgeUtils.getAgeFromBirthTimes(vo.getBirthday());
                            if (age < 80 || !comElderAuthElderliesDO.getIsRegister().equals(1) || !comElderAuthElderliesDO.getIsAlive().equals(1)) {
                                ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
                                BeanUtils.copyProperties(vo, mistake);
                                setMistake(mistake, vo);
                                mistake.setMistake("该人口未满80岁,或者不健在,或者未做高龄老人登记");
                                mistakes.add(mistake);
                            }else {
                                //满足认证条件,判断是否存在当期认证记录
                                ComElderAuthRecordsDO comElderAuthRecordsDO = null;
                                Date nowDate = new Date();
                                // 获取当前年
                                int year = DateUtils.getYear(nowDate);
                                // 获取当前月
                                int month = DateUtils.getMonth(nowDate) + 1;
                                String authPeriod = "";
                                if (month < 10) {
                                    authPeriod = String.valueOf(year) + "0" + String.valueOf(month);
                                }else {
                                    authPeriod = String.valueOf(year) +  String.valueOf(month);
                                }
                                comElderAuthRecordsDO = comElderAuthRecordsDAO.selectOne(new QueryWrapper<ComElderAuthRecordsDO>().lambda().
                                        eq(ComElderAuthRecordsDO::getElderliesId, comElderAuthElderliesDO.getId()).eq(ComElderAuthRecordsDO::getAuthPeriod, authPeriod));
                                if (null != comElderAuthRecordsDO) {
                                    //存在记录且状态为已认证,不能修改
                                    if (comElderAuthRecordsDO.getAuthStatus().equals(1)) {
                                        ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
                                        BeanUtils.copyProperties(vo, mistake);
                                        setMistake(mistake, vo);
                                        mistake.setMistake("该人口本期已认证,不能修改");
                                        mistakes.add(mistake);
                                    }else {
                                        //存在记录,执行修改
                                        ComElderAuthRecordsDO comElderAuthRecordsDO1 =
                                                updateElderAuthRecordsDO(vo, comElderAuthRecordsDO, userId);
                                        updateList.add(comElderAuthRecordsDO1);
                                        ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
                                        BeanUtils.copyProperties(vo, mistake);
                                        setMistake(mistake, vo);
                                        mistake.setMistake("该认证已存在,执行更新");
                                        mistakes.add(mistake);
                                    }
                                }else {
                                    // 不存在记录,则新增
                                    comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId);
                                    saveList.add(comElderAuthRecordsDO);
                                }
                            }
                        }
                    }
                } else {
                    // 不存在实有人口,则新增
                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
                    BeanUtils.copyProperties(vo, mistake);
                    setMistake(mistake, vo);
                    mistake.setMistake("不存在该实有人口,请先导入实有人口信息");
                    mistakes.add(mistake);
                }
                log.info("开始查询实有人口是否已存在完成");
            }
        } catch (Exception e) {
            log.info("出现错误,错误原因:" + e.getMessage());
        }
        log.info("处理完成导入数据");
        log.info("开始执行数据库导入");
        if (!saveList.isEmpty()) {
            log.info("执行数据库导入线下认证记录");
            comElderAuthRecordsService.saveBatch(saveList);
            log.info("数据库导入线下认证记录完成");
        }
        if (!updateList.isEmpty()) {
            log.info("执行数据库更新线下认证记录");
            comElderAuthRecordsDAO.updateAll(updateList);
            log.info("数据库更新线下认证记录完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
            log.info("返回错误数据");
            return R.fail(mistakes);
        }
        return R.ok(mistakes);
    }
    @Override
    public R exportElderAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        List<ComElderAuthRecordStatisticExcleVO> comElderAuthRecordStatisticExcleVOS = comElderAuthRecordsDAO.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
        if (null != comElderAuthRecordStatisticExcleVOS && comElderAuthRecordStatisticExcleVOS.size() > 0) {
            comElderAuthRecordStatisticExcleVOS.forEach(comElderAuthRecordStatisticExcleVO -> {
                if (StringUtils.isNotEmpty(comElderAuthRecordStatisticExcleVO.getBirthday())) {
                    comElderAuthRecordStatisticExcleVO.setAge(AgeUtils.getAgeFromBirthTimes(comElderAuthRecordStatisticExcleVO.getBirthday()));
                }
            });
        }
        return R.ok(comElderAuthRecordStatisticExcleVOS);
    }
    @Override
    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());
            }
            comEldersAuthStatisticsMapper.insert(comEldersAuthStatisticsDO);
            //上期已认证人数
            String authPeriod = "";
            if (month < 10) {
                authPeriod = String.valueOf(year) + 0 + month;
            } else {
                authPeriod = String.valueOf(year) + month;
            }
            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();
    }
    private ComElderAuthRecordsDO updateElderAuthRecordsDO(ComElderAuthRecordImportExcelVO vo, ComElderAuthRecordsDO comElderAuthRecordsDO, Long userId) {
        BeanUtils.copyProperties(vo, comElderAuthRecordsDO);
        comElderAuthRecordsDO.setSubmitUserId(userId);
        comElderAuthRecordsDO.setApproverId(userId);
        comElderAuthRecordsDO.setApprovalStatus(3);
        comElderAuthRecordsDO.setApprovalDate(new Date());
        comElderAuthRecordsDO.setAuthStatus(1);
        return comElderAuthRecordsDO;
    }
    private ComElderAuthRecordsDO saveElderAuthRecordsDO(ComElderAuthRecordImportExcelVO vo,  ComElderAuthElderliesDO comElderAuthElderliesDO, String authPeriod, Long userId) {
        ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO();
        BeanUtils.copyProperties(vo, comElderAuthRecordsDO);
        comElderAuthRecordsDO.setId(Snowflake.getId());
        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
        comElderAuthRecordsDO.setAuthPeriod(authPeriod);
        comElderAuthRecordsDO.setSubmitUserId(userId);
        comElderAuthRecordsDO.setApproverId(userId);
        comElderAuthRecordsDO.setApprovalStatus(3);
        comElderAuthRecordsDO.setApprovalDate(new Date());
        comElderAuthRecordsDO.setAuthStatus(1);
        return comElderAuthRecordsDO;
    }
    private void setMistake(ComElderAuthRecordImportMistakeExcelVO mvo,
                                   ComElderAuthRecordImportExcelVO vo) {
        mvo.setIsAlive(PopulHouseUseEnum.getCnDescByName(vo.getIsAlive()));
    }
    /**
     * 判重方法
     *
     * @param key
     *            主键
     * @param hashMap
     *            数据集
     * @return 存在即为false 不存在则为true
     */
    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -63,6 +63,7 @@
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * 实有人口Service实现类
@@ -126,6 +127,8 @@
    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
    @Resource
    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
    @Resource
    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
    @Value("${domain.aesKey:}")
    private String aesKey;
@@ -196,7 +199,7 @@
     * @return 实有人口详情
     */
    @Override
    public R detailPopulation(Long populationId) {
    public R detailPopulation(Long populationId, Long communityId) {
        ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(populationId);
        if (ObjectUtils.isEmpty(comMngPopulationDO)) {
            return R.fail("用户信息不存在");
@@ -237,7 +240,8 @@
        // 设置特殊群体标签
        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
            comMngPopulationCommunityTagsDAO.selectOne(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
                .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId));
                    .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId)
                    .eq(ComMngPopulationCommunityTagsDO::getCommunityId, communityId));
        if (null != comMngPopulationCommunityTagsDO) {
            comMngPopulationVO.setLabel(comMngPopulationCommunityTagsDO.getLabel());
        }
@@ -275,7 +279,8 @@
        // 吸毒信息
        List<ComDrugPopulationVO> comDrugPopulationVOs = new ArrayList<>();
        List<ComDrugPopulationDO> comDrugPopulationDOs = comDrugPopulationDAO.selectList(
            new QueryWrapper<ComDrugPopulationDO>().lambda().eq(ComDrugPopulationDO::getPopulationId, populationId));
            new QueryWrapper<ComDrugPopulationDO>().lambda().eq(ComDrugPopulationDO::getPopulationId, populationId)
                    .eq(ComDrugPopulationDO::getCommunityId, communityId));
        if (!comDrugPopulationDOs.isEmpty()) {
            comDrugPopulationDOs.forEach(comDrugPopulationDO -> {
                ComDrugPopulationVO comDrugPopulationVO = new ComDrugPopulationVO();
@@ -289,7 +294,8 @@
        List<ComCorrectPopulationVO> comCorrectPopulationVOS = new ArrayList<>();
        List<ComCorrectPopulationDO> comCorrectPopulationDOS =
            comCorrectPopulationDAO.selectList(new QueryWrapper<ComCorrectPopulationDO>().lambda()
                .eq(ComCorrectPopulationDO::getPopulationId, populationId));
                    .eq(ComCorrectPopulationDO::getPopulationId, populationId)
                    .eq(ComCorrectPopulationDO::getCommunityId, communityId));
        if (!comCorrectPopulationDOS.isEmpty()) {
            comCorrectPopulationDOS.forEach(comCorrectPopulationDO -> {
                ComCorrectPopulationVO comCorrectPopulationVO = new ComCorrectPopulationVO();
@@ -302,7 +308,8 @@
        // 精神障碍信息
        List<ComMajorPopulationVO> comMajorPopulationVOS = new ArrayList<>();
        List<ComMajorPopulationDO> comMajorPopulationDOs = comMajorPopulationDAO.selectList(
            new QueryWrapper<ComMajorPopulationDO>().lambda().eq(ComMajorPopulationDO::getPopulationId, populationId));
            new QueryWrapper<ComMajorPopulationDO>().lambda().eq(ComMajorPopulationDO::getPopulationId, populationId)
                    .eq(ComMajorPopulationDO::getCommunityId, communityId));
        if (!comMajorPopulationDOs.isEmpty()) {
            comMajorPopulationDOs.forEach(comMajorPopulationDO -> {
                ComMajorPopulationVO comMajorPopulationVO = new ComMajorPopulationVO();
@@ -315,7 +322,8 @@
        // 邪教信息
        List<ComCultPopulationVO> comCultPopulationVOS = new ArrayList<>();
        List<ComCultPopulationDO> comCultPopulationDOS = comCultPopulationDAO.selectList(
            new QueryWrapper<ComCultPopulationDO>().lambda().eq(ComCultPopulationDO::getPopulationId, populationId));
            new QueryWrapper<ComCultPopulationDO>().lambda().eq(ComCultPopulationDO::getPopulationId, populationId)
                    .eq(ComCultPopulationDO::getCommunityId, communityId));
        if (!comCultPopulationDOS.isEmpty()) {
            comCultPopulationDOS.forEach(comCultPopulationDO -> {
                ComCultPopulationVO comCultPopulationVO = new ComCultPopulationVO();
@@ -329,7 +337,8 @@
        List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOS = new ArrayList<>();
        List<ComRehabilitationPopulationDO> comRehabilitationPopulationDOS =
            comRehabilitationPopulationDAO.selectList(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
                .eq(ComRehabilitationPopulationDO::getPopulationId, populationId));
                .eq(ComRehabilitationPopulationDO::getPopulationId, populationId)
                    .eq(ComRehabilitationPopulationDO::getCommunityId, communityId));
        if (!comRehabilitationPopulationDOS.isEmpty()) {
            comRehabilitationPopulationDOS.forEach(comRehabilitationPopulationDO -> {
                ComRehabilitationPopulationVO comRehabilitationPopulationVO = new ComRehabilitationPopulationVO();
@@ -342,7 +351,8 @@
        // 上访信息
        List<ComKeyPopulationVO> comKeyPopulationVOS = new ArrayList<>();
        List<ComKeyPopulationDO> comKeyPopulationDOS = comKeyPopulationDAO.selectList(
            new QueryWrapper<ComKeyPopulationDO>().lambda().eq(ComKeyPopulationDO::getPopulationId, populationId));
            new QueryWrapper<ComKeyPopulationDO>().lambda().eq(ComKeyPopulationDO::getPopulationId, populationId)
                    .eq(ComKeyPopulationDO::getCommunityId, communityId));
        if (!comKeyPopulationDOS.isEmpty()) {
            comKeyPopulationDOS.forEach(comKeyPopulationDO -> {
                ComKeyPopulationVO comKeyPopulationVO = new ComKeyPopulationVO();
@@ -356,7 +366,8 @@
        List<ComVeteransPopulationVO> comVeteransPopulationVOS = new ArrayList<>();
        List<ComVeteransPopulationDO> comVeteransPopulationDOS =
            comVeteransPopulationDAO.selectList(new QueryWrapper<ComVeteransPopulationDO>().lambda()
                .eq(ComVeteransPopulationDO::getPopulationId, populationId));
                .eq(ComVeteransPopulationDO::getPopulationId, populationId)
                    .eq(ComVeteransPopulationDO::getCommunityId, communityId));
        if (!comVeteransPopulationDOS.isEmpty()) {
            comVeteransPopulationDOS.forEach(comVeteransPopulationDO -> {
                ComVeteransPopulationVO comVeteransPopulationVO = new ComVeteransPopulationVO();
@@ -370,7 +381,8 @@
        List<ComDisabilityPopulationVO> comDisabilityPopulationVOS = new ArrayList<>();
        List<ComDisabilityPopulationDO> comDisabilityPopulationDOS =
            comDisabilityPopulationDAO.selectList(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
                .eq(ComDisabilityPopulationDO::getPopulationId, populationId));
                .eq(ComDisabilityPopulationDO::getPopulationId, populationId)
                    .eq(ComDisabilityPopulationDO::getCommunityId, communityId));
        if (!comDisabilityPopulationDOS.isEmpty()) {
            comDisabilityPopulationDOS.forEach(comDisabilityPopulationDO -> {
                ComDisabilityPopulationVO comDisabilityPopulationVO = new ComDisabilityPopulationVO();
@@ -384,7 +396,8 @@
        List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOS = new ArrayList<>();
        List<ComLowSecurityPopulationDO> comLowSecurityPopulationDOS =
            comLowSecurityPopulationDAO.selectList(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
                .eq(ComLowSecurityPopulationDO::getPopulationId, populationId));
                .eq(ComLowSecurityPopulationDO::getPopulationId, populationId)
                    .eq(ComLowSecurityPopulationDO::getCommunityId, communityId));
        if (!comLowSecurityPopulationDOS.isEmpty()) {
            comLowSecurityPopulationDOS.forEach(comLowSecurityPopulationDO -> {
                ComLowSecurityPopulationVO comLowSecurityPopulationVO = new ComLowSecurityPopulationVO();
@@ -398,7 +411,8 @@
        List<ComElderAuthElderliesVO> comElderAuthElderliesVOList = new ArrayList<>();
        List<ComElderAuthElderliesDO> comElderAuthElderliesDOS =
                comElderAuthElderliesDAO.selectList(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
                        .eq(ComElderAuthElderliesDO::getPopulationId, populationId));
                        .eq(ComElderAuthElderliesDO::getPopulationId, populationId)
                        .eq(ComElderAuthElderliesDO::getCommunityId, communityId));
        if (!comElderAuthElderliesDOS.isEmpty()) {
            comElderAuthElderliesDOS.forEach(comElderAuthElderliesDO -> {
                ComElderAuthElderliesVO comElderAuthElderliesVO = new ComElderAuthElderliesVO();
@@ -412,7 +426,8 @@
        List<ComPensionAuthPensionerVO> comPensionAuthPensionerVOList = new ArrayList<>();
        List<ComPensionAuthPensionerDO> comPensionAuthPensionerDOS =
                comPensionAuthPensionerDAO.selectList(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationId));
                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationId)
                        .eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
        if (!comPensionAuthPensionerDOS.isEmpty()) {
            comPensionAuthPensionerDOS.forEach(comPensionAuthPensionerDO -> {
                ComPensionAuthPensionerVO comPensionAuthPensionerVO = new ComPensionAuthPensionerVO();
@@ -4150,8 +4165,7 @@
            // 查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                    .selectList(null);
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(null);
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                        .collect(Collectors.toList());
@@ -4890,11 +4904,11 @@
            }
            if (!comElderAuthElderliesDO.getIsAlive().equals(1) || !comElderAuthElderliesDO.getIsRegister().equals(1)) {
                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
                    Calendar calendar = Calendar.getInstance();
                    Date nowDate = new Date();
                    // 获取当前年
                    int year = calendar.get(Calendar.YEAR);
                    int year = DateUtils.getYear(nowDate);
                    // 获取当前月
                    int month = calendar.get(Calendar.MONTH) + 1;
                    int month = DateUtils.getMonth(nowDate) + 1;
                    ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
                            .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
                    comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
@@ -4922,11 +4936,11 @@
                }
            }
            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
                Calendar calendar = Calendar.getInstance();
                Date nowDate = new Date();
                // 获取当前年
                int year = calendar.get(Calendar.YEAR);
                int year = DateUtils.getYear(nowDate);
                // 获取当前月
                int month = calendar.get(Calendar.MONTH) + 1;
                int month = DateUtils.getMonth(nowDate) + 1;
                ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
                        .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
                comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
@@ -4942,7 +4956,8 @@
        BeanUtils.copyProperties(vo, populationDO);
        ComPensionAuthPensionerDO comPensionAuthPensionerDO =
                comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId()));
                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId())
                        .eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4966,6 +4981,23 @@
            BeanUtils.copyProperties(vo, comPensionAuthPensionerDO);
            comPensionAuthPensionerDO.setIdCard(cardNoAES);
            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
            if (!comPensionAuthPensionerDO.getIsAlive().equals(1) || !comPensionAuthPensionerDO.getIsRegister().equals(1)) {
                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
                    Date nowDate = new Date();
                    // 获取当前年
                    int year = (DateUtils.getYear(nowDate));
                    ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
                            .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
                            .eq(ComPensionAuthStatisticsDO::getYear, year));
                    if(null == comPensionAuthStatisticsDO){
                        comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
                                .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
                                .eq(ComPensionAuthStatisticsDO::getYear, year - 1));
                    }
                    comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
                    comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
                }
            }
            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
        } else {
            comPensionAuthPensionerDO = new ComPensionAuthPensionerDO();
@@ -4977,6 +5009,16 @@
            comPensionAuthPensionerDO.setIdCard(cardNoAES);
            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
            comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
                Date nowDate = new Date();
                // 获取当前年
                int year = (DateUtils.getYear(nowDate));
                ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
                        .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
                        .eq(ComPensionAuthStatisticsDO::getYear, year));
                comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
                comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
            }
        }
        return populationDO;
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -1,13 +1,34 @@
package com.panzhihua.service_community.service.impl;
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.panzhihua.common.enums.PopulHouseUseEnum;
import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
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.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.ComPensionAuthRecordDAO;
import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
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
@@ -19,4 +40,288 @@
@Slf4j
@Service
public class ComPensionAuthRecordServiceImpl extends ServiceImpl<ComPensionAuthRecordDAO, ComPensionAuthRecordDO> implements ComPensionAuthRecordService {
    @Resource
    private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
    @Resource
    private ComMngPopulationDAO comMngPopulationDAO;
    @Resource
    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
    @Resource
    private ComPensionAuthRecordService comPensionAuthRecordService;
    @Resource
    private ComActDAO comActDAO;
    @Resource
    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
    @Value("${domain.aesKey:}")
    private String aesKey;
    @Override
    public R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        Page page = new Page<>();
        Long pageNum = pageElderAuthRecordsDTO.getPageNum();
        Long pageSize = pageElderAuthRecordsDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1L;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10L;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComPensionAuthRecordVO> iPage = comPensionAuthRecordDAO.pagePensionAuthRecords(page, pageElderAuthRecordsDTO);
        if (!iPage.getRecords().isEmpty()) {
            iPage.getRecords().forEach(comPensionAuthRecordVO -> {
                if (StringUtils.isNotEmpty(comPensionAuthRecordVO.getBirthday())) {
                    comPensionAuthRecordVO.setAge(AgeUtils.getAgeFromBirthTimes(comPensionAuthRecordVO.getBirthday()));
                }
            });
        }
        return R.ok(iPage);
    }
    @Override
    public R detailPensionAuthRecords(Long authRecordId) {
        ComPensionAuthRecordVO comPensionAuthRecordVO = comPensionAuthRecordDAO.detailPensionAuthRecords(authRecordId);
        return R.ok(comPensionAuthRecordVO);
    }
    @Override
    public R examinePensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO) {
        ComPensionAuthRecordDO comPensionAuthRecordDO = comPensionAuthRecordDAO.selectById(comPensionAuthRecordVO.getId());
        if (comPensionAuthRecordDO == null) {
            return R.fail("未查询到养老认证记录");
        }
        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
        if (comPensionAuthRecordVO.getApprovalStatus().equals(3)) {
            comPensionAuthRecordDO.setAuthStatus(1);
        }
        comPensionAuthRecordDO.setApprovalDate(new Date());
        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
        if (nub < 1) {
            return R.fail("审核失败");
        }
        return R.ok();
    }
    @Override
    public R signPensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO) {
        ComPensionAuthRecordDO comPensionAuthRecordDO = comPensionAuthRecordDAO.selectById(comPensionAuthRecordVO.getId());
        if (comPensionAuthRecordDO == null) {
            return R.fail("未查询到养老认证记录");
        }
        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
        if (nub < 1) {
            return R.fail("标记失败");
        }
        return R.ok();
    }
    @Override
    public R getPensionAuthRecordsByIds(List<Long> ids) {
        List<ComPensionAuthRecordExcleVO> comPensionAuthRecordExcleVOS = comPensionAuthRecordDAO.getPensionAuthRecordsByIds(ids);
        return R.ok(comPensionAuthRecordExcleVOS);
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R listSavePensionAuthRecordExcelVO(List<ComPensionAuthRecordImportExcelVO> list, Long communityId, Long userId) {
        // 需要新增的认证记录集合
        List<ComPensionAuthRecordDO> saveList = new ArrayList<>();
        // 需要修改的认证记录集合
        List<ComPensionAuthRecordDO> updateList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComPensionAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
        try {
            // 查询所有人口数据放入HashMap中
            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
            HashMap<String, Object> populationMap = new HashMap<>();
            populationList.forEach(population -> {
                String key = population.getCardNo();
                populationMap.put(key, population);
            });
            for (ComPensionAuthRecordImportExcelVO vo : list) {
                String cardNoAES = AESUtil.encrypt128(vo.getIdCard(), aesKey);
                // 判断实有人口是否已存在
                log.info("开始查询实有人口是否已存在");
                ComMngPopulationDO populationDO = null;
                String populationKey = vo.getIdCard();
                if (!isOnly(populationKey, populationMap)) {
                    // 存在实有人口信息,则查询养老信息(是否符合认证条件(健在且登记了养老认证))
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>()
                            .lambda().eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId()).eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
                    //不存在养老信息,需要先导入养老信息
                    if (null == comPensionAuthPensionerDO) {
                        ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在,但本社区不存在养老信息,请先导入养老人口");
                        mistakes.add(mistake);
                    }else {
                        //存在养老信息,判断是否满足认证条件
                        if (!comPensionAuthPensionerDO.getIsRegister().equals(1) || !comPensionAuthPensionerDO.getIsAlive().equals(1)) {
                            ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                            BeanUtils.copyProperties(vo, mistake);
                            setMistake(mistake, vo);
                            mistake.setMistake("该人口不健在,或者未做养老登记");
                            mistakes.add(mistake);
                        }else {
                            //满足认证条件,判断是否存在当期认证记录
                            ComPensionAuthRecordDO comPensionAuthRecordDO = null;
                            Date nowDate = new Date();
                            // 获取当前年
                            int year = DateUtils.getYear(nowDate);
                            String authPeriod = "";
                            if (nowDate.before(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(String.valueOf(year) + "-03-01 00:00:00"))) {
                                authPeriod = String.valueOf(year - 1);
                            }else {
                                authPeriod = String.valueOf(year);
                            }
                            comPensionAuthRecordDO = comPensionAuthRecordDAO.selectOne(new QueryWrapper<ComPensionAuthRecordDO>().lambda().
                                    eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId()).eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod));
                            if (null != comPensionAuthRecordDO) {
                                //存在记录且状态为已认证,不能修改
                                if (comPensionAuthRecordDO.getAuthStatus().equals(1)) {
                                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                                    BeanUtils.copyProperties(vo, mistake);
                                    setMistake(mistake, vo);
                                    mistake.setMistake("该人口本期已认证,不能修改");
                                    mistakes.add(mistake);
                                }else {
                                    //存在记录,执行修改
                                    ComPensionAuthRecordDO comPensionAuthRecordDO1 =
                                            updatePensionAuthRecordsDO(vo, comPensionAuthRecordDO, userId);
                                    updateList.add(comPensionAuthRecordDO1);
                                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                                    BeanUtils.copyProperties(vo, mistake);
                                    setMistake(mistake, vo);
                                    mistake.setMistake("该认证已存在,执行更新");
                                    mistakes.add(mistake);
                                }
                            }else {
                                // 不存在记录,则新增
                                comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId);
                                saveList.add(comPensionAuthRecordDO);
                            }
                        }
                    }
                } else {
                    // 不存在实有人口,则新增
                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
                    BeanUtils.copyProperties(vo, mistake);
                    setMistake(mistake, vo);
                    mistake.setMistake("不存在该实有人口,请先导入实有人口信息");
                    mistakes.add(mistake);
                }
                log.info("开始查询实有人口是否已存在完成");
            }
        } catch (Exception e) {
            log.info("出现错误,错误原因:" + e.getMessage());
        }
        log.info("处理完成导入数据");
        log.info("开始执行数据库导入");
        if (!saveList.isEmpty()) {
            log.info("执行数据库导入线下认证记录");
            comPensionAuthRecordService.saveBatch(saveList);
            log.info("数据库导入线下认证记录完成");
        }
        if (!updateList.isEmpty()) {
            log.info("执行数据库更新线下认证记录");
            comPensionAuthRecordDAO.updateAll(updateList);
            log.info("数据库更新线下认证记录完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
            log.info("返回错误数据");
            return R.fail(mistakes);
        }
        return R.ok(mistakes);
    }
    @Override
    public R exportPensionAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
        List<ComPensionAuthRecordStatisticExcleVO> comPensionAuthRecordStatisticExcleVOS = comPensionAuthRecordDAO.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
        return R.ok(comPensionAuthRecordStatisticExcleVOS);
    }
    @Override
    public R timedTaskPensionAuthStatisticsJobHandler() {
        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 -> {
            //养老认证统计
            ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = new ComPensionAuthStatisticsDO();
            comPensionAuthStatisticsDO.setCommunityId(act.getCommunityId());
            comPensionAuthStatisticsDO.setMonth(month);
            comPensionAuthStatisticsDO.setYear(year);
            comPensionAuthStatisticsDO.setCreateAt(nowDate);
            //本期应认证人数
            List<ComPensionAuthPensionerDO> comPensionAuthPensionerDOS = comPensionAuthPensionerDAO.selectList(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
                    .eq(ComPensionAuthPensionerDO::getCommunityId, act.getCommunityId())
                    .eq(ComPensionAuthPensionerDO::getIsAlive, 1)
                    .eq(ComPensionAuthPensionerDO::getIsRegister, 1));
            if (null != comPensionAuthPensionerDOS) {
                comPensionAuthStatisticsDO.setSum(comPensionAuthPensionerDOS.size());
            }
            comPensionAuthStatisticsDAO.insert(comPensionAuthStatisticsDO);
            //上期已认证人数
            int authSum = comPensionAuthPensionerDAO.havePensionAuthPensionerAmount(act.getCommunityId(), String.valueOf(year - 1));
            ComPensionAuthStatisticsDO comPensionAuthStatisticsDO1 = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
                    .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComPensionAuthStatisticsDO::getYear, year - 1));
            comPensionAuthStatisticsDO1.setAuthSum(authSum);
            comPensionAuthStatisticsDO1.setNoAuthSum(comPensionAuthStatisticsDO1.getSum() - comPensionAuthStatisticsDO1.getAuthSum());
            comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO1);
        });
        return R.ok();
    }
    private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo, ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId) {
        BeanUtils.copyProperties(vo, comPensionAuthRecordsDO);
        comPensionAuthRecordsDO.setSubmitUserId(userId);
        comPensionAuthRecordsDO.setApproverId(userId);
        comPensionAuthRecordsDO.setApprovalStatus(3);
        comPensionAuthRecordsDO.setApprovalDate(new Date());
        comPensionAuthRecordsDO.setAuthStatus(1);
        return comPensionAuthRecordsDO;
    }
    private ComPensionAuthRecordDO savePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo,  ComPensionAuthPensionerDO comPensionAuthPensionerDO, String authPeriod, Long userId) {
        ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO();
        BeanUtils.copyProperties(vo, comPensionAuthRecordDO);
        comPensionAuthRecordDO.setId(Snowflake.getId());
        comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId());
        comPensionAuthRecordDO.setAuthPeriod(authPeriod);
        comPensionAuthRecordDO.setSubmitUserId(userId);
        comPensionAuthRecordDO.setApproverId(userId);
        comPensionAuthRecordDO.setApprovalStatus(3);
        comPensionAuthRecordDO.setApprovalDate(new Date());
        comPensionAuthRecordDO.setAuthStatus(1);
        return comPensionAuthRecordDO;
    }
    private void setMistake(ComPensionAuthRecordImportMistakeExcelVO mvo,
                            ComPensionAuthRecordImportExcelVO vo) {
        mvo.setIsAlive(PopulHouseUseEnum.getCnDescByName(vo.getIsAlive()));
    }
    /**
     * 判重方法
     *
     * @param key
     *            主键
     * @param hashMap
     *            数据集
     * @return 存在即为false 不存在则为true
     */
    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java
New file
@@ -0,0 +1,21 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
import com.panzhihua.service_community.service.ComPensionAuthStatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
 * @title: ComPensionAuthStatisticsServiceImpl
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 养老认证统计服务实现类
 * @author: txb
 * @date: 2021/09/07 17:35
 */
@Slf4j
@Service
public class ComPensionAuthStatisticsServiceImpl extends ServiceImpl<ComPensionAuthStatisticsDAO, ComPensionAuthStatisticsDO> implements ComPensionAuthStatisticsService {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -543,7 +543,7 @@
            if(resultMap != null){
                ComEldersAuthStatisticsDO authStatisticsDO = new ComEldersAuthStatisticsDO();
                authStatisticsDO.setCommunityId(act.getCommunityId());
                authStatisticsDO.setMonth(DateUtils.getMonth(nowDate));
                authStatisticsDO.setMonth(DateUtils.getMonth(nowDate) + 1);
                authStatisticsDO.setYear(DateUtils.getYear(nowDate));
                authStatisticsDO.setCreateAt(nowDate);
                authStatisticsDO.setSum(Integer.parseInt(resultMap.get("oldCount").toString()));
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml
@@ -31,4 +31,21 @@
        id, population_id, street_id, community_id, phone, name, id_card, sex, age, birthday, personnel_category, is_register, is_alive, address, remark, receive_allowance_begin, create_at, create_by, update_at, update_by
    </sql>
    <select id="haveElderAuthElderliesAmount" resultType="java.lang.Integer">
        SELECT
            count( ceae.id )
        FROM
            com_elder_auth_elderlies ceae
        WHERE
            community_id = #{communityId}
          AND EXISTS (
                SELECT
                    1
                FROM
                    com_elder_auth_records cear
                WHERE
                    ceae.id = cear.elderlies_id
                  AND cear.auth_status = 1
                  AND cear.auth_period = #{authPeriod})
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -9,7 +9,7 @@
                <result column="auth_period" property="authPeriod" />
                <result column="submit_user_id" property="submitUserId" />
                <result column="auth_video" property="authVideo" />
                <result column="approver" property="approver" />
                <result column="approver_id" property="approverId" />
                <result column="approval_status" property="approvalStatus" />
                <result column="approval_date" property="approvalDate" />
                <result column="mark" property="mark" />
@@ -56,16 +56,16 @@
        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
            and cear.auth_date before #{pageElderAuthRecordsDTO.authDateEnd}
        </if>
        <if test="pageElderAuthRecordsDTO.approvalStatus != null">
        <if test="pageElderAuthRecordsDTO.approvalStatus != null and pageElderAuthRecordsDTO.approvalStatus != 0">
            and cear.approval_status = #{pageElderAuthRecordsDTO.approvalStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.authStatus != null">
        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
            and cear.auth_status = #{pageElderAuthRecordsDTO.authStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.personnelCategory != null">
        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
            and ceae.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
        </if>
        <if test="pageElderAuthRecordsDTO.isAlive != null">
        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
            and ceae.is_alive = #{pageElderAuthRecordsDTO.isAlive}
        </if>
        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
@@ -158,4 +158,122 @@
        </foreach>
        order by cear.create_at desc
    </select>
    <update id="updateAll" parameterType="java.util.List">
        <foreach collection="comElderAuthRecordsDOS" item="item" index="index" separator=";">
            update com_elder_auth_records
            <set>
                <if test="item.id != null">
                    `id` = #{item.id},
                </if>
                <if test="item.elderliesId != null">
                    `elderlies_id` = #{item.elderliesId},
                </if>
                <if test="item.authPeriod != null and item.authPeriod != ''">
                    `auth_period` = #{item.authPeriod},
                </if>
                <if test="item.submitUserId != null">
                    `submit_user_id` = #{item.submitUserId},
                </if>
                <if test="item.authVideo != null and item.authVideo != ''">
                    `auth_video` = #{item.authVideo},
                </if>
                <if test="item.address != null and item.address != ''">
                    `address` = #{item.address},
                </if>
                <if test="item.approverId != null">
                    `approver_id` = #{item.approverId},
                </if>
                <if test="item.approvalStatus != null">
                    `approval_status` = #{item.approvalStatus},
                </if>
                <if test="item.approvalDate != null">
                    `approval_date` = #{item.approvalDate},
                </if>
                <if test="item.mark != null and item.mark != ''">
                    `mark` = #{item.mark},
                </if>
                <if test="item.rejectReason != null and item.rejectReason != ''">
                    `reject_reason` = #{item.rejectReason},
                </if>
                <if test="item.authStatus != null">
                    `auth_status` = #{item.authStatus},
                </if>
                <if test="item.authDate != null">
                    `auth_date` = #{item.authDate},
                </if>
                `update_at` = NOW()
            </set>
            WHERE `id` = #{item.id}
        </foreach>
        ;
    </update>
    <select id="exportElderAuthRecordsStatistic" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO">
        SELECT
        su.`name` submitUserName,
        ceae.phone,
        ceae.`name`,
        ceae.id_card,
        CASE
            ceae.sex
            WHEN 1 THEN
            '男'
            WHEN 2 THEN
            '女'
            WHEN 3 THEN
            '其他'
        END sex,
        ceae.birthday,
        CASE
            ceae.personnel_category
            WHEN 1 THEN
            '80-89周岁'
            WHEN 2 THEN
            '90-99周岁'
            WHEN 3 THEN
            '100周岁(含)以上'
        END personnelCategory,
        ceae.address,
        CASE
            ceae.isAlive
            WHEN 1 THEN
            '是'
            WHEN 0 THEN
            '否'
        END is_alive,
        cear.auth_period,
        cear.auth_date,
        cear.mark,
        CASE
            cear.auth_status
            WHEN 1 THEN
            '已认证'
            WHEN 0 THEN
            '未认证'
        END authStatus
        FROM
        com_elder_auth_records cear
        LEFT JOIN com_elder_auth_elderlies ceae ON cear.elderlies_id = ceae.id
        LEFT JOIN sys_user su ON cear.submit_user_id = su.user_id
        WHERE
        ceae.community_id = #{pageElderAuthRecordsDTO.communityId}
        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
            and cear.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
        </if>
        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
            and cear.auth_status = #{pageElderAuthRecordsDTO.authStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
            and ceae.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
        </if>
        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
            and ceae.is_alive = #{pageElderAuthRecordsDTO.isAlive}
        </if>
        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
            and (ceae.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
            or  cear.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
        </if>
        order by cear.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml
@@ -31,4 +31,21 @@
        id, population_id, street_id, community_id, phone, name, id_card, sex, age, birthday, personnel_category, is_register, is_alive, address, remark, receive_allowance_begin, create_at, create_by, update_at, update_by
    </sql>
    <select id="havePensionAuthPensionerAmount" resultType="java.lang.Integer">
        SELECT
            count( cpap.id )
        FROM
            com_pension_auth_pensioners cpap
        WHERE
            community_id = #{communityId}
          AND EXISTS (
                SELECT
                    1
                FROM
                    com_pension_auth_records cpar
                WHERE
                    cpap.id = cpar.pensioner_id
                  AND cpar.auth_status = 1
                  AND cpar.auth_period = #{authPeriod})
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
@@ -9,7 +9,7 @@
                <result column="auth_period" property="authPeriod" />
                <result column="submit_user_id" property="submitUserId" />
                <result column="auth_video" property="authVideo" />
                <result column="approver" property="approver" />
                <result column="approver_id" property="approverId" />
                <result column="approval_status" property="approvalStatus" />
                <result column="approval_date" property="approvalDate" />
                <result column="mark" property="mark" />
@@ -25,4 +25,256 @@
        id, pensioner_id, auth_period, submit_user_id, auth_video, approver, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at
    </sql>
    <select id="pagePensionAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO">
        SELECT
        su.`name` submitUserName,
        cpap.phone,
        cpap.`name`,
        cpap.id_card,
        cpap.sex,
        cpap.birthday,
        cpap.personnel_category,
        cpap.address,
        cpap.is_alive,
        cpar.auth_period,
        cpar.auth_date,
        cpar.mark,
        cpar.approval_status,
        cpar.auth_status
        FROM
        com_pension_auth_records cpar
        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
        WHERE
        cpap.community_id = #{pageElderAuthRecordsDTO.communityId}
        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
            and cpar.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
        </if>
        <if test="pageElderAuthRecordsDTO.authDateBegin != null and pageElderAuthRecordsDTO.authDateBegin != ''">
            and cpar.auth_date after #{pageElderAuthRecordsDTO.authDateBegin}
        </if>
        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
            and cpar.auth_date before #{pageElderAuthRecordsDTO.authDateEnd}
        </if>
        <if test="pageElderAuthRecordsDTO.approvalStatus != null and pageElderAuthRecordsDTO.approvalStatus != 0">
            and cpar.approval_status = #{pageElderAuthRecordsDTO.approvalStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
            and cpar.auth_status = #{pageElderAuthRecordsDTO.authStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
            and cpap.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
        </if>
        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
            and cpap.is_alive = #{pageElderAuthRecordsDTO.isAlive}
        </if>
        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
            and (cpap.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
            or  cpar.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
        </if>
        order by cpar.create_at desc
    </select>
    <select id="detailPensionAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO">
        SELECT
            su.`name` submitUserName,
            cpap.phone,
            cpap.`name`,
            cpap.id_card,
            cpap.sex,
            cpap.birthday,
            cpap.personnel_category,
            cpap.address,
            cpap.is_alive,
            cpar.auth_period,
            cpar.auth_date,
            cpar.mark,
            cpar.auth_video,
            cpar.approval_status,
            su1.`name` as approverName,
            cpar.approval_date
        FROM
            com_pension_auth_records cpar
                LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
                LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
                LEFT JOIN sys_user su1 ON ccparear.approver_id = su1.user_id
        WHERE
            cpar.id = #{authRecordId}
    </select>
    <select id="getPensionAuthRecordsByIds" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO">
        SELECT
        su.`name` submitUserName,
        cpap.phone,
        cpap.`name`,
        cpap.id_card,
        CASE
        cpap.sex
        WHEN 1 THEN
        '男'
        WHEN 2 THEN
        '女'
        WHEN 3 THEN
        '其他'
        END sex,
        cpap.birthday,
        CASE
        cpap.personnel_category
        WHEN 1 THEN
        '80-89周岁'
        WHEN 2 THEN
        '90-99周岁'
        WHEN 3 THEN
        '100周岁(含)以上'
        END personnelCategory,
        cpap.address,
        CASE
        cpap.isAlive
        WHEN 1 THEN
        '是'
        WHEN 0 THEN
        '否'
        END is_alive,
        cpar.auth_period,
        cpar.auth_date,
        cpar.mark,
        CASE
        cpar.approval_status
        WHEN 1 THEN
        '待审核'
        WHEN 2 THEN
        '驳回'
        WHEN 3 THEN
        '通过'
        END approvalStatus
        FROM
        com_pension_auth_records cpar
        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
        WHERE
        cpar.id in
        <foreach collection="ids" item="id" open="(" separator="," close=")" >
            #{id}
        </foreach>
        order by cpar.create_at desc
    </select>
    <update id="updateAll" parameterType="java.util.List">
        <foreach collection="comPensionAuthRecordDOS" item="item" index="index" separator=";">
            update com_pension_auth_records
            <set>
                <if test="item.id != null">
                    `id` = #{item.id},
                </if>
                <if test="item.pensionerId != null">
                    `pensioner_id` = #{item.pensionerId},
                </if>
                <if test="item.authPeriod != null and item.authPeriod != ''">
                    `auth_period` = #{item.authPeriod},
                </if>
                <if test="item.submitUserId != null">
                    `submit_user_id` = #{item.submitUserId},
                </if>
                <if test="item.authVideo != null and item.authVideo != ''">
                    `auth_video` = #{item.authVideo},
                </if>
                <if test="item.address != null and item.address != ''">
                    `address` = #{item.address},
                </if>
                <if test="item.approverId != null">
                    `approver_id` = #{item.approverId},
                </if>
                <if test="item.approvalStatus != null">
                    `approval_status` = #{item.approvalStatus},
                </if>
                <if test="item.approvalDate != null">
                    `approval_date` = #{item.approvalDate},
                </if>
                <if test="item.mark != null and item.mark != ''">
                    `mark` = #{item.mark},
                </if>
                <if test="item.rejectReason != null and item.rejectReason != ''">
                    `reject_reason` = #{item.rejectReason},
                </if>
                <if test="item.authStatus != null">
                    `auth_status` = #{item.authStatus},
                </if>
                <if test="item.authDate != null">
                    `auth_date` = #{item.authDate},
                </if>
                `update_at` = NOW()
            </set>
            WHERE `id` = #{item.id}
        </foreach>
        ;
    </update>
    <select id="exportPensionAuthRecordsStatistic" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO">
        SELECT
        su.`name` submitUserName,
        cpap.phone,
        cpap.`name`,
        cpap.id_card,
        CASE
        cpap.sex
        WHEN 1 THEN
        '男'
        WHEN 2 THEN
        '女'
        WHEN 3 THEN
        '其他'
        END sex,
        cpap.birthday,
        CASE
        cpap.personnel_category
        WHEN 1 THEN
        '80-89周岁'
        WHEN 2 THEN
        '90-99周岁'
        WHEN 3 THEN
        '100周岁(含)以上'
        END personnelCategory,
        cpap.address,
        CASE
        cpap.isAlive
        WHEN 1 THEN
        '是'
        WHEN 0 THEN
        '否'
        END is_alive,
        cpar.auth_period,
        cpar.auth_date,
        cpar.mark,
        CASE
        cpar.auth_status
        WHEN 1 THEN
        '已认证'
        WHEN 0 THEN
        '未认证'
        END authStatus
        FROM
        com_pension_auth_records cpar
        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
        WHERE
        cpap.community_id = #{pageElderAuthRecordsDTO.communityId}
        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
            and cpar.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
        </if>
        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
            and cpar.auth_status = #{pageElderAuthRecordsDTO.authStatus}
        </if>
        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
            and cpap.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
        </if>
        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
            and cpap.is_alive = #{pageElderAuthRecordsDTO.isAlive}
        </if>
        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
            and (cpap.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
            or  cpar.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
        </if>
        order by cpar.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml
New file
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO">
                <id column="id" property="id" />
                <result column="year" property="year" />
                <result column="month" property="month" />
                <result column="sum" property="sum" />
                <result column="auth_sum" property="authSum" />
                <result column="no_auth_sum" property="noAuthSum" />
                <result column="create_at" property="createAt" />
                <result column="community_id" property="communityId" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, year, month, sum, auth_sum, no_auth_sum, create_at, community_id
    </sql>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java
@@ -1,9 +1,12 @@
package com.panzhihua.service_community;
import com.panzhihua.common.utlis.DateUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
@Slf4j
@SpringBootTest
@@ -14,4 +17,11 @@
        log.info("test");
    }
    @Test
    void test() {
        log.info(String.valueOf(DateUtils.getYear(new Date())));
        log.info(String.valueOf(DateUtils.getMonth(new Date())));
        log.info(String.valueOf(DateUtils.getYear(new Date())) + 0 + DateUtils.getMonth(new Date()));
    }
}
springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -216,4 +216,26 @@
        log.info("执行结果【{}】", r1.toString());
        return ReturnT.SUCCESS;
    }
    /**
     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
     */
    @XxlJob("timedTaskElderAuthStatisticsJobHandler")
    public ReturnT<String> timedTaskElderAuthStatisticsJobHandler(String param) {
        log.info("定时任务每月1号0点统计高龄老人本期应该认证总人数");
        R r = communityService.timedTaskElderAuthStatisticsJobHandler();
        log.info("执行结果【{}】", r.toString());
        return ReturnT.SUCCESS;
    }
    /**
     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
     */
    @XxlJob("timedTaskPensionAuthStatisticsJobHandler")
    public ReturnT<String> timedTaskPensionAuthStatisticsJobHandler(String param) {
        log.info("定时任务每年3月1号0点统计养老认证本期应该认证总人数");
        R r = communityService.timedTaskPensionAuthStatisticsJobHandler();
        log.info("执行结果【{}】", r.toString());
        return ReturnT.SUCCESS;
    }
}