罗元桥
2021-07-16 151bfa7ab112a0675f4ca48cc414f4398b30cd0d
Merge branch 'test' into 'master'

Test

See merge request root/zhihuishequ!104
10个文件已添加
40个文件已修改
1828 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java 566 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java 164 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java
@@ -18,8 +18,7 @@
    SO(30, "丧偶"),
    LH(40, "离婚"),
    FJ(50, "分居"),
    QT(90, "其他"),
    QT(60, "其他"),
    WSM(90, "未说明的婚姻状况");
    private final Integer code;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java
New file
@@ -0,0 +1,566 @@
package com.panzhihua.common.listen;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.panzhihua.common.constants.BcDictionaryConstants;
import com.panzhihua.common.enums.*;
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.ComMngPopulationImportErrorVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.ListUtils;
import com.panzhihua.common.utlis.PayUtil;
import com.panzhihua.common.utlis.StringUtils;
import lombok.extern.slf4j.Slf4j;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * @description: 实有人口导入监听
 * @author: Null
 * @date: 2021/3/11 13:26
 */
@Slf4j
public class ComMngPopulationConfirmServeExcelListen extends AnalysisEventListener<Map<Integer, String>> {
    private CommunityService communityService;
    private Long communityId;
    private static int headSize = 0;
    private Map<Integer, String> headData;
    public ComMngPopulationConfirmServeExcelListen(CommunityService communityService, Long communityId) {
        this.communityService = communityService;
        this.communityId = communityId;
    }
    /**
     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
     */
    private static final int BATCH_COUNT = 5000;
    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
    @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);
        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 {
            ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            for (Map<Integer, String> oneData : list) {
                ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
                //姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
                if (StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))) {
                    if (StringUtils.isEmpty(oneData.get(0))) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第1列");
                        importErrorVO.setErrorMsg("名字不可为空,请填写姓名");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setName(oneData.get(0));
                    if (StringUtils.isEmpty(oneData.get(1))) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第2列" + oneData.get(1));
                        importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    //判断身份证号码位数
                    if (oneData.get(1).length() != 18) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第2列" + oneData.get(1));
                        importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setCardNo(oneData.get(1));
                    //根据身份证号码解析年龄以及性别
                    //获取用户生日
                    String birthday = vo.getCardNo().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.getCardNo().substring(16, 17));
                    if (sex % 2 == 1) {
                        vo.setSex(PopulSexEnum.nan.getCode());
                    } else {
                        vo.setSex(PopulSexEnum.nv.getCode());
                    }
                }
                if (StringUtils.isNotEmpty(oneData.get(2))) {
//                    String nation = oneData.get(2);
//                    if(!nation.contains("族")){
//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
//                        importErrorVO.setErrorPosition("第" + index + "行,第3列");
//                        importErrorVO.setErrorMsg("您填写的民族格式有误");
//                        populationImportErrorVOList.add(importErrorVO);
//                        index++;
//                        continue;
//                    }
                    vo.setNation(oneData.get(2));
                }
                if (StringUtils.isNotEmpty(oneData.get(3))) {
                    vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
                }
                if (StringUtils.isNotEmpty(oneData.get(4))) {
                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第5列");
                        importErrorVO.setErrorMsg("您填写的是否租住有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setIsRent(isOk);
                }
                if (StringUtils.isNotEmpty(oneData.get(5))) {
                    String ra = convertRelation(oneData.get(5));
                    String relation = dictMap.get(ra);
                    if (StringUtils.isEmpty(relation)) {
//                        vo.setRelationStr(ra);
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第6列");
                        importErrorVO.setErrorMsg("您填写的与户主关系有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    } else {
                        vo.setRelation(Integer.valueOf(relation));
                    }
                }
                if (StringUtils.isEmpty(oneData.get(6))) {
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第7列");
                    importErrorVO.setErrorMsg("街路巷不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setRoad(oneData.get(6));
                if (StringUtils.isEmpty(oneData.get(7))) {
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第8列");
                    importErrorVO.setErrorMsg("小区号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setDoorNo(oneData.get(7).trim());
                if (StringUtils.isEmpty(oneData.get(8))) {
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第9列");
                    importErrorVO.setErrorMsg("楼排号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setFloor(oneData.get(8).trim());
                if (StringUtils.isEmpty(oneData.get(9))) {
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第10列");
                    importErrorVO.setErrorMsg("单元号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setUnitNo(oneData.get(9).trim());
                if (StringUtils.isEmpty(oneData.get(10))) {
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第11列");
                    importErrorVO.setErrorMsg("户室不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setHouseNo(oneData.get(10).trim());
                if (StringUtils.isNotEmpty(oneData.get(11))) {
                    vo.setBuildPurpose(oneData.get(11).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(12))) {
                    vo.setBuildArea(oneData.get(12).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(13))) {
                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第14列");
                        importErrorVO.setErrorMsg("您填写的房屋状态有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setHouseStatus(isOk);
                }
                if (StringUtils.isNotEmpty(oneData.get(14))) {
                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第15列");
                        importErrorVO.setErrorMsg("您填写的房屋用途有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
                }
                if (StringUtils.isNotEmpty(oneData.get(15))) {
                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第16列");
                        importErrorVO.setErrorMsg("您填写的管控状态有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setControlStatus(isOk);
                }
                if (StringUtils.isNotEmpty(oneData.get(16))) {
                    vo.setPhone(oneData.get(16).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(17))) {
                    vo.setNativePlace(oneData.get(17).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(18))) {
                    vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
                }
                if (StringUtils.isNotEmpty(oneData.get(19))) {
                    String ma = convertMarriage(oneData.get(19));
                    Integer isOk = PopulMarriageEnum.getCodeByName(ma);
                    if (isOk.equals(-1)) {
//                        vo.setMarriageStr(ma);
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    } else {
                        vo.setMarriage(isOk);
                    }
                }
                if (StringUtils.isNotEmpty(oneData.get(20))) {
                    vo.setHealthy(oneData.get(20).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(21))) {
                    vo.setBloodType(oneData.get(21).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(22))) {
                    vo.setReligion(oneData.get(22).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(23))) {
                    vo.setProfession(oneData.get(23).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(24))) {
                    vo.setWorkCompany(oneData.get(24).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(25))) {
                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(25));
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第26列");
                        importErrorVO.setErrorMsg("您填写的本地/外地有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setOutOrLocal(isOk);
                }
                if (StringUtils.isNotEmpty(oneData.get(26))) {
                    vo.setCensusRegister(oneData.get(26).trim());
                }
                if (StringUtils.isEmpty(oneData.get(27))) {
                    vo.setResidence(0);
                } else {
                    vo.setResidence(PopulIsOkEnum.getCodeByName(oneData.get(27).trim()));
                }
                if (StringUtils.isNotEmpty(oneData.get(28))) {
                    vo.setAddress(oneData.get(28).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(29))) {
                    Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(29));
                    if (isOk.equals(-1)) {
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第30列");
                        importErrorVO.setErrorMsg("您填写的人员类型有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setPersonType(isOk);
                }
                if (StringUtils.isNotEmpty(oneData.get(30))) {
                    vo.setCountry(oneData.get(30).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(31))) {
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                    vo.setDateOfDeparture(simpleDateFormat.parse(oneData.get(31)));
                }
                if (StringUtils.isNotEmpty(oneData.get(32))) {
                    vo.setPersonStatus(oneData.get(32).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(33))) {
                    vo.setMonthlyIncome(oneData.get(33).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(34))) {
                    vo.setFamilyStatus(oneData.get(34).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(35))) {
                    vo.setGoalInChina(oneData.get(35).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(36))) {
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                    vo.setDateOfArrival(simpleDateFormat.parse(oneData.get(36)));
                }
                if (StringUtils.isNotEmpty(oneData.get(37))) {
                    vo.setRemark(oneData.get(37).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(38))) {
                    vo.setIdCardPositive(oneData.get(38).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(39))) {
                    vo.setIdCardBack(oneData.get(39).trim());
                }
                if (StringUtils.isNotEmpty(oneData.get(40))) {
                    vo.setHouseHold(oneData.get(40).trim());
                }
                if (StringUtils.isEmpty(oneData.get(41))) {
                    vo.setDeath(0);
                } else {
                    vo.setDeath(PopulIsOkEnum.getCodeByName(oneData.get(41).trim()));
                }
                for (int i = 42; i < headSize; i++) {
                    if (oneData.get(i) != null && oneData.get(i).equals("是")) {
                        vo.getUserTagStr().add(headData.get(i).substring(0, headData.get(i).indexOf("(")));
                    }
                }
                //将重复的数据进行MD5加密实现去重
                String distinct = vo.getName() + vo.getCardNo() + vo.getRoad() + vo.getDoorNo() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                try {
                    String distinctPass = PayUtil.MD5(distinct);
                    if (StringUtils.isNotEmpty(distinctPass)) {
                        vo.setDistinctPass(distinctPass);
                    }
                } catch (Exception e) {
                    log.error("组装MD5加密字段失败,数据表格行数:" + index);
                    continue;
                }
                voList.add(vo);
                index++;
            }
            //客户需要暂时注释,等客户处理完成需要恢复
//            if(populationImportErrorVOList.isEmpty()){
//                R r = communityService.listSavePopulationServeExcelVO(voList, communityId);
//                if (!R.isOk(r)) {
//                    throw new ServiceException(r.getMsg());
//                }
//            }else{
//                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
//            }
            //根据list中的IdCard城市来去重
            List<ComMngPopulationServeExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass)).collect(Collectors.toList());
            R r = communityService.listSavePopulationConfirm(newVoList, communityId);
            if (!R.isOk(r)) {
                String errMsg = r.getMsg();
                List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg, ComMngPopulationImportErrorVO.class);
                if (!errorList.isEmpty()) {
                    populationImportErrorVOList.addAll(errorList);
                }
                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
            } else {
                if (!populationImportErrorVOList.isEmpty()) {
                    throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
                }
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            importErrorVO.setErrorPosition("第" + index + "行");
            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
            populationImportErrorVOList.add(importErrorVO);
            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
        } catch (ParseException e1) {
            e1.printStackTrace();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            importErrorVO.setErrorPosition("第" + index + "行");
            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
            populationImportErrorVOList.add(importErrorVO);
            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
        }
    }
    private String convertMarriage(String ma) {
        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
            ma = "已婚";
        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
            ma = "未婚";
        } else if (Objects.equals("初", ma)) {
            ma = "初婚";
        } else if (Objects.equals("再", ma)) {
            ma = "再婚";
        } else if (Objects.equals("复", ma)) {
            ma = "复婚";
        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
            ma = "丧偶";
        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
            ma = "离婚";
        } else if (Objects.equals("分", ma)) {
            ma = "分居";
        }
        return ma;
    }
    private String convertRelation(String ra) {
        if (ra.contains("户主")) {
            ra = "户主";
        } else if (Objects.equals(ra, "女儿")) {
            ra = "女";
        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
            ra = "子";
        } else if (Objects.equals(ra, "大女")) {
            ra = "长女";
        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
            ra = "次女";
        } else if (Objects.equals(ra, "二子")) {
            ra = "次子";
        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
            ra = "长子";
        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友")
                || ra.contains("男友") || ra.contains("男朋友")) {
            ra = "其他";
        } else if (Objects.equals(ra, "姐")) {
            ra = "姐姐";
        } else if (Objects.equals(ra, "户主")) {
            ra = "本人";
        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
            ra = "妻";
        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
            ra = "兄";
        } else if (Objects.equals(ra, "丈夫")) {
            ra = "夫";
        } else if (Objects.equals(ra, "丈母娘")) {
            ra = "岳母";
        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
            ra = "养子或继子";
        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
            ra = "养女或继女";
        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
            ra = "儿媳";
        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
            ra = "姨母";
        } else if (Objects.equals(ra, "二外孙女")) {
            ra = "外孙女";
        } else if (Objects.equals(ra, "外孙")) {
            ra = "外孙子";
        } else if (Objects.equals(ra, "侄儿")) {
            ra = "侄子";
        } else if (ra.contains("表")) {
            ra = "表兄弟、表姐妹";
        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
            ra = "继父或养父";
        } else if (Objects.equals(ra, "父")) {
            ra = "父亲";
        } else if (Objects.equals(ra, "弟弟")) {
            ra = "弟";
        } else if (Objects.equals(ra, "孙")) {
            ra = "孙子";
        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
            ra = "孙媳妇或外孙媳妇";
        } else if (Objects.equals(ra, "妹")) {
            ra = "妹妹";
        } else if (Objects.equals(ra, "祖父母")) {
            ra = "祖父母或外祖父母";
        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
            ra = "兄弟姐妹";
        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
            ra = "其他兄弟姐妹";
        } else if (Objects.equals(ra, "奶奶")) {
            ra = "祖母";
        } else if (Objects.equals(ra, "爷爷")) {
            ra = "祖父";
        } else if (Objects.equals(ra, "爷爷")) {
            ra = "祖父";
        } else if (ra.contains("堂")) {
            ra = "堂兄弟、堂姐妹";
        }
        return ra;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -434,6 +434,8 @@
            }else{
                if(!populationImportErrorVOList.isEmpty()){
                    throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
                }else {
                    R r1 = communityService.listSavePopulationConfirm(newVoList, communityId);
                }
            }
        } catch (NumberFormatException e) {
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java
New file
@@ -0,0 +1,110 @@
package com.panzhihua.common.model.dtos.community;
import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 *  退役军人DTO
 */
@Data
@ApiModel("退役军人")
public class ComExServicemanDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 分页-当前页数
     */
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum;
    /**
     * 分页-每页记录数
     */
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize;
    /**
     * 年龄开始查询字段
     */
    @ApiModelProperty("年龄开始查询字段")
    private String ageStart;
    /**
     * 年龄开始时间查询字段
     */
    @ApiModelProperty(value = "年龄开始时间查询字段",hidden = true)
    private String ageStartTime;
    /**
     * 年龄结束查询字段
     */
    @ApiModelProperty("年龄结束查询字段")
    private String ageEnd;
    /**
     * 年龄结束时间查询字段
     */
    @ApiModelProperty(value = "年龄结束时间查询字段",hidden = true)
    private String ageEndTime;
    /**
     * 民族
     */
    @ApiModelProperty("民族")
    private String nation;
    /**
     * 主键id
     */
    @ApiModelProperty(value="主键id")
    private Long id;
    /**
     * 街道id
     */
    @ApiModelProperty(value="街道id",hidden = true)
    private Integer streetId;
    /**
     * 社区id
     */
    @ApiModelProperty(value="社区id",hidden = true)
    private Long CommunityId;
    /**
     * 姓名
     */
    @ApiModelProperty(value="姓名")
    private String name;
    /**
     * 性别
     */
    @ApiModelProperty(value="性别")
    private String sex;
    /**
     * 身份证号码
     */
    @ApiModelProperty(value="身份证号码")
    @EncryptQuery
    private String cardNo;
    /**
     * 联系电话
     */
    @ApiModelProperty(value="联系电话")
    private String phone;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private Date createAt;
    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间")
    private Date updateAt;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java
@@ -86,7 +86,7 @@
     * 小区id(实有房屋id)
     */
    @ApiModelProperty(value="小区id(实有房屋id)")
    private Integer villageId;
    private Long villageId;
    /**
     * 家庭成员(姓名)
     */
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java
@@ -21,4 +21,8 @@
    @ApiModelProperty(value = "车主名称")
    private String userName;
    @ApiModelProperty(value = "小区id",hidden = true)
    private Long villageId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java
New file
@@ -0,0 +1,33 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 退役军人Vo
 */
@Data
@ApiModel("退役军人")
public class ComExServicemanVO {
    /**
     * 退役军人id
     */
    @ApiModelProperty("退役军人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("姓名")
    private String name;
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,6 +20,7 @@
public class ComMngCarVO implements Serializable {
    @ApiModelProperty("主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("社区ID")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,6 +14,7 @@
     * 房屋id
     */
    @ApiModelProperty("房屋id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long houseId;
    /**
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,6 +20,7 @@
public class ComMngPopulationCarVO implements Serializable {
    @ApiModelProperty("主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("车牌号")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,6 +20,7 @@
     * 实有房屋id
     */
    @ApiModelProperty("实有房屋id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 房屋地址
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -144,7 +144,7 @@
    @ExcelProperty(value = "是否死亡(是/否)", index = 41)
    private Integer death;
    @ExcelProperty(value = "退役军人(是/否)", index = 41)
    @ExcelProperty(value = "退役军人(是/否)", index = 42)
    private Integer veterans;
    @ExcelProperty(value = "残疾人(是/否)", index = 43)
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
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;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import com.panzhihua.common.model.helper.sensitive.Sensitive;
@@ -30,6 +32,7 @@
     * 自增 id
     */
    @ApiModelProperty("实有人口id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 街道id
@@ -45,6 +48,7 @@
     * 小区id(实有房屋id)
     */
    @ApiModelProperty("小区id(实有房屋id)")
    @JsonSerialize(using = ToStringSerializer.class)
    private long villageId;
    /**
     * 家庭成员(姓名)
@@ -147,7 +151,7 @@
    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
    private Integer cultureLevel;
    @ApiModelProperty("婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)")
    @ApiModelProperty("婚姻状况(10.未婚 20.已婚 21.初婚 22.再婚 23.复婚 30.丧偶 40.离婚 90.未说明的婚姻状况 60.其他)")
    private Integer marriage;
    @ApiModelProperty("健康状况")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,6 +19,7 @@
public class ComMngRealAssetsVO implements Serializable {
    @ApiModelProperty("主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty(value = "社区ID",hidden = true)
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.common.model.vos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 实有单位统计返回参数
 */
@Data
@ApiModel("实有单位统计返回参数")
public class ComMngRealCompanyTotalVO {
    /**
     * 实有单位总数
     */
    @ApiModelProperty("实有单位总数")
    private Long companyTotal;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,6 +19,7 @@
public class ComMngRealCompanyVO implements Serializable {
    @ApiModelProperty("主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty(value = "社区ID",hidden = true)
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java
@@ -34,4 +34,10 @@
    @ApiModelProperty("实有房屋总数")
    private Integer houseTotal = 0;
    @ApiModelProperty("走访任务当日完成数量")
    private Integer zfTodayNum = 0;
    @ApiModelProperty("走访任务当月完成数量")
    private Integer zfMonthNum = 0;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.user;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import com.panzhihua.common.model.helper.sensitive.Sensitive;
@@ -14,6 +16,7 @@
public class ComHouseMemberVo {
    @ApiModelProperty("房屋成员用户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long populId;
    @ApiModelProperty("姓名")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.user;
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.validated.AddGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -21,9 +23,11 @@
public class ComMngFamilyInfoVO {
    @ApiModelProperty("自增id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("本人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;
    @ApiModelProperty("与本人关系")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.user;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
@@ -12,6 +14,7 @@
public class ComMngHouseVo {
    @ApiModelProperty("房屋id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long houseId;
    @ApiModelProperty("房屋地址")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.user;
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;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import com.panzhihua.common.model.helper.sensitive.Sensitive;
@@ -25,6 +27,7 @@
public class InputUserInfoVO implements Serializable {
    @ApiModelProperty("用户编号")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @ApiModelProperty("生日")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -1454,6 +1454,15 @@
    R pageQueryComMngRealCompany(@RequestBody PageComMngRealCompanyDTO pageComMngRealCompanyDTO);
    /**
     * 社区后台实有单位统计
     *
     * @param communityId 社区id
     * @return 统计结果
     */
    @PostMapping("/common/data/company/statistics")
    R getComMngRealCompanyTotalByAdmin(@RequestParam("communityId") Long communityId);
    /**
     * 社区后台添加修改实有单位
     *
     * @param comMngRealCompanyVO
@@ -3626,4 +3635,13 @@
     */
    @GetMapping("/eventgrid/community/list")
    R getCommunityLists();
    /**
     * 分页查询退役军人列表
     *
     * @param comExServicemanDTO 请求参数
     * @return 退役军人列表
     */
    @PostMapping("/population/page/exServiceman")
    R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -620,7 +620,7 @@
     * @param id
     * @return
     */
    @DeleteMapping("common/data/special/delete")
    @DeleteMapping("common/data/special/delete1")
    R deleteSpecialInputUser(@RequestParam(value = "id") Long id);
    /**
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
@@ -395,10 +395,18 @@
        return communityService.specialInputUser(pageInputUserDTO);
    }
    @ApiOperation(value = "特殊群体统计接口", response = ComMngPopulationVO.class)
    @PostMapping("/special/statistics")
    public R getComMngRealCompanyTotalByAdmin() {
        //获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.getComMngRealCompanyTotalByAdmin(communityId);
    }
    @ApiOperation(value = "特殊群体/删除", response = InputUserInfoVO.class)
    @DeleteMapping("/special/delete")
    public R deleteSpecialInputUser(@RequestParam(value = "id") Long id) {
        return userService.deleteSpecialInputUser(id);
        return communityService.deleteSpecialInputUser(id);
    }
//    @ApiOperation(value = "特殊群体 导出特殊群体Excel")
@@ -567,6 +575,14 @@
        return communityService.pageQueryComMngRealCompany(pageComMngRealCompanyDTO);
    }
    @ApiOperation(value = "实有单位统计接口", response = ComMngRealCompanyVO.class)
    @PostMapping("/company/statistics")
    public R getSpecialInputUserTagsTotalByAdmin() {
        //获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.getComMngRealCompanyTotalByAdmin(communityId);
    }
    @ApiOperation(value = "添加/修改实有单位")
    @PostMapping("/company/save")
    public R saveComMngRealCompany(@RequestBody ComMngRealCompanyVO comMngRealCompanyVO) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -7,12 +7,13 @@
import com.alibaba.fastjson.JSON;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.enums.PopulIsOkEnum;
import com.panzhihua.common.enums.PopulOutOrLocalEnum;
import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
import com.panzhihua.common.enums.PopulSexEnum;
import com.panzhihua.common.listen.ComMngPopulationConfirmServeExcelListen;
import com.panzhihua.common.listen.ComMngPopulationServeExcelListen;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.vos.community.ComExServicemanVO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.*;
@@ -98,6 +99,30 @@
        return R.ok();
    }
    /**
     * 确认导入实有人口(有则更新,无则新建)
     *
     * @param file
     * @param request
     * @return 导入结果
     */
    @ApiOperation(value = "excel-确认导入实有人口")
    @PostMapping(value = "/import/confirm",consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R listSavePopulationConfirm(@RequestParam MultipartFile file, HttpServletRequest request){
        //获取文件名
        String fileName = file.getOriginalFilename();
        log.info("传入文件名字【{}】", fileName);
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
            ComMngPopulationConfirmServeExcelListen comMngPopulationConfirmServeExcelListen = new ComMngPopulationConfirmServeExcelListen(communityService, this.getCommunityId());
            EasyExcel.read(inputStream, null, comMngPopulationConfirmServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
            e.printStackTrace();
        }
        return R.ok();
    }
    @ApiOperation(value = "excel导入实有人口notoken")
    @PostMapping(value = "/serve/import/noToken", consumes = "multipart/*", headers = "content-type=multipart/form-date")
@@ -526,4 +551,15 @@
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.getHouseTotalByAdmin(communityId);
    }
    @ApiOperation(value = "分页查询退役军人列表", response = ComExServicemanVO.class)
    @PostMapping("/pageExServiceman")
    public R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO) {
        //获取登陆用户绑定社区id
        LoginUserInfoVO loginUser = this.getLoginUserInfo();
        if(loginUser != null){
            comExServicemanDTO.setCommunityId(loginUser.getCommunityId());
        }
        return communityService.pageExServiceman(comExServicemanDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java
@@ -84,6 +84,7 @@
        }
        if(StringUtils.isNotEmpty(userInfoAppDTO.getNickName())){
            loginUserInfo.setNickName(userInfoAppDTO.getNickName());
            loginUserInfo.setName(userInfoAppDTO.getNickName());
            loginUserInfo.setImageUrl(null);
        }
        return userService.putUser(loginUserInfo);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -135,6 +135,17 @@
    }
    /**
     * 社区后台实有单位统计
     *
     * @param communityId 社区id
     * @return 统计结果
     */
    @PostMapping("/company/statistics")
    public R getComMngRealCompanyTotalByAdmin(@RequestParam("communityId") Long communityId){
        return comMngRealCompanyService.getComMngRealCompanyTotalByAdmin(communityId);
    }
    /**
     * 社区后台添加修改实有单位
     *
     * @param comMngRealCompanyVO
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
@@ -1,12 +1,13 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.service.ComExServicemanService;
import com.panzhihua.service_community.service.ComMngPopulationHouseService;
import com.panzhihua.service_community.service.ComMngPopulationService;
import lombok.extern.slf4j.Slf4j;
@@ -24,6 +25,8 @@
    private ComMngPopulationService comMngPopulationService;
    @Resource
    private ComMngPopulationHouseService comMngPopulationHouseService;
    @Resource
    private ComExServicemanService comExServicemanService;
    /**
     * 获取人口数据信息
@@ -131,5 +134,16 @@
        return comMngPopulationHouseService.populationRelationHouse(relationHouseDTO);
    }
    /**
     * 分页查询退役军人列表
     *
     * @param comExServicemanDTO 请求参数
     * @return 退役军人列表
     */
    @PostMapping("/page/exServiceman")
    public R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO){
        return comExServicemanService.getPageExServiceman(comExServicemanDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -71,7 +71,7 @@
            "AND w.`status` = #{comActMicroWishVO.status}  " +
            " </if> " +
            "<if test='comActMicroWishVO.status == 3  and comActMicroWishVO.isPageMyWish==null'>" +
            "AND ( w.`status` = 3 or  w.`status` = 5 ) " +
            "AND w.`status` = 3 " +
            " </if> " +
            "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status!=0 and comActMicroWishVO.isPageMyWish!=null and comActMicroWishVO.status==1'>" +
            "AND w.`status` =1  " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java
New file
@@ -0,0 +1,57 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO;
import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
import com.panzhihua.common.model.vos.community.ComExServicemanVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyBelongsVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
import com.panzhihua.service_community.model.dos.ComExServicemanDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * @description: 退役军人
 * @author: txb
 * @date: 2021/7/15 14:00
 */
@Mapper
public interface ComExServicemanDAO extends BaseMapper<ComExServicemanDO> {
    @Select("<script> " +
            " SELECT  " +
            "  id,  " +
            "  com_name AS comName,  " +
            "  legal_person AS legalPerson,  " +
            "  leader,  " +
            "  contacts_phone AS contactsPhone,  " +
            "  scope,  " +
            "  credit_code AS creditCode,  " +
            "  province_adcode AS provinceAdcode,  " +
            "  city_adcode AS cityAdcode,  " +
            "  district_adcode AS districtAdcode,  " +
            "  address,  " +
            "  create_at AS createAt  " +
            "FROM  " +
            "  com_ex_serviceman   where 1=1" +
            "<if test='pageComMngRealCompanyDTO.legalPerson != null and pageComMngRealCompanyDTO.legalPerson.trim() != &quot;&quot;'>" +
            " and t.legal_person LIKE concat( #{pageComMngRealCompanyDTO.legalPerson}, '%' )  " +
            " </if> " +
            "<if test='pageComMngRealCompanyDTO.comName != null and pageComMngRealCompanyDTO.comName.trim() != &quot;&quot;'>" +
            " and t.com_name LIKE concat( '%',#{pageComMngRealCompanyDTO.comName}, '%' )  " +
            " </if> " +
            "<if test='pageComMngRealCompanyDTO.communityId != null and pageComMngRealCompanyDTO.communityId != 0'>" +
            " and t.community_id = #{pageComMngRealCompanyDTO.communityId} " +
            " </if> " +
            " order by t.create_at desc" +
            "</script>")
    IPage<ComExServicemanVO> pageQueryComExServiceman(Page page, @Param(value = "comExServicemanDTO") ComExServicemanDTO comExServicemanDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java
@@ -88,6 +88,9 @@
            "<if test='exportComMngCarExcelDTO.communityId != null and exportComMngCarExcelDTO.communityId != 0'>" +
            " and t.community_id = #{exportComMngCarExcelDTO.communityId} " +
            " </if> " +
            "<if test='exportComMngCarExcelDTO.villageId != null and exportComMngCarExcelDTO.villageId != 0'>" +
            " and t.village_id = #{exportComMngCarExcelDTO.villageId} " +
            " </if> " +
            "<if test='exportComMngCarExcelDTO.userName != null and exportComMngCarExcelDTO.userName.trim() != &quot;&quot;'>" +
            " and t.user_name LIKE concat( #{exportComMngCarExcelDTO.userName}, '%' )  " +
            " </if> " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -69,10 +69,12 @@
            "cmp.remark, " +
            "cmv.alley, " +
            "cmp.native_place, " +
            "cmphu.relation, " +
            "cmp.nation  " +
            "FROM  " +
            "com_mng_population AS cmp " +
            "LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id " +
            "LEFT JOIN com_mng_population_house_user AS cmphu ON cmphu.popul_id = cmp.id " +
            "<where>" +
            "<if test='comMngPopulationVO.name != null and comMngPopulationVO.name.trim() != &quot;&quot;'>" +
            "AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%') " +
@@ -155,10 +157,12 @@
            "cmp.birthday,  " +
            "cmp.update_at,  " +
            "cmp.address,  " +
            "cmp.is_rent  " +
            "cmp.is_rent,  " +
            "cmphu.relation  " +
            "FROM  " +
            "com_mng_population AS cmp " +
            "LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id " +
            "LEFT JOIN com_mng_population_house_user AS cmphu ON cmphu.popul_id = cmp.id " +
            "<where>" +
            "<if test='comMngPopulationVO.name != null and comMngPopulationVO.name != &quot;&quot;'>" +
            "AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%') " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -142,7 +142,7 @@
            " AND cmv.alley = #{populationHouseAdminDTO.road}  " +
            " </if> " +
            "<if test='populationHouseAdminDTO.doorNo != null and populationHouseAdminDTO.doorNo != &quot;&quot; '>" +
            " AND cmv.houseNum = #{populationHouseAdminDTO.doorNo}  " +
            " AND cmv.house_num = #{populationHouseAdminDTO.doorNo}  " +
            " </if> " +
            "<if test='populationHouseAdminDTO.floor != null and populationHouseAdminDTO.floor != &quot;&quot; '>" +
            " AND cmph.floor = #{populationHouseAdminDTO.floor}  " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -27,6 +27,9 @@
    @Select("select house_id from com_mng_population_house_user where popul_id = #{populationId}")
    List<Long> getPopulationHouseIdByUserId(@Param("populationId") Long populationId);
    @Select("select relation from com_mng_population_house_user where popul_id = #{populationId}")
    List<Integer> getPopulationRelationByUserId(@Param("populationId") Long populationId);
    @Select("select popul_id from com_mng_population_house_user where house_id = #{houseId}")
    List<Long> getPopulationHouseIdByhHosueId(@Param("houseId") Long houseId);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java
@@ -6,9 +6,7 @@
import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO;
import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyBelongsVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.service_community.model.dos.ComMngRealCompanyDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -88,7 +86,8 @@
            "  street.name AS streetName, " +
            "  act.name AS communityName, " +
            "  street.street_id AS streetId, " +
            "  act.community_id AS communityId " +
            "  act.community_id AS communityId, " +
            "  act.create_at AS creatAt " +
            " FROM  " +
            "  com_act act " +
            "  LEFT JOIN com_street street ON act.street_id = street.street_id " +
@@ -103,4 +102,7 @@
            " limit 1 " +
            "</script>")
    ComMngRealCompanyBelongsVO queryComMngRealCompanyBelongs(@Param(value = "pageComMngRealCompanyBelongsDTO") ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
    @Select("select count(id) as companyTotal from com_mng_real_company where community_id = #{communityId}")
    ComMngRealCompanyTotalVO getComMngRealCompanyTotalByAdmin(@Param("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java
New file
@@ -0,0 +1,142 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "com_ex_serviceman")
public class ComExServicemanDO implements Serializable {
  private static final long serialVersionUID = 1L;
  /**
   * 自增 id
   */
  @TableId(type = IdType.INPUT)
  private Long id;
  /**
   * 用户 id
   */
  private Long userId;
  /**
   * 街道 id
   */
  private Long streetId;
  /**
   * 社区 id
   */
  private Long actId;
  /**
   * 0是正常1是异常 id
   */
  private Integer status;
  /**
   * 机构
   */
  private String organization;
  /**
   * 名字
   */
  private String name;
  /**
   * 身份证号码
   */
  @EncryptDecryptField
  private String cardNo;
  /**
   * 性别
   */
  private String sex;
  /**
   * 出生年月
   */
  private String birthday;
  /**
   * 残疾人证
   */
  private String level;
  /**
   * 文化程度(取字典表国家编码))
   */
  private String cultureLevel;
  /**
   * 性别名称
   */
  private String sexName;
  /**
   * 联系电话
   */
  @EncryptDecryptField
  private String phone;
  /**
   * 头像
   */
  private String image;
  /**
   * 民族
   */
  private String nation;
  /**
   * 残疾部位/类别
   */
  private String disableType;
  /**
   * 残疾界别
   */
  private String disableLevel;
  /**
   * 监护人联系电话
   */
  @EncryptDecryptField
  private String guardianPhone;
  /**
   * 地址
   */
  private String address;
  /**
   * 创建时间
   */
  @TableField(fill = FieldFill.INSERT)
  private Date createAt;
  /**
   * 创建用户
   */
  private Long createBy;
  /**
   * 修改时间
   */
  @TableField(fill = FieldFill.UPDATE)
  private Date updateAt;
  /**
   * 修改用户
   */
  private Long updateBy;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java
New file
@@ -0,0 +1,138 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "com_low_income_people_copy")
public class ComLowIncomePeopleCopyDO implements Serializable {
  private static final long serialVersionUID = 1L;
  /**
   * 自增 id
   */
  @TableId(type = IdType.INPUT)
  private Long id;
  /**
   * 用户 id
   */
  private Long userId;
  /**
   * 街道 id
   */
  private Long streetId;
  /**
   * 社区 id
   */
  private Long actId;
  /**
   * 月份
   */
  private String month;
  /**
   * 户主名字
   */
  private String name;
  /**
   * 性别
   */
  private String sex;
  /**
   * 家庭成员人数
   */
  private String familyMemberTotal;
  /**
   * 家庭月收入(元)
   */
  private String familyMonthIncome;
  /**
   * 家庭成员身份证号
   */
  @EncryptDecryptField
  private String familyMemberCardNo;
  /**
   * 文化程度(取字典表国家编码))
   */
  private String cultureLevel;
  /**
   * 性别名称
   */
  private String sexName;
  /**
   * 民族
   */
  private String nation;
  /**
   * 身份证号码
   */
  @EncryptDecryptField
  private String cardNo;
  /**
   * 联系电话
   */
  @EncryptDecryptField
  private String phone;
  /**
   * 地址
   */
  private String address;
  /**
   * 出生年月
   */
  private String birthday;
  /**
   * 申请事由
   */
  private String applyForReason;
  /**
   * 备注
   */
  private String note;
  /**
   * 创建时间
   */
  @TableField(fill = FieldFill.INSERT)
  private Date createAt;
  /**
   * 创建用户
   */
  private Long createBy;
  /**
   * 修改时间
   */
  @TableField(fill = FieldFill.UPDATE)
  private Date updateAt;
  /**
   * 修改用户
   */
  private Long updateBy;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java
New file
@@ -0,0 +1,149 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName(value = "com_low_security_people")
public class ComLowSecurityPeopleDO implements Serializable {
  private static final long serialVersionUID = 1L;
  /**
   * 自增 id
   */
  @TableId(type = IdType.INPUT)
  private Long id;
  /**
   * 用户 id
   */
  private Long userId;
  /**
   * 街道 id
   */
  private Long streetId;
  /**
   * 社区 id
   */
  private Long actId;
  /**
   * 名字
   */
  private String name;
  /**
   * 性别
   */
  private String sex;
  /**
   * 家庭成员身份证号
   */
  @EncryptDecryptField
  private String familyMemberCardNo;
  /**
   * 家庭情况
   */
  private String familyStatus;
  /**
   * 文化程度(取字典表国家编码))
   */
  private String cultureLevel;
  /**
   * 低保类别
   */
  private String level;
  /**
   * 性别名称
   */
  private String sexName;
  /**
   * 民族
   */
  private String nation;
  /**
   * 身份证号码
   */
  @EncryptDecryptField
  private String cardNo;
  /**
   * 联系电话
   */
  @EncryptDecryptField
  private String phone;
  /**
   * 地址
   */
  private String address;
  /**
   * 出生年月
   */
  private String birthday;
  /**
   * 家庭成员
   */
  private String familyMember;
  /**
   * 保障人数
   */
  private Integer securityNumber;
  /**
   * 享受低保金额(元)
   */
  private BigDecimal subsidiesAmount;
  /**
   * 享社保卡账号
   */
  private String socialSecurityCardNumber;
  /**
   * 备注
   */
  private String note;
  /**
   * 创建时间
   */
  @TableField(fill = FieldFill.INSERT)
  private Date createAt;
  /**
   * 创建用户
   */
  private Long createBy;
  /**
   * 修改时间
   */
  @TableField(fill = FieldFill.UPDATE)
  private Date updateAt;
  /**
   * 修改用户
   */
  private Long updateBy;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
@@ -43,6 +43,11 @@
     * 年龄
     */
//    private Integer age;
    /**
     * 证件类型
     */
    private String certificateType;
    /**
     * 身份证号码
     */
@@ -53,6 +58,12 @@
     * 临时用
     */
    private String cardNoStr;
    /**
     * 默认为身份证到期时间,可以是其他证件到期时间
     */
    private Date cardNoExpirationDate;
    /**
     * 街路巷
     */
@@ -78,7 +89,7 @@
     */
    private Integer politicalOutlook;
    /**
     * 工作单位
     * 工作单位/学校
     */
    private String workCompany;
    /**
@@ -98,52 +109,41 @@
     * 户口所在地
     */
    private String censusRegister;
    /**
     * 备注
     * 人员类型(1、户籍人员2、留守人员3、外地人员4、境外人员)
     */
    private String remark;
    private String personType;
    /**
     * 标签集合(多个标签以,隔开)
     * 国家code(取字典表国家标准编码)
     */
    private String label;
    private String country;
    /**
     * 创建时间
     * 离开日期(境外人员填写)
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    private Date dateOfDeparture;
    /**
     * 籍贯
     */
    private String nativePlace;
    /**
     * 民族
     * 民族code,从字典表取国家标准码
     */
    private String nationCode;
    /**
     * 民族
     */
    private String nation;
    /**
     * 是否租住(0.否 1.是)
     */
    private Integer isRent;
    /**
     * 小区名字
     */
    @TableField(exist = false)
    private String villageName;
    /**
     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
     */
//    private Integer relation;
//
//    private String relationStr;
    /**
     * 文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)
@@ -162,9 +162,49 @@
    private String healthy;
    /**
     * 居住地址
     * 血型
     */
    private String address;
    private String bloodType;
    /**
     * 宗教信仰
     */
    private String religion;
    /**
     * 职业
     */
    private String profession;
    /**
     * 人员状态:正常、失联、出国(取字典表)
     */
    private String personStatus;
    /**
     * 是否死亡 1是 、0否
     */
    private String death;
    /**
     * 头像图片地址
     */
    private String headPortrait;
    /**
     * 月收入情况
     */
    private String monthlyIncome;
    /**
     * 家庭情况(取字典表国家标准编码)
     */
    private String familyStatus;
    /**
     * 来华目的(境外人员填写)
     */
    private String goalInChina;
    /**
     * 出生年月日
@@ -172,6 +212,74 @@
    private String birthday;
    /**
     * 抵达日期(境外人员填写)
     */
    private Date dateOfArrival;
    /**
     * 标签集合(多个标签以,隔开)
     */
    private String label;
    /**
     * 证件照(人面像)照片
     */
    private String cardPhotoFront;
    /**
     * 证件照(国徽面)照片
     */
    private String cardPhotoBack;
    /**
     * 户口本照片
     */
    private String familyBook;
    /**
     * 删除标识
     */
    private Integer deleteFlag;
    /**
     * 备注
     */
    private String remark;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 小区名字
     */
    @TableField(exist = false)
    private String villageName;
    /**
     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
     */
//    private Integer relation;
//
//    private String relationStr;
    /**
     * 是否居住地
     */
    private String residence;
    /**
     * 居住地址
     */
    private String address;
    /**
     * 居住地房屋id
     */
    private Long houseId;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java
@@ -1,6 +1,8 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -63,6 +63,12 @@
    private Date createAt;
    /**
     * 更改时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
     */
    public interface relation{
@@ -89,6 +95,7 @@
                ", populId=" + populId +
                ", houseId=" + houseId +
                ", createAt=" + createAt +
                ", updateAt=" + updateAt +
                "}";
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@@ -18,6 +20,7 @@
     * villageId
     */
    @TableId(value = "village_id",type = IdType.INPUT)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long villageId;
    /**
     * 街路巷
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java
New file
@@ -0,0 +1,31 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseEditAdminDTO;
import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComExServicemanDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
import java.util.List;
/**
 * @auther txb
 * @create 2021-07-15 15:52:31
 * @describe 退役军人服务类
 */
public interface ComExServicemanService extends IService<ComExServicemanDO> {
    /**
     * 分页查询退役军人列表
     * @param comExServicemanDTO   请求参数
     * @return  退役军人列表
     */
    R getPageExServiceman(ComExServicemanDTO comExServicemanDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java
@@ -6,6 +6,8 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -61,4 +63,12 @@
     * @return
     */
    R belongsComMngRealCompany(ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
    /**
     * 社区后台实有单位统计
     *
     * @param communityId 社区id
     * @return 统计结果
     */
    R getComMngRealCompanyTotalByAdmin(Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java
New file
@@ -0,0 +1,56 @@
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.model.dtos.community.*;
import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComExServicemanVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyBelongsVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
import com.panzhihua.service_community.dao.ComExServicemanDAO;
import com.panzhihua.service_community.dao.ComMngRealCompanyDAO;
import com.panzhihua.service_community.model.dos.ComExServicemanDO;
import com.panzhihua.service_community.model.dos.ComMngRealCompanyDO;
import com.panzhihua.service_community.service.ComExServicemanService;
import com.panzhihua.service_community.service.ComMngRealCompanyService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * @description: 退役军人
 * @author: txb
 * @date: 2021/7/15 16:00
 */
@Service
public class ComExServicemanServiceImpl extends ServiceImpl<ComExServicemanDAO, ComExServicemanDO> implements ComExServicemanService {
    @Resource
    private ComExServicemanDAO comExServicemanDAO;
    @Override
    public R getPageExServiceman(ComExServicemanDTO comExServicemanDTO) {
        Page page = new Page<>();
        Long pageNum = comExServicemanDTO.getPageNum();
        Long pageSize = comExServicemanDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1l;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComExServicemanVO> iPage = comExServicemanDAO.pageQueryComExServiceman(page, comExServicemanDTO);
        return R.ok(iPage);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -180,6 +180,15 @@
//        if (!comMngFamilyInfoVOS.isEmpty()) {
//            comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
//        }
        //设置户主关系
        List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS = comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().lambda().eq(ComMngPopulationHouseUserDO::getPopulId, populationId)));
        if (!comMngPopulationHouseUserDOS.isEmpty()) {
            comMngPopulationVO.setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation());
        }
        //设置年龄
        if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) {
            comMngPopulationVO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationVO.getBirthday()));
        }
        //查询当前用户电子档信息
        if (!StringUtils.isEmpty(comMngPopulationDO.getCardNo())) {
@@ -398,6 +407,7 @@
            if (populationDO == null) {
                //不存在实有人口,则新增
                populationDO = savePopulationDO(vo, comActDO, comMngVillageDO);
                ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = savePopulationHouseUser(vo, populationDO, populationHouseDO);
            } else {
                //如果存在人口信息,且是自用房,则更新人口默认的房屋信息
                if (vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) {
@@ -514,6 +524,19 @@
        }
        comMngPopulationHouseDAO.insert(populationHouseDO);
        return populationHouseDO;
    }
    private ComMngPopulationHouseUserDO savePopulationHouseUser(ComMngPopulationServeExcelVO vo, ComMngPopulationDO comMngPopulationDO, ComMngPopulationHouseDO comMngPopulationHouseDO) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
        populationHouseUserDO.setId(Snowflake.getId());
        populationHouseUserDO.setPopulId(comMngPopulationDO.getId());
        populationHouseUserDO.setHouseId(comMngPopulationHouseDO.getId());
        populationHouseUserDO.setRelationId(comMngPopulationHouseDO.getStatus());
        populationHouseUserDO.setRelation(vo.getRelation());
        populationHouseUserDO.setCreateAt(new Date());
        comMngPopulationHouseUserDAO.insert(populationHouseUserDO);
        return populationHouseUserDO;
    }
    /**
@@ -713,6 +736,7 @@
        if (!vo.getHouseEditDTOList().isEmpty()) {
            for (ComMngPopulationHouseEditDTO houseEditDto : vo.getHouseEditDTOList()) {
                ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
                populationHouseUserDO.setId(Snowflake.getId());
                populationHouseUserDO.setPopulId(populationDO.getId());
                populationHouseUserDO.setHouseId(houseEditDto.getId());
                if (houseEditDto.getIsResidence().equals(ComMngPopulationHouseEditDTO.isResidence.yes)) {
@@ -745,7 +769,20 @@
                }
            }
        }
        populationDO.setUpdateAt(new Date());
        ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                .eq(ComMngPopulationHouseUserDO::getPopulId, vo.getId()));
        if (comMngPopulationHouseUserDO != null) {
            comMngPopulationHouseUserDO.setRelation(vo.getRelation());
            comMngPopulationHouseUserDAO.updateById(comMngPopulationHouseUserDO);
        }else {
            comMngPopulationHouseUserDO = new ComMngPopulationHouseUserDO();
            comMngPopulationHouseUserDO.setId(Snowflake.getId());
            comMngPopulationHouseUserDO.setPopulId(vo.getId());
            comMngPopulationHouseUserDO.setRelation(vo.getRelation());
            comMngPopulationHouseUserDO.setCreateAt(new Date());
            comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
        }
        if (populationDAO.updateById(populationDO) > 0) {
            return R.ok();
        } else {
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java
@@ -145,4 +145,9 @@
        return R.ok(comMngRealCompanyBelongsVO);
    }
    @Override
    public R getComMngRealCompanyTotalByAdmin(Long communityId) {
        return R.ok(this.baseMapper.getComMngRealCompanyTotalByAdmin(communityId));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
@@ -136,68 +136,43 @@
        List<EventGridMemberGpsLogDO> memberGpsLogDOS = eventGridMemberGpsLogMapper.selectList(new QueryWrapper<EventGridMemberGpsLogDO>()
                .lambda().eq(EventGridMemberGpsLogDO::getPositionStation,EventGridMemberGpsLogDO.positionStation.no));
        if(!memberGpsLogDOS.isEmpty()){
            memberGpsLogDOS.forEach(memberGpsLog -> {
                //取出经纬度信息
            memberGpsLogDOS.forEach(memberGpsLog ->{
                if(StringUtils.isNotEmpty(memberGpsLog.getLngLat())){
                    String []lngLat = memberGpsLog.getLngLat().split(",");
                    Double lat = Double.valueOf(lngLat[0]);
                    Double lng = Double.valueOf(lngLat[1]);
                    //遍历所有网格信息匹配网格员的坐标点是否在网格内
                    Boolean isOk = true;
                    Integer workStatus = 2;
                    for (EventGridDataDO gridData:gridDataDOList) {
                        if(StringUtils.isNotEmpty(gridData.getData())){
                            List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(gridData.getData());
                            if(LngLatUtils.isInPolygon(latLngList,lng,lat)){//匹配通过
                                isOk = false;
                                memberGpsLog.setGridId(gridData.getId());
                                memberGpsLog.setGridCommunityId(gridData.getGridCommunityId());
                                memberGpsLog.setGridStreetId(gridData.getGridStreetId());
                                memberGpsLog.setGridName(gridData.getGridName());
                                Integer workStatus = 0;
                            if(LngLatUtils.isInPolygon(latLngList,lng,lat)) {//匹配通过
                                //判断当前网格员与此网格是否有关系
                                Integer count = eventGridMemberRelationMapper.selectCount(new QueryWrapper<EventGridMemberRelationDO>()
                                        .lambda().eq(EventGridMemberRelationDO::getGridMemberId,memberGpsLog.getGridMemberId())
                                        .eq(EventGridMemberRelationDO::getGridId,memberGpsLog.getGridId()));
                                if(count > 0){
                                    //有关系说明此网格员未脱岗
                                    memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal);
                                    isOk = false;
                                    workStatus = 1;
                                }else{
                                    //没关系说明此网格员脱岗了,需要添加预警信息
                                    memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal);
                                    workStatus = 2;
                                    //新增网格员预警信息
                                    EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO();
                                    BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO);
                                    memberWarnLogDO.setId(null);
                                    memberWarnLogDO.setContent("工作时间未在网格内预警");
                                    memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt());
                                    this.baseMapper.insert(memberWarnLogDO);
                                    memberGpsLog.setGridId(gridData.getId());
                                    memberGpsLog.setGridCommunityId(gridData.getGridCommunityId());
                                    memberGpsLog.setGridStreetId(gridData.getGridStreetId());
                                    memberGpsLog.setGridName(gridData.getGridName());
                                    memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal);
                                    eventGridMemberGpsLogMapper.updateById(memberGpsLog);
                                    //修改用户工作状态
                                    this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus);
                                    break;
                                }
                                eventGridMemberGpsLogMapper.updateById(memberGpsLog);
                                //修改用户工作状态
                                this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus);
                            }else{
                                memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal);
                                //新增网格员预警信息
                                EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO();
                                BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO);
                                memberWarnLogDO.setId(null);
                                memberWarnLogDO.setContent("工作时间未在网格内预警");
                                memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt());
                                this.baseMapper.insert(memberWarnLogDO);
                                eventGridMemberGpsLogMapper.updateById(memberGpsLog);
                                //修改用户工作状态
                                this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),2);
                            }
                        }
                    }
                    //判断这个网格员的点是否能匹配上所有的网格
                    if(isOk){
                    if(isOk){//此网格员脱岗
                        memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal);
                        workStatus = 2;
                        //新增网格员预警信息
                        EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO();
                        BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO);
@@ -205,6 +180,10 @@
                        memberWarnLogDO.setContent("工作时间未在网格内预警");
                        memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt());
                        this.baseMapper.insert(memberWarnLogDO);
                        eventGridMemberGpsLogMapper.updateById(memberGpsLog);
                        //修改用户工作状态
                        this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus);
                    }
                }
            });
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -1923,7 +1923,12 @@
     */
    @Override
    public R getGridEventStatisticsByApp(Long gridId){
        return R.ok(this.baseMapper.getGridEventStatisticsByApp(gridId));
        GridEventStatisticsVO result = this.baseMapper.getGridEventStatisticsByApp(gridId);
        if(result != null){
            result.setTodayNum(result.getTodayNum() + result.getZfTodayNum());
            result.setMonthNum(result.getMonthNum() + result.getZfMonthNum());
        }
        return R.ok(result);
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -598,7 +598,10 @@
                AND grid_id = #{gridId}
            </if>
            ) AS todayEducationNum,
            ( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2 ) AS educationNum,
            ( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2
                <if test="gridId!=null">
                    AND grid_id = #{gridId}
                </if>) AS educationNum,
            (
            SELECT
                count( id )
@@ -615,7 +618,10 @@
                AND grid_id = #{gridId}
            </if>
            ) AS todaySpecialTotal,
            ( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 6 AND event_status = 2 AND event_process_status = 2 ) AS specialTotal,
            ( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 6 AND event_status = 2 AND event_process_status = 2
                <if test="gridId!=null">
                    AND grid_id = #{gridId}
                </if>) AS specialTotal,
            (
            SELECT
                count( cmph.id )
@@ -626,7 +632,31 @@
                <if test="gridId!=null">
                    egd.id = #{gridId}
                </if>
            ) AS houseTotal
            ) AS houseTotal,
            (
        SELECT
        count( id )
        FROM
        event_visiting_tasks
        WHERE
        event_status = 2 AND submit_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
        AND NOW()
        <if test="gridId!=null">
            AND grid_id = #{gridId}
        </if>
        ) as zfTodayNum,
        (
        SELECT
        count( id )
        FROM
        event_visiting_tasks
        WHERE
        event_status = 2 AND submit_date BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' )
        AND NOW()
        <if test="gridId!=null">
            AND grid_id = #{gridId}
        </if>
        ) as zfMonthNum
        FROM
            `event`
        WHERE
@@ -892,7 +922,7 @@
    </select>
    <select id="getUserBaseInfo" parameterType="java.lang.Long" resultType="java.util.Map">
        select name,image_url from sys_user where user_id = #{gridMemberId}
        select nick_name,image_url from sys_user where user_id = #{gridMemberId}
    </select>
    <select id="getScreenEventList" parameterType="com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO"