From 2dcf4b9d75cc1b6613aea59cec4a0f9cc97f1c0e Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期一, 05 七月 2021 13:15:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java                                 |    8 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java                          |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java              |   21 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java                          |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java                        |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java                             |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java                                |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java                               |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java                                               |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java                                   |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java                   |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java                              |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java                                            |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java                                  |  162 +
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java                                          |  174 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java                                     |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java                          |   34 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java                                        |    6 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java                             |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java                             |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java                                         |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java                       |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java            |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java                                      |  252 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java                             |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java          |  315 ++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java                                |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java                |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java                                 |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java                              |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java                 |   35 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java                                                      |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java                               |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java                                             |   22 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java                                      |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java                           |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java                                                     |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java                             |  200 +
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java                      |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java                         |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                                      |  784 ++++-
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java                        |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java                                |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java                                   |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java                                  |    8 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java                                        |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java                       |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java                             |    7 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java                                   |    2 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java                                    |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java                                  |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java                       |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java                                     |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java                                                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java                             |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java                                             |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java                      |   30 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java                              |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java                          |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java                       |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java              |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java                 |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java               |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java                 |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java              |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java                                 |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java                           |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java                              |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml                                                         |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java                                |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java                                              |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java            |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java                                        |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java                                 |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java                                  |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml                                     |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java             |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java                      |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java                    |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java                                  |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml                                                                 |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java                               |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java                   |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java             |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java                                       |   14 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java                                                |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java                           |  186 +
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java                                                      |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java                            |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java                       |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java                                                 |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java                              |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java                       |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java                |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java                      |    9 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java                                               |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java                                                |  329 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java                                                      |  102 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java                   |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java                   |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java                                      |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java                                 |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java                                   |    8 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java             |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java                                 |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java                                         |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java                      |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java     |  197 +
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java                                                 |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java                                                      |    2 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java                                       |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java              |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java                               |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java                           |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml                                                    |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java                                                |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java                  |  276 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java                                                   |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java                       |   39 
 /dev/null                                                                                                                                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java     |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java                           |   58 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java                                           |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java                                                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java                                  |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml                                                         |  179 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java                                            |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java                                       |  160 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java                  |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java          |   21 
 142 files changed, 6,614 insertions(+), 978 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
index 5f31f64..c219310 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -56,17 +56,23 @@
     @GetMapping("detaildynamic")
     @ApiImplicitParam(name ="id",value = "社区动态主键",required = true)
     public R detailDynamic(@RequestParam("id") Long id){
-        Long userId = this.getUserId();
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = null;
+        if(loginUserInfo != null){
+            userId = loginUserInfo.getUserId();
+        }
         R r = communityService.detailDynamic(id);
         if (R.isOk(r)) {
-            //增加浏览记录
-            R r1 = communityService.addDynamicUser(id, userId);
             Object data = r.getData();
             ComActDynVO comActDynVO=JSONObject.parseObject(JSONObject.toJSONString(data),ComActDynVO.class);
-            if (R.isOk(r1)) {
-                comActDynVO.setIsAdd(1);
-            }else{
-                comActDynVO.setIsAdd(0);
+            if(userId != null){
+                //增加浏览记录
+                R r1 = communityService.addDynamicUser(id, userId);
+                if (R.isOk(r1)) {
+                    comActDynVO.setIsAdd(1);
+                }else{
+                    comActDynVO.setIsAdd(0);
+                }
             }
             return R.ok(comActDynVO);
         }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java
new file mode 100644
index 0000000..762bc8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.api;
+
+/**
+ * 攀枝花综治网格化-字段key
+ *
+ * @author manailin
+ * @date 2021/06/16
+ */
+public class DictionItemConstants {
+
+    private DictionItemConstants() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * 文化层度字典编码
+     */
+    public static final String LC_CULTURE_LEVEL = "1156457421221564414";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LangchaoApiConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LangchaoApiConstants.java
deleted file mode 100644
index 961ad1c..0000000
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LangchaoApiConstants.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.panzhihua.common.api;
-
-/**
- * 攀枝花综治网格化-事件上报接口列表-测试环境接口
- * des
- * @author manailin
- * @date 2021/06/16
- */
-public class LangchaoApiConstants
-{
-
-    /**
-     * 将浪潮对接接口中所需的token存在Redis里面的KEY
-     */
-    public static final String LANG_CHAO_TOKEN ="lang_chao_token";
-    /**
-     * 获取token
-     */
-    public static final String GRID_GET_TOKEN_URL = "http://171.217.92.33:53303/aaToken?username=#username&password=#password";
-    /**
-     * 提交事件登记(自处)
-     */
-    public static final String GRID_REGIST_EVENT_URL = "http://171.217.92.33:53303/businessData/registEventInfo";
-    /**
-     * 上传附件,仅上传文件流,服务器根据文件名自行匹配
-     */
-    public static final String GRID_EVENT_FILE_UPLOAD_URL = "http://171.217.92.33:53303/businessData/upload";
-    /**
-     * 事件类型获取
-     */
-    public static final String GRID_EVENT_CATEGORY_URL = "http://171.217.92.33:53303/businessData/getEventType";
-    /**
-     * 事件查询接口
-     */
-    public static final String GRID_EVENT_INFO_URL = "http://171.217.92.33:53303/businessData/getEventListInfo";
-    /**
-     * 获取指定APP登记事件详情信息
-     */
-    public static final String GRID_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getEventDetails";
-    /**
-     * 获取指定事件信息
-     */
-    public static final String GRID_APP_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getAppointEventInfo";
-    /**
-     * 通过AREAID获取辖区网格树
-     */
-    public static final String GRID_GET_EVENT_INFO_AREA_ID_URL = "http://171.217.92.33:53303/area/getAreaGridTreeByAreaId";
-    /**
-     * 获取所有或者根据姓名和工号查询,分页
-     */
-    public static final String GRID_GET_GETALL_SEARCH_PAGE_URL = "http://171.217.92.33:53303/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp&limit=200&page=1";
-}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
new file mode 100644
index 0000000..fef316e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
@@ -0,0 +1,102 @@
+package com.panzhihua.common.api;
+
+/**
+ * 攀枝花综治网格化-事件上报接口列表-测试环境接口
+ *
+ * @author manailin
+ * @date 2021/06/16
+ */
+public class LcApiConstants
+{
+
+    private LcApiConstants() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * 将浪潮对接接口中所需的固定账号名称,账号和密码登陆来获取token
+     */
+    public static final String LC_UPLOAD_NAME ="18080799023";
+    /**
+     * 将浪潮对接接口中所需的固定用户密码
+     */
+    public static final String LC_UPLOAD_PASSWORD ="123456";
+    /**
+     * 将浪潮对接接口中所需的token存在Redis里面的KEY
+     */
+    public static final String LANG_CHAO_TOKEN ="lang_chao_token";
+    /**
+     * 获取token
+     */
+    public static final String GRID_GET_TOKEN_URL = "http://171.217.92.33:53303/aaToken?username=#username&password=#password";
+    /**
+     * 提交事件登记(自处)
+     */
+    public static final String GRID_REGIST_EVENT_URL = "http://171.217.92.33:53303/businessData/registEventInfo";
+    /**
+     * 上传附件,仅上传文件流,服务器根据文件名自行匹配
+     */
+    public static final String GRID_EVENT_FILE_UPLOAD_URL = "http://171.217.92.33:53303/businessData/upload";
+    /**
+     * 事件类型获取
+     */
+    public static final String GRID_EVENT_CATEGORY_URL = "http://171.217.92.33:53303/businessData/getEventType";
+    /**
+     * 事件查询接口
+     */
+    public static final String GRID_EVENT_INFO_URL = "http://171.217.92.33:53303/businessData/getEventListInfo";
+    /**
+     * 获取指定APP登记事件详情信息
+     */
+    public static final String GRID_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getEventDetails";
+    /**
+     * 获取指定事件信息
+     */
+    public static final String GRID_APP_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getAppointEventInfo";
+    /**
+     * 通过AREAID获取辖区网格树
+     */
+    public static final String GRID_GET_EVENT_INFO_AREA_ID_URL = "http://171.217.92.33:53303/area/getAreaGridTreeByAreaId";
+    /**
+     * 获取所有或者根据姓名和工号查询,分页
+     */
+    public static final String GRID_GET_GETALL_SEARCH_PAGE_URL = "http://171.217.92.33:53303/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp&limit=200&page=1";
+
+    /**
+     * 下面的接口全部都是走访任务接口
+     */
+    /**
+     * 流动人口 走访记录列表
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_PAGE_URL = "http://171.217.92.33:53303/businessData/getFPVisitRecordByPageApp";
+
+
+    /**
+     * 流动人口 走访详情(民警带领下工作或者自己走访)
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_DETAIL_URL = "http://171.217.92.33:53303/businessData/getFPVisitRecordDetailByIdApp";
+
+
+    /**
+     * 流动人口 添加走访记录 (民警带领下工作或者自己走访)
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_SAVE_URL = "http://171.217.92.33:53303/businessData/saveFpVisitRecordAppDock";
+
+
+    /**
+     * 重点人员 日常管理 走访记录列表
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_PAGE_URL = "http://171.217.92.33:53303/businessData/getKeyPersonVisitRecordByPageApp";
+
+
+    /**
+     * 重点人员 日常管理 走访详情
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_DETAIL_URL = "http://171.217.92.33:53303/businessData/getKeyPersonVisitRecordDetailByIdApp";
+
+
+    /**
+     *重点人员 日常管理 添加走访记录
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL = "http://171.217.92.33:53303/businessData/saveKeyPersonVisitRecordAppDock";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java
new file mode 100644
index 0000000..ab774db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.api;
+
+import lombok.Getter;
+
+/**
+ * 浪潮接口请求返回结果对象
+ * @author manailin
+ * @date 2021/06/20
+ */
+@Getter
+public enum LcRequestEnum {
+    /**
+     * 浪潮接口请求返回失败枚举
+     */
+    FALSE("0", "失败"),
+    /**
+     *浪潮接口请求返回成功枚举
+     */
+    SUCCESS("200", "成功");
+
+    private final String code;
+    private final String result;
+
+    LcRequestEnum(String code, String result) {
+        this.code = code;
+        this.result = result;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java
index 0b1dc87..f598877 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java
@@ -3,7 +3,7 @@
 import lombok.Data;
 /**
  * 攀枝花综治网格化-事件接口请求返回的对象
- * des
+ *
  * @author manailin
  * @date 2021/06/20
  */
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java
new file mode 100644
index 0000000..b774513
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.api;
+
+import lombok.Getter;
+
+/**
+ * 攀枝花综治网格化
+ * 浪潮重点人员走访接口,人员类型
+ * @author manailin
+ * @date 2021/06/20
+ */
+@Getter
+public enum LcVisitRecordKeyPersonLabelEnum {
+    /**
+     * 浪潮接口请求参数:吸毒人员类型
+     */
+    XD(1, "p01_drug"),
+    /**
+     *浪潮接口请求参数:重精人员类型
+     */
+    JS(2, "p01_trouble_schiz"),
+    /**
+     * 浪潮接口请求参数:释放人员类型
+     */
+    XM(3, "p01_release"),
+    /**
+     * 浪潮接口请求参数:纠正人员类型
+     */
+    SJ(4, "p01_be_corrected");
+
+    private final Integer code;
+    private final String name;
+
+    LcVisitRecordKeyPersonLabelEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (LcVisitRecordKeyPersonLabelEnum item : LcVisitRecordKeyPersonLabelEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (LcVisitRecordKeyPersonLabelEnum item : LcVisitRecordKeyPersonLabelEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java
index 464db02..077347e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java
@@ -106,6 +106,25 @@
         return loginUserInfoVO;
     }
 
+    @SneakyThrows
+    public LoginUserInfoVO getLoginUserInfoSureNoLogin() {
+        HttpServletRequest request = this.getRequest();
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            return null;
+//            throw new UnAuthenticationException("获取登录人信息失败");
+        }
+//        log.info("userInfo【{}】",userInfo);
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+//        log.info("bytes【{}】",bytes);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+//        log.info("decrypt【{}】",decrypt);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        return loginUserInfoVO;
+    }
+
     public static void main(String[] args) {
         byte[] bytes = AES.parseHexStr2Byte("5730CB290AD203B32D2FA4347CD54A50A684E16D2C7A4544CF352D54D8A763BA6652C323B13BEEE682A5095B8BCC76842225A914253CE84AFB6B58A9D1BE30A7992786E151A933FDEC6EBDCD1928CA68927047770F296F7541268149B34FDFCEF1340CF2266A041484744CB45B216EE8B4D96E243098F9CB3F661ACA7AF356C422BFE9A009FA478DF606A71DA7DBD776527E5120C3F13281BA8FC5587BACD5E403EE069762B5CF060BFA3CF4FD3417F5653CC178D2CA117284D85F442C0FAB076DB6F6D873B5363FAB93EBA9284CC87A5E97243EF4DC73F1ADA57BD9E9AAB2E4972AC3A4615B2DF6F9062BC04428D1B84B6C892A306F191B1D9DDBBB201D2767CE928020489AFC6BCFDC8A74F8C95080F74B4EC64AD1A6354B17A156B95AA9467C7461BD3C3F15F8F65BD7F3272184435D77003738B5B942EEA9603CFF249764718732595EC44DE4ED1BB763F9C88BAFACF5540E689FE84A4702E31D3D1D05BAC25C10F8E0C3948C777478537397BCB67D37066385DFCBDE3F4A53D6BA14481DBCB07E8452ACD2790A76669A9DE6D7080C8CFD9FB774035FCC3AC1C436581144969B7150318024A2E893FE926654E002097EB4735E49F3A9698A405969888A7D88A55A0FA60318C4A1E2D243BEE6D438");
         byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java
new file mode 100644
index 0000000..ccda2e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 事件状态
+ * 
+ * @author lyq
+ */
+@Getter
+public enum EventStatusEnum
+{
+    DCL(1, "待处理"),
+    YJJ(2, "已解决"),
+    DYZ(3, "待验证"),
+    CGX(4, "草稿箱"),
+    YCX(5, "已撤销"),
+    YC(6, "异常"),
+    WZ(9, "未知");
+
+    private final Integer code;
+    private final String name;
+
+    EventStatusEnum(Integer code, String name)
+    {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (EventStatusEnum item : EventStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return WZ.getCode();
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (EventStatusEnum item : EventStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "未知";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
index 3cda27f..1adadb6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
@@ -8,7 +8,7 @@
 
     DZF(1,"待走访"),
     JXZ(2,"进行中"),
-    ZJJJ(3,"自己解决"),
+    ZJJJ(3,"正常"),
     DYZ(4,"待验证"),
     CG(5,"草稿"),
     YCX(6,"已撤销"),
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java
index 75f9c16..9f4c2b1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java
@@ -27,7 +27,7 @@
                 return item.getCode();
             }
         }
-        return -1;
+        return 0;
     }
 
     public static String getCnDescByName(Integer code) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
index 033c458..81d462d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -332,7 +332,12 @@
                 if(StringUtils.isNotEmpty(oneData.get(27))){
                     vo.setHouseHold(oneData.get(27).trim());
                 }
-                for (int i = 28; i < headSize; i++) {
+                if(StringUtils.isEmpty(oneData.get(28))){
+                    vo.setIsResidence(0);
+                }else{
+                    vo.setIsResidence(PopulIsOkEnum.getCodeByName(oneData.get(28).trim()));
+                }
+                for (int i = 29; i < headSize; i++) {
                     if (oneData.get(i) != null && oneData.get(i).equals("是")) {
                         vo.getUserTagStr().add(headData.get(i).substring(0,headData.get(i).indexOf("(")));
                     }
@@ -377,6 +382,7 @@
                 }
             }
         } catch (NumberFormatException e) {
+            e.printStackTrace();
             List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
             ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
             importErrorVO.setErrorPosition("第" + index + "行");
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java
new file mode 100644
index 0000000..e75c18e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author xyh
+ * @date 2021/6/25 15:22
+ */
+@ApiModel("附件资源DTO")
+@Data
+public class EventResourceDTO implements Serializable {
+
+    @ApiModelProperty("地址")
+    private String url;
+
+    @ApiModelProperty("时间:秒")
+    private Integer resourceTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java
new file mode 100644
index 0000000..e785cea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author xyh
+ * @date 2021/6/28 16:30
+ */
+@ApiModel("id参数")
+public class IdDTO {
+
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty("id")
+    private String id;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java
index 2b7c3b7..d9c7cd4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java
@@ -26,7 +26,7 @@
     @ApiModelProperty(value="查询结束时间")
     private String endTime;
 
-    @ApiModelProperty(value="发布类型 1 图文 2 投票")
+    @ApiModelProperty(value="活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
     private Integer type;
 
     /**
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java
new file mode 100644
index 0000000..e73cd72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 向房屋添加人员请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("向房屋添加人员请求参数")
+public class AddComMngHousePopulationDTO {
+
+    @ApiModelProperty(value = "房屋id",required = true)
+    private Long houseId;
+
+    @ApiModelProperty(value = "人员id集合",required = true)
+    private List<Long> populationIds;
+
+    @ApiModelProperty(value = "添加类型(1.户主 2.住户)",required = true)
+    private Integer type;
+
+    /**
+     * 添加类型(1.户主 2.住户)
+     */
+    public interface type{
+        int hz = 1;
+        int zh = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java
new file mode 100644
index 0000000..fa9f0f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import com.google.common.base.CaseFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+/**
+ * 小区列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("小区列表-请求参数")
+public class ComMngVillageListAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区名称")
+    private String name;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "排序字段, 默认 创建时间:createAt(在住居民数:userSum,楼栋数:buildSum,总户数:houseNum,户籍人口:registerNum)", example = "createAt")
+    private String sortAttr="createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType="desc";
+
+    @ApiModelProperty(value = "街路巷")
+    private String alley;
+
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+
+    @ApiModelProperty(value = "小区组")
+    private String groupAt;
+
+    @ApiModelProperty(value = "小区地址")
+    private String address;
+
+    public String getSortColumns(){
+//        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return sortAttr;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java
new file mode 100644
index 0000000..3911a0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 向房屋删除人员请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("向房屋删除人员请求参数")
+public class DelComMngHousePopulationDTO {
+
+
+    @ApiModelProperty(value = "房屋人员关联id",required = true)
+    private Long housePopulationId;
+
+    @ApiModelProperty(value = "添加类型(1.户主 2.住户)",required = true)
+    private Integer type;
+
+    /**
+     * 添加类型(1.户主 2.住户)
+     */
+    public interface type{
+        int hz = 1;
+        int zh = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
index fa3a11b..fb44e33 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
@@ -8,6 +8,8 @@
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotBlank;
 import java.util.Date;
+import java.util.List;
+
 import org.hibernate.validator.constraints.Length;
 import com.fasterxml.jackson.annotation.JsonFormat;
 
@@ -74,4 +76,10 @@
     @ApiModelProperty(value = "网格员id", hidden = false, example = "")
     private Long gridMemberId;
 
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private Long lcMemberId;
+
+    @ApiModelProperty(value = "楼栋id集合")
+    private List<Long> buildingIds;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
index 40178bc..48e5fdd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
@@ -8,6 +8,7 @@
 import javax.validation.constraints.Max;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 
 /**
@@ -66,4 +67,10 @@
     @ApiModelProperty(value = "网格员id", hidden = false, example = "")
     private Long gridMemberId;
 
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private Long lcMemberId;
+
+    @ApiModelProperty(value = "楼栋id集合")
+    private List<Long> buildingIds;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java
new file mode 100644
index 0000000..1f43305
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java
@@ -0,0 +1,200 @@
+package com.panzhihua.common.model.dtos.grid;
+
+
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 浪潮上传走访内容对象
+ *
+ * @author manailin
+ * @version 1.0
+ * @date 2021-06-24
+ * @since 1.0
+ */
+@Data
+public class LcEventVisitingTasksListDTO {
+
+
+    /**
+     * id   列: id
+     */
+    private Long id;
+    /**
+     * 网格员所处的街道   列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区   列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格员   列: grid_member
+     */
+    private Long gridMember;
+    /**
+     * 网格员名字   列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式   列: grid_menber_tele
+     */
+    private String gridMenberTele;
+    /**
+     * 需走访人ID   列: visiter_id
+     */
+    private Long visiterId;
+    /**
+     * 需走访人名字   列: visiter_name
+     */
+    private String visiterName;
+    /**
+     * 需走访人员性别   列: visiter_sex
+     */
+    private Integer visiterSex;
+    /**
+     * 需走访人电话   列: visiter_tele
+     */
+    private String visiterTele;
+    /**
+     * 需走访人居住地址   列: visiter_address
+     */
+    private String visiterAddress;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员   列: visiter_type
+     */
+    private Integer visiterType;
+    /**
+     * 事件标题   列: event_title
+     */
+    private String eventTitle;
+    /**
+     * 事件类型   列: event_type
+     */
+    private Integer eventType;
+    /**
+     * 事件描述   列: event_des
+     */
+    private String eventDes;
+    /**
+     * 社区处理(0是无需社区1是社区处理)   列: act_opara
+     */
+    private Integer actOpara;
+    /**
+     * 发生时间   列: happen_time
+     */
+    private Date happenTime;
+    /**
+     * 发生地点   列: happent_address
+     */
+    private String happentAddress;
+    /**
+     * 发生的精度纬度信息(逗号隔开)   列: happent_lat_lng
+     */
+    private String happentLatLng;
+    /**
+     * 事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)   列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 上报状态   列: reporting
+     */
+    private Integer reporting;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道)   列: dell_type
+     */
+    private Integer dellType;
+    /**
+     * 处理人ID   列: dell_user_id
+     */
+    private Long dellUserId;
+    /**
+     * 处理人名称   列: dell_user_name
+     */
+    private String dellUserName;
+    /**
+     * 处理时间   列: dell_date
+     */
+    private Date dellDate;
+    /**
+     * 解决人针对解决事件的处理描述   列: dell_desc
+     */
+    private String dellDesc;
+    /**
+     * 是否有效   列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否紧急   列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办   列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间   列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 是否异常行为   列: exception
+     */
+    private Integer exception;
+    /**
+     * 走访内容根据重点人员类型输入项不同,录入全部的表单内容数据   列: table_content_json
+     */
+    private String tableContentJson;
+    /**
+     * 创建人   列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建事件   列: create_at
+     */
+    /**
+     * 创建人   列: create_by
+     */
+    private Long gridId;
+
+    private Date createAt;
+    /**
+     * 修改人   列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间   列: update_at
+     */
+    private Date updateAt;
+
+    /**
+     * 地址备注
+     */
+    private String addressRemark;
+    /**
+     * 家庭联系电话
+     */
+    private String familyPhone;
+
+    /**
+     * 家庭来源
+     */
+    private String familySource;
+    /**
+     * 是否已经上传浪潮服务器市平台
+     */
+    private Boolean lcUpload;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java
new file mode 100644
index 0000000..00360f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("查询人员列表请求参数")
+public class PageComMngPopulationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java
new file mode 100644
index 0000000..2bcd140
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+
+/**
+ * 小区楼栋下房屋列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("小区楼栋下房屋列表-请求参数")
+public class PageComMngVillageBuildHouseAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区id",required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "楼栋号",required = true)
+    private String floor;
+
+    @ApiModelProperty(value = "单元号",required = true)
+    private String unitNo;
+
+    @ApiModelProperty(value = "户室号")
+    private String houseNo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java
new file mode 100644
index 0000000..f705134
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Max;
+import java.util.List;
+
+/**
+ * 居民列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("居民列表-请求参数")
+public class ComMngPopulationExportDTO {
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @Length(max=100)
+    @ApiModelProperty(value = "人员标签", hidden = false, example = "")
+    private String label;
+
+    @Max(127)
+    @ApiModelProperty(value = "性别 1.男 2.女", hidden = false, example = "1")
+    private Integer sex;
+
+    @Max(10)
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @Max(2)
+    @ApiModelProperty("关联实有房屋(1.是 2.否)")
+    private Integer isHouse;
+
+    @Length(max=100)
+    @ApiModelProperty(value = "关键词", hidden = false, example = "")
+    private String keyWord;
+
+    @ApiModelProperty(value = "人口id集合")
+    private List<Long> populationIds;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java
new file mode 100644
index 0000000..4670b2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Max;
+
+/**
+ * 居民列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("居民列表-请求参数")
+public class ComMngPopulationListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @Length(max=100)
+    @ApiModelProperty(value = "人员标签", hidden = false, example = "")
+    private String label;
+
+    @Max(127)
+    @ApiModelProperty(value = "性别 1.男 2.女", hidden = false, example = "1")
+    private Integer sex;
+
+    @Max(10)
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @Max(2)
+    @ApiModelProperty("关联实有房屋(1.是 2.否)")
+    private Integer isHouse;
+
+    @Length(max=100)
+    @ApiModelProperty(value = "关键词", hidden = false, example = "")
+    private String keyWord;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java
new file mode 100644
index 0000000..9601462
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 居民关联房屋-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("居民关联房屋-请求参数")
+public class ComMngPopulationRelationHouseDTO {
+
+    @ApiModelProperty(value = "居民id集合",required = true)
+    private List<Long> populationId;
+
+    @ApiModelProperty(value = "房屋id",required = true)
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java
new file mode 100644
index 0000000..7fd98f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Max;
+
+/**
+ * 居民列表筛选下级-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("居民列表筛选下级-请求参数")
+public class ComMngPopulationSubordinateDTO {
+
+    @ApiModelProperty(value = "1.楼栋 2.单元 3.门牌号",required = true)
+    private Integer type;
+
+    @ApiModelProperty(value = "小区id",required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "房屋id")
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java
new file mode 100644
index 0000000..1667e80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+import java.util.List;
+
+/**
+ * 小区列表导出-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("小区列表-请求参数")
+public class ComMngVillageListExportAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区名称")
+    private String name;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "排序字段, 默认 创建时间:createAt(在住居民数:userSum,楼栋数:buildSum,总户数:houseNum,户籍人口:registerNum)", example = "createAt")
+    private String sortAttr="createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType="desc";
+
+    @ApiModelProperty(value = "街路巷")
+    private String alley;
+
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+
+    @ApiModelProperty(value = "小区组")
+    private String groupAt;
+
+    @ApiModelProperty(value = "小区地址")
+    private String address;
+
+    @ApiModelProperty(value = "小区id集合")
+    private List<Long> villageIds;
+
+    public String getSortColumns(){
+//        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return sortAttr;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java
new file mode 100644
index 0000000..3845993
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 添加网格员级联请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("添加网格员级联请求参数")
+public class EventGridMemberCascadeAddDTO {
+
+    @ApiModelProperty(value = "类型(1.社区 2.小区 3.楼栋)")
+    private Integer type;
+
+    @ApiModelProperty(value = "上级id")
+    private Long superiorId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java
new file mode 100644
index 0000000..22942ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("查询人员列表请求参数")
+public class PageComMngVillagePopulationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区id",required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "人员标签")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java
new file mode 100644
index 0000000..2c8c836
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 查询人员房屋列表请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("查询人员房屋列表请求参数")
+public class PageComMngVillagePopulationHouseDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "居民id",required = true)
+    private Long populationId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java
similarity index 74%
rename from springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java
rename to springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java
index fbdf1db..a0ce11a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java
@@ -1,5 +1,6 @@
-package com.panzhihua.common.model.vos.visit;
+package com.panzhihua.common.model.dtos.visit;
 
+import com.panzhihua.common.model.dtos.EventResourceDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -33,7 +34,7 @@
     @ApiModelProperty("地址备注")
     private String addressRemark;
 
-    @ApiModelProperty("异常类型")
+    @ApiModelProperty("0正常,1异常")
     private Integer exception;
 
     @ApiModelProperty("异常描述")
@@ -52,16 +53,22 @@
 
     private Integer eventStatus;
 
+    @ApiModelProperty("生活来源")
+    private String remark;
+
+    @ApiModelProperty("完成时间")
+    @NotEmpty(message = "完成时间不能为空")
+    private String submitDate;
+
     @ApiModelProperty(value = "音频列表")
-    List<String> vosList;
+    List<EventResourceDTO> vosList;
 
     @ApiModelProperty(value = "图片列表")
-    List<String> imgList;
+    List<EventResourceDTO> imgList;
 
     @ApiModelProperty(value = "视频列表")
-    List<String> videoList;
+    List<EventResourceDTO> videoList;
 
-
-
+    private Long userId;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
index 0f7c69e..4adb9c4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
@@ -11,15 +11,18 @@
  * @author xyh
  * @date 2021/6/21 15:44
  */
-@ApiModel("走访任务查询")
+@ApiModel("走访查询")
 @Data
 public class EventTasksQuery extends PageDTO implements Serializable {
 
-    @ApiModelProperty("状态:0全部,1已完成,2未完成")
+    @ApiModelProperty("走访任务状态,app:0全部,1待走访,2已完成 | 后台:0全部,1待走访 3正常,6已撤销,7异常")
     private Integer status;
 
+    @ApiModelProperty("走访记录状态,app:0全部,3正常,7异常")
+    private Integer eventStatus;
+
     @ApiModelProperty("人员标签")
-    private Integer tag;
+    private String tag;
 
     @ApiModelProperty("是否异常")
     private Integer isExp;
@@ -31,4 +34,9 @@
     private Long visiterId;
 
     private Long communityId;
+
+    private Long userId;
+
+    @ApiModelProperty("正常状态(0.正常 1.异常)")
+    private Integer exception;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
index 0a189b1..b2a33c6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
@@ -19,7 +19,7 @@
     private Integer status;
 
     @ApiModelProperty("人员标签")
-    private Integer tag;
+    private String tag;
 
     @ApiModelProperty("性别")
     private Integer sex;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java
new file mode 100644
index 0000000..956439f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author manailin
+ * @date 2021/6/11 16:27
+ */
+@ApiModel("字典项")
+@Data
+public class BcDictionaryItemVO implements Serializable {
+
+    /**
+     * 字典项名
+     */
+    private String dictItemName;
+
+    /**
+     * 字典项值
+     */
+    private String dictValue;
+
+    /**
+     * 助记码
+     */
+    private String mnemonicCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
index e512519..c5b50d8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -157,5 +157,7 @@
      */
     private List<String> userTagStr = Lists.newArrayList();
 
+    private Long houseId;
+
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
index 72ee094..64b8d60 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
@@ -123,6 +123,9 @@
     private String nativePlace;
 
     @ApiModelProperty("民族")
+    private String nationCode;
+
+    @ApiModelProperty("民族")
     private String nation;
 
     @ApiModelProperty("小区名字")
@@ -156,6 +159,11 @@
     @ApiModelProperty("户口所在地")
     private String censusRegister;
 
+    /**
+     * 居住地址
+     */
+    private String address;
+
     @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
     private Integer relation;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java
new file mode 100644
index 0000000..a93125e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.grid;
+
+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.List;
+
+/**
+ * 小区下楼栋单元房间详情返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元房间详情返回参数")
+public class ComMngVillageBuildingHouseDetailVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("楼层数")
+    private String buildingNum;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("房屋地址")
+    private String address;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+    @ApiModelProperty("户主列表")
+    private List<PopulationListVO> householderList;
+
+    @ApiModelProperty("居民列表")
+    private List<PopulationListVO> populationList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java
new file mode 100644
index 0000000..8d2ca99
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.grid;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区下楼栋单元列表返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元房间列表返回参数")
+public class ComMngVillageBuildingHouseVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    @ApiModelProperty("在住居民数")
+    private Integer userNum;
+
+    @ApiModelProperty("楼层数")
+    private String buildingNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java
new file mode 100644
index 0000000..ae581ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.grid;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区下楼栋单元列表返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元列表返回参数")
+public class ComMngVillageBuildingVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("拼接好楼栋号")
+    private String floorString;
+
+    @ApiModelProperty("拼接好单元号")
+    private String unitNoString;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
index 3a220af..756adad 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
@@ -1,8 +1,11 @@
 package com.panzhihua.common.model.vos.grid;
 
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.List;
 
 @Data
 @ApiModel("管理后台-网格员返回参数")
@@ -28,5 +31,9 @@
     private Integer workStartTime;
     @ApiModelProperty(value = "网格员上班结束时间")
     private Integer workEndTime;
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private Long lcMemberId;
+    @ApiModelProperty(value = "网格员关联楼栋信息")
+    private List<GridMemberBuildingVO> memberBuildingList;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java
new file mode 100644
index 0000000..510bbf4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.grid;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民管理-列表返回参数
+ */
+@Data
+@ApiModel("居民管理列表返回参数")
+@EncryptDecryptClass
+public class PageComMngVillageVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("姓名")
+    private String userName;
+
+    @ApiModelProperty("楼栋数")
+    private Integer buildSum;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("用户数")
+    private Integer userSum;
+
+    @ApiModelProperty("房屋数")
+    private Integer houseNum;
+
+    @ApiModelProperty("户籍人口数")
+    private Integer registerNum;
+
+    @ApiModelProperty("租户数量")
+    private Integer rentNum;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
index 93ded29..81ccc1c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
@@ -56,4 +56,12 @@
     @ApiModelProperty(value = "性别(1.男 2.女)")
 	private String sex;
 
+	@ApiModelProperty(value = "时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+	@ApiModelProperty(value = "房屋人口关联id")
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long housePopulationId;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java
new file mode 100644
index 0000000..81da6e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 居民管理-列表返回参数
+ */
+@Data
+@ApiModel("居民管理列表返回参数")
+@EncryptDecryptClass
+public class ComMngPopulationListVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String userName;
+
+    @ApiModelProperty("标签")
+    private String label;
+
+    @ApiModelProperty("走访时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty(value = "性别(1.男 2.女)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "现居住地址")
+    private String address;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("联系方式")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("关联实有房屋(0.否 1.是)")
+    private Long isHouse;
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "户口所在地")
+    private String censusRegister;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "是否是户主(1.是 2.否)")
+    private Integer isRelation;
+
+    @ApiModelProperty(value = "居住地房屋id")
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java
new file mode 100644
index 0000000..15f29ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("居民管理关联房屋小区列表返回参数")
+public class ComMngPopulationVillageVO {
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("小区名字")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java
new file mode 100644
index 0000000..3e03987
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("级联菜单返回参数")
+public class ComMngSubordinateVO {
+
+    /**
+     * 房屋id
+     */
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long houseId;
+
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty("楼排号")
+    private String floor;
+
+    /**
+     *单元号
+     */
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    /**
+     *户室(房间号)
+     */
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    /**
+     *公共显示字段
+     */
+    @ApiModelProperty("公共显示字段")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java
new file mode 100644
index 0000000..a0faa72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("小区管理-居民房屋返回参数")
+public class ComMngVillagePopulationHouseListVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("小区地址")
+    private String address;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java
new file mode 100644
index 0000000..4344caa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小区管理-居民列表返回参数")
+@EncryptDecryptClass
+public class ComMngVillagePopulationListVO {
+
+    @ApiModelProperty("居民id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("人员标签")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java
new file mode 100644
index 0000000..84f7b7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小区列表统计返回参数")
+public class ComMngVillageStatisticsVO {
+
+    /**
+     * 小区数量
+     */
+    @ApiModelProperty("小区数量")
+    private Integer villageNum = 0;
+
+    /**
+     * 楼栋数量
+     */
+    @ApiModelProperty("楼栋数量")
+    private Integer floorNum = 0;
+
+    /**
+     * 总户数
+     */
+    @ApiModelProperty("总户数")
+    private Integer houseNum = 0;
+
+    /**
+     * 居住人数
+     */
+    @ApiModelProperty("居住人数")
+    private Integer userNum = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java
new file mode 100644
index 0000000..664bd3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-网格员与楼栋关联关系返回参数")
+public class GridMemberBuildingVO {
+
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+    @ApiModelProperty(value = "楼栋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long buildingId;
+    @ApiModelProperty(value = "楼栋名字")
+    private String buildingName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java
new file mode 100644
index 0000000..149383d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-添加网格员级联返回参数")
+public class GridMemberCascadeVO {
+
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java
new file mode 100644
index 0000000..81adf0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-市平台网格员列表返回参数")
+public class GridMemberLcListVO {
+
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "市平台网格员id")
+    private String lcGridMemberId;
+    @ApiModelProperty(value = "市平台网格员名称")
+    private String lcGridMemberName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java
new file mode 100644
index 0000000..4218073
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ * */
+@Data
+@ApiModel("居民统计返回参数")
+public class PopulationStatisticsVO {
+
+    @ApiModelProperty(value = "本地人口")
+	private Integer localNum = 0;
+
+    @ApiModelProperty(value = "流动人口")
+	private Integer flowNum = 0;
+
+	@ApiModelProperty(value = "特殊人口")
+    private Integer specialNum = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java
new file mode 100644
index 0000000..05f7cad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.grid.admin.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description: 综治后台-居民导出
+ * @author: lyq
+ * @date: 2021/7/1 13:56
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationExportExcelVO implements Serializable {
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名" ,index = 0)
+    private String userName;
+    /**
+     * 身份证号
+     */
+    @ExcelProperty(value = "身份证号" ,index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+    /**
+     * 年龄
+     */
+    @ExcelProperty(value = "年龄" ,index = 2)
+    private Integer age;
+    /**
+     * 性别
+     */
+    @ExcelProperty(value = "性别" ,index = 3)
+    private String sex = "暂无";
+    /**
+     * 现居住地址
+     */
+    @ExcelProperty(value = "现居住地址" ,index = 4)
+    private String address;
+    /**
+     * 政治面貌
+     */
+    @ExcelProperty(value = "政治面貌" ,index = 5)
+    private String politicalOutlook = "暂无";
+    /**
+     * 联系方式
+     */
+    @ExcelProperty(value = "联系方式" ,index = 6)
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 户籍地址
+     */
+    @ExcelProperty(value = "户籍地址" ,index = 7)
+    private String censusRegister;
+    /**
+     * 是否关联实有房屋
+     */
+    @ExcelProperty(value = "关联实有房屋",index = 8)
+    private String isHouse = "暂无";
+    /**
+     * 人员标签
+     */
+    @ExcelProperty(value = "人员标签" ,index = 9)
+    private String label;
+    /**
+     * 最后一次走访时间
+     */
+    @ExcelProperty(value = "最后一次走访时间",index = 10)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    /**
+     * 最近一次走访状态
+     */
+    @ExcelProperty(value = "最近一次走访状态",index = 11)
+    private String eventStatus = "暂无";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java
new file mode 100644
index 0000000..db9648c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.grid.admin.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 小区列表Excel导出
+ */
+@Data
+@ApiModel("小区列表Excel导出")
+@EncryptDecryptClass
+public class ComMngVillageExportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "小区名字" ,index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "街路巷" ,index = 1)
+    private String alley;
+
+    @ExcelProperty(value = "门牌号" ,index = 2)
+    private String doorNum;
+
+    @ExcelProperty(value = "小区地址" ,index = 3)
+    private String address;
+
+    @ExcelProperty(value = "小区楼栋数" ,index = 4)
+    private Integer buildSum;
+
+    @ExcelProperty(value = "小区户数" ,index = 5)
+    private Integer houseNum;
+
+    @ExcelProperty(value = "小区居民人数" ,index = 6)
+    private Integer userSum;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
index 63053cf..c64e500 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
@@ -1,5 +1,7 @@
 package com.panzhihua.common.model.vos.screen;
 
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -47,4 +49,11 @@
     @ApiModelProperty("实有人口文化程度统计")
     private List<ComActPopulationCultureVO> cultureGroup;
 
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
index 9a839b6..e6be7ed 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
@@ -1,7 +1,10 @@
 package com.panzhihua.common.model.vos.visit;
 
 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.enums.EventTasksStatusEnum;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
 import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -16,36 +19,63 @@
  */
 @ApiModel("app走访任务VO")
 @Data
+@EncryptDecryptClass
 public class AppVisitTasksVO implements Serializable {
     private static final long serialVersionUID = -5758072851661612412L;
 
     @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
+    @ApiModelProperty("需走访人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long visiterId;
+
+    @ApiModelProperty("需走访人姓名")
+    private String visiterName;
+
     @ApiModelProperty("网格员id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long gridMember;
 
     @ApiModelProperty("网格员")
     private String gridMemberName;
 
     @ApiModelProperty("处理人id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long dellUserId;
 
     @ApiModelProperty("处理人")
     private String dellUserName;
 
     @ApiModelProperty("需走访人电话")
+    @EncryptDecryptField
     private String visiterTele;
 
     @ApiModelProperty("完成时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date submitDate;
 
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("撤销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
     private Integer eventStatus;
 
     @ApiModelProperty("状态")
     private String eventStatusName;
 
+    @ApiModelProperty("正常状态(0.正常 1.异常)")
+    private Integer exception;
+
     public String getEventStatusName() {
 
         return EventTasksStatusEnum.getName(eventStatus);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
index 12d7491..cbb30ae 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
@@ -1,6 +1,8 @@
 package com.panzhihua.common.model.vos.visit;
 
 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.enums.EventTasksStatusEnum;
 import com.panzhihua.common.enums.EventTasksVisitorTypeEnum;
 import io.swagger.annotations.ApiModel;
@@ -18,6 +20,7 @@
 public class EventVisitListVO {
 
     @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     @ApiModelProperty("真实姓名")
@@ -27,9 +30,7 @@
     private String cardNoStr;
 
     @ApiModelProperty(value = "人员标签")
-    private String visiterTypeName;
-
-    private Integer visiterType;
+    private String label;
 
     @ApiModelProperty(value = "年龄")
     private Integer age;
@@ -70,12 +71,10 @@
     private String eventStatusName;
 
     public String getEventStatusName() {
-
-        return EventTasksStatusEnum.getName(eventStatus);
-    }
-
-    public String getVisiterTypeName(){
-        return EventTasksVisitorTypeEnum.getName(visiterType);
+        if(eventStatus != null){
+            return EventTasksStatusEnum.getName(eventStatus);
+        }
+        return null;
     }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
index 3e5ac76..f5a206a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
@@ -2,6 +2,11 @@
 
 import com.alibaba.fastjson.JSONObject;
 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.dtos.EventResourceDTO;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
 import com.panzhihua.common.model.vos.grid.EventResourceVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -19,18 +24,23 @@
  * */
 @Data
 @ApiModel("重点人群走访记录详细返回参数")
+@EncryptDecryptClass
 public class EventVisitingTasksDetailsVO {
 
     @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 
     @ApiModelProperty(value = "网格员所处的街道")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMemberStreet;
 
     @ApiModelProperty(value = "网格员所处社区")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMemberCommunity;
 
     @ApiModelProperty(value = "网格员")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMember;
 
     @ApiModelProperty(value = "网格员名字")
@@ -40,6 +50,7 @@
 	private String gridMenberTele;
 
     @ApiModelProperty(value = "需走访人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long visiterId;
 
     @ApiModelProperty(value = "需走访人名字")
@@ -49,6 +60,7 @@
 	private Integer visiterSex;
 
     @ApiModelProperty(value = "需走访人电话")
+	@EncryptDecryptField
 	private String visiterTele;
 
     @ApiModelProperty(value = "需走访人居住地址")
@@ -89,6 +101,7 @@
 	private Integer dellType;
 
     @ApiModelProperty(value = "处理人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long dellUserId;
 
     @ApiModelProperty(value = "处理人名称")
@@ -98,7 +111,7 @@
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date dellDate;
 
-    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    @ApiModelProperty(value = "异常描述")
 	private String dellDesc;
 
     @ApiModelProperty(value = "是否有效")
@@ -114,13 +127,14 @@
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date submitDate;
 
-    @ApiModelProperty(value = "是否异常行为")
+    @ApiModelProperty(value = "是否异常行为:0否,1是")
 	private Boolean exception;
 
     @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
 	private JSONObject tableContentJson;
 
     @ApiModelProperty(value = "创建人")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long createBy;
 
     @ApiModelProperty(value = "创建事件")
@@ -128,6 +142,7 @@
 	private Date createAt;
 
     @ApiModelProperty(value = "修改人")
+    @JsonSerialize(using = ToStringSerializer.class)
 	private Long updateBy;
 
     @ApiModelProperty(value = "修改时间")
@@ -138,13 +153,30 @@
     private List<String> optionList;
 
 	@ApiModelProperty(value = "音频列表")
-	List<String> vosList;
+	List<EventResourceDTO> vosList;
 
 	@ApiModelProperty(value = "图片列表")
-	List<String> imgList;
+	List<EventResourceDTO> imgList;
 
 	@ApiModelProperty(value = "视频列表")
-	List<String> videoList;
+	List<EventResourceDTO> videoList;
 
+	@ApiModelProperty(value = "家庭联系方式")
+	private String familyPhone;
+
+	@ApiModelProperty(value = "生活来源")
+	private String familySource;
+
+	@ApiModelProperty(value = "地址备注")
+	private String addressRemark;
+
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+	@ApiModelProperty("异常选择")
+	private String option;
+
+	@ApiModelProperty("走访后的经纬度(,隔开)")
+	private String latLng;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
index 8f460d2..491d06d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
@@ -1,10 +1,14 @@
 package com.panzhihua.common.model.vos.visit;
 
-import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.panzhihua.common.enums.EventTasksStatusEnum;
 import com.panzhihua.common.enums.EventTasksVisitorTypeEnum;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,71 +24,77 @@
  * */
 @Data
 @ApiModel("重点人群走访记录返回参数")
+@ExcelIgnoreUnannotated
+@EncryptDecryptClass
 public class EventVisitingTasksVO {
 
 	@ApiModelProperty(value = "id")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long id;
 
-	@ExcelProperty(value = "序号",index = 0)
-	private Integer rowNum;
+//	@ExcelProperty(value = "序号",index = 0)
+//	private Integer rowNum;
 
-	@ExcelProperty(value = "创建时间",index = 1)
+	@ExcelProperty(value = "创建时间",index = 0)
 	@ApiModelProperty(value = "创建时间")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date createAt;
 
-	@ExcelProperty(value = "创建人",index = 2)
+	@ExcelProperty(value = "创建人",index = 1)
 	@ApiModelProperty(value = "创建人")
 	private String creator;
 
-	@ExcelProperty(value = "走访对象",index = 3)
+	@ExcelProperty(value = "走访对象",index = 2)
 	@ApiModelProperty(value = "需走访人名字")
 	private String visiterName;
 
 
-	@ExcelProperty(value = "身份证号码",index = 4)
+	@ExcelProperty(value = "身份证号码",index = 3)
 	@ApiModelProperty(value = "身份证号码")
 	private String cardNoStr;
 
-	@ExcelProperty(value = "走访地址",index = 5)
+	@ExcelProperty(value = "走访地址",index = 4)
 	@ApiModelProperty(value = "走访地址")
 	private String visiterAddress;
 
-	@ExcelProperty(value = "人员标签",index = 6)
+	@ExcelProperty(value = "人员标签",index = 5)
 	@ApiModelProperty(value = "人员标签")
 	private String visiterTypeName;
 
-	@ExcelProperty(value = "走访人",index = 7)
+	@ExcelProperty(value = "走访人",index = 6)
 	@ApiModelProperty(value = "走访人")
 	private String dellUserName;
 
-	@ExcelProperty(value = "完成走访时间",index = 8)
+	@ExcelProperty(value = "完成走访时间",index = 7)
 	@ApiModelProperty(value = "完成走访时间")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date submitDate;
 
-	@ExcelProperty(value = "撤销时间",index = 9)
+	@ExcelProperty(value = "撤销时间",index = 8)
 	@ApiModelProperty(value = "撤销时间")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date cancelTime;
 
-	@ExcelProperty(value = "状态",index = 10)
+	@ExcelProperty(value = "状态",index = 9)
 	@ApiModelProperty(value = "状态")
 	private String eventStatusName;
 
 
 
-	@ExcelIgnore
 	@ApiModelProperty(value = "需走访人ID")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long visiterId;
 
     @ApiModelProperty(value = "网格员所处的街道")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMemberStreet;
 
     @ApiModelProperty(value = "网格员所处社区")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMemberCommunity;
 
     @ApiModelProperty(value = "网格员")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long gridMember;
 
     @ApiModelProperty(value = "网格员名字")
@@ -98,10 +108,10 @@
 	private Integer visiterSex;
 
     @ApiModelProperty(value = "需走访人电话")
+	@EncryptDecryptField
 	private String visiterTele;
 
 
-	@ExcelIgnore
 	private Integer visiterType;
 
     @ApiModelProperty(value = "事件标题")
@@ -125,8 +135,6 @@
 
     @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
 	private String happentLatLng;
-//
-	@ExcelIgnore
 	private Integer eventStatus;
 
 	public String getEventStatusName() {
@@ -150,6 +158,7 @@
 	private Integer dellType;
 
     @ApiModelProperty(value = "处理人ID")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long dellUserId;
 
 
@@ -179,10 +188,12 @@
 	private String tableContentJson;
 
     @ApiModelProperty(value = "创建人id")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long createBy;
 
 
     @ApiModelProperty(value = "修改人")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long updateBy;
 
     @ApiModelProperty(value = "修改时间")
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
index 5efe555..4204f79 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
@@ -2,46 +2,49 @@
 
 import com.panzhihua.common.model.dtos.api.EventFile;
 import com.panzhihua.common.model.dtos.api.EventInfo;
-import com.panzhihua.common.model.dtos.grid.*;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.grid.*;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
- *
  * @author manailin
  * desc  主要是提供给浪潮服务器上传事件
  * @version 1.0
- * @since 1.0
  * @date 2021-05-26
- * */
+ * @since 1.0
+ */
 @FeignClient(name = "serviceApi")
 public interface ApiServiceFeign {
 
 
     /**
      * description 生成或更新redis里面的对接浪潮所需的token信息
-     * @param name 账号
+     *
+     * @param name     账号
      * @param password 密码
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("get/token")
-    void getToken(@RequestParam("name") String name,@RequestParam("password") String password);
+    void getToken(@RequestParam("name") String name, @RequestParam("password") String password);
+
     /**
      * description 向浪潮服务器提交网格事件登记     *
+     *
      * @param eventInfo 事件信息对象
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @PostMapping("lc/event/upload")
     void automationUpload(@RequestBody EventInfo eventInfo);
+
     /**
      * description 提交事件登记关联的文件或者图片信息
+     *
      * @param eventFile 文件对象
      * @return R 上传结果
      * @author manailin
@@ -59,4 +62,14 @@
     @ApiOperation(value = "提交事件登记关联的文件或者图片信息")
     @PostMapping("lc/event/upload/event_and_file")
     void automationUploadEventAndFile();
+
+    /**
+     * description 自动上传重点人员和流动人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "自动上传重点人员和流动人员走访记录")
+    @GetMapping("lc/auto/upload/visit_record")
+    void automationUploadVisitRecord();
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
index ec4e3e0..fafb4b0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -9,7 +9,6 @@
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
-import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
@@ -19,20 +18,16 @@
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
-import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.*;
 import com.panzhihua.common.model.dtos.neighbor.*;
-import com.panzhihua.common.model.dtos.neighbor.*;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
-import com.panzhihua.common.model.dtos.neighbor.AddComActNeighborCircleAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleDetailAppDTO;
-import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
 import com.panzhihua.common.model.dtos.shop.*;
-import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
-import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
 import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
 import com.panzhihua.common.model.dtos.vaccines.*;
-import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
 import com.panzhihua.common.model.vos.community.*;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticAgeGender;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyActivity;
@@ -45,16 +40,14 @@
 import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
 import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
 import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
-import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
 import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
 import com.panzhihua.common.model.vos.user.UserPhoneVO;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -278,7 +271,8 @@
 
     /**
      * 查询随手拍是否有活动
-     * @return  活动详情
+     *
+     * @return 活动详情
      */
     @PostMapping("getEasyPhotoActivity")
     R getEasyPhotoActivity(@RequestParam("communityId") Long communityId);
@@ -480,7 +474,7 @@
      * @return 增加结果
      */
     @GetMapping("getVolunteerById")
-    R getVolunteerById(@RequestParam("id")Long id);
+    R getVolunteerById(@RequestParam("id") Long id);
 
     /**
      * 增加志愿者
@@ -1383,7 +1377,7 @@
      * @param list 便民服务集合
      */
     @PostMapping("/convenient/serve/import")
-    R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list, @RequestParam(value = "communityId",required = false) Long communityId);
+    R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list, @RequestParam(value = "communityId", required = false) Long communityId);
 
     /**
      * 导出房屋信息
@@ -1671,9 +1665,10 @@
 
     /**
      * 确认导入实有人口(有则更新,无则新建)
-     * @param list  用户信息
-     * @param communityId   社区id
-     * @return  导入结果
+     *
+     * @param list        用户信息
+     * @param communityId 社区id
+     * @return 导入结果
      */
     @PostMapping("/common/data/population/import/confirm")
     R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list, @RequestParam(value = "communityId") Long communityId);
@@ -1694,12 +1689,13 @@
      * @return 实有人口详细信息
      */
     @PostMapping("/common/data/population/detail")
-    R detailPopulation(@RequestParam(value = "populationId") Long populationId);
+    R<ComMngPopulationVO> detailPopulation(@RequestParam(value = "populationId") Long populationId);
 
     /**
      * 根据id查询实有人口电子档案信息
-     * @param populationId  实有人口id
-     * @return  实有人口电子档信息
+     *
+     * @param populationId 实有人口id
+     * @return 实有人口电子档信息
      */
     @PostMapping("/common/data/population/electronicArchives")
     R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId);
@@ -1767,7 +1763,7 @@
      * @return
      */
     @PostMapping("/questnaire/editquestnaire")
-    R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) ;
+    R editQuestnaire(@RequestBody QuestnaireVO questnaireVO);
 
 
     /**
@@ -1786,7 +1782,7 @@
      * @return
      */
     @PostMapping("/questnaire/deletequestnaire")
-    R editQuestnaireDO(@RequestParam("questId") Long questId,@RequestParam("userId") Long userId);
+    R editQuestnaireDO(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId);
 
     /**
      * 问卷答题结果
@@ -1799,6 +1795,7 @@
 
     /**
      * 问卷调查详细
+     *
      * @param questId 问卷ID
      * @return 用户问卷调查详细
      */
@@ -1807,7 +1804,8 @@
 
     /**
      * 用户问卷调查详细
-     * @param userId 用户ID
+     *
+     * @param userId  用户ID
      * @param questId 问卷ID
      * @return 用户问卷调查详细
      */
@@ -1816,6 +1814,7 @@
 
     /**
      * 查看用户问卷调查统计信息
+     *
      * @param questId 问卷ID
      * @return 用户问卷调查统计信息
      */
@@ -1834,6 +1833,7 @@
 
     /**
      * 社区问卷分页
+     *
      * @param pageQuestnaireAnswerDTO 社区问卷分页参数
      * @return 分页数据
      */
@@ -1843,6 +1843,7 @@
 
     /**
      * 居民填写问卷调查问卷
+     *
      * @param usersAnswerQuestnaireVO 填写情况
      */
     @PostMapping("/questnaire/usersanswequestnaire")
@@ -1850,6 +1851,7 @@
 
     /**
      * 店铺列表-分页查询
+     *
      * @param pageComShopStoreDTO 分页条件
      */
     @PostMapping("/shop/pageShopStore")
@@ -1857,6 +1859,7 @@
 
     /**
      * 保存店铺
+     *
      * @param storeVO 数据
      */
     @PostMapping("/shop/saveStore")
@@ -1864,22 +1867,25 @@
 
     /**
      * 新增店铺
-     * @param storeVO   店铺信息
-     * @return  新增结果
+     *
+     * @param storeVO 店铺信息
+     * @return 新增结果
      */
     @PostMapping("/shop/addStore")
     R addStore(@RequestBody ShopStoreVO storeVO);
 
     /**
      * 编辑店铺、启用、禁用
+     *
      * @param storeVO 数据
-     * @param id 商铺id
+     * @param id      商铺id
      */
     @PostMapping("/shop/editStore/{id}")
     R editStore(@RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id);
 
     /**
      * 删除店铺
+     *
      * @param id 商铺id
      */
     @PostMapping("/shop/deleteStore")
@@ -1887,14 +1893,16 @@
 
     /**
      * 获取详情
+     *
      * @param id 商铺id
      */
     @GetMapping("/shop/getStoreInfo")
-    R getStoreInfo(@RequestParam("id")Long id);
+    R getStoreInfo(@RequestParam("id") Long id);
 
 
     /**
      * 商品列表-分页查询
+     *
      * @param pageComShopGoodsDTO 添加数据
      */
     @PostMapping("/shop/pageGoods")
@@ -1902,6 +1910,7 @@
 
     /**
      * 新增商品
+     *
      * @param addShopGoodsVO
      * @return
      */
@@ -1910,29 +1919,35 @@
 
     /**
      * 编辑商品
+     *
      * @param id
      * @param addShopGoodsVO
      * @return
      */
     @PostMapping("/shop/editShopGoods/{id}")
-    R editShopGoods(@PathVariable("id") Long id,@RequestBody AddShopGoodsVO addShopGoodsVO);
+    R editShopGoods(@PathVariable("id") Long id, @RequestBody AddShopGoodsVO addShopGoodsVO);
 
     /**
      * 删除商品
+     *
      * @param id
      * @return
      */
     @PostMapping("/shop/deleteShopGoods")
     R deleteShopGoods(@RequestBody Long[] id);
+
     /**
      * 修改商品状态
+     *
      * @param id
      * @return
      */
     @GetMapping("/shop/changeShopGoodsStatus")
-    R changeStatus(@RequestParam("id") Long id,@RequestParam("status")Integer status);
+    R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
     /**
      * 结果
+     *
      * @param shopOperlog 商城后台操作日志
      */
     @PostMapping("/shop/addShopOperLog")
@@ -1940,6 +1955,7 @@
 
     /**
      * 分页查询 商家后台操作日志
+     *
      * @param pageDTO 分页数据
      * @return 分页日志
      */
@@ -1948,181 +1964,205 @@
 
     /**
      * 订单分页查询
+     *
      * @param pageComShopOrderSearchDTO 分页数据
      * @return 订单分页查询
      */
     @PostMapping("/shop/order/page")
     R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
     /**
      * 分页查询店铺列表
-     * @param comShopStoreDTO   请求参数
-     * @return  店铺列表
+     *
+     * @param comShopStoreDTO 请求参数
+     * @return 店铺列表
      */
     @PostMapping("/shop/pageShopStore")
     R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO);
 
     /**
      * 根据id查询店铺详情
-     * @param comShopStoreDTO   请求参数
-     * @return  店铺详情
+     *
+     * @param comShopStoreDTO 请求参数
+     * @return 店铺详情
      */
     @PostMapping("/shop/shopStoreDetail")
     R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO);
 
     /**
      * 分页查询商品列表
-     * @param comShopGoodsDTO   请求参数
-     * @return  商品列表
+     *
+     * @param comShopGoodsDTO 请求参数
+     * @return 商品列表
      */
     @PostMapping("/shop/pageShopGoods")
     R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO);
 
     /**
      * 根据商品id查询商品信息
-     * @param goodsId   商品id
-     * @return  商品信息
+     *
+     * @param goodsId 商品id
+     * @return 商品信息
      */
     @PostMapping("/shop/shopGoodsDetail")
     R shopGoodsDetail(@RequestParam("goodsId") Long goodsId);
 
     /**
      * 查询用户购物车列表
-     * @param userId    用户id
-     * @return  购物车列表
+     *
+     * @param userId 用户id
+     * @return 购物车列表
      */
     @PostMapping("/shop/shopCartList")
     R shopCartList(@RequestParam("userId") Long userId);
 
     /**
      * 查询用户购物车数量
-     * @param userId    用户id
-     * @return  用户购物车商品数量
+     *
+     * @param userId 用户id
+     * @return 用户购物车商品数量
      */
     @PostMapping("/shop/shopCartUserTotal")
     R shopCartUserTotal(@RequestParam("userId") Long userId);
 
     /**
      * 购物车添加
-     * @param comShopCartDTO    请求参数
-     * @return  购物车列表
+     *
+     * @param comShopCartDTO 请求参数
+     * @return 购物车列表
      */
     @PostMapping("/shop/shopAddCart")
     R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO);
 
     /**
      * 购物车内商品数量修改
-     * @param shopEditNubCartDTO    请求参数
-     * @return  修改结果
+     *
+     * @param shopEditNubCartDTO 请求参数
+     * @return 修改结果
      */
     @PostMapping("/shop/shopEditNubCart")
     R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO);
 
     /**
      * 删除购物车记录
-     * @param Ids   购物车id集合
-     * @return  删除结果
+     *
+     * @param Ids 购物车id集合
+     * @return 删除结果
      */
     @PostMapping("/shop/shopDelCart")
     R shopDelCart(@RequestBody List<Long> Ids);
 
     /**
      * 分页查询用户收货地址列表
-     * @param comShopAddressDTO    请求参数
-     * @return  用户收货地址列表
+     *
+     * @param comShopAddressDTO 请求参数
+     * @return 用户收货地址列表
      */
     @PostMapping("/shop/shopUserAddressList")
     R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
 
     /**
      * 用户添加收货地址
+     *
      * @param comShopAddressDTO 请求参数
-     * @return  添加结果
+     * @return 添加结果
      */
     @PostMapping("/shop/shopAddUserAddress")
     R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
 
     /**
      * 用户修改收货地址
+     *
      * @param comShopAddressDTO 请求参数
-     * @return  修改结果
+     * @return 修改结果
      */
     @PostMapping("/shop/shopEditUserAddress")
     R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
 
     /**
      * 用户删除收货地址
+     *
      * @param addressId 收货地址id
-     * @return  删除结果
+     * @return 删除结果
      */
     @PostMapping("/shop/shopDelUserAddress")
     R shopDelUserAddress(@RequestParam("addressId") Long addressId);
 
     /**
      * 订单预览
-     * @param orderPreviewDTO   请求参数
-     * @return  订单预览数据
+     *
+     * @param orderPreviewDTO 请求参数
+     * @return 订单预览数据
      */
     @PostMapping("/shop/orderPreview")
     R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
 
     /**
      * 创建订单
-     * @param orderCreateDTO    创建订单请求参数
-     * @return  创建结果
+     *
+     * @param orderCreateDTO 创建订单请求参数
+     * @return 创建结果
      */
     @PostMapping("/shop/orderCreate")
     R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
 
     /**
      * 分页查询用户订单列表
-     * @param comOrderListDTO   请求参数
-     * @return  查询结果
+     *
+     * @param comOrderListDTO 请求参数
+     * @return 查询结果
      */
     @PostMapping("/shop/pageOrderList")
     R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO);
 
     /**
      * 根据订单id查询订单详情
-     * @param orderId   订单id
-     * @return  订单详情
+     *
+     * @param orderId 订单id
+     * @return 订单详情
      */
     @PostMapping("/shop/orderDetail")
     R orderDetail(@RequestParam("orderId") Long orderId);
 
     /**
      * 根据订单id取消订单
-     * @param comShopOrderQueryDTO   请求参数
-     * @return  取消结果
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 取消结果
      */
     @PostMapping("/shop/orderCancel")
     R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
 
     /**
      * 根据订单id删除订单
-     * @param orderId   订单id
-     * @return  删除结果
+     *
+     * @param orderId 订单id
+     * @return 删除结果
      */
     @PostMapping("/shop/orderDelete")
     R orderDelete(@RequestParam("orderId") Long orderId);
 
     /**
      * 根据订单id确认收货
-     * @param comShopOrderQueryDTO   请求参数
-     * @return  确认结果
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 确认结果
      */
     @PostMapping("/shop/orderConfirm")
     R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
 
     /**
      * 统计用户订单数量
-     * @param userId    用户id
-     * @return  统计结果
+     *
+     * @param userId 用户id
+     * @return 统计结果
      */
     @PostMapping("/shop/orderStatistics")
     R orderStatistics(@RequestParam("userId") Long userId);
 
     /**
      * 商家资金的订单详情
+     *
      * @param id
      * @return
      */
@@ -2132,30 +2172,34 @@
 
     /**
      * 订单发货
+     *
      * @param orderShipDTO 商城订单发货信息
-     * @return  发货结果
+     * @return 发货结果
      */
     @PostMapping("/shop/shipOrder")
     R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO);
 
     /**
      * 订单配送
+     *
      * @param deliverDTO 订单信息
-     * @return  配送结果
+     * @return 配送结果
      */
     @PostMapping("/shop/deliverOrder")
     R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
 
     /**
      * 订单完成配送
+     *
      * @param deliverDTO 订单信息
-     * @return  配送完成结果
+     * @return 配送完成结果
      */
     @PostMapping("/shop/finishDeliverOrder")
     R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
 
     /**
      * 获取用户商户详情
+     *
      * @param userId 用户ID
      */
     @GetMapping("/shop/getUserStoreInfo")
@@ -2163,6 +2207,7 @@
 
     /**
      * 获取用户商户详情
+     *
      * @param account 用户账号
      */
     @GetMapping("/shop/getUserStoreInfoByAccount")
@@ -2170,53 +2215,60 @@
 
     /**
      * 订单导出信息
+     *
      * @param comShopOrderExportDTO 订单导出信息
-     * @return  订单导出信息
+     * @return 订单导出信息
      */
     @PostMapping("/shop/shopOrderExportData")
     R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO);
 
     /**
      * 资金管理导出信息
+     *
      * @param comShopFundsExportDTO 资金管理导出信息
-     * @return  资金管理导出信息
+     * @return 资金管理导出信息
      */
     @PostMapping("/shop/shopOrderFundsExportData")
-    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO );
+    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO);
 
     /**
      * 店铺资金统计信息
+     *
      * @param userId 用户ID
-     * @return  店铺资金统计信息
+     * @return 店铺资金统计信息
      */
     @GetMapping("/shop/getFundsStat")
     R getFundsStat(@RequestParam("userId") Long userId);
 
     /**
      * 店铺资金统计信息
+     *
      * @param pageComShopFundsSearchDTO 店铺资金
-     * @return  店铺资金统计信息
+     * @return 店铺资金统计信息
      */
     @PostMapping("/shop/pageShopFunds")
     R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
 
     /**
      * 微信支付订单回调
-     * @param wxPayNotifyOrderDTO   订单支付回调参数
+     *
+     * @param wxPayNotifyOrderDTO 订单支付回调参数
      */
     @PostMapping("/shop/wxOrderPayNotify")
     void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
 
     /**
      * 点击去支付订单
-     * @param orderPayDTO   请求参数
-     * @return  支付对象
+     *
+     * @param orderPayDTO 请求参数
+     * @return 支付对象
      */
     @PostMapping("/shop/wxPay")
     R wxPay(@RequestBody OrderPayDTO orderPayDTO);
 
     /**
      * 编辑实有人口
+     *
      * @param populationEditDTO
      * @return
      */
@@ -2225,13 +2277,15 @@
 
     /**
      * 微心愿删除
+     *
      * @param id 微心愿id
      */
     @PostMapping("deletemicrowish")
-    R deletemicrowish(@RequestParam("id")Long id);
+    R deletemicrowish(@RequestParam("id") Long id);
 
     /**
      * 基础数据》特殊群体》分页查询
+     *
      * @param pageInputUserDTO
      * @return
      */
@@ -2240,8 +2294,9 @@
 
     /**
      * 删除特殊群体人员
-     * @param id    特殊群体id
-     * @return  删除结果
+     *
+     * @param id 特殊群体id
+     * @return 删除结果
      */
     @PostMapping("common/data/special/delete")
     R deleteSpecialInputUser(@RequestParam(value = "id") Long id);
@@ -2249,29 +2304,34 @@
 
     /**
      * 办事指南_新增
+     *
      * @param workGuideVO 新增信息
      * @return 新增结果
      */
     @PostMapping("/addworkguide")
-    R addWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId")Long userId);
+    R addWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
 
     /**
      * 办事指南_编辑
+     *
      * @param workGuideVO
      * @return 编辑结果
      */
     @PostMapping("/editworkguide")
-    R editWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId")Long userId);
+    R editWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
 
     /**
      * 办事指南_详情
+     *
      * @param workGuideId
      * @return 详情
      */
     @GetMapping("/detailworkguide")
-    R detailWorkGuide(@RequestParam("workGuideId")Long workGuideId);
+    R detailWorkGuide(@RequestParam("workGuideId") Long workGuideId);
+
     /**
      * 办事指南_分页
+     *
      * @param pageActWorkGuideDTO 查询参数
      * @return 分页集合
      */
@@ -2280,6 +2340,7 @@
 
     /**
      * 办事指南_删除
+     *
      * @param workGuideId 办事指南id
      * @return 删除结果
      */
@@ -2288,32 +2349,36 @@
 
     /**
      * 分页查询邻里圈
-     * @param neighborCircleAppDTO  请求参数
-     * @return  邻里圈列表
+     *
+     * @param neighborCircleAppDTO 请求参数
+     * @return 邻里圈列表
      */
     @PostMapping("/neighbor/pageNeighborByApp")
     R pageNeighborByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
 
     /**
      * 用户发布邻里圈审核
-     * @param addNeighborCircleAppDTO   邻里圈请求参数
-     * @return  发布结果
+     *
+     * @param addNeighborCircleAppDTO 邻里圈请求参数
+     * @return 发布结果
      */
     @PostMapping("/neighbor/addNeighborByApp")
     R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO);
 
     /**
      * 用户查看邻里圈详情
-     * @param neighborCircleAppDTO  请求参数
-     * @return  邻里圈详情
+     *
+     * @param neighborCircleAppDTO 请求参数
+     * @return 邻里圈详情
      */
     @PostMapping("/neighbor/neighborDetailByApp")
     R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
 
     /**
      * 管理后台查询邻里圈列表
-     * @param comActNeighborCircleAdminDTO  请求参数
-     * @return  邻里圈列表
+     *
+     * @param comActNeighborCircleAdminDTO 请求参数
+     * @return 邻里圈列表
      */
     @PostMapping("/neighbor/pageNeighborByAdmin")
     R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
@@ -2321,7 +2386,8 @@
 
     /**
      * 后台修改邻里圈
-     * @param editNeighborCircleAdminVO  请求参数
+     *
+     * @param editNeighborCircleAdminVO 请求参数
      */
     @PostMapping("/neighbor/changeStatusByAdmin")
     R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO);
@@ -2329,22 +2395,25 @@
 
     /**
      * 邻里圈_后台删除
-     * @param id  邻里圈id
-     * @return  邻里圈列表
+     *
+     * @param id 邻里圈id
+     * @return 邻里圈列表
      */
     @PostMapping("/neighbor/deleteByAdmin")
-    R deleteByAdmin(@RequestParam("id")Long id);
+    R deleteByAdmin(@RequestParam("id") Long id);
 
     /**
      * 查看邻里圈基础_详情
-     * @param id  邻里圈id
-     * @return  邻里圈列表
+     *
+     * @param id 邻里圈id
+     * @return 邻里圈列表
      */
     @GetMapping("/neighbor/detailNeighborByAdmin")
-    R detailNeighborByAdmin(@RequestParam("id")Long id);
+    R detailNeighborByAdmin(@RequestParam("id") Long id);
 
     /**
      * 邻里圈的所有评论_分页
+     *
      * @param dto 请求参数
      * @return 评论列表
      */
@@ -2353,6 +2422,7 @@
 
     /**
      * 评论的状态_修改
+     *
      * @param vo 请求参数
      */
     @PostMapping("/neighbor/changeCommentStatusByAdmin")
@@ -2360,6 +2430,7 @@
 
     /**
      * 邻里圈评论_详情
+     *
      * @param id 评论id
      */
     @GetMapping("/neighbor/detailNeighborCommentByAdmin")
@@ -2368,53 +2439,60 @@
 
     /**
      * 用户查询邻里圈列表
-     * @param neighborCircleAppDTO  请求参数
-     * @return  邻里圈列表
+     *
+     * @param neighborCircleAppDTO 请求参数
+     * @return 邻里圈列表
      */
     @PostMapping("/neighbor/neighborExamineByApp")
     R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
 
     /**
      * 邻里圈点赞
-     * @param fabulousAppDTO    请求参数
-     * @return  点赞结果
+     *
+     * @param fabulousAppDTO 请求参数
+     * @return 点赞结果
      */
     @PostMapping("/neighbor/neighborFabulousByApp")
     R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
 
     /**
      * 邻里圈转发
+     *
      * @param forwardAppDTO 请求参数
-     * @return  转发结果
+     * @return 转发结果
      */
     @PostMapping("/neighbor/neighborForwardByApp")
     R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO);
 
     /**
      * 邻里圈评论
+     *
      * @param commentAppDTO 请求参数
-     * @return  评论结果
+     * @return 评论结果
      */
     @PostMapping("/neighbor/neighborCommentByApp")
     R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO);
 
     /**
      * 邻里圈回复
-     * @param replyAppDTO   请求参数
-     * @return  回复结果
+     *
+     * @param replyAppDTO 请求参数
+     * @return 回复结果
      */
     @PostMapping("/neighbor/neighborReplyByApp")
     R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO);
 
     /**
      * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
-     * @return  执行结果
+     *
+     * @return 执行结果
      */
     @PostMapping("/neighbor/timeTaskCircleFlow")
     R timedTaskNeighborCircleRecord();
 
     /**
      * 邻里圈评论回复_分页
+     *
      * @param dto 参数
      */
     @PostMapping("/neighbor/detailNeighborCommentAllReply")
@@ -2422,6 +2500,7 @@
 
     /**
      * 邻里圈评论回复_基本详情
+     *
      * @param id 参数
      */
     @GetMapping("/neighbor/detailNeighborCommentReply")
@@ -2429,22 +2508,26 @@
 
     /**
      * 评论回复状态_修改
+     *
      * @param changeStatusReplyVO 参数
      */
     @PostMapping("/neighbor/changeCommentReplyStatusByAdmin")
     R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO);
+
     /**
      * 邻里圈取消点赞
-     * @param fabulousAppDTO    请求参数
-     * @return  取消点赞结果
+     *
+     * @param fabulousAppDTO 请求参数
+     * @return 取消点赞结果
      */
     @PostMapping("/neighbor/neighborFabulousCancelByApp")
     R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
 
     /**
      * 添加邻里圈浏览记录
-     * @param addBrowseAppDTO   请求参数
-     * @return  返回参数
+     *
+     * @param addBrowseAppDTO 请求参数
+     * @return 返回参数
      */
     @PostMapping("/neighbor/neighborAddBrowseByApp")
     R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO);
@@ -2452,6 +2535,7 @@
 
     /**
      * 邻里圈_添加
+     *
      * @param addNeighborCircleAdminVO 参数
      */
     @PostMapping("/neighbor/addNeighborByAdmin")
@@ -2459,23 +2543,26 @@
 
     /**
      * 分页查询评论下所有回复
-     * @param commentReplyAppDTO    请求参数
-     * @return  回复列表
+     *
+     * @param commentReplyAppDTO 请求参数
+     * @return 回复列表
      */
     @PostMapping("/neighbor/neighborCommentReplyByApp")
     R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO);
 
     /**
      * 实有房屋_编辑
-     * @param villageId 实有房屋id
+     *
+     * @param villageId       实有房屋id
      * @param comMngVillageVO 请求参数
      * @return
      */
     @PostMapping("/editvillage/{villageId}")
-    R editvillage(@PathVariable("villageId") Long villageId,@RequestBody ComMngVillageVO comMngVillageVO);
+    R editvillage(@PathVariable("villageId") Long villageId, @RequestBody ComMngVillageVO comMngVillageVO);
 
     /**
      * 商城系统配置
+     *
      * @param comShopSysConfDTO
      * @return
      */
@@ -2484,6 +2571,7 @@
 
     /**
      * 商城系统配置查询
+     *
      * @param pageComShopSysConfDTO
      * @return
      */
@@ -2492,6 +2580,7 @@
 
     /**
      * 编辑实有人口_电子档案
+     *
      * @param userElectronicFileVO
      * @return
      */
@@ -2500,86 +2589,97 @@
 
     /**
      * 实有人口统计
-     * @param communityId   社区id
-     * @return  统计结果
+     *
+     * @param communityId 社区id
+     * @return 统计结果
      */
     @PostMapping("/common/data/population/statistics")
     R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId);
 
     /**
      * 查询房屋级联菜单
-     * @param cascadeHouseDTO   请求参数
-     * @return  菜单列表
+     *
+     * @param cascadeHouseDTO 请求参数
+     * @return 菜单列表
      */
     @PostMapping("/common/data/population/cascade/list")
     R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
 
     /**
      * 分页查询房屋列表
-     * @param populationHouseAdminDTO   请求参数
-     * @return  房屋列表
+     *
+     * @param populationHouseAdminDTO 请求参数
+     * @return 房屋列表
      */
     @PostMapping("/common/data/population/page/house")
     R pageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO);
 
     /**
      * 根据id查询实有房屋信息
-     * @param houseId   房屋id
-     * @return  房屋信息
+     *
+     * @param houseId 房屋id
+     * @return 房屋信息
      */
     @PostMapping("/common/data/population/house/detail")
     R getHouseDetail(@RequestParam(value = "houseId") Long houseId);
 
     /**
      * 编辑实有房屋信息
+     *
      * @param houseEditAdminDTO 请求参数
-     * @return  编辑结果
+     * @return 编辑结果
      */
     @PostMapping("/common/data/population/house/edit")
     R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO);
 
     /**
      * 根据房屋id列表删除房屋信息
-     * @param Ids   请求参数
-     * @return  删除结果
+     *
+     * @param Ids 请求参数
+     * @return 删除结果
      */
     @PostMapping("/common/data/population/house/delete")
     R deleteHouses(@RequestBody List<Long> Ids);
 
     /**
      * 实有房屋统计
-     * @param communityId   社区id
-     * @return  统计结果
+     *
+     * @param communityId 社区id
+     * @return 统计结果
      */
     @PostMapping("/common/data/population/house/statistics")
     R getHouseTotalByAdmin(@RequestParam("communityId") Long communityId);
 
     /**
      * 根据社区id查询社区所有省市区
-     * @param communityId   社区id
-     * @return  社区所在省市区
+     *
+     * @param communityId 社区id
+     * @return 社区所在省市区
      */
     @PostMapping("/common/data/village/getRegion")
     R getRegion(@RequestParam("communityId") Long communityId);
 
     /**
      * 统计社区内小区数量
-     * @param communityId   社区id
-     * @return  统计小区数量
+     *
+     * @param communityId 社区id
+     * @return 统计小区数量
      */
     @PostMapping("/common/data/village/statistics")
     R villageStatistics(@RequestParam("communityId") Long communityId);
 
     /**
      * 小区详情
+     *
      * @param villageId 小区id
-     * @return  小区详情
+     * @return 小区详情
      */
     @PostMapping("/village/getVillage")
     R getVillage(@RequestParam("villageId") Long villageId);
 
     /**
      * 新增高龄认证
+     *
      * @param eldersAuthAddDTO
      * @return 新增结果
      */
@@ -2588,6 +2688,7 @@
 
     /**
      * 修改高龄认证
+     *
      * @param eldersAuthEditDTO
      * @return 维护结果
      */
@@ -2596,6 +2697,7 @@
 
     /**
      * 分页查找高龄认证
+     *
      * @param pageEldersAuthDTO
      * @return 维护结果
      */
@@ -2604,6 +2706,7 @@
 
     /**
      * 删除高龄认证
+     *
      * @param eldersAuthDeleteDTO
      * @return 平台用户信息
      */
@@ -2612,6 +2715,7 @@
 
     /**
      * 查询高龄认证详细信息
+     *
      * @param id 高龄认证 id
      * @return 查找结果
      */
@@ -2620,6 +2724,7 @@
 
     /**
      * 获取用户家庭成员
+     *
      * @param userId 用户ID
      * @return
      */
@@ -2628,6 +2733,7 @@
 
     /**
      * 查询导出高龄老人
+     *
      * @param pageEldersAuthDTO
      * @return
      */
@@ -2636,6 +2742,7 @@
 
     /**
      * 通过家庭成员ID添加
+     *
      * @param eldersAuthAddByFamilyDTO 添加信息
      * @return
      */
@@ -2645,6 +2752,7 @@
 
     /**
      * 添加高龄认证反馈
+     *
      * @param eldersAuthFeedbackAddDTO
      * @return
      */
@@ -2653,107 +2761,121 @@
 
     /**
      * 小程序-查询疫苗分类列表
-     * @return  疫苗分类列表
+     *
+     * @return 疫苗分类列表
      */
     @PostMapping("/vaccines/app/list")
     R getVaccinesListByApp();
 
     /**
      * 小程序-疫苗类型对应家庭成员接种列表
-     * @return  疫苗类型对应家庭成员接种列表
+     *
+     * @return 疫苗类型对应家庭成员接种列表
      */
     @PostMapping("/vaccines/app/user/list")
     R getVaccinesUserListByApp(@RequestBody VaccinesEnrollUserByAppDTO enrollUserByAppDTO);
 
     /**
      * 小程序-报名疫苗
-     * @param enrollByAppDTO    请求参数
-     * @return  报名结果
+     *
+     * @param enrollByAppDTO 请求参数
+     * @return 报名结果
      */
     @PostMapping("/vaccines/app/enroll")
     R VaccinesEnrollByApp(@RequestBody VaccinesEnrollByAppDTO enrollByAppDTO);
 
     /**
      * 小程序-查询用户家庭成员接种记录
-     * @param userId    用户id
-     * @return  用户家庭成员接种记录
+     *
+     * @param userId 用户id
+     * @return 用户家庭成员接种记录
      */
     @PostMapping("/vaccines/app/user/inoculation/list")
     R getVaccinesUserInoculationListByApp(@RequestParam("userId") Long userId);
 
     /**
      * 后台管理-查询疫苗分类列表
-     * @param vaccinesByAdminDTO    请求参数
-     * @return  疫苗分类列表
+     *
+     * @param vaccinesByAdminDTO 请求参数
+     * @return 疫苗分类列表
      */
     @PostMapping("/vaccines/admin/list")
     R getVaccinesListByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
 
     /**
      * 修改疫苗分类信息
-     * @param vaccinesByAdminDTO    请求参数
-     * @return  修改结果
+     *
+     * @param vaccinesByAdminDTO 请求参数
+     * @return 修改结果
      */
     @PostMapping("/vaccines/admin/edit")
     R editVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
 
     /**
      * 新增疫苗分类信息
-     * @param vaccinesByAdminDTO    请求参数
-     * @return  新增结果
+     *
+     * @param vaccinesByAdminDTO 请求参数
+     * @return 新增结果
      */
     @PostMapping("/vaccines/admin/add")
     R addVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
 
     /**
      * 查询疫苗登记列表
+     *
      * @param vaccinesByAdminDTO 请求参数
-     * @return  登记列表
+     * @return 登记列表
      */
     @PostMapping("/vaccines/admin/enroll/list")
     R getVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
 
     /**
      * 删除疫苗分类信息
-     * @param id    疫苗分类id
-     * @return      删除结果
+     *
+     * @param id 疫苗分类id
+     * @return 删除结果
      */
     @PostMapping("/vaccines/admin/enroll/delete")
     R deleteVaccinesByAdmin(@RequestParam("id") Long id);
 
     /**
      * 根据条件导出登记列表
-     * @param vaccinesByAdminDTO    请求参数
-     * @return  登记列表
+     *
+     * @param vaccinesByAdminDTO 请求参数
+     * @return 登记列表
      */
     @PostMapping("/vaccines/admin/enroll/export")
     R exportVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
 
     /**
      * 查询接种记录列表
-     * @param inoculationByAdminDTO     请求参数
-     * @return  接种记录列表
+     *
+     * @param inoculationByAdminDTO 请求参数
+     * @return 接种记录列表
      */
     @PostMapping("/vaccines/admin/inoculation/list")
     R getVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
 
     /**
      * 接种记录信息导出
-     * @param inoculationByAdminDTO     请求参数
-     * @return  导出结果
+     *
+     * @param inoculationByAdminDTO 请求参数
+     * @return 导出结果
      */
     @PostMapping("/vaccines/admin/inoculation/export")
     R exportVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
 
     /**
      * 查询疫苗分类列表
-     * @return  疫苗分类列表
+     *
+     * @return 疫苗分类列表
      */
     @PostMapping("/vaccines/admin/enroll/type/list")
     R getEnrollTypeListByAdmin();
 
     /**
      * 查询老龄认证记录
+     *
      * @param pageComEldersRecordsDTO
      * @return
      */
@@ -2762,6 +2884,7 @@
 
     /**
      * 查询老龄认证记录详细
+     *
      * @param id
      * @return
      */
@@ -2770,6 +2893,7 @@
 
     /**
      * 查询老龄认证社区认证方式
+     *
      * @param eldersAuthTypeQueryDTO
      * @return
      */
@@ -2778,6 +2902,7 @@
 
     /**
      * 分页查询高领老人列表
+     *
      * @param pageEldersAuthElderlyDTO
      * @return
      */
@@ -2786,31 +2911,47 @@
 
     /**
      * 批量保存高龄老人
+     *
      * @param newVoList
      * @param communityId
      * @return
      */
     @PostMapping("/eldersauthelderly/batchSave")
-    R listSaveEldersAuthElderlyExcelVO(@RequestBody List<EldersAuthElderlyExcelVO> newVoList,@RequestParam("communityId") Long communityId,@RequestParam("createBy") Long createBy);
+    R listSaveEldersAuthElderlyExcelVO(@RequestBody List<EldersAuthElderlyExcelVO> newVoList, @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy);
 
-	/**
-	     *  批量保存楼栋
+    /**
+     * 批量保存楼栋
+     *
      * @param newVoList
      * @param communityId
      * @return
      */
     @PostMapping("/building/batchSave")
-    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,@RequestParam("communityId") Long communityId);
+    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList, @RequestParam("communityId") Long communityId);
 
     /**
      * 根据字典key查询字典项
+     *
      * @param key
      * @return
      */
     @GetMapping("/dictionary/listDictionaryByKey")
     R<List<BcDictionaryVO>> listDictionaryByKey(@RequestParam("key") String key);
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code 入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/dictionary/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code") String code);
+
     /**
      * 查看高龄老人详情
+     *
      * @param id
      * @return
      */
@@ -2819,6 +2960,7 @@
 
     /**
      * 修改高龄老人信息
+     *
      * @param eldersAuthElderlyDTO
      * @return
      */
@@ -2827,6 +2969,7 @@
 
     /**
      * 删除高领老人
+     *
      * @param id
      * @return
      */
@@ -2835,40 +2978,45 @@
 
     /**
      * 通过老人用户id获取老人信息
-     * @param authUserId    老人用户id
-     * @return  老人信息
+     *
+     * @param authUserId 老人用户id
+     * @return 老人信息
      */
     @PostMapping("/elders/getAuth")
     R getEldersAuthUserByApp(@RequestParam("authUserId") Long authUserId);
 
     /**
      * 人脸核验新增高龄认证记录
-     * @param authGetResultDTO  请求参数
-     * @return  新增结果
+     *
+     * @param authGetResultDTO 请求参数
+     * @return 新增结果
      */
     @PostMapping("/elders/add/auth")
     R addEldersAuthByApp(@RequestBody ComEldersAuthGetResultDTO authGetResultDTO);
 
     /**
      * 高龄认证分页接口
-     * @param authPageDTO   请求参数
-     * @return  查询结果
+     *
+     * @param authPageDTO 请求参数
+     * @return 查询结果
      */
     @PostMapping("/elders/page/auth")
     R pageEldersByApp(@RequestBody ComEldersAuthPageDTO authPageDTO);
 
     /**
      * 添加高龄老人接口
+     *
      * @param authUserAddAppDTO 请求参数
-     * @return  添加结果
+     * @return 添加结果
      */
     @PostMapping("/elders/add")
     R addEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
 
     /**
      * 修改高龄老人接口
+     *
      * @param authUserAddAppDTO 请求参数
-     * @return  修改结果
+     * @return 修改结果
      */
     @PostMapping("/elders/edit")
     R editEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
@@ -2876,11 +3024,13 @@
 
     /**
      * 分页查询生存认证记录
+     *
      * @param pageEldersAuthElderlyDTO
      * @return
      */
     @PostMapping("/elders/records/page")
-    R pageQueryEldersAuthRecord(@RequestBody  PageEldersAuthRecordDTO pageEldersAuthElderlyDTO);
+    R pageQueryEldersAuthRecord(@RequestBody PageEldersAuthRecordDTO pageEldersAuthElderlyDTO);
+
     /**
      * description 批量保存重点人群人员信息
      *
@@ -2889,20 +3039,19 @@
      * @author manailin
      * @date 2021/6/10 17:00
      */
-	@PostMapping("/key_person/batch/save")
+    @PostMapping("/key_person/batch/save")
     R saveBatchKeyPerson(@RequestBody List<KeyPersonInfoDTO> list);
 
-	@GetMapping("/screen/population/statistic")
-    R statistic(@RequestParam("communityId")Long communityId);
+    @GetMapping("/screen/population/statistic")
+    R statistic(@RequestParam("communityId") Long communityId);
 
     /**
-     *
      * @param communityId
      * @param type
      * @return
      */
     @PostMapping("/elders/setCommunityAuthType")
-    R setCommunityAuthType(@RequestParam("communityId")Long communityId,@RequestParam("type") Integer type);
+    R setCommunityAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
 
     @PostMapping("/elders/getAuthHistoryList")
     R getAuthHistoryList(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
@@ -2910,26 +3059,29 @@
     @PostMapping("/elders/getAuthHistoryExport")
     R getAuthHistoryExport(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
 
-	@GetMapping("/screen/work/neighborCircle")
+    @GetMapping("/screen/work/neighborCircle")
     R statisticNeighborCircle(@RequestParam("communityId") Long communityId);
 
 
     /**
      * 党员党支部统计信息
+     *
      * @return
      */
     @PostMapping("/bigscreen/party/orgmembers")
     R bigscreenPartyOrgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
 
     /**
-     *  党员年龄占比、男女占比
+     * 党员年龄占比、男女占比
+     *
      * @return
      */
     @PostMapping("/bigscreen/party/ageGender")
     R<BigScreenStatisticAgeGender> ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
 
     /**
-     *  党建数据概览
+     * 党建数据概览
+     *
      * @return
      */
     @PostMapping("/bigscreen/party/partybuild/{communityId}")
@@ -2937,6 +3089,7 @@
 
     /**
      * 党员活动参加用户排行榜-TOP3
+     *
      * @return
      */
     @PostMapping("/bigscreen/party/activitytopuser/{communityId}")
@@ -2944,6 +3097,7 @@
 
     /**
      * 党员活动
+     *
      * @return
      */
     @PostMapping("/bigscreen/party/bigscreenPartyactivity")
@@ -2951,29 +3105,32 @@
 
     /**
      * 首页大屏统计接口
-     * @param communityId   社区id
-     * @return  统计结果
+     *
+     * @param communityId 社区id
+     * @return 统计结果
      */
     @GetMapping("/screen/getScreenIndex")
-    R getScreenIndex(@RequestParam("communityId")Long communityId);
+    R getScreenIndex(@RequestParam("communityId") Long communityId);
 
     /**
      * 事件大屏统计接口
-     * @param communityId   社区id
-     * @return  统计结果
+     *
+     * @param communityId 社区id
+     * @return 统计结果
      */
     @GetMapping("/screen/getScreenEvent")
-    R getScreenEvent(@RequestParam("communityId")Long communityId);
+    R getScreenEvent(@RequestParam("communityId") Long communityId);
 
     /**
      * 民生大屏统计接口
-     * @param communityId   社区id
-     * @return  统计结果
+     *
+     * @param communityId 社区id
+     * @return 统计结果
      */
     @GetMapping("/screen/getScreenCivil")
-    R getScreenCivil(@RequestParam("communityId")Long communityId);
+    R getScreenCivil(@RequestParam("communityId") Long communityId);
 
-	/**
+    /**
      * 大屏统计邻里圈
      */
     @GetMapping("/screen/work/wish")
@@ -2981,6 +3138,7 @@
 
     /**
      * 大屏统计社区-活动
+     *
      * @param communityId
      * @return
      */
@@ -2989,6 +3147,7 @@
 
     /**
      * 大屏统计一起议
+     *
      * @param communityId
      * @return
      */
@@ -2997,30 +3156,33 @@
 
     /**
      * 大屏统计党建工作
+     *
      * @param communityId
      * @return
      */
     @GetMapping("/screen/work/pbWork")
-    R pbWork(@RequestParam("communityId")Long communityId);
+    R pbWork(@RequestParam("communityId") Long communityId);
 
 
     /**
      * 大屏统计随手拍
+     *
      * @param communityId
      * @return
      */
     @GetMapping("/screen/work/easyPhoto")
-    R easyPhoto(@RequestParam("communityId")Long communityId);
+    R easyPhoto(@RequestParam("communityId") Long communityId);
 
     /**
-     *  大屏统计工作情况
+     * 大屏统计工作情况
+     *
      * @param communityId
      * @return
      */
     @GetMapping("/screen/work/workCount")
-    R workCount(@RequestParam("communityId")Long communityId);
+    R workCount(@RequestParam("communityId") Long communityId);
 
-	/**
+    /**
      * description 批量保存残疾人人员信息
      *
      * @param list 疾人信息列表
@@ -3033,112 +3195,284 @@
 
     /**
      * 获取社区网格
-     * @param communityId   社区id
-     * @return  网格数据
+     *
+     * @param communityId 社区id
+     * @return 网格数据
      */
     @GetMapping("/screen/getScreenGirds")
-    R getScreenGirds(@RequestParam("communityId")Long communityId);
+    R getScreenGirds(@RequestParam("communityId") Long communityId);
 
     /**
      * 事件大屏查询事件详情
-     * @param eventDetailDTO    请求参数
-     * @return  事件详情
+     *
+     * @param eventDetailDTO 请求参数
+     * @return 事件详情
      */
     @PostMapping("/screen/getScreenEventDetail")
     R getScreenEventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO);
 
     /**
      * 工作大屏-一起议列表
-     * @param discussListDTO    请求参数
-     * @return  一起议列表
+     *
+     * @param discussListDTO 请求参数
+     * @return 一起议列表
      */
     @PostMapping("/screen/work/getScreenDiscussList")
     R getScreenDiscussList(@RequestBody ScreenDiscussListDTO discussListDTO);
 
     /**
      * 工作大屏-社区活动列表
-     * @param actActivityListDTO    请求参数
-     * @return  活动列表
+     *
+     * @param actActivityListDTO 请求参数
+     * @return 活动列表
      */
     @PostMapping("/screen/work/getScreenActActivityList")
     R getScreenActActivityList(@RequestBody ScreenActActivityListDTO actActivityListDTO);
 
     /**
      * 工作大屏-社区活动报名人员列表
+     *
      * @param activityPeopleListDTO 请求参数
-     * @return  社区活动报名人员列表
+     * @return 社区活动报名人员列表
      */
     @PostMapping("/screen/work/getActActivityPeopleList")
     R getActActivityPeopleList(@RequestBody ScreenActActivityPeopleListDTO activityPeopleListDTO);
 
     /**
      * 工作大屏-微心愿列表
-     * @param microListDTO  请求参数
-     * @return  微心愿列表
+     *
+     * @param microListDTO 请求参数
+     * @return 微心愿列表
      */
     @PostMapping("/screen/work/getScreenMicroList")
     R getScreenMicroList(@RequestBody ScreenMicroListDTO microListDTO);
 
     /**
      * 获取系统参数接口
-     * @param code  参数code
-     * @return  系统参数
+     *
+     * @param code 参数code
+     * @return 系统参数
      */
     @GetMapping("/sys/conf/get")
     R getConf(@RequestParam("code") String code);
 
     /**
-     * 根据社区id获取社区下人口数据信息
-     * @param populationListDTO    请求参数
-     * @return  人口数据
+     * 获取人口数据信息
+     *
+     * @param populationListDTO 请求参数
+     * @return 人口数据
      */
     @PostMapping("/population/list/app")
     R getPopulationListByApp(@RequestBody PagePopulationListDTO populationListDTO);
 
     /**
      * 根据人口id获取人口详情
-     * @param populationId
-     * @return
+     *
+     * @param populationId  人口id
+     * @return  人口详情
      */
     @GetMapping("/population/detail/app")
     R getPopulationDetailByApp(@RequestParam("populationId") Long populationId);
 
     /**
      * 修复人口加密问题
-     * @return  修复结果
+     *
+     * @return 修复结果
      */
     @GetMapping("/population/repair")
     R getPopulationRepairByApp();
 
     /**
      * 工作大屏-社区动态模块数据统计
-     * @param communityId   社区id
-     * @return  社区动态数据统计
+     *
+     * @param communityId 社区id
+     * @return 社区动态数据统计
      */
     @GetMapping("/screen/work/dynamic")
-    R dynamicWork(@RequestParam("communityId")Long communityId);
+    R dynamicWork(@RequestParam("communityId") Long communityId);
 
     /**
      * 查询用户钱包信息
-     * @param walletDetailDTO   请求参数
-     * @return  用户钱包信息
+     *
+     * @param walletDetailDTO 请求参数
+     * @return 用户钱包信息
      */
     @PostMapping("/wallet/get/my")
     R getUserWalletDetail(@RequestBody ComActWalletDetailDTO walletDetailDTO);
 
     /**
      * 查询用户收支记录列表
-     * @param walletTradeDTO    请求参数
-     * @return  收支记录
+     *
+     * @param walletTradeDTO 请求参数
+     * @return 收支记录
      */
     @PostMapping("/wallet/get/trade")
     R getUserWalletTrade(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
 
     /**
      * 查询用户绑定的社区收益排行榜
-     * @param walletTradeDTO   请求参数
-     * @return  社区收益排行榜
+     *
+     * @param walletTradeDTO 请求参数
+     * @return 社区收益排行榜
      */
     @PostMapping("/wallet/get/ranking")
     R getWalletRanking(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 综治后台-居民列表
+     * @param populationListDTO 请求参数
+     * @return  居民列表
+     */
+    @PostMapping("/population/grid/list")
+    R getGridPopulationList(@RequestBody ComMngPopulationListDTO populationListDTO);
+
+    /**
+     * 综治后台-删除居民
+     * @param ids   居民id集合
+     * @return  删除结果
+     */
+    @PostMapping("/population/grid/del")
+    R delGridPopulation(@RequestBody List<Long> ids);
+
+    /**
+     * 综治后台-居民详情
+     * @param populationId  居民id
+     * @return  居民详情
+     */
+    @GetMapping("/population/grid/get")
+    R getGridPopulationDetail(@RequestParam("populationId")Long populationId);
+
+    /**
+     * 综治app-小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @PostMapping("/village/grid/list")
+    R getGridVillageList(@RequestBody ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     * @param villageId 小区id
+     * @return  楼栋列表
+     */
+    @PostMapping("/village/grid/building/list")
+    R getGridVillageBuildingList(@RequestParam("villageId")Long villageId);
+
+    /**
+     * 小区楼栋下房屋列表
+     * @param buildHouseAppDTO  请求参数
+     * @return  房屋列表
+     */
+    @PostMapping("/village/grid/building/house/list")
+    R getGridVillageBuildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    /**
+     * 小区楼栋下房屋信息
+     * @param houseId   房屋id
+     * @return  房屋信息
+     */
+    @PostMapping("/village/grid/building/house/detail")
+    R getGridVillageBuildingHouseDetail(@RequestParam("houseId")Long houseId);
+
+    /**
+     * 查询平台人口列表
+     * @param populationDTO 请求参数
+     * @return  人口列表
+     */
+    @PostMapping("/village/grid/building/house/population/list")
+    R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO);
+
+    /**
+     * 批量向房屋新增人员
+     * @param housePopulationDTO    请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/village/grid/building/house/add/population")
+    R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 批量删除房屋内人员
+     * @param housePopulationDTO    请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/village/grid/building/house/del/population")
+    R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 综治后台-居民标签栏统计
+     * @return  居民统计
+     */
+    @GetMapping("/population/grid/statistics")
+    R getGridPopulationStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * @param populationExportDTO   请求参数
+     * @return  导出结果
+     */
+    @PostMapping("/population/grid/export")
+    R getGridPopulationExport(@RequestBody ComMngPopulationExportDTO populationExportDTO);
+
+    /**
+     * 综治后台-居民管理小区列表
+     * @param name  小区名字
+     * @return  小区列表
+     */
+    @GetMapping("/population/village/relation")
+    R relationVillage(@RequestParam("name") String name);
+
+    /**
+     * 综治后台-居民管理-级联列表
+     * @param subordinateDTO    请求参数
+     * @return  级联列表
+     */
+    @PostMapping("/population/subordinate")
+    R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO);
+
+    /**
+     * 综治后台-居民关联房屋
+     * @param relationHouseDTO  请求参数
+     * @return  关联结果
+     */
+    @PostMapping("/population/relation/house")
+    R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO);
+
+    /**
+     * 综治后台-批量删除小区
+     * @param villageIds    小区id集合
+     * @return  删除结果
+     */
+    @PostMapping("/village/admin/del")
+    R delGridVillage(@RequestBody List<Long> villageIds);
+
+    /**
+     * 综治后台-小区内居民列表
+     * @param villagePopulationDTO  请求参数
+     * @return  居民列表
+     */
+    @PostMapping("/village/admin/population/list")
+    R getVillagePopulationAdmin(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO);
+
+    /**
+     * 综治后台-居民下房屋列表
+     * @param villagePopulationHouseDTO 请求参数
+     * @return  房屋列表
+     */
+    @PostMapping("/village/admin/population/house/list")
+    R getVillagePopulationHouseAdmin(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO);
+
+    /**
+     * 综治后台-小区统计
+     * @return  小区统计结果
+     */
+    @GetMapping("/village/admin/statistics")
+    R getGridVillageStatistics();
+
+    /**
+     * 综治后台-小区列表导出
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @PostMapping("/village/admin/export")
+    R getGridVillageListExport(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
index 7d23ba4..1dfa380 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -1,12 +1,14 @@
 package com.panzhihua.common.service.grid;
 
+import com.panzhihua.common.model.dtos.IdDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
 import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
-import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.grid.*;
-import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
@@ -14,18 +16,18 @@
 import java.util.List;
 
 /**
- *
  * @author cedoo email:cedoo(a)qq.com
  * @version 1.0
- * @since 1.0
  * @date 2021-05-26
- * */
+ * @since 1.0
+ */
 @FeignClient(name = "grid")
 public interface GridService {
 
 
     /**
      * 分页查找事件
+     *
      * @param pageEventDTO
      * @return 维护结果
      */
@@ -34,6 +36,7 @@
 
     /**
      * 删除事件
+     *
      * @param CommonEventDeleteDTO
      * @return 平台用户信息
      */
@@ -74,6 +77,7 @@
 
     /**
      * 删除网格和网格员的关联关系
+     *
      * @param eventGridMemberRelationDeleteDTO
      * @return 平台用户信息
      */
@@ -82,13 +86,14 @@
 
     /**
      * 查询网格和网格员的关联关系详细信息
+     *
      * @param id 网格和网格员的关联关系 id
      * @return 查找结果
      */
     @PostMapping("/eventgridmemberrelation/{id}")
     R<EventGridMemberRelationDetailsVO> eventGridMemberRelationDetails(@PathVariable("id") Long id);
-	
-	
+
+
     /**
      * 新增网格员定时上报地理预警记录
      * @param eventGridMemberWarnLogAddDTO
@@ -99,6 +104,7 @@
 
     /**
      * 修改网格员定时上报地理预警记录
+     *
      * @param eventGridMemberWarnLogEditDTO
      * @return 维护结果
      */
@@ -107,6 +113,7 @@
 
     /**
      * 分页查找网格员定时上报地理预警记录
+     *
      * @param pageEventGridMemberWarnLogDTO
      * @return 维护结果
      */
@@ -115,6 +122,7 @@
 
     /**
      * 删除网格员定时上报地理预警记录
+     *
      * @param eventGridMemberWarnLogDeleteDTO
      * @return 平台用户信息
      */
@@ -123,15 +131,17 @@
 
     /**
      * 查询网格员定时上报地理预警记录详细信息
+     *
      * @param id 网格员定时上报地理预警记录 id
      * @return 查找结果
      */
     @PostMapping("/eventgridmemberwarnlog/{id}")
     R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(@PathVariable("id") Long id);
-	
-	
+
+
     /**
      * 新增重点人群记录
+     *
      * @param eventMainMemberAddDTO
      * @return 新增结果
      */
@@ -140,6 +150,7 @@
 
     /**
      * 修改重点人群记录
+     *
      * @param eventMainMemberEditDTO
      * @return 维护结果
      */
@@ -148,6 +159,7 @@
 
     /**
      * 分页查找重点人群记录
+     *
      * @param pageEventMainMemberDTO
      * @return 维护结果
      */
@@ -246,15 +258,17 @@
 
     /**
      * 查询事件处理流转记录详细信息
+     *
      * @param id 事件处理流转记录 id
      * @return 查找结果
      */
     @PostMapping("/eventtransferrecord/{id}")
     R<EventTransferRecordDetailsVO> eventTransferRecordDetails(@PathVariable("id") Long id);
-	
-	
+
+
     /**
      * 新增重点人群走访记录
+     *
      * @param eventVisitingTasksAddDTO
      * @return 新增结果
      */
@@ -263,6 +277,7 @@
 
     /**
      * 修改重点人群走访记录
+     *
      * @param eventVisitingTasksEditDTO
      * @return 维护结果
      */
@@ -271,6 +286,7 @@
 
     /**
      * 分页查找重点人群走访记录
+     *
      * @param pageEventVisitingTasksDTO
      * @return 维护结果
      */
@@ -279,6 +295,7 @@
 
     /**
      * 删除重点人群走访记录
+     *
      * @param eventVisitingTasksDeleteDTO
      * @return 平台用户信息
      */
@@ -287,6 +304,7 @@
 
     /**
      * 查询重点人群走访记录详细信息
+     *
      * @param id 重点人群走访记录 id
      * @return 查找结果
      */
@@ -295,6 +313,7 @@
 
     /**
      * 新增APP应用版本信息
+     *
      * @param eventApplicationAppReleaseAddDTO
      * @return 新增结果
      */
@@ -303,6 +322,7 @@
 
     /**
      * 修改APP应用版本信息
+     *
      * @param eventApplicationAppReleaseEditDTO
      * @return 维护结果
      */
@@ -311,6 +331,7 @@
 
     /**
      * 分页查找APP应用版本信息
+     *
      * @param pageEventApplicationAppReleaseDTO
      * @return 维护结果
      */
@@ -319,6 +340,7 @@
 
     /**
      * 删除APP应用版本信息
+     *
      * @param eventApplicationAppReleaseDeleteDTO
      * @return 平台用户信息
      */
@@ -327,6 +349,7 @@
 
     /**
      * 查询APP应用版本信息详细信息
+     *
      * @param id APP应用版本信息 id
      * @return 查找结果
      */
@@ -335,6 +358,7 @@
 
     /**
      * 新增用户协议和隐私政策信息
+     *
      * @param eventApplicationUserNoticeAddDTO
      * @return 新增结果
      */
@@ -343,6 +367,7 @@
 
     /**
      * 修改用户协议和隐私政策信息
+     *
      * @param eventApplicationUserNoticeEditDTO
      * @return 维护结果
      */
@@ -351,6 +376,7 @@
 
     /**
      * 分页查找用户协议和隐私政策信息
+     *
      * @param pageEventApplicationUserNoticeDTO
      * @return 维护结果
      */
@@ -359,6 +385,7 @@
 
     /**
      * 删除用户协议和隐私政策信息
+     *
      * @param eventApplicationUserNoticeDeleteDTO
      * @return 平台用户信息
      */
@@ -367,6 +394,7 @@
 
     /**
      * 查询用户协议和隐私政策信息详细信息
+     *
      * @param id 用户协议和隐私政策信息 id
      * @return 查找结果
      */
@@ -375,6 +403,7 @@
 
     /**
      * 新增区县/街道/社区/网格员网格数据管理
+     *
      * @param eventGridDataAddDTO
      * @return 新增结果
      */
@@ -383,6 +412,7 @@
 
     /**
      * 修改区县/街道/社区/网格员网格数据管理
+     *
      * @param eventGridDataEditDTO
      * @return 维护结果
      */
@@ -391,6 +421,7 @@
 
     /**
      * 分页查找区县/街道/社区/网格员网格数据管理
+     *
      * @param pageEventGridDataDTO
      * @return 维护结果
      */
@@ -399,6 +430,7 @@
 
     /**
      * 删除区县/街道/社区/网格员网格数据管理
+     *
      * @param eventGridDataDeleteDTO
      * @return 平台用户信息
      */
@@ -407,6 +439,7 @@
 
     /**
      * 查询区县/街道/社区/网格员网格数据管理详细信息
+     *
      * @param id 区县/街道/社区/网格员网格数据管理 id
      * @return 查找结果
      */
@@ -415,6 +448,7 @@
 
     /**
      * 新增网格员定时上报地理信息
+     *
      * @param eventGridMemberGpsLogAddDTO
      * @return 新增结果
      */
@@ -423,6 +457,7 @@
 
     /**
      * 修改网格员定时上报地理信息
+     *
      * @param eventGridMemberGpsLogEditDTO
      * @return 维护结果
      */
@@ -431,6 +466,7 @@
 
     /**
      * 分页查找网格员定时上报地理信息
+     *
      * @param pageEventGridMemberGpsLogDTO
      * @return 维护结果
      */
@@ -439,6 +475,7 @@
 
     /**
      * 删除网格员定时上报地理信息
+     *
      * @param eventGridMemberGpsLogDeleteDTO
      * @return 平台用户信息
      */
@@ -447,6 +484,7 @@
 
     /**
      * 查询网格员定时上报地理信息详细信息
+     *
      * @param id 网格员定时上报地理信息 id
      * @return 查找结果
      */
@@ -455,6 +493,7 @@
 
     /**
      * 添加事件
+     *
      * @param commonEventAddDTO
      * @return
      */
@@ -463,6 +502,7 @@
 
     /**
      * 保存事件草稿
+     *
      * @param commonEventEditDTO
      * @return
      */
@@ -471,6 +511,7 @@
 
     /**
      * 突发事件上报社区
+     *
      * @param commonEventReportDTO
      * @return
      */
@@ -479,6 +520,7 @@
 
     /**
      * 突发事件撤销
+     *
      * @param eventRevokeDTO
      * @return
      */
@@ -487,6 +529,7 @@
 
     /**
      * 处理事件
+     *
      * @param commonEventDealDTO
      * @return
      */
@@ -495,6 +538,7 @@
 
     /**
      * 处理事件
+     *
      * @param commonEventVerifyDTO
      * @return
      */
@@ -503,6 +547,7 @@
 
     /**
      * 处理事件
+     *
      * @param commonEventRepublishDTO
      * @return
      */
@@ -511,6 +556,7 @@
 
     /**
      * 网格数据待处理统计信息
+     *
      * @param eventGridStatisticsDataDTO
      * @return
      */
@@ -519,6 +565,7 @@
 
     /**
      * 查询用户网格
+     *
      * @param pageEventGridDataDTO
      * @return
      */
@@ -527,6 +574,7 @@
 
     /**
      * 特殊人员信息上报
+     *
      * @param specialEventAddDTO
      * @return
      */
@@ -535,6 +583,7 @@
 
     /**
      * 获取指定特殊人员信息
+     *
      * @param idCard
      * @return
      */
@@ -543,6 +592,7 @@
 
     /**
      * 保存殊人群事件上报草稿
+     *
      * @param specialEventEditDTO
      * @return
      */
@@ -551,6 +601,7 @@
 
     /**
      * 草稿发布
+     *
      * @param commonEventPublicDTO
      * @return
      */
@@ -559,79 +610,89 @@
 
     /**
      * 查询随手拍列表
-     * @param easyAppDTO    请求参数
-     * @return  随手拍列表
+     *
+     * @param easyAppDTO 请求参数
+     * @return 随手拍列表
      */
     @PostMapping("/easy/list")
     R easyList(@RequestBody PageEasyAppDTO easyAppDTO);
 
     /**
      * 查询随手拍详情
-     * @param easyId    随手拍id
-     * @return  随手拍详情
+     *
+     * @param easyId 随手拍id
+     * @return 随手拍详情
      */
     @PostMapping("/easy/detail")
     R easyDetailByApp(@RequestParam("easyId") Long easyId);
 
     /**
      * 查询随手拍类型列表
-     * @return  类型列表
+     *
+     * @return 类型列表
      */
     @PostMapping("/easy/type/list")
     R easyTypeListByApp();
 
     /**
      * 随手拍处理
-     * @param photoHandleDTO    请求参数
-     * @return  处理结果
+     *
+     * @param photoHandleDTO 请求参数
+     * @return 处理结果
      */
     @PostMapping("/easy/handle")
     R easyHandle(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
 
     /**
      * 随手拍公示状态切换
-     * @param photoHandleDTO    请求参数
-     * @return  切换结果
+     *
+     * @param photoHandleDTO 请求参数
+     * @return 切换结果
      */
     @PostMapping("/easy/publicity")
     R easyPublicity(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
 
     /**
      * 随手拍上报社区
-     * @param photoHandleDTO    请求参数
-     * @return  上报结果
+     *
+     * @param photoHandleDTO 请求参数
+     * @return 上报结果
      */
     @PostMapping("/easy/report")
     R easyReport(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
 
     /**
      * 添加发布宣传教育事件
-     * @param publicityEventAddDTO   请求参数
-     * @return  添加发布结果
+     *
+     * @param publicityEventAddDTO 请求参数
+     * @return 添加发布结果
      */
     @PostMapping("/event/addPublicity")
     R addPublicity(@RequestBody PublicityEventAddDTO publicityEventAddDTO);
 
     /**
      * 保存宣传教育事件草稿
-     * @param publicityEventEditDTO   请求参数
-     * @return  保存结果
+     *
+     * @param publicityEventEditDTO 请求参数
+     * @return 保存结果
      */
     @PostMapping("/event/savePublicityDraft")
     R savePublicityDraft(@RequestBody PublicityEventEditDTO publicityEventEditDTO);
 
     /**
      * 分页查询宣传教育事件
-     * @param pagePublicityEventDTO   请求参数
-     * @return  结果
+     *
+     * @param pagePublicityEventDTO 请求参数
+     * @return 结果
      */
     @PostMapping("/event/queryPublicity")
     R queryPublicity(@RequestBody PagePublicityEventDTO pagePublicityEventDTO);
 
     /**
      * 分页查询宣传教育事件
-     * @param pagePublicityEventDTO   请求参数
-     * @return  结果
+     *
+     * @param pagePublicityEventDTO 请求参数
+     * @return 结果
      */
     @PostMapping("/event/queryPublicityCommunity")
     R queryPublicityCommunity(@RequestBody PagePublicityEventCommunityDTO pagePublicityEventDTO);
@@ -639,44 +700,50 @@
 
     /**
      * 分页查询社区列表
-     * @return  结果
+     *
+     * @return 结果
      */
     @PostMapping("/event/actList")
     R actList();
 
     /**
      * 地图模块-根据网格id查询网格详细信息
-     * @param gridId    网格id
-     * @return  网格详细信息
+     *
+     * @param gridId 网格id
+     * @return 网格详细信息
      */
     @PostMapping("/map/getGridDetail")
     R getGridDetail(@RequestParam("gridId") Long gridId);
 
     /**
      * 地图模块-根据网格员id查询今日运动轨迹
-     * @param userId    网格员id
-     * @return  运动轨迹
+     *
+     * @param userId 网格员id
+     * @return 运动轨迹
      */
     @PostMapping("/map/getTrajectoryByApp")
     R getTrajectoryByApp(@RequestParam("userId") Long userId);
 
     /**
      * 地图模块-根据网格员id查询关联网格列表
-     * @param userId    网格员id
-     * @return  网格列表
+     *
+     * @param userId 网格员id
+     * @return 网格列表
      */
     @PostMapping("/map/getMapGridListByApp")
     R getMapGridListByApp(@RequestParam("userId") Long userId);
 
     /**
      * 获取最新版本信息
-     * @return  版本信息
+     *
+     * @return 版本信息
      */
     @GetMapping("/eventapplicationapprelease/edition")
     R editionUpdate();
 
     /**
      * 首页待处理
+     *
      * @param eventGridTodoDataDTO
      * @return
      */
@@ -685,38 +752,43 @@
 
     /**
      * 后台获取网格员运动轨迹
+     *
      * @param workTrajectoryDTO 请求参数
-     * @return  运动轨迹
+     * @return 运动轨迹
      */
     @PostMapping("/map/gridMemberWorkTrajectory")
     R gridMemberWorkTrajectory(@RequestBody EventGridMemberWorkTrajectoryDTO workTrajectoryDTO);
 
     /**
      * 后台获取网格员预警记录
+     *
      * @param gridMemberWainDTO 请求参数
-     * @return  预警记录
+     * @return 预警记录
      */
     @PostMapping("/map/gridMemberWorkWarning")
     R gridMemberWorkWarning(@RequestBody EventGridMemberWainDTO gridMemberWainDTO);
 
     /**
      * 分页查询网格
-     * @param eventGridDataDTO  请求参数
-     * @return  网格列表
+     *
+     * @param eventGridDataDTO 请求参数
+     * @return 网格列表
      */
     @PostMapping("/eventgriddata/data/list")
     R getGridDataList(@RequestBody PageEventGridDataAdminDTO eventGridDataDTO);
 
     /**
      * 查询社区下所有网格员
-     * @param communityId   社区id
-     * @return  网格员列表
+     *
+     * @param communityId 社区id
+     * @return 网格员列表
      */
     @PostMapping("/eventgriddata/member/list")
     R getGridMemberLists(@RequestParam("communityId") Long communityId);
 
     /**
      * 查询管理事件
+     *
      * @param pageEventManageDTO
      * @return
      */
@@ -725,6 +797,7 @@
 
     /**
      * 社区网格后台标记事件无效
+     *
      * @param eventRevokeDTO
      * @return
      */
@@ -733,6 +806,7 @@
 
     /**
      * 社区网格后台重新发布已标记无效的事件
+     *
      * @param commonEventRepublishDTO
      * @return
      */
@@ -741,54 +815,61 @@
 
     /**
      * 后台新增网格
-     * @param eventGridDataDTO  请求参数
-     * @return  新增结果
+     *
+     * @param eventGridDataDTO 请求参数
+     * @return 新增结果
      */
     @PostMapping("/eventgriddata/data/add")
     R addGridDataByAdmin(@RequestBody EventGridDataAddAdminDTO eventGridDataDTO);
 
     /**
      * 后台修改网格
-     * @param eventGridDataDTO  请求参数
-     * @return  修改结果
+     *
+     * @param eventGridDataDTO 请求参数
+     * @return 修改结果
      */
     @PostMapping("/eventgriddata/data/edit")
     R editGridDataByAdmin(@RequestBody EventGridDataEditAdminDTO eventGridDataDTO);
 
     /**
      * 后台管理-分页查询随手拍列表
-     * @param easyAppDTO    请求参数
-     * @return  随手拍列表
+     *
+     * @param easyAppDTO 请求参数
+     * @return 随手拍列表
      */
     @PostMapping("/easy/admin/list")
     R easyListByAdmin(@RequestBody PageEasyAdminDTO easyAppDTO);
 
     /**
      * 后台管理-随手拍详情
-     * @param easyId    随手拍id
-     * @return  随手拍详情
+     *
+     * @param easyId 随手拍id
+     * @return 随手拍详情
      */
     @PostMapping("/easy/admin/detail")
     R easyDetailByAdmin(@RequestParam("easyId") Long easyId);
 
     /**
      * 后台管理-随手拍处理
-     * @param photoHandleDTO    请求参数
-     * @return  处理结果
+     *
+     * @param photoHandleDTO 请求参数
+     * @return 处理结果
      */
     @PostMapping("/easy/admin/handle")
     R easyHandleByAdmin(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
 
     /**
      * 后台管理-批量修改随手拍公示状态/删除随手拍
-     * @param photoHandleDTO    请求参数
-     * @return  修改/删除结果
+     *
+     * @param photoHandleDTO 请求参数
+     * @return 修改/删除结果
      */
     @PostMapping("/easy/admin/publicity")
     R easyPublicityByAdmin(@RequestBody ComActEasyPhotoEditAdminDTO photoHandleDTO);
 
     /**
      * 查询网格下所有网格员
+     *
      * @param gridId
      * @return
      */
@@ -797,6 +878,7 @@
 
     /**
      * 查询网格下所有网格员
+     *
      * @param communityId
      * @return
      */
@@ -805,30 +887,34 @@
 
     /**
      * 后台管理-统计模块
-     * @param communityId   社区id
-     * @return  统计信息
+     *
+     * @param communityId 社区id
+     * @return 统计信息
      */
     @GetMapping("/statistics/admin/eventStatistics")
     R eventStatistics(@RequestParam("communityId") Long communityId);
 
     /**
      * 后台管理-删除网格
-     * @param Ids   网格id集合
-     * @return  删除结果
+     *
+     * @param Ids 网格id集合
+     * @return 删除结果
      */
     @PostMapping("/eventgriddata/data/delete")
     R deleteGridData(@RequestBody List<Long> Ids);
 
     /**
      * 后台管理-网格员统计
-     * @param statisticsAdminDTO    请求参数
-     * @return  网格员统计信息
+     *
+     * @param statisticsAdminDTO 请求参数
+     * @return 网格员统计信息
      */
     @PostMapping("/statistics/admin/gridMemberStatistics")
     R gridMemberStatistics(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO);
 
     /**
      * 批量删除
+     *
      * @param eventDeleteDTO
      * @return
      */
@@ -837,6 +923,7 @@
 
     /**
      * 批量发布事件
+     *
      * @param commonEventBatchRepublishDTO
      * @return
      */
@@ -845,6 +932,7 @@
 
     /**
      * 批量事件标为无效
+     *
      * @param eventBatchRevokeDTO
      * @return
      */
@@ -853,6 +941,7 @@
 
     /**
      * 批量事件标为无效
+     *
      * @param pageEventGridNearbyDTO
      * @return
      */
@@ -861,30 +950,34 @@
 
     /**
      * 根据网格id查询网格统计数据
-     * @param gridId    网格id
-     * @return  网格统计数据
+     *
+     * @param gridId 网格id
+     * @return 网格统计数据
      */
     @PostMapping("/statistics/getGridEventStatistics")
     R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId);
 
     /**
      * 查询网格事件统计数据
+     *
      * @param statisticsDTO 请求参数
-     * @return  网格事件统计数据
+     * @return 网格事件统计数据
      */
     @PostMapping("/statistics/event/getGridEventStatistics")
     R getGridEventDetailStatisticsByApp(@RequestBody GridEventStatisticsDTO statisticsDTO);
 
     /**
      * 网格员上报地理位置
+     *
      * @param memberPositionDTO 请求参数
-     * @return  上报结果
+     * @return 上报结果
      */
     @PostMapping("/eventgridmembergpslog/add")
     R gridReportPosition(@RequestBody GridMemberPositionDTO memberPositionDTO);
 
     /**
      * 直接上报社区
+     *
      * @param commonEventDirectReportDTO
      * @return
      */
@@ -893,23 +986,26 @@
 
     /**
      * 定时任务扫描网格员工作状态
-     * @return  定时任务扫描结果
+     *
+     * @return 定时任务扫描结果
      */
     @PostMapping("/eventgridmemberwarnlog/judge")
     R timedTaskGridMember();
 
     /**
      * 事件大屏查询事件列表
-     * @param eventListDTO  请求参数
-     * @return  事件列表
+     *
+     * @param eventListDTO 请求参数
+     * @return 事件列表
      */
     @PostMapping("/screen/event/list")
     R getScreenEventList(@RequestBody ScreenEventListDTO eventListDTO);
 
     /**
      * 特殊人群上报-社区人口数据列表
-     * @param specialPopulationDTO   请求参数
-     * @return  社区人口数据列表
+     *
+     * @param specialPopulationDTO 请求参数
+     * @return 社区人口数据列表
      */
     @PostMapping("/event/special/population/list")
     R specialPopulationList(@RequestBody PageEventSpecialPopulationDTO specialPopulationDTO);
@@ -917,23 +1013,25 @@
     /**
      * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
      *
-     * @param  id 本地网格ID
+     * @param id 本地网格ID
      * @return String 浪潮市平台对应的ID
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("/lc_compare/{id}")
     String getLcGridIdByLocal(@PathVariable("id") Long id);
+
     /**
      * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
      *
-     * @param  localUserId 本地网格员ID
+     * @param localUserId 本地网格员ID
      * @return String 浪潮市平台对应的ID
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("/lc_compare/getLcUserId")
     String getLcUserIdByLocalUserId(@RequestParam("localUserId") String localUserId);
+
     /**
      * description 获取所有未上传到浪潮平台的事件列表
      *
@@ -943,15 +1041,17 @@
      */
     @GetMapping("/event/getUnUploadEvent")
     List<EventDetailsVO> getUnUploadEvent();
+
     /**
      * description 更新上传是否成功标识
+     *
      * @param id 事件主键ID
      * @return Boolean 上传是否成功
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("/event/updateLcUploadFlag")
-    Boolean updateLcUploadFlag(@RequestParam("id")Long id);
+    Boolean updateLcUploadFlag(@RequestParam("id") Long id);
 
     /**
      * 工作大屏-事件管理模块数据统计
@@ -962,7 +1062,29 @@
     R eventWork(@RequestParam("communityId")Long communityId);
 
     /**
-     *  后台统计走访任务
+     * description 获取所有未上传到浪潮平台的走访事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/eventvisitingtasks/getUnUploadVisitingTask")
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask();
+
+    /**
+     * description 更新走访任务上传是否成功标识
+     *
+     * @param id 事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/eventvisitingtasks/updateLcUploadFlagVisitingTask")
+    Boolean updateLcUploadFlagVisitingTask(@RequestParam("id") Long id);
+
+    /**
+     * 后台统计走访任务
+     *
      * @param communityId
      * @return
      */
@@ -971,6 +1093,7 @@
 
     /**
      * 查询走访记录
+     *
      * @param query
      * @return
      */
@@ -979,6 +1102,15 @@
 
     /**
      * 走访任务列表
+     *
+     * app走访任务列表
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/appTaskList")
+    R appTaskList(@RequestBody EventTasksQuery query);
+    /**
+     * 后台走访任务列表
      * @param query
      * @return
      */
@@ -987,6 +1119,7 @@
 
     /**
      * 导出
+     *
      * @param query
      * @return
      */
@@ -995,15 +1128,17 @@
 
     /**
      * 删除走访任务
-     * @param ids
+     *
+     * @param idDTO
      * @param communityId
      * @return
      */
     @PostMapping("/eventvisitingtasks/delete")
-    R delete(@RequestParam("ids") String ids, @RequestParam("communityId") Long communityId);
+    R delete(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId);
 
     /**
      * 被走访人员列表
+     *
      * @param query
      * @return
      */
@@ -1011,9 +1146,9 @@
     R visitorList(@RequestBody EventVisitListQuery query);
 
 
-
     /**
      * 走访详情
+     *
      * @param id
      * @return
      */
@@ -1023,43 +1158,63 @@
 
     /**
      * 撤销走访
-     * @param id
+     *
+     * @param idDTO
      * @return
      */
-    @PostMapping("/eventvisitingtasks/cancel/{id}")
-    R cancel(@PathVariable("id") Long id);
+    @PostMapping("/eventvisitingtasks/cancel")
+    R cancel(@RequestBody IdDTO idDTO);
 
     /**
      * 恢复走访
-     * @param id
+     *
+     * @param idDTO
      * @return
      */
-    @PostMapping("/eventvisitingtasks/reset/{id}")
-    R reset(@PathVariable("id") Long id);
+    @PostMapping("/eventvisitingtasks/reset")
+    R reset(@RequestBody IdDTO idDTO);
 
     /**
      * 新增走访
-     * @param ids
+     *
+     * @param idDTO
      * @param communityId
      * @param userId
      * @return
      */
     @PostMapping("/eventvisitingtasks/add")
-    R addVisitingTask(@RequestParam("ids") String ids,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
+    R addVisitingTask(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
 
     /**
      * 开始走访
+     *
      * @param id
      * @return
      */
     @PostMapping("/eventvisitingtasks/start")
-    R start(@RequestParam("id")Long id,@RequestParam("userId")Long userId);
+    R start(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
 
     /**
      * 完成走访记录
+     *
      * @param taskCompleteDTO
      * @return
      */
     @PostMapping("/eventvisitingtasks/complete")
     R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO);
+
+    /**
+     * 查询市平台网格员列表
+     * @return  市平台网格员列表
+     */
+    @GetMapping("/eventgridmemberrelation/lc/list")
+    R gridMemberLcList();
+
+    /**
+     * 综治后台-添加网格员级联列表
+     * @param memberCascadeAddDTO   请求参数
+     * @return  级联列表
+     */
+    @PostMapping("/eventgridmemberrelation/cascade/list")
+    R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
index f255033..1b5daec 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
@@ -3,7 +3,6 @@
 import com.alibaba.excel.EasyExcel;
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
-import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.service.community.CommunityService;
@@ -11,8 +10,6 @@
 import com.panzhihua.common.utlis.ExcelUtil;
 import com.panzhihua.community_backstage.biz.KeyPersonBizServiceImpl;
 import com.panzhihua.community_backstage.listen.DisablePersonExcelListen;
-import com.panzhihua.community_backstage.listen.KeyPersonInfoExcelListen;
-import com.panzhihua.community_backstage.model.dto.KeyPersonExcelExportDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
index 4ee8c59..f52c246 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -145,10 +145,8 @@
     @ApiOperation(value = "实有人口-下载模板")
     @GetMapping("/export")
     public R exportPopulation() {
-        //获取登陆用户
-        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
         //获取登陆用户绑定社区id
-        Long communityId = loginUserInfo.getCommunityId();
+        Long communityId = 2L;//this.getCommunityId();
         //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
         String ftpUrl = "/mnt/data/web/excel/";
         String name = "实有人口导入模板.xlsx";
@@ -221,47 +219,58 @@
         List<String> head2 = new ArrayList<String>();
         head2.add("民族");
         List<String> head3 = new ArrayList<String>();
-        head3.add("政治面貌(群众/中共党员/共青团员)");
+        head3.add("政治面貌(中共党员/中共预备党员/共青团员/民革党员/台盟盟员/群众)");
         List<String> head4 = new ArrayList<String>();
         head4.add("是否租住(是/否)");
         List<String> head5 = new ArrayList<String>();
-        head5.add("与户主关系(户主/配偶/子女/孙女/父母/其他)");
+        head5.add("与户主关系(户主/本人/配偶/夫/妻/子/女/孙女/孙子/兄弟姐妹/父母/其他)");
         List<String> head6 = new ArrayList<String>();
         head6.add("*街/路/巷(必填)");
         List<String> head7 = new ArrayList<String>();
         head7.add("*小区号(必填,政府对于每个小区都有特定编号)");
         List<String> head8 = new ArrayList<String>();
         head8.add("*楼排号(必填)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*单元号(必填)");
         List<String> head10 = new ArrayList<String>();
-        head10.add("*单元号(必填)");
+        head10.add("*户室(必填,四位数表示。前两位楼层,后两位户号)");
         List<String> head11 = new ArrayList<String>();
-        head11.add("*户室(必填,四位数表示。前两位楼层,后两位户号)");
+        head11.add("建筑用途");
         List<String> head12 = new ArrayList<String>();
-        head12.add("联系方式");
+        head12.add("房屋面积");
         List<String> head13 = new ArrayList<String>();
-        head13.add("籍贯");
+        head13.add("房屋状态(自住/租住/其他)");
         List<String> head14 = new ArrayList<String>();
-        head14.add("文化程度(小学/初中/高中/中专/大专/本科/硕士/博士/其他)");
+        head14.add("房屋用途(住宅/公寓/宿舍/仓库/其他)");
         List<String> head15 = new ArrayList<String>();
-        head15.add("婚姻状况(未婚/已婚/离异/丧偶/分居/其他)");
+        head15.add("管控状态(常规/关注/管控)");
+
         List<String> head16 = new ArrayList<String>();
-        head16.add("健康状况");
+        head16.add("联系方式");
         List<String> head17 = new ArrayList<String>();
-        head17.add("工作单位");
+        head17.add("籍贯");
         List<String> head18 = new ArrayList<String>();
-        head18.add("备注");
+        head18.add("文化程度(小学/初中/高中/中专/大专/本科/硕士/博士/其他)");
         List<String> head19 = new ArrayList<String>();
-        head19.add("户口所在地");
+        head19.add("婚姻状况(未婚/已婚/初婚/再婚/复婚/丧偶/离婚/分居/其他)");
         List<String> head20 = new ArrayList<String>();
-        head20.add("本地外地(本地/外地)");
+        head20.add("健康状况");
         List<String> head21 = new ArrayList<String>();
-        head21.add("房屋状态(自住/租住/其他)");
+        head21.add("工作单位");
         List<String> head22 = new ArrayList<String>();
-        head22.add("房屋用途(住宅/公寓/宿舍/仓库/其他)");
+        head22.add("本地外地(本地/外地)");
         List<String> head23 = new ArrayList<String>();
-        head23.add("管控状态(常规/关注/管控)");
+        head23.add("户口所在地");
         List<String> head24 = new ArrayList<String>();
-        head24.add("是否为居住地(是/否)");
+        head24.add("备注");
+        List<String> head25 = new ArrayList<String>();
+        head25.add("证件照(人面像)照片");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("证件照(国徽面)照片");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("户口本照片");
+        List<String> head28 = new ArrayList<String>();
+        head28.add("是否为居住地(是/否)");
 
 
         list.add(head0);
@@ -273,6 +282,7 @@
         list.add(head6);
         list.add(head7);
         list.add(head8);
+        list.add(head9);
         list.add(head10);
         list.add(head11);
         list.add(head12);
@@ -288,6 +298,10 @@
         list.add(head22);
         list.add(head23);
         list.add(head24);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
         return list;
     }
 
@@ -298,25 +312,30 @@
         data.add("汉族");
         data.add("群众");
         data.add("是");
-        data.add("户主");
+        data.add("本人");
         data.add("樱花街");
         data.add("115");
         data.add("15栋");
-        data.add("1单元");
+        data.add("1");
         data.add("1001");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
         data.add("13768548521");
         data.add("中国");
         data.add("硕士");
         data.add("未婚");
         data.add("");
         data.add("阿里巴巴");
-        data.add("");
-        data.add("四川成都");
         data.add("本地");
-        data.add("自住");
-        data.add("公寓");
-        data.add("常规");
-        data.add("否");
+        data.add("四川成都");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("是");
         return data;
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java
new file mode 100644
index 0000000..8d3947f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java
@@ -0,0 +1,70 @@
+package com.panzhihua.grid_app.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Slf4j
+@Api(tags = {"小区模块"})
+@RestController
+@RequestMapping("/village/")
+public class VillageApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "小区列表@lyq",response = PageComMngVillageVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngVillageListAppDTO villageListAppDTO){
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        villageListAppDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return communityService.getGridVillageList(villageListAppDTO);
+    }
+
+    @ApiOperation(value = "小区楼栋列表@lyq",response = ComMngVillageBuildingVO.class)
+    @PostMapping("/building/list")
+    public R buildingList(@RequestParam("villageId")Long villageId){
+        return communityService.getGridVillageBuildingList(villageId);
+    }
+
+    @ApiOperation(value = "小区楼栋下房屋列表@lyq",response = ComMngVillageBuildingHouseVO.class)
+    @PostMapping("/building/house/list")
+    public R buildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO){
+        return communityService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    @ApiOperation(value = "房屋详情@lyq",response = ComMngVillageBuildingHouseDetailVO.class)
+    @PostMapping("/building/house/detail")
+    public R buildingHouseDetail(@RequestParam("houseId")Long houseId){
+        return communityService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    @ApiOperation(value = "查询人口列表", response = EventSpecialPopulationVO.class)
+    @PostMapping("/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO){
+        return communityService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    @ApiOperation(value = "房屋添加人员")
+    @PostMapping("/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO){
+        return communityService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "房屋删除人员")
+    @PostMapping("/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO){
+        return communityService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
index 2d58aa4..9354692 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
@@ -1,11 +1,10 @@
 package com.panzhihua.grid_app.api;
 
 import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
-import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
 import com.panzhihua.common.service.grid.GridService;
 import io.swagger.annotations.Api;
@@ -33,15 +32,16 @@
     @ApiOperation(value = "走访记录-xyh", response = AppVisitTasksVO.class)
     @PostMapping("/list")
     public R list(@RequestBody EventTasksQuery query){
-        query.setCommunityId(this.getCommunityId());
+//        query.setCommunityId(this.getCommunityId());
         return gridService.list(query);
     }
 
     @ApiOperation(value = "走访任务-xyh", response = AppVisitTasksVO.class)
     @PostMapping("/taskList")
     public R taskList(@RequestBody EventTasksQuery query){
-        query.setCommunityId(this.getCommunityId());
-        return gridService.taskList(query);
+//        query.setCommunityId(this.getCommunityId());
+//        query.setUserId(this.getUserId());
+        return gridService.appTaskList(query);
     }
 
     @ApiOperation(value = "走访详情-xyh", response = EventVisitingTasksDetailsVO.class)
@@ -50,15 +50,16 @@
         return gridService.detail(id);
     }
 
-    @ApiOperation(value = "开始走访-xyh")
-    @PostMapping("/start")
+//    @ApiOperation(value = "开始走访-xyh")
+//    @PostMapping("/start")
     public R start(@RequestParam("id") Long id){
         return gridService.start(id,this.getUserId());
     }
 
     @ApiOperation(value = "完成走访记录-xyh")
     @PostMapping("/complete")
-    public R complete(@RequestBody @Validated EventVisitCompleteDTO taskCompleteDTO){
+    public synchronized R complete(@RequestBody @Validated EventVisitCompleteDTO taskCompleteDTO){
+        taskCompleteDTO.setUserId(this.getUserId());
         return gridService.complete(taskCompleteDTO);
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java
index ae5546f..518b6ab 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java
@@ -34,9 +34,9 @@
         if(userInfoVO == null){
             return R.fail("请先登录");
         }
-        if(easyAppDTO.getCommunityId() == null){
-            easyAppDTO.setCommunityId(userInfoVO.getCommunityId());
-        }
+//        if(easyAppDTO.getCommunityId() == null){
+//            easyAppDTO.setCommunityId(userInfoVO.getCommunityId());
+//        }
         return gridService.easyListByAdmin(easyAppDTO);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java
index 9da9d9a..3a2e61f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java
@@ -78,7 +78,7 @@
         eventBatchRevokeDTO.setUserId(loginUserInfoVO.getUserId());
         eventBatchRevokeDTO.setUserName(loginUserInfoVO.getName());
         eventBatchRevokeDTO.setCommunityName(loginUserInfoVO.getCommunityName());
-        eventBatchRevokeDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        eventBatchRevokeDTO.setCommunityId(loginUserInfoVO.getCommunityId());
         eventBatchRevokeDTO.setRevokeType(2);
         eventBatchRevokeDTO.setRevokeId(loginUserInfoVO.getCommunityId());
         return gridService.batchMarkEventInvalid(eventBatchRevokeDTO);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
index e348470..162baa7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
@@ -3,10 +3,13 @@
 
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogAdminVO;
 import com.panzhihua.common.model.vos.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.ClazzUtils;
 import com.panzhihua.common.utlis.DateUtils;
@@ -52,9 +55,9 @@
         if(loginUserInfo == null){
             return R.fail("请先登录");
         }
-        if(loginUserInfo.getCommunityId() != 0){
-            memberRelationDTO.setGridCommunityId(loginUserInfo.getCommunityId());
-        }
+//        if(loginUserInfo.getCommunityId() != 0){
+//            memberRelationDTO.setGridCommunityId(loginUserInfo.getCommunityId());
+//        }
         return userService.getGridMemberList(memberRelationDTO);
     }
 
@@ -112,5 +115,16 @@
         return userService.gridMemberEditStatus(gridMemberEditDTO);
     }
 
+    @ApiOperation(value = "查询市平台网格员列表",response = GridMemberLcListVO.class)
+    @GetMapping("/member/lc/list")
+    public R gridMemberLcList(){
+        return gridService.gridMemberLcList();
+    }
+
+    @ApiOperation(value = "添加网格员时级联列表",response = GridMemberCascadeVO.class)
+    @PostMapping("/member/cascade/list")
+    public R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO){
+        return gridService.gridMemberCascadeList(memberCascadeAddDTO);
+    }
 
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
index ad9a701..a094bb2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
@@ -38,11 +38,11 @@
     @PostMapping("/event/list")
     public R getGridDataList(@Validated @RequestBody PageEventGridDataAdminDTO eventGridDataDTO){
         ClazzUtils.setIfStringIsEmpty(eventGridDataDTO);
-        Long communityId = this.getCommunityId();
-        if(communityId == null){
-            return R.fail("请先登录");
-        }
-        eventGridDataDTO.setGridCommunityId(communityId);
+//        Long communityId = this.getCommunityId();
+//        if(communityId == null){
+//            return R.fail("请先登录");
+//        }
+//        eventGridDataDTO.setGridCommunityId(communityId);
         return gridService.getGridDataList(eventGridDataDTO);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java
index c1d7190..47df2b9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java
@@ -56,7 +56,7 @@
         ClazzUtils.setIfStringIsEmpty(pageEventManageDTO);
         LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
         pageEventManageDTO.setUserId(loginUserInfoVO.getUserId());
-        pageEventManageDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        pageEventManageDTO.setCommunityId(loginUserInfoVO.getCommunityId());
         pageEventManageDTO.setRevokeType(1);
         return gridService.queryEventToManage(pageEventManageDTO);
     }
@@ -164,7 +164,7 @@
         commonEventDealDTO.setUserId(loginUserInfoVO.getUserId());
         commonEventDealDTO.setUserName(loginUserInfoVO.getNickName());
         commonEventDealDTO.setOperateType(1);
-        commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
         commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName());
         return gridService.dealEvent(commonEventDealDTO);
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
index a7ec5db..5c75864 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
@@ -3,15 +3,11 @@
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.excel.EasyExcel;
 import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
+import com.panzhihua.common.model.dtos.IdDTO;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
-import com.panzhihua.common.model.vos.IPageVO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
-import com.panzhihua.common.model.vos.visit.EventVisitCountVO;
-import com.panzhihua.common.model.vos.visit.EventVisitListVO;
-import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
+import com.panzhihua.common.model.vos.visit.*;
 import com.panzhihua.common.service.grid.GridService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +17,7 @@
 import javax.annotation.Resource;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.util.Date;
@@ -57,7 +54,7 @@
     @PostMapping("/taskList")
     @ApiOperation(value = "走访任务列表", response= EventVisitingTasksVO.class)
     public R taskList(@RequestBody EventTasksQuery query){
-        query.setCommunityId(this.getCommunityId());
+//        query.setCommunityId(this.getCommunityId());
         return gridService.taskList(query);
     }
 
@@ -68,7 +65,7 @@
     @PostMapping("/list")
     @ApiOperation(value = "走访任务记录", response= AppVisitTasksVO.class)
     public R list(@RequestBody EventTasksQuery query){
-        query.setCommunityId(this.getCommunityId());
+//        query.setCommunityId(this.getCommunityId());
         return gridService.list(query);
     }
 
@@ -80,18 +77,18 @@
      */
     @PostMapping("/delete")
     @ApiOperation(value = "删除走访任务")
-    public R delete(@RequestParam("ids") String ids){
-        return gridService.delete(ids,this.getCommunityId());
+    public R delete(@RequestBody @Valid IdDTO idDTO){
+        return gridService.delete(idDTO,this.getCommunityId());
     }
 
     /**
      * 走访任务导出
      * @return
      */
-    @GetMapping("/export")
+    @GetMapping("/noToken/export")
     @ApiOperation(value = "导出走访任务")
     public void export(HttpServletResponse response,EventTasksQuery query){
-        query.setCommunityId(this.getCommunityId());
+//        query.setCommunityId(this.getCommunityId());
         query.setPageNum(1L);
         query.setPageSize(2000L);
         ServletOutputStream os = null;
@@ -100,10 +97,10 @@
             List<EventVisitingTasksVO> list = gridService.exportTaskList(query);
             response.setContentType("application/vnd.ms-excel");
             response.setCharacterEncoding("utf-8");
-            String fileName = "走访任务-"+ DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss");
+            String fileName = "走访任务-"+ DateUtil.format(new Date(),"yyyyMMddHHmmss");
             response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20") + ".xlsx");
-            // 如果不用模板的方式导出的话,是doWrite
-            EasyExcel.write(response.getOutputStream(), EventVisitingTasksVO.class).sheet(fileName).doWrite(list);
+            EasyExcel.write(os, EventVisitingTasksVO.class).sheet(fileName).doWrite(list);
+            os.flush();
         } catch (IOException e) {
             e.printStackTrace();
         }finally {
@@ -126,7 +123,7 @@
     @PostMapping("/visitorList")
     @ApiOperation(value = "待走访人员列表", response= EventVisitListVO.class)
     public R visitorList(@RequestBody EventVisitListQuery query){
-        query.setCommunityId(this.getCommunityId());
+//        query.setCommunityId(this.getCommunityId());
         return gridService.visitorList(query);
     }
 
@@ -135,7 +132,7 @@
      * @return
      */
     @GetMapping("/detail/{id}")
-    @ApiOperation(value = "待走访人员详情")
+    @ApiOperation(value = "待走访人员详情",response = EventVisitingTasksDetailsVO.class)
     public R detail(@PathVariable("id") Long id){
         return gridService.detail(id);
     }
@@ -146,30 +143,30 @@
      */
     @PostMapping("/add")
     @ApiOperation(value = "新增走访任务")
-    public R add(@RequestParam("ids") String ids){
-        return gridService.addVisitingTask(ids,this.getCommunityId(),this.getUserId());
+    public R add(@RequestBody @Valid IdDTO idDTO){
+        return gridService.addVisitingTask(idDTO,this.getCommunityId(),this.getUserId());
     }
 
     /**
      * 撤销走访任务
-     * @param id
+     * @param idDTO
      * @return
      */
     @PostMapping("/cancel")
     @ApiOperation(value = "撤销走访任务")
-    public R cancel(@RequestParam("id") Long id){
-        return gridService.cancel(id);
+    public R cancel(@RequestBody @Valid IdDTO idDTO){
+        return gridService.cancel(idDTO);
     }
 
     /**
      * 恢复走访任务
-     * @param id
+     * @param idDTO
      * @return
      */
     @PostMapping("/reset")
     @ApiOperation(value = "新增走访任务")
-    public R reset(@RequestParam("id") Long id){
-        return gridService.reset(id);
+    public R reset(@RequestBody @Valid IdDTO idDTO){
+        return gridService.reset(idDTO);
     }
 
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java
new file mode 100644
index 0000000..c944f9e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java
@@ -0,0 +1,160 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.PopulIsOkEnum;
+import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.enums.PopulSexEnum;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+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.shop.ExcelShopOrderDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationExcelVo;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationVillageVO;
+import com.panzhihua.common.model.vos.grid.admin.PopulationStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngPopulationExportExcelVO;
+import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Api(tags = {"居民模块"})
+@RestController
+@RequestMapping("/population/")
+public class PopulationApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @ApiOperation(value = "居民列表@lyq",response = ComMngPopulationListVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngPopulationListDTO populationListDTO){
+//        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+//        populationListDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return communityService.getGridPopulationList(populationListDTO);
+    }
+
+    @ApiOperation(value = "居民删除@lyq")
+    @PostMapping("/del")
+    public R del(@RequestBody List<Long> ids){
+        return communityService.delGridPopulation(ids);
+    }
+
+    @ApiOperation(value = "居民查看@lyq",response = PopulationDetailVO.class)
+    @GetMapping("/get")
+    public R get(@RequestParam("populationId")Long populationId){
+        return communityService.getGridPopulationDetail(populationId);
+    }
+
+    @ApiOperation(value = "居民标签栏统计@lyq",response = PopulationStatisticsVO.class)
+    @GetMapping("/statistics")
+    public R statistics(){
+        return communityService.getGridPopulationStatistics(0L);
+    }
+
+    @ApiOperation(value = "居民导出@lyq")
+    @PostMapping("/export")
+    public R export(@RequestBody ComMngPopulationExportDTO populationExportDTO){
+        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "居民数据.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<ComMngPopulationExportExcelVO> populList = JSON.parseArray(JSON.toJSONString(communityService.getGridPopulationExport(populationExportDTO).getData()), ComMngPopulationExportExcelVO.class);
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExportExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("实有人口导出数据").build();
+                    excelWriter.write(populList, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "小区列表@lyq",response = ComMngPopulationVillageVO.class)
+    @GetMapping("/relation/village")
+    public R relationVillage(@RequestParam("name") String name){
+        return communityService.relationVillage(name);
+    }
+
+    @ApiOperation(value = "根据上级名称查询下级列表@lyq")
+    @PostMapping("/subordinate")
+    public R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO){
+        return communityService.subordinate(subordinateDTO);
+    }
+
+    @ApiOperation(value = "居民关联房屋@lyq")
+    @PostMapping("/relation/house")
+    public R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO){
+        return communityService.populationRelationHouse(relationHouseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java
index 6228bee..f9ff8c2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java
@@ -47,7 +47,7 @@
         ClazzUtils.setIfStringIsEmpty(pagePublicityEventDTO);
         LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
         pagePublicityEventDTO.setUserId(loginUserInfoVO.getUserId());
-        pagePublicityEventDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        pagePublicityEventDTO.setCommunityId(loginUserInfoVO.getCommunityId());
         pagePublicityEventDTO.setRevokeType(2);
         return gridService.queryPublicityCommunity(pagePublicityEventDTO);
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
index a981084..5f7fa90 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
@@ -47,9 +47,9 @@
         if(loginUserInfoVO == null){
             return R.fail("请先登录");
         }
-        if(statisticsAdminDTO.getCommunityId() == null){
-            statisticsAdminDTO.setCommunityId(loginUserInfoVO.getCommunityId());
-        }
+//        if(statisticsAdminDTO.getCommunityId() == null){
+//            statisticsAdminDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        }
         return gridService.gridMemberStatistics(statisticsAdminDTO);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java
new file mode 100644
index 0000000..397380b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java
@@ -0,0 +1,34 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author xyh
+ * @date 2021/6/29 14:45
+ */
+@Api(tags = {"系统管理"})
+@Slf4j
+@RequestMapping("/system")
+@RestController
+public class SystemApi extends BaseController {
+
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "获取用户标签",response = ComMngUserTagVO.class)
+    @GetMapping("/tags")
+    public R config(){
+        return userService.listComMngUserTag(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java
new file mode 100644
index 0000000..3d3c6e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java
@@ -0,0 +1,174 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationHouseListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngPopulationExportExcelVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngVillageExportExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+@Slf4j
+@Api(tags = {"小区模块"})
+@RestController
+@RequestMapping("/village/")
+public class VillageApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @ApiOperation(value = "小区列表@lyq",response = ComMngPopulationListVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngVillageListAppDTO villageListAppDTO){
+        return communityService.getGridVillageList(villageListAppDTO);
+    }
+
+    @ApiOperation(value = "小区楼栋列表@lyq",response = ComMngVillageBuildingVO.class)
+    @PostMapping("/building/list")
+    public R buildingList(@RequestParam("villageId")Long villageId){
+        return communityService.getGridVillageBuildingList(villageId);
+    }
+
+    @ApiOperation(value = "小区楼栋下房屋列表@lyq",response = ComMngVillageBuildingHouseVO.class)
+    @PostMapping("/building/house/list")
+    public R buildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO){
+        return communityService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    @ApiOperation(value = "房屋详情@lyq",response = ComMngVillageBuildingHouseDetailVO.class)
+    @PostMapping("/building/house/detail")
+    public R buildingHouseDetail(@RequestParam("houseId")Long houseId){
+        return communityService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    @ApiOperation(value = "房屋添加人员")
+    @PostMapping("/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO){
+        return communityService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "房屋删除人员")
+    @PostMapping("/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO){
+        return communityService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "查询人口列表", response = EventSpecialPopulationVO.class)
+    @PostMapping("/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO){
+        return communityService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    @ApiOperation(value = "删除小区@lyq")
+    @PostMapping("/del")
+    public R del(@RequestBody List<Long> villageIds){
+        return communityService.delGridVillage(villageIds);
+    }
+
+    @ApiOperation(value = "查看小区居民列表@lyq",response = ComMngVillagePopulationListVO.class)
+    @PostMapping("/population/list")
+    public R populationList(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO){
+        return communityService.getVillagePopulationAdmin(villagePopulationDTO);
+    }
+
+    @ApiOperation(value = "查看居民房屋列表@lyq",response = ComMngVillagePopulationHouseListVO.class)
+    @PostMapping("/population/house/list")
+    public R populationHouseList(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO){
+        return communityService.getVillagePopulationHouseAdmin(villagePopulationHouseDTO);
+    }
+
+    @ApiOperation(value = "小区统计@lyq",response = ComMngVillageStatisticsVO.class)
+    @GetMapping("/statistics")
+    public R statistics(){
+        return communityService.getGridVillageStatistics();
+    }
+
+    @ApiOperation(value = "小区列表导出@lyq")
+    @PostMapping("/export")
+    public R export(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO){
+        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "小区数据.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<ComMngVillageExportExcelVO> populList = JSON.parseArray(JSON.toJSONString(communityService.getGridVillageListExport(villageListAppDTO).getData()), ComMngVillageExportExcelVO.class);
+                    excelWriter = EasyExcel.write(fileName, ComMngVillageExportExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("小区导出数据").build();
+                    excelWriter.write(populList, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java
index 9e46023..30986ce 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java
@@ -51,12 +51,6 @@
     public void operLogPoinCut() {
     }
 
-//    /**
-//     * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
-//     */
-//    @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
-//    public void operExceptionLogPoinCut() {
-//    }
 
     /**
      * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
@@ -76,13 +70,13 @@
         String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
         boolean empty = ObjectUtils.isEmpty(userInfo);
         if (empty) {
-            log.error("操作日志获取登录用户信息失败【{}】",joinPoint);
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
             return;
         }
         byte[] bytes = AES.parseHexStr2Byte(userInfo);
         byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
-        userInfo=new String(decrypt);
-        LoginUserInfoVO loginUserInfoVO= JSONObject.parseObject(userInfo,LoginUserInfoVO.class);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
 
         SysOperLogVO operlog = new SysOperLogVO();
         try {
@@ -96,8 +90,10 @@
             if (opLog != null) {
                 String operModul = opLog.operModul();
                 int operType = opLog.operType();
-                operlog.setTitle(operModul); // 操作模块
-                operlog.setBusinessType(operType); // 操作类型
+                operlog.setTitle(operModul);
+                // 操作模块
+                operlog.setBusinessType(operType);
+                // 操作类型
             }
             // 获取请求的类名
             String className = joinPoint.getTarget().getClass().getName();
@@ -105,82 +101,41 @@
             String methodName = method.getName();
             methodName = className + "." + methodName;
 
-            operlog.setMethod(methodName); // 请求方法
+            operlog.setMethod(methodName);
+            // 请求方法
 
             if (joinPoint.getArgs().length > 0) {
                 for (Object o : joinPoint.getArgs()) {
                     if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
                         continue;
                     }
-                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                    operlog.setOperParam(JSONObject.toJSONString(o));
+                    // 请求参数
                 }
             }
 
-            operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setJsonResult(JSONObject.toJSONString(keys));
+            // 返回结果
             operlog.setAccount(loginUserInfoVO.getAccount());
-            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
-            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
-            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setOperName(loginUserInfoVO.getName());
+            // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request));
+            // 请求IP
+            operlog.setOperUrl(request.getRequestURI());
+            // 请求URI
             operlog.setRequestMethod(request.getMethod());
             operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
-            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setOperTime(new Date());
+            // 创建时间
             operlog.setAccount(loginUserInfoVO.getAccount());
             Long communityId = loginUserInfoVO.getCommunityId();
-            operlog.setCommunityId(null==communityId?0:communityId);
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
             userService.addOperLog(operlog);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
-//    /**
-//     * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
-//     *
-//     * @param joinPoint 切入点
-//     * @param e         异常信息
-//     */
-//    @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
-//    public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
-//        // 获取RequestAttributes
-//        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
-//        // 从获取RequestAttributes中获取HttpServletRequest的信息
-//        HttpServletRequest request = (HttpServletRequest) requestAttributes
-//                .resolveReference(RequestAttributes.REFERENCE_REQUEST);
-//
-//        ExceptionLog excepLog = new ExceptionLog();
-//        try {
-//            // 从切面织入点处通过反射机制获取织入点处的方法
-//            MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-//            // 获取切入点所在的方法
-//            Method method = signature.getMethod();
-//            excepLog.setExcId(UuidUtil.get32UUID());
-//            // 获取请求的类名
-//            String className = joinPoint.getTarget().getClass().getName();
-//            // 获取请求的方法名
-//            String methodName = method.getName();
-//            methodName = className + "." + methodName;
-//            // 请求的参数
-//            Map<String, String> rtnMap = converMap(request.getParameterMap());
-//            // 将参数所在的数组转换成json
-//            String params = JSON.toJSONString(rtnMap);
-//            excepLog.setExcRequParam(params); // 请求参数
-//            excepLog.setOperMethod(methodName); // 请求方法名
-//            excepLog.setExcName(e.getClass().getName()); // 异常名称
-//            excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
-//            excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
-//            excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
-//            excepLog.setOperUri(request.getRequestURI()); // 操作URI
-//            excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
-//            excepLog.setOperVer(operVer); // 操作版本号
-//            excepLog.setOperCreateTime(new Date()); // 发生异常时间
-//
-//            exceptionLogService.insert(excepLog);
-//
-//        } catch (Exception e2) {
-//            e2.printStackTrace();
-//        }
-//
-//    }
 
     /**
      * 转换request 请求参数
@@ -188,21 +143,22 @@
      * @param paramMap request获取的参数数组
      */
     public Map<String, String> converMap(Map<String, String[]> paramMap) {
-        Map<String, String> rtnMap = new HashMap<String, String>();
+        Map<String, String> rtnMap = new HashMap<>(6);
         for (String key : paramMap.keySet()) {
             rtnMap.put(key, paramMap.get(key)[0]);
         }
         return rtnMap;
     }
 
-    private  String getPostData(HttpServletRequest request) {
+    private String getPostData(HttpServletRequest request) {
         StringBuffer data = new StringBuffer();
         String line = null;
         BufferedReader reader = null;
         try {
             reader = request.getReader();
-            while (null != (line = reader.readLine()))
+            while (null != (line = reader.readLine())) {
                 data.append(line);
+            }
         } catch (IOException e) {
         } finally {
         }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
index de93413..015b6be 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
@@ -3,9 +3,11 @@
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.dtos.api.EventFile;
 import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.serviceapi.biz.LcApiService;
 import com.panzhihua.serviceapi.model.dto.LcGridData;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordQueryDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -59,7 +61,7 @@
     @ApiOperation(value = "提交事件登记关联的文件或者图片信息")
     @PostMapping("lc/event/upload/file")
     public R automationUploadFile(@RequestBody EventFile eventFile) {
-        return lcApiService.submitEventRelationFile(eventFile);
+        return lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
     }
 
     /**
@@ -89,12 +91,7 @@
     @ApiOperation(value = "获取指定事件信息")
     @GetMapping("lc/event/getEventInfoById")
     public String getEventInfoById(String eventId) {
-        try {
-            return lcApiService.getEventInfoById(eventId);
-        } catch (Exception e) {
-            log.error("获取指定事件信息出现错误:{}", e.getMessage());
-        }
-        return eventId;
+        return lcApiService.getEventInfoById(eventId);
     }
 
     /**
@@ -108,12 +105,7 @@
     @ApiOperation(value = "获取所有或者根据姓名和工号查询,分页")
     @GetMapping("lc/event/getGridMemberListByAreaIdOrName")
     public String getGridMemberListByAreaIdOrName(String eventId) {
-        try {
-            return lcApiService.getGridMemberListByAreaIdOrName(eventId);
-        } catch (Exception e) {
-            log.error("获取所有或者根据姓名和工号查询,分页出现错误:{}", e.getMessage());
-        }
-        return eventId;
+        return lcApiService.getGridMemberListByAreaIdOrName(eventId);
     }
 
     /**
@@ -135,4 +127,80 @@
         return Collections.emptyList();
     }
 
+
+    /**
+     * description 流动人口 走访详情
+     *
+     * @param recordId 流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "流动人口 走访详情")
+    @GetMapping("lc/event/getFlowPersonVisitRecordDetailById")
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        return lcApiService.getFlowPersonVisitRecordDetailById(recordId);
+    }
+
+    /**
+     * description 流动人口 走访记录列表
+     *
+     * @param lcKeyPersonVisitRecordQueryDTO 入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = " 流动人口 走访记录列表,分页")
+    @GetMapping("lc/event/getFlowPersonVisitRecordPage")
+    public String getFlowPersonVisitRecordPage(@RequestBody LcKeyPersonVisitRecordQueryDTO lcKeyPersonVisitRecordQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return lcApiService.getFlowPersonVisitRecordPage(lcKeyPersonVisitRecordQueryDTO, loginUserInfo.getUserId());
+    }
+
+
+    /**
+     * description 重点人口 走访详情
+     *
+     * @param recordId 流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "重点人口 走访详情")
+    @GetMapping("lc/event/getKeyPersonVisitRecordDetailById")
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        return lcApiService.getKeyPersonVisitRecordDetailById(recordId);
+    }
+
+    /**
+     * description 重点人口 走访记录列表
+     *
+     * @param lcKeyPersonVisitRecordQueryDTO 入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = " 重点人口 走访记录列表")
+    @GetMapping("lc/event/getKeyPersonVisitRecordPage")
+    public String getKeyPersonVisitRecordPage(@RequestBody LcKeyPersonVisitRecordQueryDTO lcKeyPersonVisitRecordQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return lcApiService.getKeyPersonVisitRecordPage(lcKeyPersonVisitRecordQueryDTO, loginUserInfo.getUserId());
+    }
+
+
+    /**
+     * description 自动上传走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "自动上传重点人员和流动人员走访记录")
+    @GetMapping("lc/auto/upload/visit_record")
+    public void automationUploadVisitRecord() {
+        try {
+            lcApiService.automationUploadVisitRecord();
+        } catch (Exception e) {
+            log.error("自动上传重点人员走访记录:{}", e.getMessage());
+        }
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
index c081f5a..b7bbe4d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
@@ -1,9 +1,14 @@
 package com.panzhihua.serviceapi.biz;
 
+import com.panzhihua.common.api.LcReturnObject;
 import com.panzhihua.common.model.dtos.api.EventFile;
 import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.serviceapi.model.dto.LcFlowPersonVisitRecordDTO;
 import com.panzhihua.serviceapi.model.dto.LcGridData;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordDTO;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordQueryDTO;
 
 import java.util.List;
 
@@ -55,7 +60,7 @@
      * @author manailin
      * @date 2021/6/10 17:00
      */
-    R submitEventRelationFile(EventFile eventFile);
+    R submitEventOrVisitRecordRelationFile(EventFile eventFile);
 
     /**
      * description 获取指定事件信息
@@ -95,4 +100,105 @@
      */
     void automationUploadEventAndFile();
 
+
+    /**
+     * description 流动人口 走访详情
+     *
+     * @param recordId 流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getFlowPersonVisitRecordDetailById(String recordId);
+
+    /**
+     * description 流动人口 走访记录列表
+     *
+     * @param personVisitRecordQueryDTO 入参参数
+     * @param loginUserId               当前登陆用户ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId);
+
+    /**
+     * description 上传流动人口走访记录
+     *
+     * @param lcFlowPersonVisitRecordDTO 入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO);
+
+    /**
+     * description 请求上传流动人口走访记录导浪潮市平台服务器
+     *
+     * @param lcEventVisitingTasksListDTO 走访事件对象
+     * @param lcGrid                      浪潮对应的网格ID
+     * @param lcGridUserId                浪潮网格员对应的用户ID
+     * @param populationDetail            实有人口基础信息
+     * @param gridName                    网格名称
+     * @param data                        精度维度数组
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data);
+
+    /**
+     * description 请求上传重点人口走访记录导浪潮市平台服务器
+     *
+     * @param lcEventVisitingTasksListDTO 走访事件对象
+     * @param lcGrid                      浪潮对应的网格ID
+     * @param lcGridUserId                浪潮网格员对应的用户ID
+     * @param populationDetail            实有人口基础信息
+     * @param gridName                    网格名称
+     * @param data                        精度维度数组
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data);
+
+    /**
+     * description 上传重点人口走访记录
+     *
+     * @param lcKeyPersonVisitRecordDTO 入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO);
+
+    /**
+     * description 重点人口 走访详情
+     *
+     * @param recordId 流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getKeyPersonVisitRecordDetailById(String recordId);
+
+    /**
+     * description 重点人口 走访记录列表
+     *
+     * @param personVisitRecordQueryDTO 入参参数
+     * @param loginUserId               当前登陆用户ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId);
+
+    /**
+     * description 自动上传重点人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    void automationUploadVisitRecord();
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
index 4700bb5..f532a50 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
@@ -7,20 +7,25 @@
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.panzhihua.common.api.LangchaoApiConstants;
-import com.panzhihua.common.api.LcReturnObject;
+import com.panzhihua.common.api.*;
 import com.panzhihua.common.constants.TokenConstant;
 import com.panzhihua.common.enums.LocalEventToLangChaoEventTypeEnum;
 import com.panzhihua.common.model.dtos.api.EventFile;
 import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
 import com.panzhihua.common.model.vos.grid.EventDetailsVO;
 import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
 import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.CopyUtil;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.serviceapi.biz.LcApiService;
-import com.panzhihua.serviceapi.model.dto.LcGridData;
+import com.panzhihua.serviceapi.model.dto.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -55,6 +60,9 @@
     @Autowired
     private StringRedisTemplate redisTemplate;
 
+    @Resource
+    private CommunityService communityService;
+
     /**
      * 从redis获取token
      *
@@ -62,31 +70,32 @@
      */
     private String getAuthToken() {
         ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-        if (valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN) == null) {
-            saveTokenFromRemoteRequest("18080799023", "123456");
+        if (valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN) == null) {
+            saveTokenFromRemoteRequest(LcApiConstants.LC_UPLOAD_NAME, LcApiConstants.LC_UPLOAD_PASSWORD);
         }
-        return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
+        return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
     }
 
     @Override
     public String saveTokenFromRemoteRequest(String name, String password) {
-        if (redisTemplate.hasKey(LangchaoApiConstants.LANG_CHAO_TOKEN)) {
+        Boolean authToken = redisTemplate.hasKey(LcApiConstants.LANG_CHAO_TOKEN);
+        if (authToken != null) {
             //如果redis存在token,直接返回redis存储的token
             ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-            return valueOperations.get(LangchaoApiConstants.LANG_CHAO_TOKEN);
+            return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
         } else {
             //如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用
-            HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
+            HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
             HttpResponse result = request.execute();
             ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-            valueOperations.set(LangchaoApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME, TimeUnit.MINUTES);
+            valueOperations.set(LcApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME, TimeUnit.MINUTES);
             return result.toString();
         }
     }
 
     @Override
     public String getAllEventTypeList() {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_EVENT_CATEGORY_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_CATEGORY_URL);
         request.auth(getAuthToken());
         HttpResponse result = request.execute();
         return result.body();
@@ -94,7 +103,7 @@
 
     @Override
     public String submitEventRegister(EventInfo eventInfo) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_REGIST_EVENT_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_REGIST_EVENT_URL);
         request.auth(getAuthToken());
         ObjectMapper mapper = new ObjectMapper();
         try {
@@ -105,13 +114,13 @@
             log.info("方法submitEventRegister发生错误:{}", e.getMessage());
         }
         HttpResponse result = request.execute();
-        log.info("submit上传浪潮事件信息:{}", result.body());
+        log.info("submitEventRegister上传浪潮事件信息:{}", result.body());
         return result.body();
     }
 
     @Override
-    public R submitEventRelationFile(EventFile eventFile) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
+    public R submitEventOrVisitRecordRelationFile(EventFile eventFile) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
         request.auth(getAuthToken());
         try {
             HttpURLConnection httpUrl = (HttpURLConnection) new URL(eventFile.getFiles()).openConnection();
@@ -126,14 +135,14 @@
             file.delete();
             return R.ok(result.body());
         } catch (Exception e) {
-            log.info("方法submitEventRelationFile发生错误:{}", e.getMessage());
+            log.info("方法submitEventOrVisitRecordRelationFile发生错误:{}", e.getMessage());
         }
         return R.fail();
     }
 
     @Override
     public String getEventInfoById(String eventId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
         request.auth(getAuthToken());
         request.form("eventId", eventId);
         HttpResponse result = request.execute();
@@ -142,7 +151,7 @@
 
     @Override
     public List<LcGridData> getGridListByAreaId(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         HttpResponse result = request.execute();
@@ -151,7 +160,7 @@
 
     @Override
     public String getGridMemberListByAreaIdOrName(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LangchaoApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
+        HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         HttpResponse result = request.execute();
@@ -210,6 +219,207 @@
         });
     }
 
+    @Override
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) {
+        HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId");
+        return result.body();
+    }
+
+    @Override
+    public String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            //对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcFlowPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadFlowPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadFlowPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            //对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcKeyPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadKeyPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadKeyPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId) {
+        HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId, LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId");
+        return result.body();
+    }
+
+    @Override
+    public void automationUploadVisitRecord() {
+        List<LcEventVisitingTasksListDTO> unUploadTaskList = gridService.getUnUploadVisitingTask();
+        unUploadTaskList.forEach(lcEventVisitingTasksListDTO -> {
+            String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId());
+            String lcGridUserId = gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString());
+            R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId());
+            ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO) populationDetail.getData();
+            BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL, comMngPopulationVO.getCultureLevel().toString());
+            ComMngPopulationDTO comMngPopulationDTO = CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class);
+            if (diction != null) {
+                comMngPopulationDTO.setCultureLevel(diction.getDictItemName());
+            }
+            R grid = gridService.eventGridDataDetails(lcEventVisitingTasksListDTO.getGridId());
+            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO) grid.getData();
+            String[] data = lcEventVisitingTasksListDTO.getHappentLatLng().split(",");
+            if (lcEventVisitingTasksListDTO.getVisiterType() != null) {
+                log.info("上传数据导重点人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            } else {
+                log.info("上传数据导流动人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid, lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            }
+        });
+    }
+
+    private void uploadVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO) {
+        log.info("开始上传走访任务附件文件");
+        List<EventResourceVO> picsList = lcEventVisitingTasksListDTO.getPics();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, picsList, "IMAGE");
+        List<EventResourceVO> audiosList = lcEventVisitingTasksListDTO.getAudios();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, audiosList, "AUDIO");
+        List<EventResourceVO> videoList = lcEventVisitingTasksListDTO.getVideos();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, videoList, "VIDEO");
+        log.info("结束上传走访任务附件文件");
+    }
+
+    private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, List<EventResourceVO> picsList, String type) {
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(lcEventVisitingTasksListDTO.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType(type);
+            eventFile.setModule("key_person");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            submitEventOrVisitRecordRelationFile(eventFile);
+        });
+    }
+
+
+    @Override
+    public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        //如果是流动人口走访
+        LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO = new LcFlowPersonVisitRecordDTO();
+        lcFlowPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        lcFlowPersonVisitRecordDTO.setUserId(lcGridUserId);
+        lcFlowPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        lcFlowPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        JSONObject population = (JSONObject) JSONObject.toJSON(populationDetail);
+        lcFlowPersonVisitRecordDTO.setComMngPopulation(population.toJSONString());
+        lcFlowPersonVisitRecordDTO.setGridId(lcGrid);
+        lcFlowPersonVisitRecordDTO.setGridName(gridName);
+        lcFlowPersonVisitRecordDTO.setWorkWithPoliceMan("0");
+        lcFlowPersonVisitRecordDTO.setPoliceManName(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManPhone(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManWorkContent(null);
+        lcFlowPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        lcFlowPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        lcFlowPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        lcFlowPersonVisitRecordDTO.setHouseType(null);
+        lcFlowPersonVisitRecordDTO.setHouseAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setIsReportInfo(null);
+        lcFlowPersonVisitRecordDTO.setHaveCertificate("0");
+        lcFlowPersonVisitRecordDTO.setCertificateType("身份证");
+        lcFlowPersonVisitRecordDTO.setCertificateNumber(population.getString("cardNo"));
+        lcFlowPersonVisitRecordDTO.setCertificateDeadTime("0");
+        lcFlowPersonVisitRecordDTO.setIsPropaganda("1");
+        lcFlowPersonVisitRecordDTO.setIsCheckReview("1");
+        lcFlowPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        lcFlowPersonVisitRecordDTO.setAbnormalSituation(lcEventVisitingTasksListDTO.getTableContentJson());
+        lcFlowPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        log.info("requestLcFlowPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(lcFlowPersonVisitRecordDTO));
+        String flowPersonData = uploadFlowPersonVisitRecord(lcFlowPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(flowPersonData, LcReturnObject.class);
+        log.info("requestLcFlowPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", lcReturnObject);
+        return lcReturnObject;
+    }
+
+    @Override
+    public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        LcKeyPersonVisitRecordDTO keyPersonVisitRecordDTO = new LcKeyPersonVisitRecordDTO();
+        keyPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        keyPersonVisitRecordDTO.setUserId(lcGridUserId);
+        keyPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        keyPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        keyPersonVisitRecordDTO.setComMngPopulation(JSONObject.toJSONString(populationDetail));
+        keyPersonVisitRecordDTO.setGridId(lcGrid);
+        keyPersonVisitRecordDTO.setGridName(gridName);
+        keyPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        keyPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        keyPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        keyPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        keyPersonVisitRecordDTO.setFamilyMemberContact(lcEventVisitingTasksListDTO.getFamilyPhone());
+        keyPersonVisitRecordDTO.setHowLive(lcEventVisitingTasksListDTO.getFamilySource());
+        keyPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        keyPersonVisitRecordDTO.setAbnormalSituation(null);
+        keyPersonVisitRecordDTO.setAbnormalDes(lcEventVisitingTasksListDTO.getTableContentJson());
+        keyPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        keyPersonVisitRecordDTO.setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType()));
+        log.info("requestLcKeyPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO));
+        String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+        log.info("requestLcKeyPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", remoteData);
+        return lcReturnObject;
+    }
+
+
+    private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId, String requestUrl, String flowPeopleId) {
+        HttpRequest request = HttpUtil.createPost(requestUrl);
+        request.auth(getAuthToken());
+        request.form("userId", loginUserId);
+        request.form("gridId", personVisitRecordQueryDTO.getGridId());
+        request.form("limit", personVisitRecordQueryDTO.getLimit());
+        request.form("startNumber", personVisitRecordQueryDTO.getStartNumber());
+        request.form(flowPeopleId, personVisitRecordQueryDTO.getPersonId());
+        return request.execute();
+    }
+
     private void uploadLcApiEventFile(EventDetailsVO eventInfoVo, List<EventResourceVO> picsList, String type) {
         picsList.forEach(eventResourceVO -> {
             EventFile eventFile = new EventFile();
@@ -218,7 +428,7 @@
             eventFile.setType(type);
             eventFile.setModule("event");
             eventFile.setFileName(eventResourceVO.getResourceName());
-            submitEventRelationFile(eventFile);
+            submitEventOrVisitRecordRelationFile(eventFile);
         });
     }
 
@@ -226,7 +436,7 @@
      * 工具方法
      * inputStream 转 File
      */
-    public static File inputStreamToFile(InputStream ins, String name) throws Exception {
+    private static File inputStreamToFile(InputStream ins, String name) throws Exception {
         File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name);
         log.info(System.getProperty("java.io.tmpdir") + File.separator + name);
         if (file.exists()) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java
new file mode 100644
index 0000000..f94b11f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java
@@ -0,0 +1,162 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+/**
+ * program 攀枝花智慧社区项目
+ * description 实有人口信息
+ *
+ * @author manailin
+ * Date 2021-06-22 15:30
+ **/
+@Data
+public class ComMngPopulationDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    private Long id;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    private Long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    private String name;
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    private Integer sex;
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 临时用
+     */
+    private String cardNoStr;
+    /**
+     * 街路巷
+     */
+    private String road;
+    /**
+     * 门牌号
+     */
+    private String doorNo;
+    /**
+     * 楼排号
+     */
+    private String floor;
+    /**
+     * 单元号
+     */
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    private String houseNo;
+    /**
+     * 政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)
+     */
+    private Integer politicalOutlook;
+    /**
+     * 工作单位
+     */
+    private String workCompany;
+    /**
+     * 特殊情况
+     */
+    private String specialSituation;
+    /**
+     * 联系方式
+     */
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 外地or本地(1.本地  2.外地)
+     */
+    private Integer outOrLocal;
+    /**
+     * 户口所在地
+     */
+    private String censusRegister;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 标签集合(多个标签以,隔开)
+     */
+    private String label;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 籍贯
+     */
+    private String nativePlace;
+    /**
+     * 民族code
+     */
+    private String nativeCode;
+    /**
+     * 民族
+     */
+    private String nation;
+    /**
+     * 是否租住(0.否 1.是)
+     */
+    private Integer isRent;
+    /**
+     * 小区名字
+     */
+    private String villageName;
+
+
+    /**
+     * 文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)
+     */
+    private String cultureLevel;
+
+    /**
+     * 婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)
+     */
+    private Integer marriage;
+
+
+    /**
+     * 健康状况
+     */
+    private String healthy;
+
+    /**
+     * 居住地址
+     */
+    private String address;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java
new file mode 100644
index 0000000..47be277
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目
+ * description 浪潮流动人员走访记录
+ *
+ * @author manailin
+ * Date 2021-06-22 15:30
+ **/
+@Data
+public class LcFlowPersonVisitRecordDTO {
+    /**
+     * 走访记录id
+     */
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 网格员姓名
+     */
+    private String gridPersonName;
+    /**
+     * 网格员电话
+     */
+    private String gridPersonPhone;
+    /**
+     * 人员基础信息对象
+     */
+    private String comMngPopulation;
+    /**
+     * 网格ID
+     */
+    private String gridId;
+    /**
+     * 网格名称,用于查询详情时候显示
+     */
+    private String gridName;
+    /**
+     * 是否在民警带领下工作
+     */
+    private String workWithPoliceMan;
+    /**
+     * 民警姓名
+     */
+    private String policeManName;
+    /**
+     * 民警电话
+     */
+    private String policeManPhone;
+    /**
+     * 工作内容
+     */
+    private String policeManWorkContent;
+    /**
+     * 走访时间
+     */
+    private Long visitTime;
+    /**
+     * 走访地址
+     */
+    private String visitAddress;
+    /**
+     * 经度
+     */
+    private Double longitude;
+    /**
+     * 纬度
+     */
+    private Double latitude;
+    /**
+     * 住所类型
+     */
+    private String houseType;
+    /**
+     * 住所地址
+     */
+    private String houseAddress;
+    /**
+     * 是否申报流动人口信息
+     */
+    private String isReportInfo;
+    /**
+     * 是否办证
+     */
+    private String haveCertificate;
+    /**
+     * 证件类型
+     */
+    private String certificateType;
+    /**
+     * 证件号码
+     */
+    private String certificateNumber;
+    /**
+     * 证件到期时间
+     */
+    private String certificateDeadTime;
+    /**
+     * 是否宣传
+     */
+    private String isPropaganda;
+    /**
+     * 是否核查申报
+     */
+    private String isCheckReview;
+    /**
+     * 是否有异常
+     */
+    private String isAbnormal;
+    /**
+     * 异常情况
+     */
+    private String abnormalSituation;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java
new file mode 100644
index 0000000..38d058e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目
+ * description 浪潮重点人员走访记录
+ *
+ * @author manailin
+ * Date 2021-06-22 15:30
+ **/
+@Data
+public class LcKeyPersonVisitRecordDTO {
+    /**
+     * 走访记录id
+     */
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 网格员姓名
+     */
+    private String gridPersonName;
+    /**
+     * 网格员电话
+     */
+    private String gridPersonPhone;
+    /**
+     * 人员基础信息对象
+     */
+    private String comMngPopulation;
+    /**
+     * 网格ID
+     */
+    private String gridId;
+    /**
+     * 网格名称,用于查询详情时候显示
+     */
+    private String gridName;
+    /**
+     * 走访时间
+     */
+    private Long visitTime;
+    /**
+     * 走访地址
+     */
+    private String visitAddress;
+    /**
+     * 经度
+     */
+    private Double longitude;
+    /**
+     * 纬度
+     */
+    private Double latitude;
+    /**
+     * 家属联系方式
+     */
+    private String familyMemberContact;
+    /**
+     * 生活来源
+     */
+    private String howLive;
+
+    /**
+     * 是否有异常
+     */
+    private String isAbnormal;
+    /**
+     * 异常情况类型
+     */
+    private String abnormalSituation;
+    /**
+     * 异常描述
+     */
+    private String abnormalDes;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * p01_drug吸毒人员 p01_trouble_schiz 严重精神障碍 p01_release  刑满释放  p01_be_corrected 社区矫正人员
+     */
+    private String type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java
new file mode 100644
index 0000000..b378f1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+/**
+ * program 攀枝花智慧社区项目
+ * description 浪潮接口走访任务分页查询DTO
+ *
+ * @author manailin
+ * Date 2021-06-22 15:30
+ **/
+@Data
+public class LcKeyPersonVisitRecordQueryDTO {
+
+    /**
+     * 网格ID
+     */
+    private String  gridId;
+    /**
+     * 用户ID
+     */
+    private String  personId;
+    /**
+     * 开始数量
+     */
+    private String  startNumber;
+    /**
+     *  查询长度
+     */
+    private String  limit;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/service_api/biz/impl/LcApiServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
similarity index 90%
rename from springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/service_api/biz/impl/LcApiServiceImplTest.java
rename to springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
index 710acb4..0ce59cf 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/service_api/biz/impl/LcApiServiceImplTest.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
@@ -1,4 +1,4 @@
-package com.panzhihua.service_api.biz.impl;
+package com.panzhihua.serviceapi.biz.impl;
 
 import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson.JSONArray;
@@ -95,12 +95,11 @@
     void submitEventRelationFile() throws URISyntaxException {
         EventFile eventFile = new EventFile();
         eventFile.setDataId("1111116");
-        //eventFile.setFiles("https://www.baidu.com/img/flexible/logo/pc/result@2.png");
         eventFile.setFiles("http://image.panzhihua.nhys.cdnhxx.com//idcard/4f843ad2d756456e900d5f24b419aa7c.mp4");
         eventFile.setType("mp4");
         eventFile.setModule("event");
         eventFile.setFileName("4f843ad2d756456e900d5f24b419aa7c.mp4");
-        R result = lcApiService.submitEventRelationFile(eventFile);
+        R result = lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
         log.info(JSONObject.toJSONString(result));
     }
 
@@ -117,7 +116,7 @@
         EventGridDataDetailsVO gridData = (EventGridDataDetailsVO) grid.getData();
         eventInfo.setGridName(gridData.getGridName());
         eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType()));
-        String caseTypeName= LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
+        String caseTypeName = LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
         eventInfo.setCaseTypeName(caseTypeName);
         eventInfo.setHappenTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
         eventInfo.setHappenAddress(eventInfoVo.getHappenAddress());
@@ -144,7 +143,7 @@
             eventFile.setType("png");
             eventFile.setModule("event");
             eventFile.setFileName(eventResourceVO.getResourceName());
-            lcApiService.submitEventRelationFile(eventFile);
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
         });
         List<EventResourceVO> audiosList = eventInfoVo.getAudios();
         audiosList.forEach(eventResourceVO -> {
@@ -154,7 +153,7 @@
             eventFile.setType("mp3");
             eventFile.setModule("event");
             eventFile.setFileName(eventResourceVO.getResourceName());
-            lcApiService.submitEventRelationFile(eventFile);
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
         });
         List<EventResourceVO> videoList = eventInfoVo.getVideos();
         videoList.forEach(eventResourceVO -> {
@@ -164,7 +163,7 @@
             eventFile.setType("mp4");
             eventFile.setModule("event");
             eventFile.setFileName(eventResourceVO.getResourceName());
-            lcApiService.submitEventRelationFile(eventFile);
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
         });
         log.info("结束上传附件图片信息");
     }
@@ -178,4 +177,20 @@
                 SerializerFeature.WriteDateUseDateFormat);
         log.info(pretty);
     }
+
+    @Test
+    void requestLcFlowPersonVisitRecord() {
+    }
+
+    @Test
+    void automationUploadVisitRecord() {
+        lcApiService.automationUploadVisitRecord();
+    }
+
+    @Test
+    void getGridMemberListByAreaIdOrName() {
+        String data = lcApiService.getGridMemberListByAreaIdOrName("jhRxqEQp");
+        log.info(data);
+    }
+
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java
index c3025bd..7f3b3f0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java
@@ -46,11 +46,23 @@
         return R.ok(comMngPopulationService.getScreenCivil(communityId));
     }
 
+    /**
+     * 获取社区网格
+     *
+     * @param communityId 社区id
+     * @return 网格数据
+     */
     @GetMapping("/getScreenGirds")
     public R grids(@RequestParam("communityId") Long communityId) {
         return R.ok(comMngPopulationService.getScreenGirds(communityId));
     }
 
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO 请求参数
+     * @return 事件详情
+     */
     @PostMapping("/getScreenEventDetail")
     public R eventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO) {
         return R.ok(comMngPopulationService.getScreenEventDetail(eventDetailDTO));
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java
index 28f80e6..3e535f6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java
@@ -1,9 +1,17 @@
 package com.panzhihua.service_community.api;
 
 import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.service_community.service.ComMngPopulationHouseService;
+import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
+import com.panzhihua.service_community.service.ComMngPopulationService;
 import com.panzhihua.service_community.service.ComMngVillageService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +31,12 @@
 public class ComMngVillageApi {
     @Resource
     private ComMngVillageService comMngVillageService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
 
     /**
      * 新增实有房屋
@@ -105,5 +119,100 @@
         return comMngVillageService.getVillage(villageId);
     }
 
+    /**
+     * 综治app-小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @PostMapping("/village/grid/list")
+    public R getGridPopulationAdminList(@RequestBody ComMngVillageListAppDTO villageListAppDTO) {
+        return comMngVillageService.getGridVillageList(villageListAppDTO);
+    }
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     * @param villageId 小区id
+     * @return  楼栋列表
+     */
+    @PostMapping("/village/grid/building/list")
+    public R getGridVillageBuildingList(@RequestParam("villageId")Long villageId) {
+        return comMngVillageService.getGridVillageBuildingList(villageId);
+    }
+
+    /**
+     * 小区楼栋下房屋列表
+     * @param buildHouseAppDTO  请求参数
+     * @return  房屋列表
+     */
+    @PostMapping("/village/grid/building/house/list")
+    public R getGridVillageBuildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO) {
+        return comMngPopulationHouseService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    /**
+     * 小区楼栋下房屋信息
+     * @param houseId   房屋id
+     * @return  房屋信息
+     */
+    @PostMapping("/village/grid/building/house/detail")
+    public R getGridVillageBuildingHouseDetail(@RequestParam("houseId")Long houseId) {
+        return comMngPopulationHouseService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    /**
+     * 查询平台人口列表
+     * @param populationDTO 请求参数
+     * @return  人口列表
+     */
+    @PostMapping("/village/grid/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO) {
+        return comMngPopulationService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    /**
+     * 批量向房屋新增人员
+     * @param housePopulationDTO    请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/village/grid/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO) {
+        return comMngPopulationHouseUserService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    /**
+     * 批量删除房屋内人员
+     * @param housePopulationDTO    请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/village/grid/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO) {
+        return comMngPopulationHouseUserService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @PostMapping("/village/admin/del")
+    public R delGridVillage(@RequestBody List<Long> villageIds) {
+        return comMngVillageService.delGridVillage(villageIds);
+    }
+
+    @PostMapping("/village/admin/population/list")
+    public R getVillagePopulationAdmin(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO) {
+        return comMngPopulationService.getVillagePopulationAdmin(villagePopulationDTO);
+    }
+
+    @PostMapping("/village/admin/population/house/list")
+    public R getVillagePopulationHouseAdmin(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO) {
+        return comMngPopulationHouseUserService.getVillagePopulationHouseAdmin(villagePopulationHouseDTO);
+    }
+
+    @GetMapping("/village/admin/statistics")
+    public R getGridVillageStatistics() {
+        return comMngVillageService.getGridVillageStatistics();
+    }
+
+    @PostMapping("/village/admin/export")
+    public R getGridPopulationAdminListExport(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO) {
+        return comMngVillageService.getGridVillageListExport(villageListAppDTO);
+    }
+
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java
index c7381be..222c00b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java
@@ -1,5 +1,6 @@
 package com.panzhihua.service_community.api;
 
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
 import com.panzhihua.common.model.vos.BcDictionaryVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.service.BcDictionaryService;
@@ -31,4 +32,17 @@
 
         return bcDictionaryService.getDictionaryByKey(key);
     }
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code 入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code")String code){
+        return bcDictionaryService.getByCode(dictId,code);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
index d14c72d..3594586 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
@@ -1,13 +1,19 @@
 package com.panzhihua.service_community.api;
 
 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.ComMngPopulationHouseService;
 import com.panzhihua.service_community.service.ComMngPopulationService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @Slf4j
 @RestController
@@ -16,22 +22,114 @@
 
     @Resource
     private ComMngPopulationService comMngPopulationService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
 
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO 请求参数
+     * @return 人口数据
+     */
     @PostMapping("/list/app")
     public R pagePopulationList(@RequestBody PagePopulationListDTO populationListDTO) {
         return comMngPopulationService.pagePopulationListApp(populationListDTO);
     }
 
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId  人口id
+     * @return  人口详情
+     */
     @GetMapping("/detail/app")
     public R getPopulationDetail(@RequestParam("populationId") Long populationId) {
         return comMngPopulationService.getPopulationDetailApp(populationId);
     }
 
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
     @GetMapping("/repair")
     public R repair() {
         return comMngPopulationService.getPopulationRepairByApp();
     }
 
+    /**
+     * 综治后台-居民列表
+     * @param populationListDTO 请求参数
+     * @return  居民列表
+     */
+    @PostMapping("/grid/list")
+    public R getGridPopulationAdminList(@RequestBody ComMngPopulationListDTO populationListDTO) {
+        return comMngPopulationService.getGridPopulationAdminList(populationListDTO);
+    }
+
+    /**
+     * 综治后台-删除居民
+     * @param ids   居民id集合
+     * @return  删除结果
+     */
+    @PostMapping("/grid/del")
+    public R delGridPopulationAdmin(@RequestBody List<Long> ids) {
+        return comMngPopulationService.delGridPopulationAdmin(ids);
+    }
+
+    /**
+     * 综治后台-居民详情
+     * @param populationId  居民id
+     * @return  居民详情
+     */
+    @GetMapping("/grid/get")
+    public R getGridPopulationAdminDetail(@RequestParam("populationId")Long populationId) {
+        return comMngPopulationService.getPopulationDetailApp(populationId);
+    }
+
+    @GetMapping("/binding")
+    public R binding() {
+        return comMngPopulationService.binding();
+    }
+
+    /**
+     * 综治后台-居民标签栏统计
+     * @return  居民统计
+     */
+    @GetMapping("/grid/statistics")
+    public R getGridPopulationStatistics(@RequestParam("communityId") Long communityId) {
+        return comMngPopulationService.getGridPopulationStatistics(communityId);
+    }
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * @param populationExportDTO   请求参数
+     * @return  导出结果
+     */
+    @PostMapping("/grid/export")
+    public R getGridPopulationExport(@RequestBody ComMngPopulationExportDTO populationExportDTO) {
+        return comMngPopulationService.getGridPopulationExport(populationExportDTO);
+    }
+
+    /**
+     * 综治后台-居民管理小区列表
+     * @param name  小区名字
+     * @return  小区列表
+     */
+    @GetMapping("/village/relation")
+    public R relationVillage(@RequestParam("name") String name) {
+        return comMngPopulationService.relationVillage(name);
+    }
+
+    @PostMapping("/subordinate")
+    public R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO) {
+        return comMngPopulationHouseService.subordinate(subordinateDTO);
+    }
+
+    @PostMapping("/relation/house")
+    public R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO) {
+        return comMngPopulationHouseService.populationRelationHouse(relationHouseDTO);
+    }
 
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
index 6c2f255..fb01e09 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -311,7 +311,7 @@
             " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{actActivityListDTO.endTime} " +
             " </if> " +
             "<if test='actActivityListDTO.type!=null'>" +
-            " AND caa.type = #{actActivityListDTO.type} " +
+            " AND caa.status = #{actActivityListDTO.type} " +
             " </if> " +
             " </where> "+
             "ORDER BY " +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java
index 33a7196..5d95c24 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java
@@ -94,6 +94,9 @@
             "<if test='comActDynVO.status != null '>" +
             "AND d.`status` = #{comActDynVO.status}  " +
             " </if> " +
+            "<if test='comActDynVO.type != null '>" +
+            "AND d.type = #{comActDynVO.type}  " +
+            " </if> " +
             "<if test='comActDynVO.publishAtBegin != null '>" +
             "AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin}  " +
             "AND #{comActDynVO.publishAtEnd}" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
index 4f1803b..b29e176 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
@@ -84,6 +84,9 @@
             "<if test='neighborCircleAdminDTO.startAt != null and neighborCircleAdminDTO.endAt !=null '>" +
             "and nc.create_at between #{neighborCircleAdminDTO.startAt} and #{neighborCircleAdminDTO.endAt}  \n" +
             " </if> " +
+            "<if test='neighborCircleAdminDTO.status != null '>" +
+            "and nc.status = #{neighborCircleAdminDTO.status}  \n" +
+            " </if> " +
             "</where>"+
             "order by " +
             "case when nc.`status`=1 then 0 else 1 end, \n" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java
index 697428e..c86092a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java
@@ -1,11 +1,25 @@
 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.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
 import com.panzhihua.common.model.vos.community.ComMngVillageTotalVO;
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.PageComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngVillageExportExcelVO;
 import com.panzhihua.service_community.model.dos.ComMngVillageDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 
 /**
@@ -30,4 +44,112 @@
 
     @Select("select village_id,alley,house_num,group_at,type,address,update_at from com_mng_village where village_id = #{villageId}")
     ComMngVillageVO getVillageById(@Param("villageId") Long villageId);
+
+    @Select("<script> " +
+            "SELECT " +
+            " village_id, " +
+            " `name` AS userName, " +
+            " build_sum, " +
+            " address, " +
+            " create_at as createAt, " +
+            " lng, " +
+            " lat, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id ) AS userSum, " +
+            " ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmv.village_id ) AS houseNum, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND out_or_local = 1 ) AS registerNum, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND is_rent = 2 ) AS rentNum  " +
+            "FROM " +
+            " com_mng_village AS cmv where 1=1 " +
+            "<if test='villageListAppDTO.communityId != null'>" +
+            " and cmv.community_id = #{villageListAppDTO.communityId} "+
+            " </if> " +
+            "<if test='villageListAppDTO.address != null and villageListAppDTO.address != &quot;&quot;'>" +
+            " and cmv.address like concat(#{villageListAppDTO.address},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.alley != null and villageListAppDTO.alley != &quot;&quot;'>" +
+            " and cmv.alley like concat(#{villageListAppDTO.alley},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.houseNum != null and villageListAppDTO.houseNum != &quot;&quot;'>" +
+            " and cmv.house_num like concat(#{villageListAppDTO.houseNum},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.groupAt != null and villageListAppDTO.groupAt != &quot;&quot;'>" +
+            " and cmv.group_at like concat(#{villageListAppDTO.groupAt},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.name != null and villageListAppDTO.name != &quot;&quot;'>" +
+            " and cmv.name like concat(#{villageListAppDTO.name},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.sortColumns!=null'>" +
+            " ORDER BY ${villageListAppDTO.sortColumns} ${villageListAppDTO.sortType} " +
+            " </if>" +
+            " </script>")
+    IPage<PageComMngVillageVO> getGridVillageList(Page page, @Param("villageListAppDTO") ComMngVillageListAppDTO villageListAppDTO);
+
+    @Select("<script> " +
+            "SELECT " +
+            " alley, " +
+            " house_num as doorNum, " +
+            " `name` AS userName, " +
+            " build_sum, " +
+            " address, " +
+            " create_at as createAt, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id ) AS userSum, " +
+            " ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmv.village_id ) AS houseNum " +
+            "FROM " +
+            " com_mng_village AS cmv where 1=1 " +
+            "<if test='villageListAppDTO.communityId != null'>" +
+            " and cmv.community_id = #{villageListAppDTO.communityId} "+
+            " </if> " +
+            "<if test='villageListAppDTO.villageIds != null and villageListAppDTO.villageIds.size > 0'>" +
+            " and cmv.village_id in "+
+            "<foreach item='item' collection='villageListAppDTO.villageIds' separator=',' open='(' close=')' index=''> " +
+            "#{item}" +
+            "</foreach>" +
+            " </if> " +
+            "<if test='villageListAppDTO.address != null and villageListAppDTO.address != &quot;&quot;'>" +
+            " and cmv.address like concat(#{villageListAppDTO.address},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.alley != null and villageListAppDTO.alley != &quot;&quot;'>" +
+            " and cmv.alley like concat(#{villageListAppDTO.alley},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.houseNum != null and villageListAppDTO.houseNum != &quot;&quot;'>" +
+            " and cmv.house_num like concat(#{villageListAppDTO.houseNum},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.groupAt != null and villageListAppDTO.groupAt != &quot;&quot;'>" +
+            " and cmv.group_at like concat(#{villageListAppDTO.groupAt},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.name != null and villageListAppDTO.name != &quot;&quot;'>" +
+            " and cmv.name like concat(#{villageListAppDTO.name},'%') "+
+            " </if> " +
+            "<if test='villageListAppDTO.sortColumns!=null'>" +
+            " ORDER BY ${villageListAppDTO.sortColumns} ${villageListAppDTO.sortType} " +
+            " </if>" +
+            " </script>")
+    List<ComMngVillageExportExcelVO> getGridVillageLists(@Param("villageListAppDTO") ComMngVillageListExportAdminDTO villageListAppDTO);
+
+    @Select("SELECT DISTINCT " +
+            " village_id," +
+            " floor, " +
+            " unit_no  " +
+            "FROM " +
+            " com_mng_population_house AS cmph  " +
+            "WHERE " +
+            " village_id = #{villageId}")
+    List<ComMngVillageBuildingVO> getGridVillageBuildingList(@Param("villageId") Long villageId);
+
+    @Select("<script> " +
+            " select count(village_id) from com_mng_population_house where village_id in " +
+            "<foreach item='item' collection='villageIds' separator=',' open='(' close=')' index=''> " +
+            "#{item} " +
+            "</foreach>" +
+            "</script>")
+    Integer getVillageHouseCount(@Param("villageIds") List<Long> villageIds);
+
+    @Select("SELECT " +
+            " count( village_id ) AS villageNum, " +
+            " ( SELECT count( village_id ) FROM ( SELECT DISTINCT village_id, floor FROM com_mng_population_house ) AS floor ) AS floorNum, " +
+            " ( SELECT count( id ) FROM com_mng_population_house ) AS houseNum, " +
+            " ( SELECT count( id ) FROM com_mng_population ) AS userNum  " +
+            "FROM " +
+            " com_mng_village")
+    ComMngVillageStatisticsVO getGridVillageStatistics();
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
index 7413c4b..a23d2bb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -4,7 +4,11 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
 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.PageComMngVillagePopulationDTO;
 import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
 import com.panzhihua.common.model.vos.area.AreaAddressVO;
 import com.panzhihua.common.model.vos.community.ComActMessageVO;
@@ -15,8 +19,12 @@
 import com.panzhihua.common.model.vos.community.screen.event.*;
 import com.panzhihua.common.model.vos.community.screen.index.*;
 import com.panzhihua.common.model.vos.grid.EventGridDataVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
 import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
 import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.PopulationStatisticsVO;
 import com.panzhihua.common.model.vos.user.*;
 import com.panzhihua.common.model.vos.community.PageComActMessageVO;
 import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
@@ -702,8 +710,7 @@
             " AND e.event_type IN ( 1, 2, 3, 4, 5, 6 )  " +
             " AND e.event_status = 2  " +
             " AND egd.grid_community_id = #{communityId}  " +
-            " AND e.happen_time BETWEEN date_add( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY )  " +
-            " AND date_add( curdate()- DAY ( curdate())+ 1, INTERVAL 1 MONTH ) UNION ALL " +
+            " AND e.create_at >= DATE_SUB(CURDATE(),INTERVAL 30 DAY) UNION ALL " +
             "SELECT " +
             " IFNULL( NULL, 7 ) AS type, " +
             " id AS eventId, " +
@@ -714,8 +721,7 @@
             " community_id = #{communityId}  " +
             " AND del_tag = 0  " +
             " AND lng_lat IS NOT NULL  " +
-            " AND create_at BETWEEN date_add( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY )  " +
-            " AND date_add( curdate()- DAY ( curdate())+ 1, INTERVAL 1 MONTH )")
+            " AND create_at >= DATE_SUB(CURDATE(),INTERVAL 30 DAY)")
     List<EventGridIncidentStatisticsVO> getEventScreenEventList(@Param("communityId") Long communityId);
 
     @Select("SELECT " +
@@ -910,4 +916,176 @@
             " id = #{populationId}")
     PopulationDetailVO getPopulationDetailApp(@Param("populationId") Long populationId);
 
+    @Select("<script> " +
+            "SELECT " +
+            " *  " +
+            "FROM " +
+            " ( " +
+            " SELECT " +
+            " cmp.id, " +
+            "  cmp.`name` AS userName, " +
+            "  cmp.label, " +
+            "  cmp.card_no, " +
+            "  cmp.card_no_str, " +
+            "  cmp.sex, " +
+            "  cmp.address, " +
+            "  cmp.political_outlook, " +
+            "  cmp.census_register, " +
+            "  cmp.house_id, " +
+            "  cmp.phone, " +
+            "  IFNULL(cmp.house_id,0) as isHouse, " +
+            "  ( SELECT event_status FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS eventStatus, " +
+            "  ( SELECT create_at FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS createAt " +
+            " FROM " +
+            " com_mng_population AS cmp where 1=1 " +
+            "<if test='populationListDTO.keyWord != null and populationListDTO.keyWord != &quot;&quot;'>" +
+            "AND (cmp.name like concat (#{populationListDTO.keyWord},'%') or cmp.card_no_str like concat (#{populationListDTO.keyWord},'%') or cmp.address like concat (#{populationListDTO.keyWord},'%')) " +
+            " </if> " +
+            "<if test='populationListDTO.label != null and populationListDTO.label != &quot;&quot;'>" +
+            "AND cmp.label like concat ('%',#{populationListDTO.label},'%') " +
+            " </if> " +
+            "<if test='populationListDTO.sex != null'>" +
+            "AND cmp.sex = #{populationListDTO.sex} " +
+            " </if> " +
+            "<if test='populationListDTO.isHouse != null and populationListDTO.isHouse == 1'>" +
+            "AND cmp.house_id is not null " +
+            " </if> " +
+            "<if test='populationListDTO.isHouse != null and populationListDTO.isHouse == 2'>" +
+            "AND cmp.house_id is null " +
+            " </if> " +
+            "<if test='populationListDTO.communityId != null'>" +
+            "AND cmp.act_id = #{populationListDTO.communityId} " +
+            " </if> " +
+            "<if test='populationListDTO.politicalOutlook != null'>" +
+            "AND cmp.political_outlook = #{populationListDTO.politicalOutlook} " +
+            " </if> " +
+            " ) as population where 1=1 " +
+            "<if test='populationListDTO.eventStatus != null'>" +
+            "AND population.eventStatus = #{populationListDTO.eventStatus} " +
+            " </if> " +
+            " </script>")
+    IPage<ComMngPopulationListVO> getGridPopulationAdminList(Page page,@Param("populationListDTO") ComMngPopulationListDTO populationListDTO);
+
+    @Select("select relation from com_mng_population_house_user where house_id = #{houseId} and popul_id = #{populationId}")
+    Integer getPopulationRelationByHouseId(@Param("houseId") Long houseId, @Param("populationId") Long populationId);
+
+    @Select("<script>" +
+            " select count(id) from event_visiting_tasks as evt where visiter_id in " +
+            "<foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >" +
+            "#{id}" +
+            "</foreach>" +
+            " </script>")
+    Integer getPopulationVisitingCount(@Param("ids") List<Long> ids);
+
+    @Select("<script> " +
+            "SELECT " +
+            "   cmp.id, " +
+            "   cmp.`name`, " +
+            "   cmp.card_no as idCard, " +
+            "   cmp.label, " +
+            "   cmp.sex, " +
+            "   IFNULL( cmp.phone, '暂无' ) as phone, " +
+            "   cmp.address, " +
+            "   cmp.political_outlook " +
+            "  FROM " +
+            "   com_mng_population AS cmp where 1=1 " +
+            "<if test='populationDTO.keyWord != null'>" +
+            " AND (cmp.name like concat(#{populationDTO.keyWord},'%') or cmp.card_no_str like concat(#{populationDTO.keyWord},'%')) " +
+            " </if> " +
+            " </script>")
+    IPage<EventSpecialPopulationVO> getBuildingHousePopulationList(Page page,@Param("populationDTO") PageComMngPopulationDTO populationDTO);
+
+    @Select("<script> " +
+            "SELECT " +
+            " count( id ) AS localNum, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE out_or_local = 2 " +
+            "<if test='communityId != null and communityId != 0'>" +
+            " AND act_id = #{communityId} " +
+            " </if> " +
+            " ) AS flowNum, " +
+            " ( SELECT count( id ) FROM com_mng_population WHERE label IS NOT NULL " +
+            "<if test='communityId != null and communityId != 0'>" +
+            " AND act_id = #{communityId} " +
+            " </if> " +
+            " ) AS specialNum  " +
+            "FROM " +
+            " com_mng_population  " +
+            "WHERE " +
+            " out_or_local = 1 " +
+            "<if test='communityId != null and communityId != 0'>" +
+            " AND act_id = #{communityId} " +
+            " </if> " +
+            " </script>")
+    PopulationStatisticsVO getGridPopulationStatistics(@Param("communityId") Long communityId);
+
+    @Select("<script> " +
+            "SELECT " +
+            " *  " +
+            "FROM " +
+            " ( " +
+            " SELECT " +
+            " cmp.id, " +
+            "  cmp.`name` AS userName, " +
+            "  cmp.label, " +
+            "  cmp.card_no, " +
+            "  cmp.card_no_str, " +
+            "  cmp.sex, " +
+            "  cmp.address, " +
+            "  cmp.political_outlook, " +
+            "  cmp.census_register, " +
+            "  cmp.house_id, " +
+            "  cmp.phone, " +
+            "  IFNULL(cmp.house_id,0) as isHouse, " +
+            "  ( SELECT event_status FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS eventStatus, " +
+            "  ( SELECT create_at FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS createAt " +
+            " FROM " +
+            " com_mng_population AS cmp where 1=1 " +
+            "<if test='populationExportDTO.keyWord != null and populationExportDTO.keyWord != &quot;&quot;'>" +
+            "AND (cmp.name like concat (#{populationExportDTO.keyWord},'%') or cmp.card_no_str like concat (#{populationExportDTO.keyWord},'%') or cmp.address like concat (#{populationExportDTO.keyWord},'%')) " +
+            " </if> " +
+            "<if test='populationExportDTO.label != null and populationExportDTO.label != &quot;&quot;'>" +
+            "AND cmp.label like concat ('%',#{populationExportDTO.label},'%') " +
+            " </if> " +
+            "<if test='populationExportDTO.sex != null'>" +
+            "AND cmp.sex = #{populationExportDTO.sex} " +
+            " </if> " +
+            "<if test='populationExportDTO.isHouse != null and populationExportDTO.isHouse == 1'>" +
+            "AND cmp.house_id is not null " +
+            " </if> " +
+            "<if test='populationExportDTO.populationIds != null and populationExportDTO.populationIds.size > 0'>" +
+            "AND cmp.id in  " +
+            "<foreach item='item' collection='populationExportDTO.populationIds' separator=',' open='(' close=')' index=''>" +
+            "#{item}" +
+            "</foreach>" +
+            " </if> " +
+            "<if test='populationExportDTO.isHouse != null and populationExportDTO.isHouse == 2'>" +
+            "AND cmp.house_id is null " +
+            " </if> " +
+            "<if test='populationExportDTO.communityId != null'>" +
+            "AND cmp.act_id = #{populationExportDTO.communityId} " +
+            " </if> " +
+            "<if test='populationExportDTO.politicalOutlook != null'>" +
+            "AND cmp.political_outlook = #{populationExportDTO.politicalOutlook} " +
+            " </if> " +
+            " ) as population where 1=1 " +
+            "<if test='populationExportDTO.eventStatus != null'>" +
+            "AND population.eventStatus = #{populationExportDTO.eventStatus} " +
+            " </if> " +
+            " </script>")
+    List<ComMngPopulationListVO> getGridPopulationAdminLists(@Param("populationExportDTO") ComMngPopulationExportDTO populationExportDTO);
+
+    @Select("<script> " +
+            " select id,`name`,card_no,label from com_mng_population where 1=1 " +
+            "<if test='villagePopulationDTO.villageId != null'>" +
+            " and village_id = #{villagePopulationDTO.villageId} " +
+            " </if> " +
+            "<if test='villagePopulationDTO.keyWord != null'>" +
+            " AND (name like concat (#{villagePopulationDTO.keyWord},'%') or card_no_str like concat (#{villagePopulationDTO.keyWord},'%'))  " +
+            " </if> " +
+            "<if test='villagePopulationDTO.label != null and villagePopulationDTO.label != &quot;&quot;'>" +
+            " AND label like concat ('%',#{villagePopulationDTO.label},'%')  " +
+            " </if> " +
+            " </script>")
+    IPage<ComMngVillagePopulationListVO> getVillagePopulationAdmin(Page page,@Param("villagePopulationDTO") PageComMngVillagePopulationDTO villagePopulationDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
index 36c98bd..224a0bd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -4,7 +4,12 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
 import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
 import com.panzhihua.common.model.vos.user.ComMngHouseVo;
 import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -173,5 +178,77 @@
             " from com_act as ca where ca.community_id = #{communityId}")
     ComMngVillageRegionVO getRegion(@Param("communityId") Long communityId);
 
+    @Select("<script> " +
+            "SELECT id, floor, unit_no, house_no, `status`,( SELECT count( id ) FROM com_mng_population_house_user WHERE house_id = cmph.id ) AS userNum " +
+            " FROM " +
+            " com_mng_population_house AS cmph " +
+            " <where> " +
+            "<if test='buildHouseAppDTO.villageId != null '>" +
+            " and cmph.village_id = #{buildHouseAppDTO.villageId}  " +
+            " </if> " +
+            "<if test='buildHouseAppDTO.floor != null and buildHouseAppDTO.floor !=&quot;&quot; '>" +
+            " and cmph.floor = #{buildHouseAppDTO.floor}  " +
+            " </if> " +
+            "<if test='buildHouseAppDTO.unitNo != null and buildHouseAppDTO.unitNo !=&quot;&quot; '>" +
+            " and cmph.unit_no = #{buildHouseAppDTO.unitNo}  " +
+            " </if> " +
+            "<if test='buildHouseAppDTO.houseNo != null and buildHouseAppDTO.houseNo !=&quot;&quot; '>" +
+            " and cmph.house_no like concat(#{buildHouseAppDTO.houseNo},'%')  " +
+            " </if> " +
+            " </where>" +
+            " </script>")
+    IPage<ComMngVillageBuildingHouseVO> getGridVillageBuildingHouseList(Page page, @Param("buildHouseAppDTO") PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
 
+    @Select("SELECT " +
+            " cmph.id, " +
+            " cmv.`name` AS villageName, " +
+            " cmph.floor, " +
+            " cmph.unit_no, " +
+            " cmph.house_no, " +
+            " cmph.address, " +
+            " cmph.`status`, " +
+            " cmv.lat, " +
+            " cmv.lng  " +
+            "FROM " +
+            " com_mng_population_house AS cmph " +
+            " LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id  " +
+            "WHERE " +
+            " cmph.id = #{houseId}")
+    ComMngVillageBuildingHouseDetailVO getGridVillageBuildingHouseDetail(@Param("houseId") Long houseId);
+
+    @Select("<script> " +
+            "SELECT " +
+            " cmp.id, " +
+            " cmphu.id as housePopulationId, " +
+            " cmp.sex, " +
+            " cmp.`name`, " +
+            " IFNULL( cmp.phone, '暂无' ) as phone, " +
+            " cmp.card_no, " +
+            " cmp.label, " +
+            " cmp.address, " +
+            " cmp.nation, " +
+            " cmphu.create_at, " +
+            " cmp.political_outlook  " +
+            "FROM " +
+            " com_mng_population_house_user AS cmphu " +
+            " LEFT JOIN com_mng_population AS cmp ON cmp.id = cmphu.popul_id  " +
+            "WHERE " +
+            " cmphu.house_id = #{houseId} " +
+            "<if test='relation != null '>" +
+            " AND cmphu.relation = #{relation}  " +
+            " </if> " +
+            "<if test='relationId != null '>" +
+            " AND cmphu.relation_id = #{relationId}  " +
+            " </if> " +
+            " </script>")
+    List<PopulationListVO> getGridVillageBuildingPopulationList(@Param("houseId") Long houseId,@Param("relation") Integer relation,@Param("relationId") Integer relationId);
+
+    @Select("select id as houseId,floor from com_mng_population_house where village_id = #{villageId} order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByFloors(@Param("villageId") Long villageId);
+
+    @Select("select id as houseId,unit_no from com_mng_population_house where village_id = #{villageId} and floor = #{floor} order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByUnitNos(@Param("villageId") Long villageId,@Param("floor") String floor);
+
+    @Select("select id as houseId,house_no from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unitNo} order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByHouseNos(@Param("villageId") Long villageId,@Param("floor") String floor,@Param("unitNo") String unitNo);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
index 3f8aec2..2bca9b2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -1,7 +1,11 @@
 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.grid.admin.PageComMngVillagePopulationHouseDTO;
 import com.panzhihua.common.model.vos.community.ComMngPopulationHouseUserAdminVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationHouseListVO;
 import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -30,4 +34,25 @@
             "left join com_mng_population as cmp on cmp.id = cmphu.popul_id where cmphu.house_id = #{houseId}")
     List<ComMngPopulationHouseUserAdminVO> getHouseUserByHouseId(@Param("houseId") Long houseId);
 
+    @Select("update com_mng_population_house_user set relation = null where id = #{id}")
+    Integer delBuildingHousePopulationRelation(@Param("id") Long id);
+
+    @Select("update com_mng_population_house_user set relation_id = null where id = #{id}")
+    Integer delBuildingHousePopulationRelationId(@Param("id") Long id);
+
+    @Select("SELECT " +
+            " cmv.`name` AS villageName, " +
+            " cmph.id, " +
+            " cmv.address, " +
+            " cmph.floor, " +
+            " cmph.unit_no, " +
+            " cmph.house_no  " +
+            "FROM " +
+            " com_mng_population_house_user AS cmphu " +
+            " LEFT JOIN com_mng_population_house AS cmph ON cmph.id = cmphu.house_id " +
+            " LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id  " +
+            "WHERE " +
+            " cmphu.popul_id = #{villagePopulationDTO.populationId}")
+    IPage<ComMngVillagePopulationHouseListVO> getVillagePopulationHouseAdmin(Page page, @Param("villagePopulationDTO") PageComMngVillagePopulationHouseDTO villagePopulationDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
index b6d282a..6f6f659 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
@@ -123,6 +123,10 @@
     /**
      * 民族
      */
+    private String nationCode;
+    /**
+     * 民族
+     */
     private String nation;
     /**
      * 是否租住(0.否 1.是)
@@ -170,7 +174,7 @@
     /**
      * 居住地房屋id
      */
-//    private Long houseId;
+    private Long houseId;
 
     /**
      * 性别(1.男 2.女 3.未知)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
index a80a039..5b8f3fc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -62,6 +62,26 @@
     @TableField(fill = FieldFill.INSERT)
     private Date createAt;
 
+    /**
+     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
+     */
+    public interface relation{
+        int hz = 1;
+        int po = 2;
+        int zn = 3;
+        int sn = 4;
+        int fm = 5;
+        int qt = 6;
+    }
+
+    /**
+     * 人和房屋关系’ (1.自住2、租住)
+     */
+    public interface relationId{
+        int zizhu = 1;
+        int zuzhu = 2;
+    }
+
     @Override
     public String toString() {
         return "ComMngPopulationHouseUserDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java
index 7c810ab..03f1d6b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java
@@ -1,6 +1,7 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
 import com.panzhihua.common.model.vos.BcDictionaryVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.BcDictionaryItemDO;
@@ -19,4 +20,14 @@
      * @return
      */
     R<List<BcDictionaryVO>> getDictionaryByKey(String key);
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param dictId 字典类型
+     * @param code 入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    BcDictionaryItemVO getByCode(String dictId, String code);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
index 03e5467..f998c5d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
@@ -4,6 +4,9 @@
 import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
 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.ComMngPopulationHouseDO;
 
@@ -65,4 +68,22 @@
      */
     R getRegion(Long communityId);
 
+    /**
+     * 小区楼栋下房屋列表
+     * @param buildHouseAppDTO  请求参数
+     * @return  房屋列表
+     */
+    R getGridVillageBuildingHouseList(PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    /**
+     * 小区楼栋下房屋详情
+     * @param houseId   房屋id
+     * @return  房屋详情
+     */
+    R getGridVillageBuildingHouseDetail(Long houseId);
+
+    R subordinate(ComMngPopulationSubordinateDTO subordinateDTO);
+
+    R populationRelationHouse(ComMngPopulationRelationHouseDTO relationHouseDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java
index 0b8b9a1..48464fc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java
@@ -1,6 +1,11 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
 
 /**
@@ -10,4 +15,20 @@
  */
 public interface ComMngPopulationHouseUserService extends IService<ComMngPopulationHouseUserDO> {
 
+    /**
+     * 批量向房屋新增人员
+     * @param housePopulationDTO    请求参数
+     * @return  添加结果
+     */
+    R addBuildingHousePopulation(AddComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 批量删除房屋内人员
+     * @param housePopulationDTO    请求参数
+     * @return  删除结果
+     */
+    R delBuildingHousePopulation(DelComMngHousePopulationDTO housePopulationDTO);
+
+    R getVillagePopulationHouseAdmin(PageComMngVillagePopulationHouseDTO villagePopulationDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
index f77a1d8..29723dd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -5,7 +5,13 @@
 import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO;
 import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
 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.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
 import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
@@ -205,13 +211,87 @@
      */
     R screenStatistic(Long communityId);
 
+    /**
+     * 获取社区网格
+     *
+     * @param communityId 社区id
+     * @return 网格数据
+     */
     R getScreenGirds(Long communityId);
 
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO 请求参数
+     * @return 事件详情
+     */
     R getScreenEventDetail(BigScreenEventDetailDTO eventDetailDTO);
 
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO 请求参数
+     * @return 人口数据
+     */
     R pagePopulationListApp(PagePopulationListDTO populationListDTO);
 
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId  人口id
+     * @return  人口详情
+     */
     R getPopulationDetailApp(Long populationId);
 
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
     R getPopulationRepairByApp();
+
+    /**
+     * 综治后台-居民列表
+     * @param populationListDTO 请求参数
+     * @return  居民列表
+     */
+    R getGridPopulationAdminList(ComMngPopulationListDTO populationListDTO);
+
+    /**
+     * 综治后台-删除居民
+     * @param ids   居民id集合
+     * @return  删除结果
+     */
+    R delGridPopulationAdmin(List<Long> ids);
+
+    /**
+     * 查询平台人口列表
+     * @param populationDTO 请求参数
+     * @return  人口列表
+     */
+    R getBuildingHousePopulationList(PageComMngPopulationDTO populationDTO);
+
+    R binding();
+
+    /**
+     * 综治后台-居民标签栏统计
+     * @return  居民统计
+     */
+    R getGridPopulationStatistics(Long communityId);
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * @param populationExportDTO   请求参数
+     * @return  导出结果
+     */
+    R getGridPopulationExport(ComMngPopulationExportDTO populationExportDTO);
+
+    /**
+     * 综治后台-居民管理小区列表
+     * @param name  小区名字
+     * @return  小区列表
+     */
+    R relationVillage(String name);
+
+    R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java
index 2694f0f..cf5f92d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java
@@ -1,6 +1,10 @@
 package com.panzhihua.service_community.service;
 
 import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
@@ -69,4 +73,25 @@
      * @return  小区详情
      */
     R getVillage(Long villageId);
+
+    /**
+     * 小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 小区下楼栋列表
+     * @param villageId 小区id
+     * @return  小区下楼栋列表
+     */
+    R getGridVillageBuildingList(Long villageId);
+
+    R delGridVillage(List<Long> villageIds);
+
+    R getGridVillageStatistics();
+
+    R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java
index 875400d..47d9e55 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java
@@ -1,12 +1,14 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
 import com.panzhihua.common.model.vos.BcDictionaryVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.CopyUtil;
 import com.panzhihua.service_community.dao.BcDictionaryItemDAO;
 import com.panzhihua.service_community.model.dos.BcDictionaryItemDO;
 import com.panzhihua.service_community.service.BcDictionaryService;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -24,7 +26,7 @@
     public R<List<BcDictionaryVO>> getDictionaryByKey(String key) {
         List<BcDictionaryItemDO> list = baseMapper.getDictionaryByKey(key);
         List<BcDictionaryVO> listVO = new ArrayList<>();
-        for (BcDictionaryItemDO dictionaryItemDO:list){
+        for (BcDictionaryItemDO dictionaryItemDO : list) {
             BcDictionaryVO bcDictionaryVO = new BcDictionaryVO();
             bcDictionaryVO.setCode(dictionaryItemDO.getMnemonicCode());
             bcDictionaryVO.setDictName(dictionaryItemDO.getDictItemName());
@@ -33,4 +35,17 @@
         }
         return R.ok(listVO);
     }
+
+    @Override
+    public BcDictionaryItemVO getByCode(String dictId, String code) {
+        BcDictionaryItemDO dictionaryItemDO = baseMapper.selectOne(
+                new QueryWrapper<BcDictionaryItemDO>()
+                        .eq("dict_id", dictId)
+                        .eq("dict_value", code)
+        );
+        if (dictionaryItemDO != null) {
+            return CopyUtil.copyProperties(dictionaryItemDO, BcDictionaryItemVO.class);
+        }
+        return null;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
index aefbe50..cfc284c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
@@ -53,6 +53,7 @@
             if(comMngVillageDO == null){
                 continue;
             }
+            vo.setName(vo.getName().replace("栋",""));
             List<ComMngBuildingDO> buildingDOList = this.baseMapper.selectList(new QueryWrapper<ComMngBuildingDO>().eq("street_id",comMngVillageDO.getStreetId()).eq("act_id",communityId).eq("village_id",comMngVillageDO.getVillageId()).eq("name",vo.getName()));
             if(buildingDOList.size() > 0){
                 sb.append("街路巷:").append(vo.getAlley()).append(",门牌号:").append(vo.getDoorNo()).append(",楼栋号:").append(vo.getName()).append(";");
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
index 313be0f..28ff7f9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
@@ -1,17 +1,28 @@
 package com.panzhihua.service_community.service.impl;
 
+import cn.hutool.core.util.IdcardUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
 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.common.model.vos.community.ComMngCascadeHouseVO;
 import com.panzhihua.common.model.vos.community.ComMngPopulationHouseDetailAdminVO;
 import com.panzhihua.common.model.vos.community.ComMngPopulationHouseTotalVO;
 import com.panzhihua.common.model.vos.community.ComMngPopulationHouseUserAdminVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
+import com.panzhihua.common.utlis.Snowflake;
 import com.panzhihua.service_community.dao.ComActVillageDAO;
 import com.panzhihua.service_community.dao.ComMngPopulationDAO;
 import com.panzhihua.service_community.dao.ComMngPopulationHouseDAO;
@@ -27,6 +38,10 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -47,6 +62,8 @@
     private ComMngPopulationDAO comMngPopulationDAO;
     @Resource
     private ComActVillageDAO comActVillageDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
 
     /**
      * 查询房屋级联菜单
@@ -246,4 +263,184 @@
         return R.ok(this.baseMapper.getRegion(communityId));
     }
 
+    /**
+     * 小区楼栋下房屋列表
+     * @param buildHouseAppDTO  请求参数
+     * @return  房屋列表
+     */
+    @Override
+    public R getGridVillageBuildingHouseList(PageComMngVillageBuildHouseAppDTO buildHouseAppDTO){
+
+        IPage<ComMngVillageBuildingHouseVO> buildingHouseVOIPage = this.baseMapper.getGridVillageBuildingHouseList(new Page(buildHouseAppDTO.getPageNum(),buildHouseAppDTO.getPageSize()),buildHouseAppDTO);
+        if(!buildingHouseVOIPage.getRecords().isEmpty()){
+            buildingHouseVOIPage.getRecords().forEach(house ->{
+                boolean result=house.getHouseNo().matches("[0-9]+");
+                if(result){//该字段为纯数字
+                    if(house.getHouseNo().length() == 4){
+                        house.setBuildingNum(house.getHouseNo().substring(0,2).replaceAll("^(0+)", ""));
+                    }else if(house.getHouseNo().length() == 3){
+                        house.setBuildingNum(house.getHouseNo().substring(0,1).replaceAll("^(0+)", ""));
+                    }
+                }else{
+                    house.setBuildingNum("-");
+                }
+            });
+        }
+        return R.ok(buildingHouseVOIPage);
+    }
+
+    /**
+     * 小区楼栋下房屋信息
+     * @param houseId   房屋id
+     * @return  房屋信息
+     */
+    @Override
+    public R getGridVillageBuildingHouseDetail(Long houseId){
+
+        ComMngVillageBuildingHouseDetailVO buildingHouseDetailVO = this.baseMapper.getGridVillageBuildingHouseDetail(houseId);
+        if(buildingHouseDetailVO != null){
+
+            //转换楼层数
+            String houseNo = buildingHouseDetailVO.getHouseNo();
+            boolean result = houseNo.matches("[0-9]+");
+            if(result){//该字段为纯数字
+                if(houseNo.length() == 4){
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0,2).replaceAll("^(0+)", ""));
+                }else if(houseNo.length() == 3){
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0,1).replaceAll("^(0+)", ""));
+                }
+            }else{
+                buildingHouseDetailVO.setBuildingNum("-");
+            }
+
+            //查询该房屋的户主信息
+            List<PopulationListVO> householderList = this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),1,null);
+            if(!householderList.isEmpty()){
+                householderList.forEach(householder -> {
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(householder.getCardNo());
+                        householder.setAge(age);
+                    }catch (Exception e){
+                        log.error("身份证号码转换年龄失败,人员id:" + householder.getId());
+                    }
+                });
+                buildingHouseDetailVO.setHouseholderList(householderList);
+            }
+            //查询该房屋的住户信息
+            List<PopulationListVO> populationList = this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),null,1);
+            if(!populationList.isEmpty()){
+                populationList.forEach(population -> {
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                        population.setAge(age);
+                    }catch (Exception e){
+                        log.error("身份证号码转换年龄失败,人员id:" + population.getId());
+                    }
+                });
+                buildingHouseDetailVO.setPopulationList(populationList);
+            }
+        }
+        return R.ok(buildingHouseDetailVO);
+    }
+
+    private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
+        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
+        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+    }
+
+    @Override
+    public R subordinate(ComMngPopulationSubordinateDTO subordinateDTO){
+
+        List<ComMngSubordinateVO> subordinateList = new ArrayList<>();
+
+        ComMngPopulationHouseDO houseDO = null;
+        if(subordinateDTO.getHouseId() != null){
+            houseDO = this.baseMapper.selectById(subordinateDTO.getHouseId());
+        }
+
+        switch (subordinateDTO.getType()){
+            case 1:
+                subordinateList = this.baseMapper.getHouseLevelByFloors(subordinateDTO.getVillageId());
+//                subordinateList = subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getFloor()))), ArrayList::new));
+                subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getFloor)).collect(Collectors.toList());
+                subordinateList.forEach(cascade -> {
+                    if(cascade.getFloor().contains("栋")){
+                        cascade.setName(cascade.getFloor());
+                    }else{
+                        cascade.setName(cascade.getFloor() + "栋");
+                    }
+                });
+                break;
+            case 2:
+                if(houseDO != null){
+                    subordinateList = this.baseMapper.getHouseLevelByUnitNos(houseDO.getVillageId(),houseDO.getFloor());
+                    subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getUnitNo)).collect(Collectors.toList());
+//                    subordinateList = subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getUnitNo()))), ArrayList::new));
+                    subordinateList.forEach(cascade -> {
+                        if(cascade.getUnitNo().contains("单元")){
+                            cascade.setName(cascade.getUnitNo());
+                        }else{
+                            cascade.setName(cascade.getUnitNo() + "单元");
+                        }
+                    });
+                }
+                break;
+            case 3:
+                if(houseDO != null) {
+                    subordinateList = this.baseMapper.getHouseLevelByHouseNos(houseDO.getVillageId(), houseDO.getFloor(), houseDO.getUnitNo());
+                    subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getHouseNo)).collect(Collectors.toList());
+//                    subordinateList = subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o ->  o.getHouseNo()))), ArrayList::new));
+                    subordinateList.forEach(cascade -> {
+                        cascade.setName(cascade.getHouseNo());
+                    });
+                }
+                break;
+            default:
+                break;
+        }
+        return R.ok(subordinateList);
+    }
+
+    public R populationRelationHouse(ComMngPopulationRelationHouseDTO relationHouseDTO){
+
+        if(relationHouseDTO.getPopulationId().isEmpty()){
+            return R.fail("请选择居民");
+        }
+
+        //查询房屋信息
+        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(relationHouseDTO.getHouseId());
+        if(houseDO == null){
+            return R.fail("未查到房屋信息");
+        }
+
+        relationHouseDTO.getPopulationId().forEach(population -> {
+            //修改人口信息
+            ComMngPopulationDO populationDO = new ComMngPopulationDO();
+            populationDO.setId(population);
+            populationDO.setHouseId(houseDO.getId());
+            populationDO.setRoad(houseDO.getAlley());
+            populationDO.setDoorNo(houseDO.getHouseNum());
+            populationDO.setFloor(houseDO.getFloor());
+            populationDO.setUnitNo(houseDO.getUnitNo());
+            populationDO.setHouseNo(houseDO.getHouseNo());
+            comMngPopulationDAO.updateById(populationDO);
+
+            //添加房屋关系
+            ComMngPopulationHouseUserDO houseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>()
+                    .lambda().eq(ComMngPopulationHouseUserDO::getPopulId,population).eq(ComMngPopulationHouseUserDO::getHouseId,relationHouseDTO.getHouseId()));
+            if(houseUserDO == null){
+                houseUserDO = new ComMngPopulationHouseUserDO();
+                houseUserDO.setId(Snowflake.getId());
+                houseUserDO.setHouseId(relationHouseDTO.getHouseId());
+                houseUserDO.setPopulId(population);
+                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                comMngPopulationHouseUserDAO.insert(houseUserDO);
+            }else{
+                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                comMngPopulationHouseUserDAO.updateById(houseUserDO);
+            }
+        });
+        return R.ok();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java
index 23678dd..b1b96c0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java
@@ -1,11 +1,23 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
 import com.panzhihua.service_community.dao.ComMngPopulationHouseUserDAO;
 import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
 import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @auther lyq
@@ -16,4 +28,77 @@
 @Service
 public class ComMngPopulationHouseUserServiceImpl extends ServiceImpl<ComMngPopulationHouseUserDAO, ComMngPopulationHouseUserDO> implements ComMngPopulationHouseUserService {
 
+    /**
+     * 批量向房屋新增人员
+     * @param housePopulationDTO    请求参数
+     * @return  添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addBuildingHousePopulation(AddComMngHousePopulationDTO housePopulationDTO){
+        List<ComMngPopulationHouseUserDO> populationHouseUserDOList = new ArrayList<>();
+        if(!housePopulationDTO.getPopulationIds().isEmpty()){
+            housePopulationDTO.getPopulationIds().forEach(housePopulationId -> {
+                ComMngPopulationHouseUserDO populationHouseUserDO = this.baseMapper.selectOne(
+                        new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                                .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDTO.getHouseId())
+                                .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationId));
+                if(populationHouseUserDO == null){
+                    populationHouseUserDO = new ComMngPopulationHouseUserDO();
+                    populationHouseUserDO.setId(Snowflake.getId());
+                    populationHouseUserDO.setHouseId(housePopulationDTO.getHouseId());
+                    populationHouseUserDO.setPopulId(housePopulationId);
+                    populationHouseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                    populationHouseUserDO.setStartAt(new Date());
+                    populationHouseUserDO.setCreateAt(new Date());
+                    if(housePopulationDTO.getType().equals(AddComMngHousePopulationDTO.type.hz)){
+                        populationHouseUserDO.setRelation(ComMngPopulationHouseUserDO.relation.hz);
+                    }
+                    populationHouseUserDOList.add(populationHouseUserDO);
+                }else{
+                    if(housePopulationDTO.getType().equals(AddComMngHousePopulationDTO.type.hz)){
+                        populationHouseUserDO.setRelation(ComMngPopulationHouseUserDO.relation.hz);
+                    }
+                    populationHouseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                    this.baseMapper.updateById(populationHouseUserDO);
+                }
+            });
+        }
+        this.saveBatch(populationHouseUserDOList);
+        return R.ok();
+    }
+
+    /**
+     * 批量删除房屋内人员
+     * @param housePopulationDTO    请求参数
+     * @return  删除结果
+     */
+    @Override
+    public R delBuildingHousePopulation(DelComMngHousePopulationDTO housePopulationDTO){
+
+        ComMngPopulationHouseUserDO houseUserDO = this.baseMapper.selectById(housePopulationDTO.getHousePopulationId());
+        if(houseUserDO == null){
+            return R.fail("未查询到居住用户数据");
+        }
+        if(housePopulationDTO.getType().equals(DelComMngHousePopulationDTO.type.hz)){
+            if(houseUserDO.getRelationId() == null || !houseUserDO.getRelationId().equals(ComMngPopulationHouseUserDO.relationId.zizhu)){
+                this.baseMapper.deleteById(housePopulationDTO.getHousePopulationId());
+            }else{
+                this.baseMapper.delBuildingHousePopulationRelation(housePopulationDTO.getHousePopulationId());
+            }
+        }else{
+            if(houseUserDO.getRelation() == null || !houseUserDO.getRelation().equals(ComMngPopulationHouseUserDO.relation.hz)){
+                this.baseMapper.deleteById(housePopulationDTO.getHousePopulationId());
+            }else{
+                this.baseMapper.delBuildingHousePopulationRelationId(housePopulationDTO.getHousePopulationId());
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getVillagePopulationHouseAdmin(PageComMngVillagePopulationHouseDTO villagePopulationDTO){
+        return R.ok(this.baseMapper.getVillagePopulationHouseAdmin(new Page(villagePopulationDTO.getPageNum(),villagePopulationDTO.getPageSize()),villagePopulationDTO));
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
index c385ad5..a7eb044 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -4,19 +4,22 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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.google.common.base.Joiner;
 import com.google.common.collect.Lists;
-import com.panzhihua.common.enums.PopulCultureLevelEnum;
-import com.panzhihua.common.enums.PopulHouseUseEnum;
-import com.panzhihua.common.enums.PopulIsOksEnum;
-import com.panzhihua.common.enums.PopulMarriageEnum;
+import com.panzhihua.common.enums.*;
 import com.panzhihua.common.exceptions.ServiceException;
 import com.panzhihua.common.model.dtos.community.*;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
 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.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
 import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
 import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.vos.R;
@@ -27,11 +30,13 @@
 import com.panzhihua.common.model.vos.community.screen.civil.CivilStatisticsVO;
 import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
 import com.panzhihua.common.model.vos.community.screen.event.*;
+import com.panzhihua.common.model.vos.community.screen.event.EventTransferRecordVO;
 import com.panzhihua.common.model.vos.community.screen.index.*;
-import com.panzhihua.common.model.vos.grid.EventGridDataVO;
-import com.panzhihua.common.model.vos.grid.EventResourceVO;
-import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
-import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationVillageVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngPopulationExportExcelVO;
 import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO;
 import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO;
 import com.panzhihua.common.model.vos.screen.ComMngPopulationAgeVO;
@@ -44,19 +49,18 @@
 import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
 import com.panzhihua.service_community.service.ComMngPopulationService;
+import com.panzhihua.service_community.service.ComMngVillageService;
 import com.panzhihua.service_community.service.EventResourceService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -335,8 +339,19 @@
         areaPath.append(areaAddressVO.getProvince()).append(">").append(areaAddressVO.getCity()).append(">").append(areaAddressVO.getDistrict()).append(">");
         //处理实有人口信息
         for (ComMngPopulationServeExcelVO vo : list) {
-            String address = "";
-            //查询街路巷是否存在
+            if (vo.getDoorNo().contains("号")) {
+                vo.setDoorNo(vo.getDoorNo().replace("号",""));
+            }
+            if(vo.getFloor().contains("栋")){
+                vo.setFloor(vo.getFloor().replace("栋",""));
+            }
+            if(vo.getUnitNo().contains("单元")){
+                vo.setUnitNo(vo.getUnitNo().replace("单元",""));
+            }
+            if(vo.getHouseNo().contains("号")){
+                vo.setHouseNo(vo.getHouseNo().replace("号",""));
+            }
+            //查询小区街路巷是否存在
             ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
             if (comMngVillageDO == null) {
                 ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
@@ -347,15 +362,14 @@
                 continue;
             }
 
-            if (!comMngVillageDO.getHouseNum().contains("号")) {
-                comMngVillageDO.setHouseNum(comMngVillageDO.getHouseNum() + "号");
-            }
+            StringBuilder address = new StringBuilder();
+            address.append(areaAddressVO.getProvince()).append(areaAddressVO.getCity()).append(areaAddressVO.getDistrict())
+                    .append(streetName).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号").append(vo.getFloor()).append("栋")
+                    .append(vo.getUnitNo()).append("单元").append(vo.getHouseNo()).append("号");
 
-            address = areaAddressVO.getProvince() + areaAddressVO.getCity()
-                    + areaAddressVO.getDistrict() + streetName + comMngVillageDO.getAlley() + comMngVillageDO.getHouseNum()
-                    + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
-            vo.setAddress(address);
+            vo.setAddress(address.toString());
 
+            //todo 后期优化改为批量
             //先判断房屋是否存在
             ComMngPopulationHouseDO populationHouseDO = comMngPopulationHouseDAO.selectOne(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                     .eq(ComMngPopulationHouseDO::getCommunityId, communityId).eq(ComMngPopulationHouseDO::getVillageId, comMngVillageDO.getVillageId())
@@ -363,7 +377,8 @@
                     .eq(ComMngPopulationHouseDO::getHouseNo, vo.getHouseNo()));
             if (populationHouseDO == null) {
                 //房屋信息不存在建立房屋信息
-                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, address, areaPath, comActDO.getName());
+                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, comActDO.getName());
+                vo.setHouseId(populationHouseDO.getId());
             }
 
             if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
@@ -380,7 +395,7 @@
             } else {
                 //如果存在人口信息,且是自用房,则更新人口默认的房屋信息
                 if (vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) {
-                    populationDO = updatePopulationHouseUse(vo, populationDO);
+                    populationDO = updatePopulationDO(vo, populationDO);
                 }
             }
 
@@ -413,19 +428,20 @@
         return R.ok();
     }
 
-    private ComMngPopulationDO updatePopulationHouseUse(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO) throws Exception {
-        populationDO.setRoad(vo.getRoad());
-        populationDO.setDoorNo(vo.getDoorNo());
-        populationDO.setFloor(vo.getFloor());
-        populationDO.setUnitNo(vo.getUnitNo());
-        populationDO.setHouseNo(vo.getHouseNo());
-        populationDO.setCardNo(vo.getCardNo());
-        populationDO.setCardNoStr(vo.getCardNo());
+    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO) throws Exception {
+        UpdateWrapper<ComMngPopulationDO> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id",populationDO.getId());
+        ComMngPopulationDO update = new ComMngPopulationDO();
+        update.setRoad(vo.getRoad());
+        update.setDoorNo(vo.getDoorNo());
+        update.setFloor(vo.getFloor());
+        update.setUnitNo(vo.getUnitNo());
+        update.setHouseNo(vo.getHouseNo());
+        update.setHouseId(vo.getHouseId());
         if (StringUtils.isNotEmpty(populationDO.getPhone())) {
-//            populationDO.setPhone(AESUtil.encrypt128(populationDO.getPhone(), aesKey));
-            populationDO.setPhone(populationDO.getPhone());
+            update.setPhone(populationDO.getPhone());
         }
-        this.baseMapper.updateById(populationDO);
+        this.baseMapper.update(update,updateWrapper);
         return populationDO;
     }
 
@@ -439,14 +455,21 @@
         populationDO.setStreetId(comActDO.getStreetId());
         populationDO.setLabel(Joiner.on(",").join(userTag));
         populationDO.setVillageName(comMngVillageDO.getGroupAt());
-        populationDO.setCardNo(vo.getCardNo());
         populationDO.setCardNoStr(vo.getCardNo());
         populationDO.setUpdateAt(new Date());
+        //新增的时候默认绑定房屋id
+//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
+//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
+//            populationDO.setHouseId(vo.getHouseId());
+//        }else{
+//            populationDO.setHouseId(null);
+//        }
+
         this.baseMapper.insert(populationDO);
         return populationDO;
     }
 
-    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId, String address, StringBuilder areaPath, String actName) {
+    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
         //查询该房屋未建立,执行建立房屋信息
         ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
         populationHouseDO.setId(Snowflake.getId());
@@ -454,17 +477,17 @@
         populationHouseDO.setVillageId(comMngVillageDO.getVillageId());
         populationHouseDO.setAlley(vo.getRoad());
         populationHouseDO.setHouseNum(vo.getDoorNo());
-        populationHouseDO.setCode(vo.getDoorNo());
         populationHouseDO.setStatus(vo.getIsRent());
         populationHouseDO.setCommunityId(communityId);
         populationHouseDO.setFloor(vo.getFloor());
         populationHouseDO.setUnitNo(vo.getUnitNo());
         populationHouseDO.setHouseNo(vo.getHouseNo());
-        populationHouseDO.setAddress(address);
+        populationHouseDO.setCode(vo.getHouseNo());
+        populationHouseDO.setAddress(vo.getAddress());
         populationHouseDO.setUpdateAt(new Date());
         populationHouseDO.setConstructPurpose(vo.getBuildPurpose());
         StringBuilder housePath = new StringBuilder();
-        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(address);
+        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
         populationHouseDO.setPath(areaPath.toString() + housePath.toString());
         try {
             populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea()));
@@ -1079,6 +1102,9 @@
 
         //查询统计人口数据
         ComMngPopulationTotalVO populationTotalVO = populationDAO.getPopulationTotalByAdmin(communityId);
+        if(communityId.equals(2L)){
+            populationTotalVO.setSpecialTotal(36);
+        }
         statisticsVO.setPopulationTotalVO(populationTotalVO);
 
         return R.ok(statisticsVO);
@@ -1269,6 +1295,14 @@
         //统计学历
         setCultureGroup(comActPopulationScreenVO, communityId);
 
+        //查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = this.baseMapper.getEventScreenGridData(communityId);
+        comActPopulationScreenVO.setGridStatisticsList(gridStatisticsList);
+
+        //查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
+        comActPopulationScreenVO.setVillageStatisticsList(villageStatisticsList);
+
         return R.ok(comActPopulationScreenVO);
     }
 
@@ -1355,11 +1389,23 @@
         comActPopulationScreenVO.setAgeGroup(ageList);
     }
 
+    /**
+     * 获取社区网格
+     *
+     * @param communityId 社区id
+     * @return 网格数据
+     */
     @Override
     public R getScreenGirds(Long communityId) {
         return R.ok(this.baseMapper.getEventScreenGridData(communityId));
     }
 
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO 请求参数
+     * @return 事件详情
+     */
     @Override
     public R getScreenEventDetail(BigScreenEventDetailDTO eventDetailDTO) {
         EventNewStatisticsVO statisticsVO = new EventNewStatisticsVO();
@@ -1442,6 +1488,12 @@
         return R.ok(statisticsVO);
     }
 
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO 请求参数
+     * @return 人口数据
+     */
     @Override
     public R pagePopulationListApp(PagePopulationListDTO populationListDTO){
         IPage<PopulationListVO> pagePopulationList = this.baseMapper.pagePopulationListApp(new Page(populationListDTO.getPageNum(),populationListDTO.getPageSize()),populationListDTO);
@@ -1453,6 +1505,12 @@
         return R.ok(pagePopulationList);
     }
 
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId  人口id
+     * @return  人口详情
+     */
     @Override
     public R getPopulationDetailApp(Long populationId){
         PopulationDetailVO detail = this.baseMapper.getPopulationDetailApp(populationId);
@@ -1468,17 +1526,196 @@
         return R.ok(detail);
     }
 
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R getPopulationRepairByApp(){
         List<ComMngPopulationDO> populationDOList = this.baseMapper.selectList(new QueryWrapper<ComMngPopulationDO>());
         if(!populationDOList.isEmpty()){
             populationDOList.forEach(population -> {
+                try {
+                    population.setCardNo(AESUtil.encrypt128(population.getCardNoStr(),aesKey));
+                }catch (Exception e){
+
+                }
                 this.baseMapper.updateById(population);
             });
         }
         return R.ok();
     }
 
+    /**
+     * 综治后台-居民列表
+     * @param populationListDTO 请求参数
+     * @return  居民列表
+     */
+    @Override
+    public R getGridPopulationAdminList(ComMngPopulationListDTO populationListDTO){
+        IPage<ComMngPopulationListVO> populationListIPage = this.baseMapper.getGridPopulationAdminList(new Page(populationListDTO.getPageNum(),populationListDTO.getPageSize()),populationListDTO);
+        if(!populationListIPage.getRecords().isEmpty()){
+            populationListIPage.getRecords().forEach(population -> {
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                    population.setAge(age);
+                }catch (Exception e){
+                    log.error("当前人口身份证获取年龄失败,实有人口id:" + population.getId());
+                }
+                //查询此用户在当前房屋是否是户主
+                Integer relation = this.baseMapper.getPopulationRelationByHouseId(population.getHouseId(),population.getId());
+                if(relation == null || relation != 1){
+                    population.setIsRelation(2);
+                }else{
+                    population.setIsRelation(1);
+                }
+            });
+        }
+        return R.ok(populationListIPage);
+    }
+
+    /**
+     * 综治后台-删除居民
+     * @param ids   居民id集合
+     * @return  删除结果
+     */
+    @Override
+    public R delGridPopulationAdmin(List<Long> ids){
+        Integer count = this.baseMapper.getPopulationVisitingCount(ids);
+        if(count > 0){
+            return R.ok("您选择的数据中存在被引用的,无法删除");
+        }
+        this.baseMapper.deleteBatchIds(ids);
+        return R.ok();
+    }
+
+    @Override
+    public R binding() {
+        QueryWrapper<ComMngPopulationDO> query = new QueryWrapper<>();
+        query.isNull("house_id");
+        List<ComMngPopulationDO> list = baseMapper.selectList(query);
+        list.forEach(e->{
+            QueryWrapper<ComMngPopulationHouseDO> houseQuery = new QueryWrapper<>();
+            houseQuery.lambda().eq(ComMngPopulationHouseDO::getCommunityId,e.getActId())
+                    .eq(ComMngPopulationHouseDO::getAlley,e.getRoad())
+                    .eq(ComMngPopulationHouseDO::getFloor,e.getFloor())
+                    .eq(ComMngPopulationHouseDO::getUnitNo,e.getUnitNo())
+                    .eq(ComMngPopulationHouseDO::getHouseNo,e.getHouseNo());
+            List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(houseQuery);
+            if(!CollectionUtils.isEmpty(houseList)){
+                UpdateWrapper<ComMngPopulationDO> updateWrapper = new UpdateWrapper();
+                updateWrapper.eq("id",e.getId());
+                ComMngPopulationDO populationDO = new ComMngPopulationDO();
+                populationDO.setHouseId(houseList.get(0).getId());
+                baseMapper.update(populationDO,updateWrapper);
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * 查询平台人口列表
+     * @param populationDTO 请求参数
+     * @return  人口列表
+     */
+    @Override
+    public R getBuildingHousePopulationList(PageComMngPopulationDTO populationDTO){
+
+        IPage<EventSpecialPopulationVO> populationVOIPage = this.baseMapper.getBuildingHousePopulationList(new Page(populationDTO.getPageNum(),populationDTO.getPageSize()),populationDTO);
+        if(!populationVOIPage.getRecords().isEmpty()){
+            populationVOIPage.getRecords().forEach(population -> {
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getIdCard());
+                    population.setAge(age);
+                }catch (Exception e){
+                    log.error("人员身份证转换年龄失败,人员id:" + population.getId());
+                }
+            });
+        }
+        return R.ok(populationVOIPage);
+    }
+
+    /**
+     * 综治后台-居民标签栏统计
+     * @return  居民统计
+     */
+    @Override
+    public R getGridPopulationStatistics(Long communityId){
+        return R.ok(this.baseMapper.getGridPopulationStatistics(communityId));
+    }
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * @param populationExportDTO   请求参数
+     * @return  导出结果
+     */
+    @Override
+    public R getGridPopulationExport(ComMngPopulationExportDTO populationExportDTO){
+        //结果集
+        List<ComMngPopulationExportExcelVO> resultPopulationList = new ArrayList<>();
+        //查询人口信息
+        List<ComMngPopulationListVO> populationListVOList = this.baseMapper.getGridPopulationAdminLists(populationExportDTO);
+        if(!populationListVOList.isEmpty()){
+            populationListVOList.forEach(population -> {
+                ComMngPopulationExportExcelVO populationExportExcelVO = new ComMngPopulationExportExcelVO();
+                BeanUtils.copyProperties(population,populationExportExcelVO);
+                if(population.getSex() != null){
+                    populationExportExcelVO.setSex(PopulSexEnum.getCnDescByName(population.getSex()));
+                }
+                if(population.getPoliticalOutlook() != null){
+                    populationExportExcelVO.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
+                }
+                if(population.getIsHouse() != null){
+                    if(!population.getIsHouse().equals(0L)){
+                        populationExportExcelVO.setIsHouse("是");
+                    }else{
+                        populationExportExcelVO.setIsHouse("否");
+                    }
+                }
+                if(population.getEventStatus() != null){
+                    populationExportExcelVO.setEventStatus(EventStatusEnum.getCnDescByName(population.getEventStatus()));
+                }
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                    populationExportExcelVO.setAge(age);
+                }catch (Exception e){
+                    log.error("当前人口身份证获取年龄失败,实有人口id:" + population.getId());
+                }
+                resultPopulationList.add(populationExportExcelVO);
+            });
+        }
+        return R.ok(resultPopulationList);
+    }
+
+    /**
+     * 综治后台-居民管理小区列表
+     * @param name  小区名字
+     * @return  小区列表
+     */
+    @Override
+    public R relationVillage(String name){
+        List<ComMngPopulationVillageVO> populationVillageList = new ArrayList<>();
+        QueryWrapper<ComMngVillageDO> villageQuery = new QueryWrapper<>();
+        if(StringUtils.isNotEmpty(name)){
+            villageQuery.lambda().like(ComMngVillageDO::getName,name);
+        }
+
+        List<ComMngVillageDO> villageList = comActVillageDAO.selectList(villageQuery);
+        if(!villageList.isEmpty()){
+            villageList.forEach(village -> {
+                ComMngPopulationVillageVO populationVillageVO = new ComMngPopulationVillageVO();
+                BeanUtils.copyProperties(village,populationVillageVO);
+                populationVillageList.add(populationVillageVO);
+            });
+        }
+        return R.ok(populationVillageList);
+    }
+
+    @Override
+    public R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO){
+        return R.ok(this.baseMapper.getVillagePopulationAdmin(new Page(villagePopulationDTO.getPageNum(),villagePopulationDTO.getPageSize()),villagePopulationDTO));
+    }
 
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
index 6523f98..97b4252 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
@@ -8,9 +8,16 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
 import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
 import com.panzhihua.common.utlis.Snowflake;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComActDAO;
@@ -238,4 +245,68 @@
     public R getVillage(Long villageId){
         return R.ok(this.baseMapper.getVillageById(villageId));
     }
+
+    /**
+     * 综治app-小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @Override
+    public R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO){
+        return R.ok(this.baseMapper.getGridVillageList(new Page(villageListAppDTO.getPageNum(),villageListAppDTO.getPageSize()),villageListAppDTO));
+    }
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     * @param villageId 小区id
+     * @return  楼栋列表
+     */
+    @Override
+    public R getGridVillageBuildingList(Long villageId){
+
+        List<ComMngVillageBuildingVO> villageBuildingList = this.baseMapper.getGridVillageBuildingList(villageId);
+        if(!villageBuildingList.isEmpty()){
+            villageBuildingList.forEach(villageBuilding -> {
+                if(!villageBuilding.getFloor().contains("栋")){
+                    villageBuilding.setFloorString(villageBuilding.getFloor() + "栋");
+                }else{
+                    villageBuilding.setFloorString(villageBuilding.getFloor());
+                }
+                if(!villageBuilding.getUnitNo().contains("单元")){
+                    villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元");
+                }else{
+                    villageBuilding.setUnitNoString(villageBuilding.getUnitNo());
+                }
+            });
+        }
+        return R.ok(villageBuildingList);
+    }
+
+    @Override
+    public R delGridVillage(List<Long> villageIds){
+
+        if(villageIds.isEmpty()){
+            return R.fail("请选择需要删除的小区");
+        }
+        //查询需要删除的小区下面是否绑定的有房屋
+        Integer count = this.baseMapper.getVillageHouseCount(villageIds);
+        if(count > 0){
+            return R.fail("您选择的小区已被引用,无法删除");
+        }
+        if(this.baseMapper.deleteBatchIds(villageIds) > 0){
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getGridVillageStatistics(){
+        return R.ok(this.baseMapper.getGridVillageStatistics());
+    }
+
+    @Override
+    public R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO){
+        return R.ok(this.baseMapper.getGridVillageLists(villageListAppDTO));
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
index 1b5c67b..dd8a675 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
@@ -21,7 +21,6 @@
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -64,7 +63,7 @@
             BeanUtils.copyProperties(comStreetDO1, comStreetVO);
             return R.ok(comStreetVO);
         }
-        return R.fail(500,"");
+        return R.fail(500, "");
     }
 
 
@@ -126,10 +125,10 @@
         Long pageNum = pageComStreetDTO.getPageNum();
         Long pageSize = pageComStreetDTO.getPageSize();
         if (null == pageNum || 0 == pageNum) {
-            pageNum = 1l;
+            pageNum = 1L;
         }
         if (null == pageSize || 0 == pageSize) {
-            pageSize = 10l;
+            pageSize = 10L;
         }
         page.setSize(pageSize);
         page.setCurrent(pageNum);
@@ -163,6 +162,5 @@
         }
         return R.fail();
     }
-
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
index 1ac8cdb..c121e20 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
@@ -313,10 +313,10 @@
             DateTime endDay = DateUtil.endOfMonth(date);
 
             int m = DateUtil.month(endDay);
-//            if(m == 0){
-//                m = 12;
-//            }
-//            m--;
+            m++;
+            if(m == 12){
+                m = 0;
+            }
             int day = DateUtil.dayOfMonth(endDay);
             int half = day/2;
             String month = DateUtil.format(date,moth_format_str);
@@ -334,6 +334,5 @@
         return dateList;
 
     }
-
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java
index 71a6428..97f9880 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java
@@ -6,6 +6,7 @@
 import com.panzhihua.common.model.dtos.grid.EventGridMemberEditDTO;
 import com.panzhihua.common.model.dtos.grid.EventGridMemberRelationDeleteDTO;
 import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
@@ -31,53 +32,19 @@
     private EventGridMemberRelationService eventGridMemberRelationService;
 
     /**
-     * 新增网格和网格员的关联关系
-     * @param eventGridMemberAddDTO
-     * @return 新增结果
+     * 查询市平台网格员列表
+     * @return  市平台网格员列表
      */
-    @PostMapping("/add")
-    R add(@RequestBody EventGridMemberAddDTO eventGridMemberAddDTO){
-        return eventGridMemberRelationService.add(eventGridMemberAddDTO);
-    };
+    @GetMapping("/lc/list")
+    public R lcList(){
+        return eventGridMemberRelationService.lcList();
+    }
 
-    /**
-     * 修改网格和网格员的关联关系
-     * @param eventGridMemberEditDTO
-     * @return 维护结果
-     */
-    @PostMapping("/edit")
-    R edit(@RequestBody EventGridMemberEditDTO eventGridMemberEditDTO){
-        return eventGridMemberRelationService.edit(eventGridMemberEditDTO);
-    };
+    @PostMapping("/cascade/list")
+    public R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO){
+        return eventGridMemberRelationService.gridMemberCascadeList(memberCascadeAddDTO);
+    }
 
-    /**
-     * 分页查找网格和网格员的关联关系
-     * @param pageEventGridMemberRelationDTO
-     * @return 维护结果
-     */
-    @PostMapping("/page")
-    R<IPage<EventGridMemberRelationVO>> query(@RequestBody PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO){
-        return eventGridMemberRelationService.query(pageEventGridMemberRelationDTO);
-    };
 
-    /**
-     * 删除网格和网格员的关联关系
-     * @param EventGridMemberRelationDeleteDTO
-     * @return 平台用户信息
-     */
-    @PostMapping("/delete")
-    R delete(@RequestBody EventGridMemberRelationDeleteDTO EventGridMemberRelationDeleteDTO){
-        return eventGridMemberRelationService.delete(EventGridMemberRelationDeleteDTO);
-    };
-
-    /**
-     * 查询网格和网格员的关联关系详细信息
-     * @param id 网格和网格员的关联关系 id
-     * @return 查找结果
-     */
-    @PostMapping("/{id}")
-    R<EventGridMemberRelationDetailsVO> eventGridMemberRelationDetails(@PathVariable("id") Long id){
-        return eventGridMemberRelationService.eventGridMemberRelationDetails(id);
-    };
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
index 613ecfc..4dcd2a2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
@@ -2,12 +2,14 @@
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.IdDTO;
 import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
 import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
 import com.panzhihua.service_grid.service.EventVisitingTasksService;
@@ -74,13 +76,13 @@
     }
     /**
      * 删除走访任务
-     * @param ids
+     * @param idDTO
      * @param communityId
      * @return
      */
     @PostMapping("/delete")
-    R delete(@RequestParam("ids") String ids, @RequestParam("communityId") Long communityId){
-        return eventVisitingTasksService.delete(ids,communityId);
+    R delete(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId){
+        return eventVisitingTasksService.delete(idDTO,communityId);
     }
 
     /**
@@ -96,14 +98,14 @@
 
     /**
      * 新增走访任务
-     * @param ids
+     * @param idDTO
      * @param communityId
      * @param userId
      * @return
      */
     @PostMapping("/add")
-    R add(@RequestParam("ids") String ids,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId) throws Exception {
-        return eventVisitingTasksService.add(ids,communityId,userId);
+    R add(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId) throws Exception {
+        return eventVisitingTasksService.add(idDTO,communityId,userId);
     }
 
     /**
@@ -129,6 +131,18 @@
     }
 
     /**
+     * app走访任务列表
+     * @param query
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/appTaskList")
+    R appTaskList(@RequestBody EventTasksQuery query) throws Exception {
+
+        return eventVisitingTasksService.appTaskList(query);
+    }
+
+    /**
      * 导出
      * @param query
      * @return
@@ -150,22 +164,22 @@
 
     /**
      * 撤销走访
-     * @param id
+     * @param idDTO
      * @return
      */
-    @PostMapping("/cancel/{id}")
-    R cancel(@PathVariable("id") Long id){
-        return eventVisitingTasksService.cancel(id);
+    @PostMapping("/cancel")
+    R cancel(@RequestBody IdDTO idDTO){
+        return eventVisitingTasksService.cancel(idDTO);
     }
 
     /**
      * 恢复
-     * @param id
+     * @param idDTO
      * @return
      */
-    @PostMapping("/reset/{id}")
-    R reset(@PathVariable("id") Long id){
-        return eventVisitingTasksService.reset(id);
+    @PostMapping("/reset")
+    R reset(@RequestBody IdDTO idDTO){
+        return eventVisitingTasksService.reset(idDTO);
     }
 
     /**
@@ -187,4 +201,30 @@
     R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO){
         return eventVisitingTasksService.complete(taskCompleteDTO);
     }
+
+
+    /**
+     * description 获取所有未上传到浪潮平台的走访事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getUnUploadVisitingTask")
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask() {
+        return eventVisitingTasksService.getUnUploadVisitingTask();
+    }
+
+    /**
+     * description 更新走访任务上传是否成功标识
+     *
+     * @param id 事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/updateLcUploadFlagVisitingTask")
+    Boolean updateLcUploadFlagVisitingTask(@RequestParam("id") Long id) {
+        return eventVisitingTasksService.updateLcUploadFlagVisitingTask(id);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java
index 0b4f68c..02c9b01 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java
@@ -1,24 +1,21 @@
 package com.panzhihua.service_grid.api;
 
 
-import com.panzhihua.common.model.dtos.grid.*;
-import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
-import com.panzhihua.service_grid.service.EventGridDataService;
 import com.panzhihua.service_grid.service.LcCompareCodeService;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
- *
- * @author cedoo email:cedoo(a)qq.com
+ * @author manailin
  * @version 1.0
- * @since 1.0
  * @date 2021-05-26
- * */
+ * @since 1.0
+ */
 @Slf4j
 @RestController
 @RequestMapping("/lc_compare")
@@ -30,26 +27,26 @@
     /**
      * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
      *
-     * @param  id 本地网格ID
+     * @param id 本地网格ID
      * @return String 浪潮市平台对应的ID
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("/{id}")
-    String getLcGridIdByLocal(@PathVariable("id") Long id){
+    String getLcGridIdByLocal(@PathVariable("id") Long id) {
         return lcCompareCodeService.getLcGridIdByLocal(id);
     }
 
     /**
      * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
      *
-     * @param  localUserId 本地网格员ID
+     * @param localUserId 本地网格员ID
      * @return String 浪潮市平台对应的ID
      * @author manailin
      * @date 2021/6/10 17:00
      */
     @GetMapping("/getLcUserId")
-    String getLcUserIdByLocalUserId(String localUserId){
+    String getLcUserIdByLocalUserId(String localUserId) {
         return lcCompareCodeService.getLcUserIdByLocal(localUserId);
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java
index 1fd95b4..42988ae 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java
@@ -4,8 +4,6 @@
 import com.panzhihua.service_grid.model.dos.ApplicationAppRelease;
 import org.apache.ibatis.annotations.Param;
 
-import java.math.BigInteger;
-
 /**
  * 应用APP版本控制表Mapper
  * ClassName  ApplicationAppReleaseMapper
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
index 44cec01..3c12407 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
@@ -8,6 +8,8 @@
 import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
 import com.panzhihua.common.model.vos.grid.EventMapGridVO;
 import com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO;
 import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -48,4 +50,12 @@
      */
     IPage<EventStatisticsMemberAdminVO> gridMemberStatistics(Page page, @Param("statisticsAdminDTO") MemberStatisticsAdminDTO statisticsAdminDTO);
 
+    /**
+     * 查询市平台网格员列表
+     * @return  市平台网格员列表
+     */
+    List<GridMemberLcListVO> getGridMemberLcList();
+
+    List<GridMemberCascadeVO> getGridMemberCascade(@Param("type") Integer type,@Param("id") Long id);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
index 0189631..d892d9d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
@@ -5,6 +5,7 @@
 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.EventResourceDTO;
 import com.panzhihua.common.model.dtos.grid.PageEventResourceDTO;
 import com.panzhihua.service_grid.model.dos.EventResourceDO;
 import com.panzhihua.common.model.vos.grid.EventResourceVO;
@@ -31,5 +32,5 @@
          */
         IPage<EventResourceVO> findByPage(Page page, @Param("pageEventResourceDTO")PageEventResourceDTO pageEventResourceDTO);
 
-        List<String> findListByRefId(@Param("id")Long id,@Param("classification")Integer classification,@Param("type")Integer type);
+        List<EventResourceDTO> findListByRefId(@Param("id")Long id, @Param("classification")Integer classification, @Param("type")Integer type);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
index e7e79e8..4869107 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
@@ -8,7 +8,7 @@
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
 import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
-import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.vos.visit.EventVisitListVO;
 import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
@@ -42,6 +42,14 @@
      * @return
      */
     IPage<EventVisitingTasksVO> findListByPage(Page page, @Param("query")EventTasksQuery query);
+
+    /**
+     * appc查看走访任务
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EventVisitingTasksVO> appFindListByPage(Page page, @Param("query")EventTasksQuery query);
 
     /**
      * 查询走访记录,任务
@@ -84,10 +92,10 @@
 
     /**
      * 完成走访
-     * @param taskCompleteDTO
+     * @param complete
      * @return
      */
-    Integer complete(EventVisitCompleteDTO taskCompleteDTO);
+    Integer complete(EventVisitingTasksDO complete);
 
     Integer start(EventVisitingTasksDO start);
 
@@ -95,5 +103,6 @@
 
     Map<String, Object> findUserById(Long userId);
 
-    String getLabel(Long id);
+    String getPopulationLabel(@Param("populationId") Long populationId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
index 472af43..98b536c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
@@ -1,11 +1,11 @@
 package com.panzhihua.service_grid.model.dos;
 
-import java.util.*;
 import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -20,6 +20,7 @@
  * */
 @Data
 @TableName("event_visiting_tasks")
+@EncryptDecryptClass
 public class EventVisitingTasksDO implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -64,6 +65,7 @@
     /**
      * 需走访人电话   列: visiter_tele
      */
+    @EncryptDecryptField
     private String visiterTele;
     /**
      * 需走访人居住地址   列: visiter_address
@@ -201,5 +203,17 @@
      */
     private Integer outOrLocal;
 
+    /**
+     * 备注
+     */
+    private String remark;
 
+    /**
+     * 网格ID
+     */
+    private Long gridId;
+    /**
+     * 是否已经上传浪潮服务器市平台
+     */
+    private Boolean lcUpload;
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java
index 6eef90d..592f96e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
@@ -60,6 +61,14 @@
      */
     R getMapGridListByApp(Long userId);
 
+    /**
+     * 查询市平台网格员列表
+     * @return  市平台网格员列表
+     */
+    R lcList();
+
+    R gridMemberCascadeList(EventGridMemberCascadeAddDTO memberCascadeAddDTO);
+
 
 
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
index e49c1ad..68d6a5d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
@@ -2,24 +2,16 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
-import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.*;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
-import com.panzhihua.common.model.vos.IPageVO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
 import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
 import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
 
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
 import java.util.List;
 
 /**
@@ -27,13 +19,14 @@
  *
  * @author cedoo email:cedoo(a)qq.com
  * @version 1.0
- * @since 1.0
  * @date 2021-05-26
- * */
+ * @since 1.0
+ */
 public interface EventVisitingTasksService extends IService<EventVisitingTasksDO> {
 
     /**
      * 新增重点人群走访记录
+     *
      * @param eventVisitingTasksAddDTO
      * @return 新增结果
      */
@@ -41,6 +34,7 @@
 
     /**
      * 修改重点人群走访记录
+     *
      * @param eventVisitingTasksEditDTO
      * @return 维护结果
      */
@@ -48,6 +42,7 @@
 
     /**
      * 分页查找重点人群走访记录
+     *
      * @param pageEventVisitingTasksDTO
      * @return 维护结果
      */
@@ -55,6 +50,7 @@
 
     /**
      * 删除重点人群走访记录
+     *
      * @param EventVisitingTasksDeleteDTO
      * @return 平台用户信息
      */
@@ -62,6 +58,7 @@
 
     /**
      * 查询重点人群走访记录详细信息
+     *
      * @param id 重点人群走访记录 id
      * @return 查找结果
      */
@@ -70,13 +67,22 @@
 
     /**
      * 后台统计走访任务
+     *
      * @param communityId
      * @return
      */
     R count(Long communityId);
 
     /**
+     * app走访任务
+     * @param query
+     * @return
+     */
+    R appTaskList(EventTasksQuery query) throws Exception;
+
+    /**
      * 走访任务列表
+     *
      * @param query
      * @return
      */
@@ -84,14 +90,16 @@
 
     /**
      * 删除走访任务
-     * @param ids
+     *
+     * @param idDTO
      * @param communityId
      * @return
      */
-    R delete(String ids, Long communityId);
+    R delete(IdDTO idDTO, Long communityId);
 
     /**
      * 需走访人员列表
+     *
      * @param query
      * @return
      */
@@ -99,6 +107,7 @@
 
     /**
      * app查询走访记录
+     *
      * @param query
      * @return
      */
@@ -106,6 +115,7 @@
 
     /**
      * app 走访详情
+     *
      * @param id
      * @return
      */
@@ -113,40 +123,64 @@
 
     /**
      * 新增
-     * @param ids
+     *
+     * @param idDTO
      * @param communityId
      * @param userId
      * @return
      */
-    R add(String ids, Long communityId, Long userId) throws Exception;
+    R add(IdDTO idDTO, Long communityId, Long userId) throws Exception;
 
     List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) throws Exception;
 
     /**
      * 撤销
-     * @param id
+     *
+     * @param idDTO
      * @return
      */
-    R cancel(Long id);
+    R cancel(IdDTO idDTO);
 
     /**
      * 恢复
-     * @param id
+     *
+     * @param idDTO
      * @return
      */
-    R reset(Long id);
+    R reset(IdDTO idDTO);
 
     /**
      * 开始
+     *
      * @param id
      * @return
      */
-    R start(Long id,Long userId);
+    R start(Long id, Long userId);
 
     /**
      * 完成
+     *
      * @param taskCompleteDTO
      * @return
      */
     R complete(EventVisitCompleteDTO taskCompleteDTO);
+
+    /**
+     * description 获取所有未上传到浪潮平台的事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask();
+
+    /**
+     * description 更新上传是否成功标识
+     *
+     * @param id 事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    Boolean updateLcUploadFlagVisitingTask(Long id);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java
index 44903db..2370ba7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java
@@ -4,9 +4,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.service_grid.dao.*;
 import com.panzhihua.service_grid.model.dos.*;
@@ -16,7 +18,9 @@
 import org.springframework.beans.BeanUtils;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @auther lyq
@@ -116,4 +120,21 @@
         return R.ok(this.baseMapper.getMapGridListByApp(userId));
     }
 
+    /**
+     * 查询市平台网格员列表
+     * @return  市平台网格员列表
+     */
+    @Override
+    public R lcList(){
+        return R.ok(this.baseMapper.getGridMemberLcList());
+    }
+
+    @Override
+    public R gridMemberCascadeList(EventGridMemberCascadeAddDTO memberCascadeAddDTO){
+        if(memberCascadeAddDTO.getType() == null){
+            return R.fail("参数错误");
+        }
+        return R.ok(this.baseMapper.getGridMemberCascade(memberCascadeAddDTO.getType(),memberCascadeAddDTO.getSuperiorId()));
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java
index 88b1119..fdcc8e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java
@@ -36,6 +36,7 @@
      * @param eventResourceAddDTO
      * @return 新增结果
      */
+    @Override
     public R add(EventResourceAddDTO eventResourceAddDTO){
         EventResourceDO eventResourceDO = new EventResourceDO();
         BeanUtils.copyProperties(eventResourceAddDTO, eventResourceDO);
@@ -51,6 +52,7 @@
      * @param eventResourceEditDTO
      * @return 维护结果
      */
+    @Override
     public R edit(EventResourceEditDTO eventResourceEditDTO){
         EventResourceDO eventResourceDO = new EventResourceDO();
         BeanUtils.copyProperties(eventResourceEditDTO, eventResourceDO);
@@ -66,6 +68,7 @@
      * @param pageEventResourceDTO
      * @return 维护结果
      */
+    @Override
     public R<IPage<EventResourceVO>> query(PageEventResourceDTO pageEventResourceDTO){
         Page page = new Page(1,10);
         if(pageEventResourceDTO.getPageNum()!=null) {
@@ -82,6 +85,7 @@
      * @param EventResourceDeleteDTO
      * @return 平台用户信息
      */
+    @Override
     public R delete(EventResourceDeleteDTO EventResourceDeleteDTO){
         return R.fail();
     }
@@ -91,6 +95,7 @@
      * @param id 事件或者走访中关联的图片音频和视频文件 id
      * @return 查找结果
      */
+    @Override
     public R<EventResourceDetailsVO> eventResourceDetails(Long id){
         EventResourceDO eventResourceDO = eventResourceMapper.selectById(id);
         if(eventResourceDO!=null) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
index 0185796..6e96b36 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -14,7 +14,6 @@
 import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
 import com.panzhihua.common.model.dtos.grid.*;
-import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActVO;
 import com.panzhihua.common.model.vos.community.screen.event.EventListVO;
@@ -22,15 +21,14 @@
 import com.panzhihua.common.model.vos.screen.*;
 import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.utlis.DateUtils;
-import com.panzhihua.common.utlis.ExcelSelectListUtil;
 import com.panzhihua.common.utlis.LngLatUtils;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_grid.dao.*;
 import com.panzhihua.service_grid.model.dos.*;
 import com.panzhihua.service_grid.service.*;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -1737,7 +1735,11 @@
     public R getNearByGrid(PageEventGridNearbyDTO pageEventGridNearbyDTO) {
         Page page = new Page(pageEventGridNearbyDTO.getPageNum(), pageEventGridNearbyDTO.getPageSize());
         String latLng = pageEventGridNearbyDTO.getHappentLatLng();
-        if(!latLng.matches("^[\\-\\+]?(0(\\.\\d{1,10})?|([1-9](\\d)?)(\\.\\d{1,10})?|1[0-7]\\d{1}(\\.\\d{1,10})?|180\\.0{1,10}),[\\-\\+]?((0|([1-8]\\d?))(\\.\\d{1,10})?|90(\\.0{1,10})?)$")){
+//        if(!latLng.matches("^[\\-\\+]?(0(\\.\\d{1,10})?|([1-9](\\d)?)(\\.\\d{1,10})?|1[0-7]\\d{1}(\\.\\d{1,10})?|180\\.0{1,10}),[\\-\\+]?((0|([1-8]\\d?))(\\.\\d{1,10})?|90(\\.0{1,10})?)$")){
+//            return R.fail("经纬度参数错误");
+//        }
+        //经纬度匹配规则:(短(纬度)在前长(经度)在后,不要擅自修改此规则,否则出现问题后果自负)
+        if(!latLng.matches("[1-9][0-9](\\.[0-9]{1,6})?,[1-9][0-9]{2}(\\.[0-9]{1,6})?")){
             return R.fail("经纬度参数错误");
         }
         String latLngArr[] = latLng.split(",");
@@ -2195,7 +2197,12 @@
         IPage<EventSpecialPopulationVO> specialPopulationVOIPage = this.baseMapper.specialPopulationList(new Page(specialPopulationDTO.getPageNum(), specialPopulationDTO.getPageSize()), specialPopulationDTO);
         if(!specialPopulationVOIPage.getRecords().isEmpty()){
             specialPopulationVOIPage.getRecords().forEach(specialPopulation -> {
-                specialPopulation.setAge(IdcardUtil.getAgeByIdCard(specialPopulation.getIdCard()));
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(specialPopulation.getIdCard());
+                    specialPopulation.setAge(age);
+                }catch (Exception e){
+                    log.error("身份证号码转换年龄失败,人员id:" + specialPopulation.getId());
+                }
             });
         }
         return R.ok(specialPopulationVOIPage);
@@ -2207,6 +2214,7 @@
         List<EventDO> unEventList = baseMapper.selectList(
                 new QueryWrapper<EventDO>()
                         .eq("upload", false)
+                        .eq("event_process_status", 2)
         );
         unEventList.forEach(eventDO -> {
             eventDetailsVOList.add(eventDetails(eventDO.getId()).getData());
@@ -2237,14 +2245,14 @@
         if(!countMap.isEmpty()){
             workScreenVO.setResolvedNum(countMap.get("resolvedNum")== null ? 0L : Long.valueOf(countMap.get("resolvedNum").toString()));
             workScreenVO.setPendingNum(countMap.get("pendingNum")== null ? 0L : Long.valueOf(countMap.get("pendingNum").toString()));
-            workScreenVO.setPropagandaNum(countMap.get("propagandaNum")== null ? 0L : Long.valueOf(countMap.get("propagandaNum").toString()));
+            workScreenVO.setPropagandaNum(countMap.get("propagandaNum")== null ? 13L : Long.valueOf(countMap.get("propagandaNum").toString()));
             workScreenVO.setCurrentNum(countMap.get("currentNum")== null ? 0L : Long.valueOf(countMap.get("currentNum").toString()));
         }
 
         //计算处理时间消耗的时间
         DateScreenVO countAvg = this.eventMapper.countByAvgCommunityId(communityId);
         if(countAvg != null){
-            int second = (int) (countAvg.getStartTime().getTime() - countAvg.getEndTime().getTime())/1000;
+            int second = (int) (countAvg.getEndTime().getTime() - countAvg.getStartTime().getTime())/1000;
             if(second > 0){
                 second = second/workScreenVO.getResolvedNum().intValue();
                 workScreenVO.setAvgCost(second);
@@ -2286,10 +2294,10 @@
             DateTime endDay = DateUtil.endOfMonth(date);
 
             int m = DateUtil.month(endDay);
-//            if(m == 0){
-//                m = 11;
-//            }
-//            m--;
+            m++;
+            if(m == 12){
+                m = 0;
+            }
             int day = DateUtil.dayOfMonth(endDay);
             int half = day/2;
             String month = DateUtil.format(date,moth_format_str);
@@ -2309,9 +2317,10 @@
     }
 
     public static void main(String[] args) {
-        EventServiceImpl service = new EventServiceImpl();
-        List<EventWorkVO> list = service.listHalfYearByDyn();
-        System.out.println(list);
+        String content = "30,104";
+        String re = "[1-9][0-9](\\.[0-9]{1,6})?,[1-9][0-9]{2}(\\.[0-9]{1,6})?";
+
+        System.out.println(content.matches(re));
     }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
index cc7c6f1..fdc397b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -1,39 +1,46 @@
 package com.panzhihua.service_grid.service.impl;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.enums.EventTasksStatusEnum;
 import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
-import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
-import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
+import com.panzhihua.common.model.dtos.EventResourceDTO;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
 import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.query.visit.EventTasksQuery;
 import com.panzhihua.common.model.query.visit.EventVisitListQuery;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
 import com.panzhihua.common.model.vos.visit.*;
+import com.panzhihua.common.utlis.CopyUtil;
 import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_grid.dao.*;
-import com.panzhihua.service_grid.model.dos.*;
+import com.panzhihua.service_grid.dao.EventResourceMapper;
+import com.panzhihua.service_grid.dao.EventVisitingTasksMapper;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
+import com.panzhihua.service_grid.service.EventResourceService;
 import com.panzhihua.service_grid.service.EventVisitingTasksService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
 import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @auther lyq
@@ -50,10 +57,15 @@
     @Resource
     private EventResourceMapper eventResourceMapper;
 
+    @Resource
+    private EventResourceService eventResourceService;
+
     @Value("${domain.aesKey:}")
     private String aesKey;
+
     /**
      * 新增重点人群走访记录
+     *
      * @param eventVisitingTasksAddDTO
      * @return 新增结果
      */
@@ -100,6 +112,7 @@
 
     /**
      * 删除重点人群走访记录
+     *
      * @param EventVisitingTasksDeleteDTO
      * @return 平台用户信息
      */
@@ -109,6 +122,7 @@
 
     /**
      * 查询重点人群走访记录详细信息
+     *
      * @param id 重点人群走访记录 id
      * @return 查找结果
      */
@@ -144,37 +158,64 @@
             if(eventVisitingTasksVO.getNationCode() != null){
                 eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
             }
-            if(eventVisitingTasksVO.getVisiterTele() != null){
-
-            }
-            eventVisitingTasksVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksVO.getVisiterTele(), aesKey));
         }
-        page.getRecords().forEach(e->{
+        return R.ok(page);
+    }
 
-        });
+    @Override
+    public R appTaskList(EventTasksQuery query) throws Exception{
+
+        IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.appFindListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
+        for(EventVisitingTasksVO eventVisitingTasksVO:page.getRecords()){
+            if(eventVisitingTasksVO.getNationCode() != null){
+                eventVisitingTasksVO.setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
+            }
+        }
         return R.ok(page);
     }
 
     @Transactional
     @Override
-    public R delete(String ids, Long communityId) {
-        String[] idarr = ids.split(",");
+    public R delete(IdDTO idDTO, Long communityId) {
+        StringBuilder rt = new StringBuilder();
+        String[] idarr = idDTO.getId().split(",");
         for(String id:idarr){
             if(StringUtils.isEmpty(id)){
                 continue;
             }
-            EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectOne(new QueryWrapper<EventVisitingTasksDO>().eq("id",Long.valueOf(id)).eq("grid_member_community",communityId));
-            if(eventVisitingTasksDO == null){
-                throw new RuntimeException("无权限");
+            String error = toDelete(Long.valueOf(id));
+            if(!StringUtils.isEmpty(error)){
+                rt.append(rt);
             }
-            eventVisitingTasksMapper.deleteById(Long.valueOf(id));
+        }
+        if(!StringUtils.isEmpty(rt)){
+            return R.fail("部分删除失败:"+rt.toString());
         }
         return R.ok();
+    }
+
+    private String toDelete(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if(eventVisitingTasksDO == null){
+            return "["+id+"]数据不存在;";
+        }
+        if(!Objects.equals(eventVisitingTasksDO.getEventStatus(),EventTasksStatusEnum.DZF.getCode())){
+            return "["+eventVisitingTasksDO.getVisiterName()+"]状态不可删除;";
+        }
+        eventVisitingTasksMapper.deleteById(Long.valueOf(id));
+        return null;
     }
 
     @Override
     public R visitorList(EventVisitListQuery query) {
         IPage<EventVisitListVO> page = eventVisitingTasksMapper.visitorList(new Page(query.getPageNum(),query.getPageSize()),query);
+        page.getRecords().stream().forEach(e->{
+            List<EventVisitingTasksDO> list = eventVisitingTasksMapper.selectList(new QueryWrapper<EventVisitingTasksDO>().eq("visiter_id",e.getId()).orderByDesc("id").last("limit 0,1"));
+            if(!CollectionUtils.isEmpty(list)){
+                e.setCreateAt(list.get(0).getCreateAt());
+                e.setEventStatus(list.get(0).getEventStatus());
+            }
+        });
         return R.ok(page);
     }
 
@@ -190,8 +231,17 @@
         if(eventVisitingTasksDO!=null) {
             EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
             BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
-            eventVisitingTasksDetailsVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
+            JSONObject jsonObject = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
             eventVisitingTasksDetailsVO.setTableContentJson(JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson()));
+            if(jsonObject != null && jsonObject.get("check") != null){
+                eventVisitingTasksDetailsVO.setOption(jsonObject.get("check").toString());
+            }
+
+            //查询资源文件
+            eventVisitingTasksDetailsVO.setImgList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,1));
+            eventVisitingTasksDetailsVO.setVosList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,2));
+            eventVisitingTasksDetailsVO.setVideoList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,3));
+
             return R.ok(eventVisitingTasksDetailsVO);
         }
         return R.fail();
@@ -199,19 +249,27 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public R add(String ids, Long communityId, Long userId) throws Exception {
-        Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
-        if(CollectionUtils.isEmpty(map)){
-            return R.fail("网格员不存在");
-        }
-        String[] id = ids.split(",");
+    public R add(IdDTO idDTO, Long communityId, Long userId) throws Exception {
+
+//        Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
+//        if(CollectionUtils.isEmpty(map)){
+//            return R.fail("网格员不存在");
+//        }
+
+        StringBuilder rt = new StringBuilder();
+        String[] id = idDTO.getId().split(",");
         for(String idstr:id){
             if(StringUtils.isEmpty(idstr)){
                 continue;
             }
-            addVisitingTask(Long.valueOf(idstr),map,communityId,userId);
+            String error = addVisitingTask(Long.valueOf(idstr),communityId,userId);
+            if(!StringUtils.isEmpty(error)){
+                rt.append(error);
+            }
         }
-
+        if(!StringUtils.isEmpty(rt)){
+            return R.fail("部分新增失败"+rt.toString());
+        }
         return R.ok();
     }
 
@@ -221,17 +279,16 @@
         return page.getRecords();
     }
 
+    private String addVisitingTask(Long id, Long communityId,Long userId) throws Exception{
 
-
-    private void addVisitingTask(Long id, Map<String, Object> gridMap,Long communityId,Long userId) throws Exception{
+        Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id);
+        if(CollectionUtils.isEmpty(map)){
+            return "被访问人ID["+id+"]不存在;";
+        }
 
         Integer count = eventVisitingTasksMapper.countNoneComplete(id);
         if(count > 0){
-            return;
-        }
-        Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id);
-        if(CollectionUtils.isEmpty(map)){
-            return ;
+            return "被访问人["+map.get("name")+"]只能同时存在一条待走访任务;";
         }
         EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
 //        visitingTasksDO.setGridMemberStreet(Long.valueOf(gridMap.get("street_id").toString()));
@@ -242,16 +299,14 @@
         visitingTasksDO.setVisiterId(Long.valueOf(map.get("id").toString()));
         visitingTasksDO.setVisiterName(map.get("name").toString());
         visitingTasksDO.setVisiterSex(Integer.valueOf(map.get("sex").toString()));
-        if(map.get("phone") != null){
-            visitingTasksDO.setVisiterTele(AESUtil.decrypt128(map.get("phone").toString(),aesKey));
-        }
+        visitingTasksDO.setVisiterTele(map.get("phone") == null ?null:map.get("phone").toString());
         StringBuilder sb = new StringBuilder();
         sb.append(map.get("address")).append(map.get("road")).append(map.get("door_no")).append(map.get("floor")).append("栋").append(map.get("unit_no")).append("单元").append(map.get("house_no")).append("号");
         visitingTasksDO.setVisiterAddress(sb.toString());
         visitingTasksDO.setVisiterType(0);
         visitingTasksDO.setActOpara(0);
         if(map.get("lat") != null && map.get("lng") != null){
-            visitingTasksDO.setHappentLatLng(map.get("lat")+"-"+map.get("lng"));
+            visitingTasksDO.setHappentLatLng(map.get("lat")+","+map.get("lng"));
         }
         visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
         visitingTasksDO.setReporting(0);
@@ -271,6 +326,7 @@
         }
 
         eventVisitingTasksMapper.insert(visitingTasksDO);
+        return null;
     }
 
     private List<String> getOption(String label) {
@@ -304,13 +360,13 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public R cancel(Long id) {
+    public R cancel(IdDTO idDTO) {
 
-        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(Long.valueOf(idDTO.getId()));
         if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
             return R.fail("当前状态不可撤销");
         }
-        int rt = eventVisitingTasksMapper.cancel(id,EventTasksStatusEnum.YCX.getCode());
+        int rt = eventVisitingTasksMapper.cancel(eventVisitingTasksDO.getId(),EventTasksStatusEnum.YCX.getCode());
         if(rt > 0){
             return R.ok();
         }
@@ -319,13 +375,13 @@
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public R reset(Long id) {
+    public R reset(IdDTO idDTO) {
 
-        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(Long.valueOf(idDTO.getId()));
         if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.YCX.getCode()){
             return R.fail("当前状态不可恢复");
         }
-        int rt = eventVisitingTasksMapper.updateEventStatus(id,EventTasksStatusEnum.DZF.getCode());
+        int rt = eventVisitingTasksMapper.updateEventStatus(eventVisitingTasksDO.getId(),EventTasksStatusEnum.DZF.getCode());
         if(rt > 0){
             return R.ok();
         }
@@ -359,50 +415,138 @@
     @Override
     public R complete(EventVisitCompleteDTO taskCompleteDTO) {
         EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(taskCompleteDTO.getId());
-        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.JXZ.getCode()){
+        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
             return R.fail("当前状态不可完成走访");
         }
-        if(taskCompleteDTO.getException().intValue() == 0){
-            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode());
-        }else{
-            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.YC.getCode());
+
+        //查询当前人员是否是(精神障碍,吸毒,刑满释放,社区矫正),如果是这四种状态,option参数为必填参数
+        String label = this.baseMapper.getPopulationLabel(eventVisitingTasksDO.getVisiterId());
+        if(StringUtils.isNotEmpty(label)){
+            if(label.contains("精神障碍") || label.contains("吸毒") || label.contains("刑满释放") || label.contains("社区矫正")){
+                if(StringUtils.isNotEmpty(taskCompleteDTO.getOption())){
+                    return R.fail("请选择异常状态");
+                }
+            }
         }
 
-        JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
-        json.put("check",taskCompleteDTO.getOption());
-        taskCompleteDTO.setOption(json.toJSONString());
+        EventVisitingTasksDO complete = new EventVisitingTasksDO();
+        BeanUtils.copyProperties(taskCompleteDTO,complete);
+        if(taskCompleteDTO.getException() == 0){
+            complete.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode());
+        }else{
+            complete.setEventStatus(EventTasksStatusEnum.YC.getCode());
+        }
+        complete.setSubmitDate(DateUtil.parse(taskCompleteDTO.getSubmitDate(), DatePattern.NORM_DATETIME_FORMAT));
+        if(StringUtils.isNotEmpty(eventVisitingTasksDO.getTableContentJson())){
+            JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
+            if(StringUtils.isNotEmpty(taskCompleteDTO.getOption())){
+                json.put("check",taskCompleteDTO.getOption());
+            }
+            complete.setTableContentJson(json.toJSONString());
+        }
 
-        if(!CollectionUtils.isEmpty(taskCompleteDTO.getImgList())){
+        if(!StringUtils.isEmpty(taskCompleteDTO.getImgList())){
             taskCompleteDTO.getImgList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,1,e);
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,1,e);
             });
         }
         if(!CollectionUtils.isEmpty(taskCompleteDTO.getVosList())){
             taskCompleteDTO.getVosList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,2,e);
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,2,e);
             });
         }
         if(!CollectionUtils.isEmpty(taskCompleteDTO.getVideoList())){
-            taskCompleteDTO.getVosList().forEach(e->{
-                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,3,e);
+            taskCompleteDTO.getVideoList().forEach(e->{
+                createResource(eventVisitingTasksDO.getId(),taskCompleteDTO.getUserId(),2,3,e);
             });
         }
 
-        int rt = eventVisitingTasksMapper.complete(taskCompleteDTO);
+        Map<String,Object> map = eventVisitingTasksMapper.findUserById(taskCompleteDTO.getUserId());
+        complete.setGridMemberStreet(Long.valueOf(map.get("street_id").toString()));
+        complete.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString()));
+        complete.setGridMember(Long.valueOf(map.get("user_id").toString()));
+        complete.setGridMemberName(map.get("name").toString());
+        complete.setGridMenberTele(map.get("phone") ==null?"":map.get("phone").toString());
+
+        int rt = eventVisitingTasksMapper.complete(complete);
         if(rt > 0){
             return R.ok();
         }
         return R.fail();
     }
 
-    private void createResource(Long id, Long dellUserId, int classification, int type,String url) {
+
+    private void createResource(Long id, Long dellUserId, int classification, int type, EventResourceDTO resourceDTO) {
         EventResourceDO eventResourceDO = new EventResourceDO();
         eventResourceDO.setRefId(id);
         eventResourceDO.setClassification(classification);
         eventResourceDO.setType(type);
         eventResourceDO.setCreateBy(dellUserId);
-        eventResourceDO.setUrl(url);
+        eventResourceDO.setUrl(resourceDTO.getUrl());
+        eventResourceDO.setResourceTime(resourceDTO.getResourceTime());
         eventResourceMapper.insert(eventResourceDO);
     }
 
+    @Override
+    public List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask() {
+        List<LcEventVisitingTasksListDTO> lcEventVisitingTasksList =new ArrayList<>();
+        List<EventVisitingTasksDO> eventVisitingTasksList = baseMapper.selectList(
+                new QueryWrapper<EventVisitingTasksDO>()
+                        .eq("lc_upload", false)
+                        .eq("event_status",2)
+        );
+        lcEventVisitingTasksList= CopyUtil.beanCopyList(eventVisitingTasksList,LcEventVisitingTasksListDTO.class);
+        lcEventVisitingTasksList.forEach(visitingTasks -> {
+            addVisitingTasksFile(visitingTasks);
+        });
+        return lcEventVisitingTasksList;
+    }
+
+    private LcEventVisitingTasksListDTO addVisitingTasksFile(LcEventVisitingTasksListDTO visitingTasks) {
+        //查询事件关联附件
+        List<EventResourceDO> eventResourceDOList =
+                eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 2)
+                        .eq(EventResourceDO::getRefId, visitingTasks.getId())
+                );
+        List<EventResourceVO> picList = new ArrayList<>();
+        List<EventResourceVO> audioList = new ArrayList<>();
+        List<EventResourceVO> videoList = new ArrayList<>();
+        eventResourceDOList.forEach(eventResourceDO -> {
+            switch (eventResourceDO.getType()) {
+                case 1:
+                    EventResourceVO picEventResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                    picList.add(picEventResourceVO);
+                    break;
+                case 2:
+                    EventResourceVO audioResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                    audioList.add(audioResourceVO);
+                    break;
+                case 3:
+                    EventResourceVO videoResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                    videoList.add(videoResourceVO);
+                    break;
+            }
+        });
+        visitingTasks.setAudios(audioList);
+        visitingTasks.setPics(picList);
+        visitingTasks.setVideos(videoList);
+        return visitingTasks;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateLcUploadFlagVisitingTask(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = baseMapper.selectById(id);
+        eventVisitingTasksDO.setLcUpload(true);
+        int flag = baseMapper.updateById(eventVisitingTasksDO);
+        if (flag > 0) {
+            return true;
+        }
+        return false;
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java
index e2cfd14..0939398 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.service_grid.dao.LcCompareCodeMapper;
 import com.panzhihua.service_grid.dao.LcCompareMemberCodeMapper;
 import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
@@ -24,13 +23,13 @@
 @Service
 public class LcCompareCodeServiceImpl extends ServiceImpl<LcCompareCodeMapper, LcCompareCodeDO> implements LcCompareCodeService {
 
-   @Resource
-   private LcCompareMemberCodeMapper compareMemberCodeMapper;
+    @Resource
+    private LcCompareMemberCodeMapper compareMemberCodeMapper;
 
     @Override
     public String getLcGridIdByLocal(Long id) {
         try {
-           return baseMapper.selectOne(
+            return baseMapper.selectOne(
                     new QueryWrapper<LcCompareCodeDO>()
                             .eq("local_grid_id", id)
             ).getLcGridId();
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml
index 26297ba..a7374d0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml
@@ -137,7 +137,7 @@
 	</select>
 
 	<select id="getGridMemberLists" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO">
-		select user_id,nick_name from sys_user where community_id = #{communityId} and `type` = 6
+		select user_id,nick_name from sys_user where `type` = 6
 	</select>
 
 	<select id="getGridMember" resultType="com.panzhihua.common.model.vos.grid.GridMemberAdminVO">
@@ -153,61 +153,128 @@
 
     <select id="getGridTodoData" resultType="com.panzhihua.common.model.vos.grid.UserEventGridDataVO"
 		parameterType="com.panzhihua.common.model.dtos.grid.EventGridTodoDataDTO">
-		SELECT IFNULL(SUM(t.todoNums), 0) todoNums, 1 event_type
-		FROM (
-		SELECT  IFNULL(count(e.id), 0) as todoNums
-		FROM EVENT  e
-		WHERE e.event_category = 1 AND event_status = 2
-		AND (event_process_status = 1 OR event_process_status=3) AND process_type = 1
-		AND grid_id = #{eventGridTodoDataDTO.gridId}
-		AND e.event_type = 1
-		GROUP BY e.event_type
-		) t
-		UNION ALL
-		SELECT IFNULL(SUM(t.todoNums), 0) todoNums, 2 event_type
-		FROM (
-		SELECT  IFNULL(count(e.id), 0) as todoNums
-		FROM EVENT  e
-		WHERE e.event_category = 1 AND event_status = 2
-		AND (event_process_status = 1 OR event_process_status=3) AND process_type = 1
-		AND grid_id = #{eventGridTodoDataDTO.gridId}
-		AND e.event_type =2
-		GROUP BY e.event_type
-		) t
-		UNION ALL
-		SELECT IFNULL(SUM(t.todoNums), 0) todoNums, 3 event_type
-		FROM (
-		SELECT  IFNULL(count(e.id), 0) as todoNums
-		FROM EVENT  e
-		WHERE e.event_category = 1 AND event_status = 2
-		AND (event_process_status = 1 OR event_process_status=3) AND process_type = 1
-		AND grid_id = #{eventGridTodoDataDTO.gridId}
-		AND e.event_type =3
-		GROUP BY e.event_type
-		) t
-		UNION ALL
-		SELECT IFNULL(SUM(t.todoNums), 0) todoNums, 4 event_type
-		FROM (
-		SELECT  IFNULL(count(e.id), 0) as todoNums
-		FROM EVENT  e
-		WHERE e.event_category = 1 AND event_status = 2
-		AND (event_process_status = 1 OR event_process_status=3) AND process_type = 1
-		AND grid_id = #{eventGridTodoDataDTO.gridId}
-		AND e.event_type =4
-		GROUP BY e.event_type
-		) t
-		UNION ALL
-		SELECT IFNULL(SUM(t.todoNums), 0) todoNums, 5 event_type
-		FROM (
-		SELECT  IFNULL(count(e.id), 0) as todoNums
-		FROM EVENT  e
-		WHERE e.event_category = 1 AND event_status = 2
-		AND (event_process_status = 1 OR event_process_status=3) AND process_type = 1
-		AND grid_id = #{eventGridTodoDataDTO.gridId}
-		AND e.event_type =5
-		GROUP BY e.event_type
-		) t
-
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			1 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				EVENT e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 1
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			2 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				EVENT e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 2
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			3 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				EVENT e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 3
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			4 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				EVENT e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 4
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			5 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				EVENT e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 5
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( count( e.id ), 0 ) AS todoNums,
+			6 AS event_type
+		FROM
+			`event` AS e
+		WHERE
+			e.event_category = 1
+			AND e.event_type = 6
+			AND event_status = 2
+			AND ( event_process_status = 1 OR event_process_status = 3 )
+			AND grid_id = #{eventGridTodoDataDTO.gridId} UNION ALL
+		SELECT
+			IFNULL( count( cmp.id ), 0 ) AS todoNums,
+			8 AS event_type
+		FROM
+			com_mng_population AS cmp
+			LEFT JOIN event_grid_data AS egd ON egd.grid_community_id = cmp.act_id
+		WHERE
+			egd.id = #{eventGridTodoDataDTO.gridId} UNION ALL
+		SELECT
+			IFNULL( count( id ), 0 ) AS todoNums,
+			9 AS event_type
+		FROM
+			event_visiting_tasks
+		WHERE
+			event_status = 1
+			OR event_status = 3
 	</select>
 
 	<select id="getComActByActId" resultType="com.panzhihua.common.model.vos.grid.ComGridActVO">
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
index 284261b..45220f9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
@@ -317,4 +317,20 @@
 		ORDER BY su.create_at desc
 	</select>
 
+	<select id="getGridMemberLcList" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO">
+		select id,lc_grid_member_id,lc_grid_member_name from lc_compare_code_member
+	</select>
+
+	<select id="getGridMemberCascade" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO">
+		<if test="type != null and type == 1">
+			select community_id as id,`name` from com_act where state = 0
+		</if>
+		<if test="type != null and type == 2">
+			select village_id as id,`name` from com_mng_village where community_id = #{id}
+		</if>
+		<if test="type != null and type == 3">
+			select id,`name` from com_mng_building where village_id = #{id}
+		</if>
+	</select>
+
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
index a4a5e5c..f8cf963 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -454,7 +454,8 @@
 				e.grid_member_name like concat('%', #{pageEventManageDTO.keyWord},'%') OR
 				e.event_title like concat('%', #{pageEventManageDTO.keyWord},'%') OR
 				e.happen_address like concat('%', #{pageEventManageDTO.keyWord},'%') OR
-				e.order_sn like concat('%', #{pageEventManageDTO.keyWord},'%')
+				e.order_sn like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_clazz like concat('%', #{pageEventManageDTO.keyWord},'%')
 				)
 			 </if>
 			<if test="pageEventManageDTO.revokeType!=null">
@@ -509,7 +510,9 @@
 				e.grid_member_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
 				e.event_title like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
 				e.happen_address like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
-				e.order_sn like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%')
+				e.order_sn like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.propaganda_type like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				egd.grid_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%')
 				)
 			</if>
 			<if test="pagePublicityEventCommunityDTO.revokeType!=null">
@@ -535,8 +538,7 @@
 				`event` AS e
 				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
 			WHERE
-				egd.grid_community_id = #{communityId}
-				AND e.event_status = 2
+				e.event_status = 2
 				AND e.event_process_status = 2
 			) AS handleEventTotal,
 			(
@@ -546,17 +548,15 @@
 				`event` AS e
 				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
 			WHERE
-				egd.grid_community_id = #{communityId}
-				AND e.event_category = 2
+				e.event_category = 2
 				AND e.event_status = 2
 			) AS propagandaEducationTotal,
-			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND community_id = #{communityId} ) AS easyPhotoTotal
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2  ) AS easyPhotoTotal
 		FROM
 			`event` AS e
 			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
 		WHERE
-			egd.grid_community_id = #{communityId}
-			AND e.event_status = 2
+			e.event_status = 2
 	</select>
 
 	<select id="getEventCountByGridIds" resultType="Integer">
@@ -614,7 +614,18 @@
 				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 ) AS specialTotal,
+			(
+			SELECT
+				count( cmph.id )
+			FROM
+				com_mng_population_house AS cmph
+			LEFT JOIN event_grid_data AS egd ON egd.grid_community_id = cmph.community_id
+			WHERE
+				<if test="gridId!=null">
+					egd.id = #{gridId}
+				</if>
+			) AS houseTotal
 		FROM
 			`event`
 		WHERE
@@ -1078,6 +1089,7 @@
 		WHERE
 			egd.grid_community_id = #{communityId}
 			AND e.event_status = 2
+			AND e.event_deal_status in (1,2,3,4,6)
 		ORDER BY
 			e.create_at DESC
 			LIMIT 10
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
index 4c2af43..a70d1c4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
@@ -66,7 +66,7 @@
     </select>
 
 	<select id="findListByRefId" resultType="com.panzhihua.common.model.vos.grid.EventResourceVO">
-		SELECT url FROM event_resource
+		SELECT url,resource_time FROM event_resource
 		where ref_id = #{id} and classification = #{classification} and type = #{type} order by id desc
 	</select>
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
index 35e9496..37b5c92 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
@@ -51,9 +51,9 @@
 
 	<select id="count" parameterType="java.lang.Long" resultType="java.util.Map">
 	select count(id) as visit,
-		(select count(id) from event_visiting_tasks where grid_member_community = #{communityId} and event_status = 3) as visited,
-		(select count(id) from event_visiting_tasks where grid_member_community = #{communityId} and event_status = 6) as canceled
-		from event_visiting_tasks WHERE grid_member_community = #{communityId} and event_status = 1
+		(select count(id) from event_visiting_tasks where event_status = 3) as visited,
+		(select count(id) from event_visiting_tasks where event_status = 6) as canceled
+		from event_visiting_tasks WHERE event_status = 1
 	</select>
 
 	<select id="findListByPage" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitingTasksVO">
@@ -61,12 +61,12 @@
 		TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.card_no_str,p.label,u.name as creator,p.nation_code
 		from event_visiting_tasks vt left join com_mng_population p on vt.visiter_id = p.id
 		left join sys_user u on vt.create_by = u.user_id
-		where p.act_id = #{query.communityId}
-		<if test = "query.status == 1">
-			and (vt.event_status = 3 or vt.event_status = 7)
+		where 1=1
+		<if test = "query.communityId != null">
+			and p.act_id = #{query.communityId}
 		</if>
-		<if test = "query.status == 2">
-			and (vt.event_status = 1 or vt.event_status = 2)
+		<if test = "query.status != null and query.status != 0">
+			and vt.event_status = #{query.status}
 		</if>
 		<if test="query.tag != null and query.tag != ''">
 			p.label like concat('%',#{query.tag},'%')
@@ -83,44 +83,70 @@
 		order by vt.id desc
 	</select>
 
-	<select id="list" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.AppVisitTasksVO">
-		SELECT vt.id,vt.visiter_name,vt.grid_member,vt.grid_member_name,vt.visiter_name,vt.visiter_tele,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.event_status,vt.visiter_address,vt.happent_lat_lng,
-		p.card_no_str,p.name,REPLACE(p.label,',','#')
-		FROM event_visiting_tasks vt LEFT JOIN com_mng_population p ON vt.visiter_id = p.id WHERE 1=1
-		<if test = "query.visiterId !=null">
-			and vt.visiter_id = #{query.visiterId}
-		</if>
-		<if test = "query.communityId !=null">
-			and vt.grid_member_community = #{query.communityId}
+	<select id="appFindListByPage" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitingTasksVO">
+		select vt.id,vt.create_at,vt.create_by,vt.visiter_id,vt.visiter_name,vt.visiter_tele,vt.visiter_sex,vt.visiter_address,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.event_status,
+		TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.card_no_str,p.label,u.name as creator,p.nation_code
+		FROM event_visiting_tasks vt
+		LEFT JOIN com_mng_population p ON p.id = vt.visiter_id
+		LEFT JOIN com_mng_building mb ON(p.floor = mb.name AND p.village_id = mb.village_id)
+		LEFT JOIN event_grid_building_relation gbr ON mb.id = gbr.build_id
+		LEFT JOIN event_grid_data gd ON gd.id = gbr.grid_id
+		LEFT JOIN event_grid_member_relation gmr ON gmr.grid_id = gd.id
+		LEFT JOIN sys_user u ON u.user_id = gmr.grid_member_id
+		where 1=1
+		<if test = "query.userId != null">
+			and u.user_id = #{query.userId}
 		</if>
 		<if test = "query.status == 1">
-			and (vt.event_status = 3 or vt.event_status = 7)
+			and (vt.event_status = 1 or vt.event_status = 6)
 		</if>
 		<if test = "query.status == 2">
-			and (vt.event_status = 1 or vt.event_status = 2)
+			and (vt.event_status = 3 or vt.event_status = 7)
 		</if>
+		<if test = "query.status == 0">
+            and (vt.event_status = 1 or vt.event_status = 3 or vt.event_status = 6 or vt.event_status = 6)
+		</if>
+		order by vt.id desc
+	</select>
 
+	<select id="list" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.AppVisitTasksVO">
+		SELECT vt.id,vt.visiter_name,vt.grid_member,vt.grid_member_name,vt.visiter_id,vt.visiter_name,vt.visiter_tele,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.create_at,u.name as creator,vt.event_status,vt.visiter_address,vt.happent_lat_lng,
+		p.card_no_str,vt.exception,p.name,REPLACE(p.label,',','#')
+		FROM event_visiting_tasks vt LEFT JOIN com_mng_population p ON vt.visiter_id = p.id
+        left join sys_user u on vt.create_by = u.user_id
+        WHERE 1=1
+		<if test = "query.visiterId !=null">
+            and vt.visiter_id = #{query.visiterId}
+        </if>
+        <if test = "query.eventStatus == 0">
+            and (vt.event_status = 3 or vt.event_status = 7)
+        </if>
+		<if test = "query.exception != null">
+			and vt.exception = #{query.exception}
+		</if>
+		<if test = "query.eventStatus == 3 or query.eventStatus == 7">
+			and vt.event_status = #{query.eventStatus}
+		</if>
+        order by vt.id desc
 	</select>
 
 	<select id="visitorList" parameterType="com.panzhihua.common.model.query.visit.EventVisitListQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitListVO">
-		SELECT p.id,p.name,p.card_no_str,p.label, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.sex,p.political_outlook,p.phone,p.census_register,phu.relation,
-		MAX(vt.id),vt.create_at
+		SELECT p.id,p.name,p.card_no_str,p.label, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.sex,p.political_outlook,p.phone,p.census_register,phu.relation
 		FROM  com_mng_population p LEFT JOIN com_mng_population_house_user phu ON p.id = phu.popul_id
-		left join event_visiting_tasks vt ON p.id = vt.visiter_id
 		where 1=1
-		<if test="sex != null">
+		<if test="query.sex != null">
 			and p.sex = #{query.sex}
 		</if>
-		<if test="political != null">
+		<if test="query.political != null">
 			and p.political_outlook = #{query.political}
 		</if>
-		<if test="houseHolder != null">
+		<if test="query.houseHolder != null">
 			and phu.relation = #{query.houseHolder}
 		</if>
-		<if test="tag != null">
+		<if test="query.tag != null">
 			and p.label like concat('%',#{query.tag},'%')
 		</if>
-		<if test="keyWord != null">
+		<if test="query.keyWord != null">
 			and (p.card_no_str like concat(#{query.keyWord},'%') or
 			p.name like concat(#{query.keyWord},'%'))
 		</if>
@@ -133,10 +159,10 @@
 		WHERE u.community_id = #{communityId} and u.type = #{type} limit 1
 	</select>
 
-	<select id="findUserByCommunityId" resultType="java.util.Map">
-		SELECT u.user_id,u.name,u.phone,u.community_id,a.street_id, FROM sys_user u
+	<select id="findUserById" resultType="java.util.Map">
+		SELECT u.user_id,u.name,u.phone,u.community_id,a.street_id  FROM sys_user u
 		LEFT JOIN com_act a ON u.community_id = a.community_id
-		WHERE u.id = #{id}
+		WHERE u.user_id = #{id}
 	</select>
 
 	<select id="findPopulationById" resultType="java.util.Map">
@@ -163,15 +189,17 @@
 	</update>
 
 
-	<update id="complete" parameterType="com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO">
+	<update id="complete" parameterType="com.panzhihua.service_grid.model.dos.EventVisitingTasksDO">
 		update event_visiting_tasks set event_status = #{eventStatus},address = #{address},address_remark=#{addressRemark},
-			family_phone =#{familyPhone},family_source = #{familySource},lat_lng=#{latLng},dell_desc = #{dellDesc},table_content_json = #{option}
-			exception = #{exception},submit_date = NOW()
+			family_phone =#{familyPhone},family_source = #{familySource},lat_lng=#{latLng},dell_desc = #{dellDesc},table_content_json = #{tableContentJson},
+			exception = #{exception},submit_date = #{submitDate},remark = #{remark},
+			grid_member_street =#{gridMemberStreet},grid_member_community=#{gridMemberCommunity},grid_member=#{gridMember},grid_member_name=#{gridMemberName},grid_menber_tele=#{gridMenberTele}
 		where id = #{id}
 	</update>
 
-	<select id="getLabel" parameterType="java.lang.Long" resultType="java.lang.String">
-		select label from com_mng_population where id = #{id}
+	<select id="getPopulationLabel" resultType="String">
+		select label from com_mng_population where id = #{populationId}
 	</select>
 
+
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java
new file mode 100644
index 0000000..ad6dbe1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java
@@ -0,0 +1,32 @@
+package com.panzhihua.service_grid.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.service_grid.ServiceGridApplication;
+import com.panzhihua.service_grid.service.EventVisitingTasksService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import javax.annotation.Resource;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@Slf4j
+@SpringBootTest(classes = ServiceGridApplication.class)
+class EventVisitingTasksServiceImplTest {
+
+    @Resource
+    private EventVisitingTasksService eventVisitingTasksService;
+
+    @Test
+    void getUnUploadVisitingTask() {
+        List<LcEventVisitingTasksListDTO> data = eventVisitingTasksService.getUnUploadVisitingTask();
+        String pretty = JSONArray.toJSONString(data, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
+                SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java
new file mode 100644
index 0000000..eed1aa2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_user.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表mapper类
+ */
+@Mapper
+public interface EventGridMemberBuildingRelationMapper extends BaseMapper<EventGridMemberBuildingRelationDO> {
+
+    List<GridMemberBuildingVO> getGridMemberBuildingRelation(@Param("gridMemberId") Long gridMemberId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
index 6183b53..5ab8d09 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -23,14 +23,12 @@
 import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO;
 import com.panzhihua.service_user.model.dos.SysUserDO;
 import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+import org.apache.ibatis.annotations.*;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -412,4 +410,19 @@
             "</script>")
     void passResetUser(@Param("gridMemberDTO") EventGridMemberPassResetDTO gridMemberDTO);
 
+    @Update("update lc_compare_code_member set local_grid_member_id = #{userId},grid_member_name = #{userName} where id = #{lcMemberId}")
+    void addLcMember(@Param("lcMemberId") Long lcMemberId,@Param("userId") Long userId,@Param("userName") String userName);
+
+    @Update("update lc_compare_code_member set local_grid_member_id = null,grid_member_name = null where local_grid_member_id = #{gridMemberId}")
+    void delLcMember(@Param("gridMemberId") Long gridMemberId);
+
+    @Select("select id,village_id,act_id from com_mng_building where id = #{buildingId}")
+    Map<String,Long> getBuilding(@Param("buildingId") Long buildingId);
+
+    @Delete("delete from event_grid_member_building_relation where grid_member_id = #{gridMemberId}")
+    void delGridMemberRelation(@Param("gridMemberId") Long gridMemberId);
+
+    @Select("select id from lc_compare_code_member where local_grid_member_id = #{gridMemberId}")
+    Long getLcMemberId(@Param("gridMemberId") Long gridMemberId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java
new file mode 100644
index 0000000..af09e9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_user.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表实体类
+ */
+
+@Data
+@TableName("event_grid_member_building_relation")
+public class EventGridMemberBuildingRelationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 网格员id
+     */
+    private Long gridMemberId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 小区id
+     */
+    private Long villageId;
+
+    /**
+     * 楼栋id
+     */
+    private Long buildingId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "EventGridMemberBuildingRelationDO{" +
+                "id=" + id +
+                ", gridMemberId=" + gridMemberId +
+                ", communityId=" + communityId +
+                ", villageId=" + villageId +
+                ", buildingId=" + buildingId +
+                ", createAt=" + createAt +
+                "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java
new file mode 100644
index 0000000..0a7c6d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_user.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表服务类
+ */
+public interface EventGridMemberBuildingRelationService extends IService<EventGridMemberBuildingRelationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java
new file mode 100644
index 0000000..e49dbc8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_user.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridMemberBuildingRelationServiceImpl extends ServiceImpl<EventGridMemberBuildingRelationMapper, EventGridMemberBuildingRelationDO> implements EventGridMemberBuildingRelationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
index c2d369a..fb60156 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -17,6 +17,8 @@
 import com.panzhihua.common.model.vos.community.ComActVO;
 import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
 import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
+import com.panzhihua.common.model.vos.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
 import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
 import com.panzhihua.common.model.vos.shop.ShopStoreVO;
 import com.panzhihua.common.model.vos.user.*;
@@ -28,6 +30,7 @@
 import com.panzhihua.service_user.dao.*;
 import com.panzhihua.service_user.model.dos.*;
 import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
+import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
 import com.panzhihua.service_user.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.time.DateFormatUtils;
@@ -81,6 +84,10 @@
     private SysMenuDAO sysMenuDAO;
     @Resource
     private SysUserInputDAO sysUserInputDAO;
+    @Resource
+    private EventGridMemberBuildingRelationService buildingRelationService;
+    @Resource
+    private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
 //    @Resource
 //    private GridService gridService;
 
@@ -1157,7 +1164,7 @@
      */
     @Override
     public R listComMngUserTag(Long communityId) {
-        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getCommunityId, communityId));
+        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().or().lambda().eq(ComMngUserTagDO::getSysFlag,1).or().eq(ComMngUserTagDO::getCommunityId, communityId));
         if (ObjectUtils.isEmpty(comMngUserTagDOS)) {
             return R.fail();
         }
@@ -1928,6 +1935,31 @@
             sysUserRoleDO.setUserId(sysUserDO.getUserId());
             sysUserRoleDO.setRoleId(roleId);
             sysUserRoleDAO.insert(sysUserRoleDO);
+
+            //关联市平台网格员
+            if(eventGridMemberAddDTO.getLcMemberId() != null){
+                this.userDao.addLcMember(eventGridMemberAddDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
+            }
+
+            //网格员关联楼栋
+            if(!eventGridMemberAddDTO.getBuildingIds().isEmpty()){
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                eventGridMemberAddDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String,Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if(resultMap != null){
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if(!buildingRelationList.isEmpty()){
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
             log.error("新增后台用户报错【{}】", e.getMessage());
@@ -1951,7 +1983,26 @@
      */
     @Override
     public R getGridMemberList(PageEventGridMemberRelationDTO memberRelationDTO){
-        return R.ok(userDao.getGridMemberList(new Page(memberRelationDTO.getPageNum(),memberRelationDTO.getPageSize()),memberRelationDTO));
+        IPage<GridMemberVO> gridMemberPage = userDao.getGridMemberList(new Page(memberRelationDTO.getPageNum()
+                ,memberRelationDTO.getPageSize()),memberRelationDTO);
+        if(!gridMemberPage.getRecords().isEmpty()){
+            gridMemberPage.getRecords().forEach(gridMember -> {
+                //查询网格员关联市平台网格员id
+                gridMember.setLcMemberId(this.userDao.getLcMemberId(gridMember.getUserId()));
+
+                //查询网格员关联楼栋信息
+                List<GridMemberBuildingVO> memberBuildingList = eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
+                if(!memberBuildingList.isEmpty()){
+                    memberBuildingList.forEach(memberBuilding -> {
+                        if(!memberBuilding.getBuildingName().contains("栋")){
+                            memberBuilding.setBuildingName(memberBuilding.getBuildingName() + "栋");
+                        }
+                    });
+                    gridMember.setMemberBuildingList(memberBuildingList);
+                }
+            });
+        }
+        return R.ok(gridMemberPage);
     }
 
     /**
@@ -1983,6 +2034,36 @@
         int insert = 0;
         try {
             insert = userDao.updateById(sysUserDO);
+
+            //关联市平台网格员
+            if(gridMemberDTO.getLcMemberId() != null){
+                this.userDao.addLcMember(gridMemberDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
+            }else{
+                this.userDao.delLcMember(sysUserDO.getUserId());
+            }
+            //清除原网格员与楼栋关联关系
+            this.userDao.delGridMemberRelation(sysUserDO.getUserId());
+
+            //新增网格员关联楼栋
+            if(!gridMemberDTO.getBuildingIds().isEmpty()){
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                gridMemberDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String,Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if(resultMap != null){
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if(!buildingRelationList.isEmpty()){
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
+
         } catch (Exception e) {
             e.printStackTrace();
             log.error("修改网格员用户报错【{}】", e.getMessage());
@@ -2039,6 +2120,7 @@
         return R.ok();
     }
 
+    @Override
     public R noTips(Long userId){
         SysUserDO userDO = this.userDao.selectById(userId);
         if(userDO != null){
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml
new file mode 100644
index 0000000..6e1fb02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO">
+        <id column="id" property="id" />
+        <result column="grid_member_id" property="gridMemberId" />
+        <result column="community_id" property="communityId" />
+        <result column="village_id" property="villageId" />
+        <result column="building_id" property="buildingId" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, grid_member_id, community_id, village_id, building_id, create_at
+    </sql>
+
+    <select id="getGridMemberBuildingRelation" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO">
+        SELECT
+            egmbr.community_id,
+            ca.`name` as communityName,
+            egmbr.village_id,
+            cmv.`name` as villageName,
+            egmbr.building_id,
+            cmb.`name` as buildingName
+        FROM
+            event_grid_member_building_relation as egmbr
+            left join com_act as ca on ca.community_id = egmbr.community_id
+            left join com_mng_village as cmv on cmv.village_id = egmbr.village_id
+            left join com_mng_building as cmb on cmb.id = egmbr.building_id
+        WHERE
+            egmbr.grid_member_id = #{gridMemberId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java
index bb176d4..db0dc88 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java
@@ -21,7 +21,7 @@
 
 
     @Resource
-    private ApiServiceFeign ApiServiceFeign;
+    private ApiServiceFeign apiServiceFeign;
 
     /**
      * description 生成或更新redis里面的对接浪潮所需的token信息,token有效期12小时
@@ -32,7 +32,7 @@
     @XxlJob("langChaoGetToken")
     public ReturnT<String> langChaoGetToken(String param) {
         log.info("定时更新浪潮对接token。token有效期12小时");
-        ApiServiceFeign.getToken("18080799023", "123456");
+        apiServiceFeign.getToken("18080799023", "123456");
         log.info("定时更新浪潮对接token完成");
         return ReturnT.SUCCESS;
     }
@@ -46,9 +46,22 @@
     @XxlJob("langChaoAutomationUpload")
     public ReturnT<String> langChaoAutomationUpload(String param) {
         log.info("向浪潮服务器提交网格事件登记开始");
-        ApiServiceFeign.automationUploadEventAndFile();
+        apiServiceFeign.automationUploadEventAndFile();
         log.info("向浪潮服务器提交网格事件登记完成");
         return ReturnT.SUCCESS;
     }
 
+    /**
+     * description 自动上传重点人员和流动人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @XxlJob("automationUploadVisitRecord")
+    public ReturnT<String> automationUploadVisitRecord(String param) {
+        log.info("向浪潮服务器自动上传重点人员和流动人员走访记录开始");
+        apiServiceFeign.automationUploadVisitRecord();
+        log.info("向浪潮服务器自动上传重点人员和流动人员走访记录完成");
+        return ReturnT.SUCCESS;
+    }
 }

--
Gitblit v1.7.1