huanghongfa
2021-07-30 b200b681bc401bb11c133a79273ba78cb6ebedf8
Merge remote-tracking branch 'origin/master'
39个文件已添加
66个文件已修改
6189 ■■■■ 已修改文件
hs_err_pid36404.log 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java 1105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportHandleDTO.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordMapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hs_err_pid36404.log
New file
@@ -0,0 +1,198 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 134217728 bytes for Failed to commit area from 0x0000000081c00000 to 0x0000000089c00000 of length 134217728.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (./src/hotspot/os/windows/os_windows.cpp:3301), pid=36404, tid=8528
#
# JRE version:  (11.0.11+9) (build )
# Java VM: OpenJDK 64-Bit Server VM (11.0.11+9-b1341.60, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
---------------  S U M M A R Y ------------
Command Line: org.jetbrains.git4idea.http.GitAskPassApp Username for 'http://gitlab.nhys.cdnhxx.com':
Host: Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz, 6 cores, 7G,  Windows 10 , 64 bit Build 19041 (10.0.19041.207)
Time: Mon Jul 19 18:25:39 2021 �й���׼ʱ�� elapsed time: 0.020709 seconds (0d 0h 0m 0s)
---------------  T H R E A D  ---------------
Current thread (0x00000158851b6000):  JavaThread "Unknown thread" [_thread_in_vm, id=8528, stack(0x0000003aed700000,0x0000003aed800000)]
Stack: [0x0000003aed700000,0x0000003aed800000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x5f5c8a]
V  [jvm.dll+0x779405]
V  [jvm.dll+0x77aa1d]
V  [jvm.dll+0x77b0d3]
V  [jvm.dll+0x244bc8]
V  [jvm.dll+0x5f3084]
V  [jvm.dll+0x5e7fe5]
V  [jvm.dll+0x30098b]
V  [jvm.dll+0x3008fa]
V  [jvm.dll+0x3007d2]
V  [jvm.dll+0x3056b6]
V  [jvm.dll+0x34e353]
V  [jvm.dll+0x34ea56]
V  [jvm.dll+0x34e453]
V  [jvm.dll+0x2db398]
V  [jvm.dll+0x2dc547]
V  [jvm.dll+0x757bf7]
V  [jvm.dll+0x7593ec]
V  [jvm.dll+0x35b8d9]
V  [jvm.dll+0x73b38e]
V  [jvm.dll+0x3c3cc3]
V  [jvm.dll+0x3c60e1]
C  [jli.dll+0x5373]
C  [ucrtbase.dll+0x21542]
C  [KERNEL32.DLL+0x16fd4]
C  [ntdll.dll+0x4cec1]
---------------  P R O C E S S  ---------------
Threads class SMR info:
_java_thread_list=0x00000158830a0110, length=0, elements={
}
Java Threads: ( => current thread )
Other Threads:
  0x000001588317d000 GCTaskThread "GC Thread#0" [stack: 0x0000003aed800000,0x0000003aed900000] [id=31824]
  0x00000158851fc800 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000003aed900000,0x0000003aeda00000] [id=9432]
  0x00000158851fe800 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000003aeda00000,0x0000003aedb00000] [id=28756]
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd7a87b9f7]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x00000158851b2420] Heap_lock - owner thread: 0x00000158851b6000
Heap address: 0x0000000081c00000, size: 2020 MB, Compressed Oops mode: Non-zero based: 0x0000000081c00000
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (1 events):
Event: 0.010 Loaded shared library D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\zip.dll
Dynamic libraries:
0x00007ff6ee870000 - 0x00007ff6ee87a000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\java.exe
0x00007ffda5130000 - 0x00007ffda5324000     C:\windows\SYSTEM32\ntdll.dll
0x00007ffda4c20000 - 0x00007ffda4cdd000     C:\windows\System32\KERNEL32.DLL
0x00007ffda2710000 - 0x00007ffda29d7000     C:\windows\System32\KERNELBASE.dll
0x00007ffda2ed0000 - 0x00007ffda2fd0000     C:\windows\System32\ucrtbase.dll
0x00007ffd9c0b0000 - 0x00007ffd9c0c9000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\jli.dll
0x00007ffda3720000 - 0x00007ffda38c0000     C:\windows\System32\USER32.dll
0x00007ffda2d20000 - 0x00007ffda2d42000     C:\windows\System32\win32u.dll
0x00007ffda40e0000 - 0x00007ffda410a000     C:\windows\System32\GDI32.dll
0x00007ffda2c10000 - 0x00007ffda2d1a000     C:\windows\System32\gdi32full.dll
0x00007ffda2b70000 - 0x00007ffda2c0d000     C:\windows\System32\msvcp_win.dll
0x00007ffd8c120000 - 0x00007ffd8c3ba000     C:\windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1_none_b555e41d4684ddec\COMCTL32.dll
0x00007ffda4ce0000 - 0x00007ffda4d7e000     C:\windows\System32\msvcrt.dll
0x00007ffd9bfd0000 - 0x00007ffd9bfe7000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\VCRUNTIME140.dll
0x00007ffda4ef0000 - 0x00007ffda4f20000     C:\windows\System32\IMM32.DLL
0x00007ffd79c20000 - 0x00007ffd79cbd000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\msvcp140.dll
0x00007ffd7a590000 - 0x00007ffd7b0d9000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\server\jvm.dll
0x00007ffda4f30000 - 0x00007ffda4fda000     C:\windows\System32\ADVAPI32.dll
0x00007ffda3950000 - 0x00007ffda39eb000     C:\windows\System32\sechost.dll
0x00007ffda39f0000 - 0x00007ffda3b13000     C:\windows\System32\RPCRT4.dll
0x00007ffda3fa0000 - 0x00007ffda3fa8000     C:\windows\System32\PSAPI.DLL
0x00007ffd90640000 - 0x00007ffd90649000     C:\windows\SYSTEM32\WSOCK32.dll
0x00007ffda4e80000 - 0x00007ffda4eeb000     C:\windows\System32\WS2_32.dll
0x00007ffda2020000 - 0x00007ffda202a000     C:\windows\SYSTEM32\VERSION.dll
0x00007ffd88dd0000 - 0x00007ffd88df7000     C:\windows\SYSTEM32\WINMM.dll
0x00007ffda2560000 - 0x00007ffda2573000     C:\windows\System32\kernel.appcore.dll
0x00007ffd92480000 - 0x00007ffd92491000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\verify.dll
0x00007ffd8e470000 - 0x00007ffd8e654000     C:\windows\SYSTEM32\DBGHELP.DLL
0x00007ffd8da70000 - 0x00007ffd8da9c000     C:\windows\SYSTEM32\dbgcore.DLL
0x00007ffda2e50000 - 0x00007ffda2ecf000     C:\windows\System32\bcryptPrimitives.dll
0x00007ffd92340000 - 0x00007ffd92369000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\java.dll
0x00007ffd9e180000 - 0x00007ffd9e18b000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\jimage.dll
0x00007ffd921c0000 - 0x00007ffd921d8000     D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\zip.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin;C:\windows\SYSTEM32;C:\windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1_none_b555e41d4684ddec;D:\java\JetBrains\IntelliJ IDEA 2021.1.3\jbr\bin\server
VM Arguments:
java_command: org.jetbrains.git4idea.http.GitAskPassApp Username for 'http://gitlab.nhys.cdnhxx.com':
java_class_path (initial): D:/java/JetBrains/IntelliJ IDEA 2021.1.3/plugins/git4idea/lib/git4idea-rt.jar;D:/java/JetBrains/IntelliJ IDEA 2021.1.3/lib/xmlrpc-2.0.1.jar;D:/java/JetBrains/IntelliJ IDEA 2021.1.3/lib/commons-codec-1.15.jar
Launcher Type: SUN_STANDARD
[Global flags]
     intx CICompilerCount                          = 3                                         {product} {ergonomic}
     uint ConcGCThreads                            = 2                                         {product} {ergonomic}
     uint G1ConcRefinementThreads                  = 6                                         {product} {ergonomic}
   size_t G1HeapRegionSize                         = 1048576                                   {product} {ergonomic}
    uintx GCDrainStackTargetSize                   = 64                                        {product} {ergonomic}
   size_t InitialHeapSize                          = 134217728                                 {product} {ergonomic}
   size_t MarkStackSize                            = 4194304                                   {product} {ergonomic}
   size_t MaxHeapSize                              = 2118123520                                {product} {ergonomic}
   size_t MinHeapDeltaBytes                        = 1048576                                   {product} {ergonomic}
    uintx NonNMethodCodeHeapSize                   = 5830732                                {pd product} {ergonomic}
    uintx NonProfiledCodeHeapSize                  = 122913754                              {pd product} {ergonomic}
    uintx ProfiledCodeHeapSize                     = 122913754                              {pd product} {ergonomic}
    uintx ReservedCodeCacheSize                    = 251658240                              {pd product} {ergonomic}
     bool SegmentedCodeCache                       = true                                      {product} {ergonomic}
     bool UseCompressedClassPointers               = true                                 {lp64_product} {ergonomic}
     bool UseCompressedOops                        = true                                 {lp64_product} {ergonomic}
     bool UseG1GC                                  = true                                      {product} {ergonomic}
     bool UseLargePagesIndividualAllocation        = false                                  {pd product} {ergonomic}
Logging:
Log output configuration:
 #0: stdout all=warning uptime,level,tags
 #1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=D:\java\jdk1.8.0_102
CLASSPATH=.;D:\java\jdk1.8.0_102\lib;D:\java\jdk1.8.0_102\lib\tools.jar
PATH=D:\java\git\mingw64\libexec\git-core;D:\java\git\mingw64\libexec\git-core;D:\java\git\mingw64\bin;D:\java\git\usr\bin;C:\Users\Administrator\bin;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0;C:\windows\System32\OpenSSH;D:\java\jdk1.8.0_102\bin;D:\java\jdk1.8.0_102\jre\bin;D:\java\maven-3.8.1\bin;%mysql%\bin;D:\java\git\cmd;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps
USERNAME=Administrator
DISPLAY=:0.0
LC_ALL=en_US.UTF-8
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
---------------  S Y S T E M  ---------------
OS: Windows 10 , 64 bit Build 19041 (10.0.19041.207)
OS uptime: 10 days 7:26 hours
CPU:total 6 (initial active 6) (6 cores per cpu, 1 threads per core) family 6 model 158 stepping 10 microcode 0xb4, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, tsc, tscinvbit, bmi1, bmi2, adx, fma
Memory: 4k page, system-wide physical 8072M (459M free)
TotalPageFile size 20873M (AvailPageFile size 36M)
current process WorkingSet (physical memory assigned to process): 10M, peak: 10M
current process commit charge ("private bytes"): 56M, peak: 184M
vm_info: OpenJDK 64-Bit Server VM (11.0.11+9-b1341.60) for windows-amd64 JRE (11.0.11+9-b1341.60), built on Jun  4 2021 08:17:54 by "" with MS VC++ 14.0 (VS2015)
END.
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java
New file
@@ -0,0 +1,149 @@
package com.panzhihua.applets.api;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
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;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录前端控制器
 */
@Slf4j
@Api(tags = {"社区管理/安全工作"})
@RestController
@RequestMapping("/patrolRecord")
public class ComSwPatrolRecordApi extends BaseController {
    @Resource
    private CommunityService communityService;
    /**
     * 分页查询巡查记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 分页集合
     */
    @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class)
    @PostMapping("/pagePatrolRecord")
    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        if (comSwPatrolRecordPageDTO.getSelectPerson().equals(1)) {
            comSwPatrolRecordPageDTO.setPatrolPerson(String.valueOf(this.getLoginUserInfo().getUserId()));
        }
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pagePatrolRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 新增巡查记录
     * @param comSwPatrolRecordAddDTO 新增参数
     * @return 新增结果
     */
    @ApiOperation(value = "新增巡查记录")
    @PostMapping("/addPatrolRecord")
    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordAddDTO.setCommunityId(communityId);
        return communityService.addPatrolRecord(comSwPatrolRecordAddDTO);
    }
    /**
     * 根据巡查记录id查询详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 巡查记录详情查询结果
     */
    @ApiOperation(value = "根据巡查记录id查询详情", response = ComSwPatrolRecordVO.class)
    @PostMapping("/detailPatrolRecord")
    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return communityService.detailPatrolRecord(patrolRecordId);
    }
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    @ApiOperation(value = "分页查询安全工作记录", response = ComSwSafetyWorkRecordVO.class)
    @PostMapping("/pageSafetyWorkRecord")
    public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据安全工作记录id查询详情
     *
     * @param safetyWorkRecordId 安全工作记录
     * @return 安全工作记录详情查询结果
     */
    @ApiOperation(value = "根据安全工作记录id查询详情", response = ComSwSafetyWorkRecordVO.class)
    @PostMapping("/detailSafetyWorkRecord")
    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) {
        return communityService.detailSafetyWorkRecord(safetyWorkRecordId);
    }
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    @ApiOperation(value = "分页查询隐患报告", response = ComSwDangerReportVO.class)
    @PostMapping("/pageDangerReport")
    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pageDangerReport(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    @ApiOperation(value = "根据隐患报告id查询详情", response = ComSwDangerReportVO.class)
    @PostMapping("/detailDangerReport")
    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
        return communityService.detailDangerReport(dangerReportId);
    }
    /**
     * 根据巡查记录id查询隐患报告详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 隐患报告详情查询结果
     */
    @ApiOperation(value = "根据巡查记录id查询隐患报告详情", response = ComSwDangerReportVO.class)
    @PostMapping("/detailDangerReportByPrId")
    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return communityService.detailDangerReportByPrId(patrolRecordId);
    }
    /**
     * 整改隐患报告
     *
     * @param comSwDangerReportRectifyDTO 隐患报告整改参数
     * @return 整改结果
     */
    @ApiOperation(value = "整改隐患报告")
    @PostMapping("/rectifyDangerReport")
    public R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO){
        return communityService.rectifyDangerReport(comSwDangerReportRectifyDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -107,13 +107,13 @@
            InputStream is = file.getInputStream();
            file.transferTo(file1);
            try {
                boolean b = wxMaSecCheckService.checkImage(file1);
//                boolean b = wxMaSecCheckService.checkImage(file1);
                boolean delete = file1.delete();
                log.info("临时文件删除【{}】", delete);
                if (!b) {
                    return R.fail("图片内容违规");
                }
            } catch (WxErrorException e) {
//                if (!b) {
//                    return R.fail("图片内容违规");
//                }
            } catch (Exception e) {
                log.error("微信审核图片出错【{}】", e.getMessage());
                return R.fail("图片上传失败");
//                e.printStackTrace();
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -96,7 +96,11 @@
    @GetMapping("detailactivity")
    @ApiImplicitParam(name ="id",value = "社区活动主键",required = true)
    public R detailActivity(@RequestParam("id") Long id){
        Long userId = this.getUserId();
        Long userId = null;
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
        if(loginUserInfo != null){
            userId = loginUserInfo.getUserId();
        }
        return communityService.detailActivity(id,userId);
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
@@ -58,9 +58,13 @@
     */
    public static final String GRID_GET_EVENT_INFO_AREA_ID_URL = "http://171.217.92.33:53303/area/getAreaGridTreeByAreaId";
    /**
     * 通过AREAID获取辖区网格数据列表
     */
    public static final String GRID_GET_GRID_DATA_AREA_ID_URL = "http://171.217.92.33:53303/gridDefined/getGridInfoByAreaId";
    /**
     * 获取所有或者根据姓名和工号查询,分页
     */
    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 GRID_GET_GETALL_SEARCH_PAGE_URL = "http://171.217.92.33:53303/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp";
    /**
     * 下面的接口全部都是走访任务接口
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java
New file
@@ -0,0 +1,45 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * 婚姻状况
 *
 * @author huanghongfa
 */
@Getter
public enum SafeWordDangerLevelEnum
{
    RED(1, "红色预警"),
    ORANGE(2, "橙色预警"),
    YELLOW(3, "黄色预警"),
    BLUE(4, "蓝色预警");
    private final Integer code;
    private final String name;
    SafeWordDangerLevelEnum(Integer code, String name)
    {
        this.code = code;
        this.name = name;
    }
    public static int getCodeByName(String name) {
        for (SafeWordDangerLevelEnum item : SafeWordDangerLevelEnum.values()) {
            if (item.name.equals(name)) {
                return item.getCode();
            }
        }
        return -1;
    }
    public static String getCnDescByName(Integer code) {
        for (SafeWordDangerLevelEnum item : SafeWordDangerLevelEnum.values()) {
            if (item.code.equals(code)) {
                return item.getName();
            }
        }
        return "其他";
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java
New file
@@ -0,0 +1,44 @@
package com.panzhihua.common.enums;
import lombok.Getter;
/**
 * 婚姻状况
 *
 * @author huanghongfa
 */
@Getter
public enum SafeWordStatusEnum
{
    DCL(1, "待处理"),
    YCL(2, "已处理"),
    YZG(3, "已整改");
    private final Integer code;
    private final String name;
    SafeWordStatusEnum(Integer code, String name)
    {
        this.code = code;
        this.name = name;
    }
    public static int getCodeByName(String name) {
        for (SafeWordStatusEnum item : SafeWordStatusEnum.values()) {
            if (item.name.equals(name)) {
                return item.getCode();
            }
        }
        return -1;
    }
    public static String getCnDescByName(Integer code) {
        for (SafeWordStatusEnum item : SafeWordStatusEnum.values()) {
            if (item.code.equals(code)) {
                return item.getName();
            }
        }
        return "其他";
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java
@@ -10,6 +10,7 @@
    private String code;
    private String msg;
    private String data;
    public ServiceException() {
        super();
    }
@@ -27,6 +28,13 @@
        this.msg = errorMsg;
    }
    public ServiceException(String errorCode, String errorMsg,String data) {
        super(errorCode);
        this.code = errorCode;
        this.msg = errorMsg;
        this.data = data;
    }
    public ServiceException(String errorCode, String errorMsg, Throwable cause) {
        super(errorCode, cause);
        this.code = errorCode;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -1,21 +1,31 @@
package com.panzhihua.common.listen;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
import com.panzhihua.common.constants.BcDictionaryConstants;
import com.panzhihua.common.enums.*;
import com.panzhihua.common.excel.CustomSheetWriteHandler;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.vos.BcDictionaryVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationMistakeExcelVO;
import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -35,114 +45,142 @@
    private Map<Integer, String> headData;
    private String userName;
    // FTP 登录密码
    private String password;
    // FTP 服务器地址IP地址
    private String host;
    // FTP 端口
    private int port;
    private String excelUrl;
    public ComMngPopulationServeExcelListen(CommunityService communityService, Long communityId) {
        this.communityService = communityService;
        this.communityId = communityId;
    }
    public static String loadUrl;
    /**
     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
     */
    private static final int BATCH_COUNT = 5000;
    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
        list.add(data);
        if (list.size() >= BATCH_COUNT) {
            saveData();
            list.clear();
    public ComMngPopulationServeExcelListen(CommunityService communityService, Long communityId, String userName, String password, String host, int port, String excelUrl) {
            this.communityService = communityService;
            this.communityId = communityId;
            this.userName = userName;
            this.password = password;
            this.host = host;
            this.port = port;
            this.excelUrl = excelUrl;
        }
    }
    /**
     * 这里会一行行的返回头
     *
     * @param headMap
     * @param context
     */
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        headSize = headMap.size();
        headData = headMap;
    }
        /**
         * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
         */
        private static final int BATCH_COUNT = 5000;
        List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        saveData();
        log.info("所有数据解析完成!");
    }
        @Override
        public void invoke(Map<Integer, String> data, AnalysisContext context) {
            list.add(data);
            if (list.size() >= BATCH_COUNT) {
                saveData();
                list.clear();
            }
        }
    /**
     * 不是固定的列只能手动处理
     */
    private void saveData() {
        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
        /**
         * 这里会一行行的返回头
         *
         * @param headMap
         * @param context
         */
        @Override
        public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
            headSize = headMap.size();
            headData = headMap;
        }
        Map<String,String> dictMap = dictionaryR.getData().stream().collect(Collectors.toMap(BcDictionaryVO::getDictName,BcDictionaryVO::getDictValue));
        @Override
        public void doAfterAllAnalysed(AnalysisContext context) {
            saveData();
            log.info("所有数据解析完成!");
        }
        /**
         * 不是固定的列只能手动处理
         */
        private void saveData() {
            R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
            Map<String,String> dictMap = dictionaryR.getData().stream().collect(Collectors.toMap(BcDictionaryVO::getDictName,BcDictionaryVO::getDictValue));
//        Map<String,Integer> dictMap = new HashMap<>();
//        for(BcDictionaryVO vo : dictionaryR.getData()){
//            dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
//        }
        int index = 2;
        try {
            ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            for (Map<Integer, String> oneData : list) {
                ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
                //姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
                if(StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))){
                    if(StringUtils.isEmpty(oneData.get(0))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第1列");
                        importErrorVO.setErrorMsg("名字不可为空,请填写姓名");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setName(oneData.get(0));
                    if(StringUtils.isEmpty(oneData.get(1))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                        importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
            int index = 2;
            try {
                ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
                List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
                ArrayList<ComMngPopulationMistakeExcelVO> mistakes = Lists.newArrayList();
                for (Map<Integer, String> oneData : list) {
                    ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
                    //姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
                    if(StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))){
                        if(StringUtils.isEmpty(oneData.get(0))){
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第1列");
                            importErrorVO.setErrorMsg("名字不可为空,请填写姓名");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            setMistake(oneData, mistake);
                            mistake.setMistake("名字不可为空,请填写姓名");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setName(oneData.get(0));
                        if(StringUtils.isEmpty(oneData.get(1))){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                            importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            setMistake(oneData, mistake);
                            mistake.setMistake("身份证号不可为空,请填写身份证号");
                            mistakes.add(mistake);
                            continue;
                        }
                    //判断身份证号码位数
                    if(oneData.get(1).length() != 18){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                        importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setCardNo(oneData.get(1));
                    //根据身份证号码解析年龄以及性别
                    //获取用户生日
                    String birthday = vo.getCardNo().substring(6, 14);
                    if(StringUtils.isNotEmpty(birthday)){
                        String year = birthday.substring(0,4);
                        String month = birthday.substring(4,6);
                        String day = birthday.substring(6,8);
                        vo.setBirthday(year + "-" + month + "-" + day);
                    }
                        //判断身份证号码位数
                        if(oneData.get(1).length() != 18){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
                            importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setCardNo(oneData.get(1).toUpperCase());
                        //根据身份证号码解析年龄以及性别
                        //获取用户生日
                        String birthday = vo.getCardNo().substring(6, 14);
                        if(StringUtils.isNotEmpty(birthday)){
                            String year = birthday.substring(0,4);
                            String month = birthday.substring(4,6);
                            String day = birthday.substring(6,8);
                            vo.setBirthday(year + "-" + month + "-" + day);
                        }
//                    //设置用户年龄
//                    vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
                    //获取用户性别
                    int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
                    if(sex%2 == 1){
                        vo.setSex(PopulSexEnum.nan.getCode());
                    }else{
                        vo.setSex(PopulSexEnum.nv.getCode());
                        //获取用户性别
                        int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
                        if(sex%2 == 1){
                            vo.setSex(PopulSexEnum.nan.getCode());
                        }else{
                            vo.setSex(PopulSexEnum.nv.getCode());
                        }
                    }
                }
                if(StringUtils.isNotEmpty(oneData.get(2))){
                    if(StringUtils.isNotEmpty(oneData.get(2))){
//                    String nation = oneData.get(2);
//                    if(!nation.contains("族")){
//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
@@ -152,24 +190,44 @@
//                        index++;
//                        continue;
//                    }
                    vo.setNation(oneData.get(2));
                }
                if(StringUtils.isNotEmpty(oneData.get(3))){
                    vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
                }
                if(StringUtils.isNotEmpty(oneData.get(4))){
                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
                    if(isOk.equals(-1)){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第5列");
                        importErrorVO.setErrorMsg("您填写的是否租住有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                        vo.setNation(oneData.get(2));
                    }
                    vo.setIsRent(isOk);
                }
                if(StringUtils.isNotEmpty(oneData.get(5))){
                    if(StringUtils.isNotEmpty(oneData.get(3))){
                        vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
                        Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第4列");
                            importErrorVO.setErrorMsg("您填写的政治面貌有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的政治面貌有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setPoliticalOutlook(isOk);
                    }
                    if(StringUtils.isNotEmpty(oneData.get(4))){
                        Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第5列");
                            importErrorVO.setErrorMsg("您填写的是否租住有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的是否租住有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setIsRent(isOk);
                    }else {
                        vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(5))){
//                    String ra = convertRelation(oneData.get(5));
//
@@ -186,243 +244,307 @@
//                        vo.setRelation(Integer.valueOf(relation));
//                    }
//                    String relation = convertMarriage(oneData.get(5));
                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5));
                        Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5));
                    if(isOk.equals(-1)){
                        if(isOk.equals(-1)){
//                        vo.setMarriageStr(ma);
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第6列");
                            importErrorVO.setErrorMsg("您填写的与户主关系有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的与户主关系有误");
                            mistakes.add(mistake);
                            continue;
                        }else{
                            vo.setRelation(isOk);
                        }
                    }
                    if(StringUtils.isEmpty(oneData.get(6))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第6列");
                        importErrorVO.setErrorMsg("您填写的与户主关系有误");
                        importErrorVO.setErrorPosition("第" + index + "行,第7列");
                        importErrorVO.setErrorMsg("街路巷不可为空");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        setMistake(oneData, mistake);
                        mistake.setMistake("街路巷不可为空");
                        mistakes.add(mistake);
                        continue;
                    }else{
                        vo.setRelation(isOk);
                    }
                }
                if(StringUtils.isEmpty(oneData.get(6))){
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第7列");
                    importErrorVO.setErrorMsg("街路巷不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setRoad(oneData.get(6));
                if(StringUtils.isEmpty(oneData.get(7))){
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第8列");
                    importErrorVO.setErrorMsg("小区号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setDoorNo(oneData.get(7).trim());
                if(StringUtils.isEmpty(oneData.get(8))){
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第9列");
                    importErrorVO.setErrorMsg("楼排号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setFloor(oneData.get(8).trim());
                if(StringUtils.isEmpty(oneData.get(9))){
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第10列");
                    importErrorVO.setErrorMsg("单元号不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setUnitNo(oneData.get(9).trim());
                if(StringUtils.isEmpty(oneData.get(10))){
                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                    importErrorVO.setErrorPosition("第" + index + "行,第11列");
                    importErrorVO.setErrorMsg("户室不可为空");
                    populationImportErrorVOList.add(importErrorVO);
                    index++;
                    continue;
                }
                vo.setHouseNo(oneData.get(10).trim());
                if(StringUtils.isNotEmpty(oneData.get(11))){
                    vo.setBuildPurpose(oneData.get(11).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(12))){
                    vo.setBuildArea(oneData.get(12).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(13))){
                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
                    if(isOk.equals(-1)){
                    vo.setRoad(oneData.get(6));
                    if(StringUtils.isEmpty(oneData.get(7))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第14列");
                        importErrorVO.setErrorMsg("您填写的房屋状态有误");
                        importErrorVO.setErrorPosition("第" + index + "行,第8列");
                        importErrorVO.setErrorMsg("小区号不可为空");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        setMistake(oneData, mistake);
                        mistake.setMistake("小区号不可为空");
                        mistakes.add(mistake);
                        continue;
                    }
                    vo.setHouseStatus(isOk);
                }
                if(StringUtils.isNotEmpty(oneData.get(14))){
                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
                    if(isOk.equals(-1)){
                    vo.setDoorNo(oneData.get(7).trim());
                    if(StringUtils.isEmpty(oneData.get(8))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第15列");
                        importErrorVO.setErrorMsg("您填写的房屋用途有误");
                        importErrorVO.setErrorPosition("第" + index + "行,第9列");
                        importErrorVO.setErrorMsg("楼排号不可为空");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        setMistake(oneData, mistake);
                        mistake.setMistake("楼排号不可为空");
                        mistakes.add(mistake);
                        continue;
                    }
                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
                }
                if(StringUtils.isNotEmpty(oneData.get(15))){
                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
                    if(isOk.equals(-1)){
                    vo.setFloor(oneData.get(8).trim());
                    if(StringUtils.isEmpty(oneData.get(9))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第16列");
                        importErrorVO.setErrorMsg("您填写的管控状态有误");
                        importErrorVO.setErrorPosition("第" + index + "行,第10列");
                        importErrorVO.setErrorMsg("单元号不可为空");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        setMistake(oneData, mistake);
                        mistake.setMistake("单元号不可为空");
                        mistakes.add(mistake);
                        continue;
                    }
                    vo.setControlStatus(isOk);
                }
                    vo.setUnitNo(oneData.get(9).trim());
                    if(StringUtils.isEmpty(oneData.get(10))){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第11列");
                        importErrorVO.setErrorMsg("户室不可为空");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        setMistake(oneData, mistake);
                        mistake.setMistake("户室不可为空");
                        mistakes.add(mistake);
                        continue;
                    }
                    vo.setHouseNo(oneData.get(10).trim());
                    if(StringUtils.isNotEmpty(oneData.get(11))){
                        vo.setBuildPurpose(oneData.get(11).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(12))){
                        vo.setBuildArea(oneData.get(12).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(13))){
                        Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第14列");
                            importErrorVO.setErrorMsg("您填写的房屋状态有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的房屋状态有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setHouseStatus(isOk);
                    }
                    if(StringUtils.isNotEmpty(oneData.get(14))){
                        Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第15列");
                            importErrorVO.setErrorMsg("您填写的房屋用途有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的房屋用途有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(15))){
                        Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第16列");
                            importErrorVO.setErrorMsg("您填写的管控状态有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的管控状态有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setControlStatus(isOk);
                    }
                if(StringUtils.isNotEmpty(oneData.get(16))){
                    vo.setPhone(oneData.get(16).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(17))){
                    vo.setNativePlace(oneData.get(17).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(18))){
                    vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
                }
                if(StringUtils.isNotEmpty(oneData.get(19))){
                    if(StringUtils.isNotEmpty(oneData.get(16))){
                        vo.setPhone(oneData.get(16).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(17))){
                        vo.setNativePlace(oneData.get(17).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(18))){
                        vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
                        Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第19列");
                            importErrorVO.setErrorMsg("您填写的文化程度有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的文化程度有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setCultureLevel(isOk);
                    }
                    if(StringUtils.isNotEmpty(oneData.get(19))){
//                    String ma = convertMarriage(oneData.get(19));
                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19));
                    if(isOk.equals(-1)){
                        Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19));
                        if(isOk.equals(-1)){
//                        vo.setMarriageStr(ma);
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第20列");
                            importErrorVO.setErrorMsg("您填写的婚姻状况有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的婚姻状况有误");
                            mistakes.add(mistake);
                            continue;
                        }else{
                            vo.setMarriage(isOk);
                        }
                    }
                    if(StringUtils.isNotEmpty(oneData.get(20))){
                        vo.setHealthy(oneData.get(20).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(21))){
                        vo.setBloodType(oneData.get(21).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(22))){
                        vo.setReligion(oneData.get(22).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(23))){
                        vo.setProfession(oneData.get(23).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(24))){
                        vo.setWorkCompany(oneData.get(24).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(25))){
                        Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(25));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第26列");
                            importErrorVO.setErrorMsg("您填写的本地/外地有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的本地/外地有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setOutOrLocal(isOk);
                    }else {
                        vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(26))){
                        vo.setCensusRegister(oneData.get(26).trim());
                    }
                    if(StringUtils.isEmpty(oneData.get(27))){
                        vo.setResidence(0);
                    }else{
                        vo.setMarriage(isOk);
                        vo.setResidence(PopulIsOkEnum.getCodeByName(oneData.get(27).trim()));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(28))){
                        Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(28));
                        if(isOk.equals(-1)){
                            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                            importErrorVO.setErrorPosition("第" + index + "行,第29列");
                            importErrorVO.setErrorMsg("您填写的人员类型有误");
                            populationImportErrorVOList.add(importErrorVO);
                            index++;
                            ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                            setMistake(oneData, mistake);
                            mistake.setMistake("您填写的人员类型有误");
                            mistakes.add(mistake);
                            continue;
                        }
                        vo.setPersonType(isOk);
                    }
                    if(StringUtils.isNotEmpty(oneData.get(29))){
                        vo.setCountry(oneData.get(29).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(30))){
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                        vo.setDateOfDeparture(simpleDateFormat.parse(oneData.get(30)));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(31))){
                        vo.setPersonStatus(oneData.get(31).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(32))){
                        vo.setMonthlyIncome(oneData.get(32).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(33))){
                        vo.setFamilyStatus(oneData.get(33).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(34))){
                        vo.setGoalInChina(oneData.get(34).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(35))){
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                        vo.setDateOfArrival(simpleDateFormat.parse(oneData.get(35)));
                    }
                    if(StringUtils.isNotEmpty(oneData.get(36))){
                        vo.setRemark(oneData.get(36).trim());
                    }
                }
                if(StringUtils.isNotEmpty(oneData.get(20))){
                    vo.setHealthy(oneData.get(20).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(21))){
                    vo.setBloodType(oneData.get(21).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(22))){
                    vo.setReligion(oneData.get(22).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(23))){
                    vo.setProfession(oneData.get(23).trim());
                }
                    if(StringUtils.isNotEmpty(oneData.get(37))){
                        vo.setIdCardPositive(oneData.get(37).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(38))){
                        vo.setIdCardBack(oneData.get(38).trim());
                    }
                    if(StringUtils.isNotEmpty(oneData.get(39))){
                        vo.setHouseHold(oneData.get(39).trim());
                    }
                    if(StringUtils.isEmpty(oneData.get(40))){
                        vo.setDeath(0);
                    }else{
                        vo.setDeath(PopulIsOkEnum.getCodeByName(oneData.get(40).trim()));
                    }
                    for (int i = 41; i < headSize; i++) {
                        if (oneData.get(i) != null && oneData.get(i).equals("是")) {
                            vo.getUserTagStr().add(headData.get(i).substring(0,headData.get(i).indexOf("(")));
                        }
                    }
                if(StringUtils.isNotEmpty(oneData.get(24))){
                    vo.setWorkCompany(oneData.get(24).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(25))){
                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(25));
                    if(isOk.equals(-1)){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第26列");
                        importErrorVO.setErrorMsg("您填写的本地/外地有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                    //将重复的数据进行MD5加密实现去重
                    String distinct = vo.getName() + vo.getCardNo() + vo.getRoad() + vo.getDoorNo() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                    try {
                        String distinctPass = PayUtil.MD5(distinct);
                        if(StringUtils.isNotEmpty(distinctPass)){
                            vo.setDistinctPass(distinctPass);
                        }
                    }catch (Exception e){
                        log.error("组装MD5加密字段失败,数据表格行数:" + index);
                        continue;
                    }
                    vo.setOutOrLocal(isOk);
                    voList.add(vo);
                    index++;
                }
                if(StringUtils.isNotEmpty(oneData.get(26))){
                    vo.setCensusRegister(oneData.get(26).trim());
                }
                if(StringUtils.isEmpty(oneData.get(27))){
                    vo.setResidence(0);
                }else{
                    vo.setResidence(PopulIsOkEnum.getCodeByName(oneData.get(27).trim()));
                }
                if(StringUtils.isNotEmpty(oneData.get(28))){
                    Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(28));
                    if(isOk.equals(-1)){
                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                        importErrorVO.setErrorPosition("第" + index + "行,第29列");
                        importErrorVO.setErrorMsg("您填写的人员类型有误");
                        populationImportErrorVOList.add(importErrorVO);
                        index++;
                        continue;
                    }
                    vo.setPersonType(isOk);
                }
                if(StringUtils.isNotEmpty(oneData.get(29))){
                    vo.setCountry(oneData.get(29).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(30))){
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                    vo.setDateOfDeparture(simpleDateFormat.parse(oneData.get(30)));
                }
                if(StringUtils.isNotEmpty(oneData.get(31))){
                    vo.setPersonStatus(oneData.get(31).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(32))){
                    vo.setMonthlyIncome(oneData.get(32).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(33))){
                    vo.setFamilyStatus(oneData.get(33).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(34))){
                    vo.setGoalInChina(oneData.get(34).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(35))){
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
                    vo.setDateOfArrival(simpleDateFormat.parse(oneData.get(35)));
                }
                if(StringUtils.isNotEmpty(oneData.get(36))){
                    vo.setRemark(oneData.get(36).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(37))){
                    vo.setIdCardPositive(oneData.get(37).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(38))){
                    vo.setIdCardBack(oneData.get(38).trim());
                }
                if(StringUtils.isNotEmpty(oneData.get(39))){
                    vo.setHouseHold(oneData.get(39).trim());
                }
                if(StringUtils.isEmpty(oneData.get(40))){
                    vo.setDeath(0);
                }else{
                    vo.setDeath(PopulIsOkEnum.getCodeByName(oneData.get(40).trim()));
                }
                for (int i = 41; i < headSize; i++) {
                    if (oneData.get(i) != null && oneData.get(i).equals("是")) {
                        vo.getUserTagStr().add(headData.get(i).substring(0,headData.get(i).indexOf("(")));
                    }
                }
                //将重复的数据进行MD5加密实现去重
                String distinct = vo.getName() + vo.getCardNo() + vo.getRoad() + vo.getDoorNo() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                try {
                    String distinctPass = PayUtil.MD5(distinct);
                    if(StringUtils.isNotEmpty(distinctPass)){
                        vo.setDistinctPass(distinctPass);
                    }
                }catch (Exception e){
                    log.error("组装MD5加密字段失败,数据表格行数:" + index);
                    continue;
                }
                voList.add(vo);
                index++;
            }
            //客户需要暂时注释,等客户处理完成需要恢复
                //客户需要暂时注释,等客户处理完成需要恢复
//            if(populationImportErrorVOList.isEmpty()){
//                R r = communityService.listSavePopulationServeExcelVO(voList, communityId);
//                if (!R.isOk(r)) {
@@ -431,137 +553,242 @@
//            }else{
//                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
//            }
            //根据list中的IdCard城市来去重
            List<ComMngPopulationServeExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass)).collect(Collectors.toList());
            R r = communityService.listSavePopulationServeExcelVO(newVoList, communityId);
            if (!R.isOk(r)) {
                String errMsg = r.getMsg();
                List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
                if(!errorList.isEmpty()){
                    populationImportErrorVOList.addAll(errorList);
                }
                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
            }else{
                if(!populationImportErrorVOList.isEmpty()){
                //根据list中的IdCard城市来去重
                List<ComMngPopulationServeExcelVO> newVoList = voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass)).collect(Collectors.toList());
                R r = communityService.listSavePopulationServeExcelVO(newVoList, communityId);
                if (!R.isOk(r)) {
                    List<ComMngPopulationMistakeExcelVO> list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationMistakeExcelVO.class);
                    String errMsg = r.getMsg();
                    List<ComMngPopulationImportErrorVO> errorList = JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
                    if(!errorList.isEmpty()){
                        populationImportErrorVOList.addAll(errorList);
                    }
                    mistakes.addAll(list);
                    R result = mistakeExportPopulation(mistakes);
                    loadUrl = (String)result.getData();
                    ComMngPopulationImportErrorVO comMngPopulationImportErrorVO = new ComMngPopulationImportErrorVO();
                    comMngPopulationImportErrorVO.setErrorPosition("loadUrl");
                    comMngPopulationImportErrorVO.setErrorMsg(loadUrl);
                    populationImportErrorVOList.add(comMngPopulationImportErrorVO);
                    throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
                }else{
//                mistakes.addAll((List<ComMngPopulationMistakeExcelVO>)r.getData());
                    R result = mistakeExportPopulation(mistakes);
                    loadUrl = (String)result.getData();
                    if(!populationImportErrorVOList.isEmpty()){
                        ComMngPopulationImportErrorVO comMngPopulationImportErrorVO = new ComMngPopulationImportErrorVO();
                        comMngPopulationImportErrorVO.setErrorPosition("loadUrl");
                        comMngPopulationImportErrorVO.setErrorMsg(loadUrl);
                        populationImportErrorVOList.add(comMngPopulationImportErrorVO);
                        throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
                    }
                }
            } catch (NumberFormatException e) {
                e.printStackTrace();
                List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
                ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                importErrorVO.setErrorPosition("第" + index + "行");
                importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
                populationImportErrorVOList.add(importErrorVO);
                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
            } catch (ParseException e1) {
                e1.printStackTrace();
                List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
                ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
                importErrorVO.setErrorPosition("第" + index + "行");
                importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
                populationImportErrorVOList.add(importErrorVO);
                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            importErrorVO.setErrorPosition("第" + index + "行");
            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
            populationImportErrorVOList.add(importErrorVO);
            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
        } catch (ParseException e1) {
            e1.printStackTrace();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            importErrorVO.setErrorPosition("第" + index + "行");
            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
            populationImportErrorVOList.add(importErrorVO);
            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
        }
    }
    private String convertMarriage(String ma) {
        if(Objects.equals("已",ma) || Objects.equals("一",ma)){
            ma = "已婚";
        }else if(Objects.equals("未",ma) || Objects.equals("未婚婚",ma)){
            ma = "未婚";
        }else if(Objects.equals("初",ma)){
            ma = "初婚";
        }else if(Objects.equals("再",ma)){
            ma = "再婚";
        }else if(Objects.equals("复",ma)){
            ma = "复婚";
        }else if(Objects.equals("丧",ma) || Objects.equals("丧偶偶",ma)){
            ma = "丧偶";
        }else if(Objects.equals("离",ma) || Objects.equals("离异",ma) || Objects.equals("离异婚",ma)){
            ma = "离婚";
        }else if(Objects.equals("分",ma)){
            ma = "分居";
        }
        return ma;
    }
    private String convertRelation(String ra) {
        if(ra.contains("户主")){
            ra = "户主";
        }else if(Objects.equals(ra,"女儿")){
            ra = "女";
        }else if(Objects.equals(ra,"儿子") || Objects.equals(ra,"儿")){
            ra = "子";
        }else if(Objects.equals(ra,"大女")){
            ra = "长女";
        }else if(Objects.equals(ra,"二女") || Objects.equals(ra,"此女")){
            ra = "次女";
        }else if(Objects.equals(ra,"二子")){
            ra = "次子";
        }else if(Objects.equals(ra,"长男") || ra.contains("长子")){
            ra = "长子";
        }else if(Objects.equals(ra,"非亲属") || ra.contains("女友")  || ra.contains("女朋友")
                || ra.contains("男友") || ra.contains("男朋友")){
            ra = "其他";
        }else if(Objects.equals(ra,"姐")){
            ra = "姐姐";
        }else if(Objects.equals(ra,"户主")){
            ra = "本人";
        }else if(Objects.equals(ra,"妻子") || Objects.equals(ra,"媳妇")){
            ra = "妻";
        }else if(Objects.equals(ra,"哥") || Objects.equals(ra,"哥哥")){
            ra = "兄";
        }else if(Objects.equals(ra,"丈夫")){
            ra = "夫";
        }else if(Objects.equals(ra,"丈母娘")){
            ra = "岳母";
        }else if(Objects.equals(ra,"继子") || Objects.equals(ra,"养子")){
            ra = "养子或继子";
        }else if(Objects.equals(ra,"继女") || Objects.equals(ra,"养女")){
            ra = "养女或继女";
        }else if(ra.contains("儿媳")||ra.contains("长媳")){
            ra = "儿媳";
        }else if(Objects.equals(ra,"三姨") || Objects.equals(ra,"姨姨")){
            ra = "姨母";
        }else if(Objects.equals(ra,"二外孙女")){
            ra = "外孙女";
        }else if(Objects.equals(ra,"外孙")){
            ra = "外孙子";
        }else if(Objects.equals(ra,"侄儿")){
            ra = "侄子";
        }else if(ra.contains("表")){
            ra = "表兄弟、表姐妹";
        }else if(Objects.equals(ra,"继父") || Objects.equals(ra,"养父")){
            ra = "继父或养父";
        }else if(Objects.equals(ra,"父")){
            ra = "父亲";
        }else if(Objects.equals(ra,"弟弟")){
            ra = "弟";
        }else if(Objects.equals(ra,"孙")){
            ra = "孙子";
        }else if(Objects.equals(ra,"孙媳妇") || Objects.equals(ra,"外孙媳妇")){
            ra = "孙媳妇或外孙媳妇";
        }else if(Objects.equals(ra,"妹")){
            ra = "妹妹";
        }else if(Objects.equals(ra,"祖父母")){
            ra = "祖父母或外祖父母";
        }else if(Objects.equals(ra,"姐妹") || Objects.equals(ra,"兄弟")){
            ra = "兄弟姐妹";
        }else if(Objects.equals(ra,"其他姐妹") || Objects.equals(ra,"其他兄弟")){
            ra = "其他兄弟姐妹";
        }else if(Objects.equals(ra,"奶奶")){
            ra = "祖母";
        }else if(Objects.equals(ra,"爷爷")){
            ra = "祖父";
        }else if(Objects.equals(ra,"爷爷")){
            ra = "祖父";
        }else if(ra.contains("堂")){
            ra = "堂兄弟、堂姐妹";
        private void setMistake(Map<Integer, String> map, ComMngPopulationMistakeExcelVO vo){
            vo.setName(map.get(0));
            vo.setCardNo(map.get(1));
            vo.setNation(map.get(2));
            vo.setPoliticalOutlook(map.get(3));
            vo.setIsRent(map.get(4));
            vo.setRelation(map.get(5));
            vo.setRoad(map.get(6));
            vo.setDoorNo(map.get(7));
            vo.setFloor(map.get(8));
            vo.setUnitNo(map.get(9));
            vo.setHouseNo(map.get(10));
            vo.setBuildPurpose(map.get(11));
            vo.setBuildArea(map.get(12));
            vo.setHouseStatus(map.get(13));
            vo.setHousePurpose(map.get(14));
            vo.setControlStatus(map.get(15));
            vo.setPhone(map.get(16));
            vo.setNativePlace(map.get(17));
            vo.setCultureLevel(map.get(18));
            vo.setMarriage(map.get(19));
            vo.setHealthy(map.get(20));
            vo.setBloodType(map.get(21));
            vo.setReligion(map.get(22));
            vo.setProfession(map.get(23));
            vo.setWorkCompany(map.get(24));
            vo.setOutOrLocal(map.get(25));
            vo.setCensusRegister(map.get(26));
            vo.setResidence(map.get(27));
//        vo.setAddress(map.get(28));
            vo.setPersonType(map.get(28));
            vo.setCountry(map.get(29));
            vo.setStringOfDeparture(map.get(30));
            vo.setPersonStatus(map.get(31));
            vo.setMonthlyIncome(map.get(32));
            vo.setFamilyStatus(map.get(33));
            vo.setGoalInChina(map.get(34));
            vo.setStringOfArrival(map.get(35));
            vo.setRemark(map.get(36));
            vo.setIdCardPositive(map.get(37));
            vo.setIdCardBack(map.get(38));
            vo.setHouseHold(map.get(39));
            vo.setDeath(map.get(40));
        }
        return ra;
    }
        private R mistakeExportPopulation(List<ComMngPopulationMistakeExcelVO> vo) {
            //生成动态模板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 {
                        excelWriter = EasyExcel.write(fileName, ComMngPopulationMistakeExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("实有人口错误数据").build();
                        excelWriter.write(vo, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
                        inputStream = new FileInputStream(file);
                        sftp.uploadMore(ftpUrl, name, inputStream);
                        sftp.logout();
                        inputStream.close();
                        String absolutePath = file.getAbsolutePath();
                        boolean delete = file.delete();
                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                    } finally {
                        // 千万别忘记finish 会帮忙关闭流
                        if (inputStream != null) {
                            inputStream.close();
                        }
                        if (excelWriter != null) {
                            excelWriter.finish();
                        }
                    }
                }
                return R.ok(excelUrl + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        private String convertMarriage(String ma) {
            if(Objects.equals("已",ma) || Objects.equals("一",ma)){
                ma = "已婚";
            }else if(Objects.equals("未",ma) || Objects.equals("未婚婚",ma)){
                ma = "未婚";
            }else if(Objects.equals("初",ma)){
                ma = "初婚";
            }else if(Objects.equals("再",ma)){
                ma = "再婚";
            }else if(Objects.equals("复",ma)){
                ma = "复婚";
            }else if(Objects.equals("丧",ma) || Objects.equals("丧偶偶",ma)){
                ma = "丧偶";
            }else if(Objects.equals("离",ma) || Objects.equals("离异",ma) || Objects.equals("离异婚",ma)){
                ma = "离婚";
            }else if(Objects.equals("分",ma)){
                ma = "分居";
            }
            return ma;
        }
        private String convertRelation(String ra) {
            if(ra.contains("户主")){
                ra = "户主";
            }else if(Objects.equals(ra,"女儿")){
                ra = "女";
            }else if(Objects.equals(ra,"儿子") || Objects.equals(ra,"儿")){
                ra = "子";
            }else if(Objects.equals(ra,"大女")){
                ra = "长女";
            }else if(Objects.equals(ra,"二女") || Objects.equals(ra,"此女")){
                ra = "次女";
            }else if(Objects.equals(ra,"二子")){
                ra = "次子";
            }else if(Objects.equals(ra,"长男") || ra.contains("长子")){
                ra = "长子";
            }else if(Objects.equals(ra,"非亲属") || ra.contains("女友")  || ra.contains("女朋友")
                    || ra.contains("男友") || ra.contains("男朋友")){
                ra = "其他";
            }else if(Objects.equals(ra,"姐")){
                ra = "姐姐";
            }else if(Objects.equals(ra,"户主")){
                ra = "本人";
            }else if(Objects.equals(ra,"妻子") || Objects.equals(ra,"媳妇")){
                ra = "妻";
            }else if(Objects.equals(ra,"哥") || Objects.equals(ra,"哥哥")){
                ra = "兄";
            }else if(Objects.equals(ra,"丈夫")){
                ra = "夫";
            }else if(Objects.equals(ra,"丈母娘")){
                ra = "岳母";
            }else if(Objects.equals(ra,"继子") || Objects.equals(ra,"养子")){
                ra = "养子或继子";
            }else if(Objects.equals(ra,"继女") || Objects.equals(ra,"养女")){
                ra = "养女或继女";
            }else if(ra.contains("儿媳")||ra.contains("长媳")){
                ra = "儿媳";
            }else if(Objects.equals(ra,"三姨") || Objects.equals(ra,"姨姨")){
                ra = "姨母";
            }else if(Objects.equals(ra,"二外孙女")){
                ra = "外孙女";
            }else if(Objects.equals(ra,"外孙")){
                ra = "外孙子";
            }else if(Objects.equals(ra,"侄儿")){
                ra = "侄子";
            }else if(ra.contains("表")){
                ra = "表兄弟、表姐妹";
            }else if(Objects.equals(ra,"继父") || Objects.equals(ra,"养父")){
                ra = "继父或养父";
            }else if(Objects.equals(ra,"父")){
                ra = "父亲";
            }else if(Objects.equals(ra,"弟弟")){
                ra = "弟";
            }else if(Objects.equals(ra,"孙")){
                ra = "孙子";
            }else if(Objects.equals(ra,"孙媳妇") || Objects.equals(ra,"外孙媳妇")){
                ra = "孙媳妇或外孙媳妇";
            }else if(Objects.equals(ra,"妹")){
                ra = "妹妹";
            }else if(Objects.equals(ra,"祖父母")){
                ra = "祖父母或外祖父母";
            }else if(Objects.equals(ra,"姐妹") || Objects.equals(ra,"兄弟")){
                ra = "兄弟姐妹";
            }else if(Objects.equals(ra,"其他姐妹") || Objects.equals(ra,"其他兄弟")){
                ra = "其他兄弟姐妹";
            }else if(Objects.equals(ra,"奶奶")){
                ra = "祖母";
            }else if(Objects.equals(ra,"爷爷")){
                ra = "祖父";
            }else if(Objects.equals(ra,"爷爷")){
                ra = "祖父";
            }else if(ra.contains("堂")){
                ra = "堂兄弟、堂姐妹";
            }
            return ra;
        }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java
New file
@@ -0,0 +1,50 @@
package com.panzhihua.common.model.dtos.api;
import lombok.Data;
/**
 * program 攀枝花智慧社区项目
 * description 浪潮网格员接口返回对象
 *
 * @author manailin
 * Date 2021-06-22 15:30
 **/
@Data
public class GridMemberPageListDTO {
    private String bindUserId;
    private String bindUserName;
    private String birthDate;
    private String contactPhone;
    private String createBy;
    private String createTime;
    private String dutyType;
    private String educationCode;
    private String educationName;
    private String genderCode;
    private String genderName;
    private String gridDutyId;
    private String gridDutyName;
    private String id;
    private String imei;
    private Integer isLeader;
    private Integer jobNum;
    private String lastReportTime;
    private String latitude;
    private String locateUpdateTime;
    private String longitude;
    private String name;
    private String nationCode;
    private String nationName;
    private String orgDuty;
    private String orgDutyDate;
    private String orgId;
    private String orgName;
    private String password;
    private String politicalAffiliationCode;
    private String politicalAffiliationName;
    private String standbyPhone;
    private String updateBy;
    private String updateTime;
    private String workState;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java
@@ -16,18 +16,18 @@
    @ApiModelProperty("实有房屋id")
    private Long id;
    @ApiModelProperty(value = "是否是居住地(1.是 2.否)")
    @ApiModelProperty(value = "是否是居住地(1.是 0.否)")
    private Integer isResidence;
    @ApiModelProperty("与户主关系")
    private Integer relation;
    /**
     * 是否是居住地(1.是 2.否)
     * 是否是居住地(1.是 0.否)
     */
    public interface isResidence{
        int yes = 1;
        int no = 2;
        int no = 0;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportHandleDTO.java
New file
@@ -0,0 +1,64 @@
package com.panzhihua.common.model.dtos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 *  隐患报告处理DTO
 */
@Data
@ApiModel("隐患报告处理DTO")
public class ComSwDangerReportHandleDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 隐患报告id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty("隐患报告id")
    private Long dangerReportId;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    private Long communityId;
    /**
     * 社区处理建议
     */
    @ApiModelProperty("社区处理建议")
    private String communitySuggestion;
    /**
     * 街道安全人员管理建议
     */
    @ApiModelProperty("街道安全人员管理建议")
    private String streetSuggestion;
    /**
     * 承办记录
     */
    @ApiModelProperty("承办记录")
    private String undertakeRecord;
    /**
     * 领导意见
     */
    @ApiModelProperty("领导意见")
    private String leaderSuggestion;
    /**
     * 指派人员
     */
    @ApiModelProperty("指派人员")
    private String assignPerson;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java
New file
@@ -0,0 +1,49 @@
package com.panzhihua.common.model.dtos.community;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 *  隐患报告整改DTO
 */
@Data
@ApiModel("隐患报告整改DTO")
public class ComSwDangerReportRectifyDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 隐患报告id
     */
    @ApiModelProperty("隐患报告id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long dangerReportId;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    private Long communityId;
    /**
     * 采取措施
     */
    @ApiModelProperty("采取措施")
    private String takeSteps;
    /**
     * 采取措施照片
     */
    @ApiModelProperty("采取措施照片")
    private String stepsPhoto;
    /**
     * 整改人员
     */
    @ApiModelProperty("整改人员")
    private String rectifyPerson;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java
New file
@@ -0,0 +1,201 @@
package com.panzhihua.common.model.dtos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录实体类
 */
@Data
@ApiModel("新增巡查记录DTO")
public class ComSwPatrolRecordAddDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long communityId;
    /**
     * 巡查时间
     */
    @ApiModelProperty("巡查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date PatrolTime;
    /**
     * 天气
     */
    @ApiModelProperty("天气")
    private String weather;
    /**
     * 温度
     */
    @ApiModelProperty("温度")
    private String temperature;
    /**
     * 风
     */
    @ApiModelProperty("风")
    private String wind;
    /**
    * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
    */
    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
    private String patrolType;
    /**
    * 巡查领导
    */
    @ApiModelProperty("巡查领导")
    private String patrolLeader;
    /**
    * 巡查人员
    */
    @ApiModelProperty("巡查人员")
    private String patrolPerson;
    /**
     * 巡查地址
     */
    @ApiModelProperty("巡查地址")
    private String address;
    /**
    * 巡查记录
    */
    @ApiModelProperty("巡查记录")
    private String recordContent;
    /**
    * 发现记录
    */
    @ApiModelProperty("发现记录")
    private String findRecord;
    /**
    * 记录照片
    */
    @ApiModelProperty("记录照片")
    private String recordPhoto;
    /**
    * 备注
    */
    @ApiModelProperty("备注")
    private String remark;
    /**
    * 接班领导
    */
    @ApiModelProperty("接班领导")
    private String successionLeader;
    /**
    * 接班人员
    */
    @ApiModelProperty("接班人员")
    private String successionPerson;
    /**
    * 接班时间
    */
    @ApiModelProperty("接班时间")
    private Date successionTime;
    /**
    * 是否存在隐患(1是 、0否)
    */
    @ApiModelProperty("是否存在隐患(1是 、0否)")
    private Integer isHiddenDanger;
    /**
    * 隐患名称
    */
    @ApiModelProperty("隐患名称")
    private String dagerName;
    /**
    * 排查时间
    */
    @ApiModelProperty("排查时间")
    private Date checkTime;
    /**
    * 主体部门、单位或个人全称
    */
    @ApiModelProperty("主体部门、单位或个人全称")
    private String unitName;
    /**
    * 隐患简述
    */
    @ApiModelProperty("隐患简述")
    private String dagerDescription;
    /**
    * 是否立即整改(1是 、0否)
    */
    @ApiModelProperty("是否立即整改(1是 、0否)")
    private Integer isRectifyImmediately;
    /**
    * 采取措施
    */
    @ApiModelProperty("采取措施")
    private String takeSteps;
    /**
    * 采取措施照片
    */
    @ApiModelProperty("采取措施照片")
    private String stepsPhoto;
    /**
    * 整改人员
    */
    @ApiModelProperty("整改人员")
    private String rectifyPerson;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;
    /**
     * 巡查类型
     */
    public interface patrolType{
        int huo = 1;
        int xun = 2;
        int yi = 3;
    }
    /**
     * 是否
     */
    public interface isOk{
        int yes = 1;
        int no = 0;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java
New file
@@ -0,0 +1,73 @@
package com.panzhihua.common.model.dtos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 *  分页查询巡查记录DTO
 */
@Data
@ApiModel("分页查询巡查记录DTO")
public class ComSwPatrolRecordPageDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 分页-当前页数
     */
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum;
    /**
     * 分页-每页记录数
     */
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    private Long communityId;
    @ApiModelProperty("巡查开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date patrolAtBegin;
    @ApiModelProperty("巡查结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date patrolAtEnd;
    /**
     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
     */
    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
    private String patrolType;
    /**
     * 巡查人员
     */
    @ApiModelProperty("巡查人员")
    private String patrolPerson;
    /**
     * 状态(1.待查看 2.待处理 3.待整改 4.已整改)
     */
    @ApiModelProperty("状态(1.待处理 2.待整改 3.已整改)")
    private String status;
    /**
     * 查看人(1.全部 2.只看我的)
     */
    @ApiModelProperty("查看人(1.全部 2.只看我的)")
    private Integer selectPerson;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java
@@ -9,7 +9,7 @@
 * @description: 实有房屋
 **/
@Data
@ApiModel("实有房屋请求参数")
@ApiModel("小区请求参数")
public class PageComMngVillageDTO {
    @ApiModelProperty("街路巷")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java
@@ -55,7 +55,10 @@
    private Long gridCommunityId;
    @ApiModelProperty(value = "市平台网格关联id", hidden = false, example = "")
    private Long lcGridId;
    private String lcGridId;
    @ApiModelProperty(value = "市平台网格关联名称", hidden = false, example = "")
    private String lcGridName;
    @ApiModelProperty(value = "当前登录用户id", hidden = true, example = "1")
    private Long userId;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java
@@ -58,7 +58,10 @@
    private Long userId;
    @ApiModelProperty(value = "市平台网格关联id", hidden = false, example = "")
    private Long lcGridId;
    private String lcGridId;
    @ApiModelProperty(value = "市平台网格关联名称", hidden = false, example = "")
    private String lcGridName;
    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
    private Long gridCommunityId;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
@@ -77,7 +77,13 @@
    private Long gridMemberId;
    @ApiModelProperty(value = "市平台网格员关联id")
    private Long lcMemberId;
    private String lcMemberId;
    @ApiModelProperty(value = "市平台网格员关联名称")
    private String lcMemberName;
    @ApiModelProperty(value = "市平台网格员关联用户id")
    private String lcBindUserId;
    @ApiModelProperty(value = "楼栋id集合")
    private List<Long> buildingIds;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
@@ -68,7 +68,13 @@
    private Long gridMemberId;
    @ApiModelProperty(value = "市平台网格员关联id")
    private Long lcMemberId;
    private String lcMemberId;
    @ApiModelProperty(value = "市平台网格员关联名称")
    private String lcMemberName;
    @ApiModelProperty(value = "市平台网格员关联用户id")
    private String lcBindUserId;
    @ApiModelProperty(value = "楼栋id集合")
    private List<Long> buildingIds;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java
New file
@@ -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 java.util.List;
/**
 * 创建表单
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-05-26
 * */
@Data
@ApiModel("修改网格员状态请求参数")
public class LcGridMemberDTO {
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "工号或者名字", example = "")
    private String param;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java
New file
@@ -0,0 +1,148 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.google.common.collect.Lists;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
 * @description: 批量导入实有人口
 * @author: llming
 */
@Data
@EncryptDecryptClass
public class ComMngPopulationMistakeExcelVO implements Serializable {
    @ExcelProperty(value = "姓名", index = 0)
    private String name;
    @EncryptDecryptField
    private String cardNo;
    @ExcelProperty(value = "民族", index = 2)
    private String nation;
    @ExcelProperty(value = "政治面貌(群众/中共党员/共青团员)", index = 3)
    private String politicalOutlook;
    @ExcelProperty(value = "是否租住", index = 4)
    private String isRent;
    @ExcelProperty(value = "与户主关系(户主/配偶/子女/孙女/父母/其他)", index = 5)
    private String relation;
    @ExcelProperty(value = "街/路/巷", index = 6)
    private String road;
    @ExcelProperty(value = "小区号(政府对于每个小区都有特定编号)", index = 7)
    private String doorNo;
    @ExcelProperty(value = "楼排号", index = 8)
    private String floor;
    @ExcelProperty(value = "单元号", index = 9)
    private String unitNo;
    @ExcelProperty(value = "户室(四位数表示。前两位楼层,后两位户号)", index = 10)
    private String houseNo;
    @ExcelProperty(value = "建筑用途", index = 11)
    private String buildPurpose;
    @ExcelProperty(value = "建筑面积", index = 12)
    private String buildArea;
    @ExcelProperty(value = "房屋状态(自住/租住/其他)", index = 13)
    private String houseStatus;
    @ExcelProperty(value = "房屋用途(住宅/公寓/宿舍/仓库/其他)", index = 14)
    private String housePurpose;
    @ExcelProperty(value = "管控状态(常规/关注/管控)", index = 15)
    private String controlStatus;
    @ExcelProperty(value = "联系方式", index = 16)
    private String phone;
    @ExcelProperty(value = "籍贯", index = 17)
    private String nativePlace;
    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 18)
    private String cultureLevel;
    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 19)
    private String marriage;
    @ExcelProperty(value = "健康状况", index = 20)
    private String healthy;
    @ExcelProperty(value = "血型", index = 21)
    private String bloodType;
    @ExcelProperty(value = "宗教信仰", index = 22)
    private String religion;
    @ExcelProperty(value = "职业", index = 23)
    private String profession;
    @ExcelProperty(value = "工作单位/学校", index = 24)
    private String workCompany;
    @ExcelProperty(value = "本地/外地", index = 25)
    private String outOrLocal;
    @ExcelProperty(value = "户口所在地", index = 26)
    private String censusRegister;
    @ExcelProperty(value = "是否居住地(是/否)", index = 27)
    private String residence;
//    @ExcelProperty(value = "居住地址", index = 28)
//    private String address;
    @ExcelProperty(value = "人员类型(户籍人员/留守人员/外地人员/境外人员)", index = 28)
    private String personType;
    @ExcelProperty(value = "国家", index = 29)
    private String country;
    @ExcelProperty(value = "离开日期(境外人员填写)", index = 30)
    private String StringOfDeparture;
    @ExcelProperty(value = "人员状态(正常/失联/出国)", index = 31)
    private String personStatus;
    @ExcelProperty(value = "月收入情况", index = 32)
    private String monthlyIncome;
    @ExcelProperty(value = "家庭情况", index = 33)
    private String familyStatus;
    @ExcelProperty(value = "来华目的(境外人员填写)", index = 34)
    private String goalInChina;
    @ExcelProperty(value = "抵达日期(境外人员填写)", index = 35)
    private String StringOfArrival;
    @ExcelProperty(value = "备注", index = 36)
    private String remark;
    @ExcelProperty(value = "证件照(人面像)照片", index = 37)
    private String idCardPositive;
    @ExcelProperty(value = "证件照(国徽面)照片", index = 38)
    private String idCardBack;
    @ExcelProperty(value = "户口本照片", index = 39)
    private String houseHold;
    @ExcelProperty(value = "是否死亡(是/否)", index = 40)
    private String death;
    @ExcelProperty(value = "错误信息", index = 41)
    private String mistake;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -172,6 +172,9 @@
    @ExcelProperty(value = "特殊情况(重大病史/孕)(是/否)", index = 49)
    private Integer specialCase;
    @ExcelProperty(value = "错误信息", index = 50)
    private Integer mistake;
    /**
     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行MD5加密实现去重
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java
New file
@@ -0,0 +1,59 @@
package com.panzhihua.common.model.vos.community;
import com.alibaba.excel.annotation.ExcelProperty;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import lombok.Data;
import java.io.Serializable;
/**
 * @description: 批量导出隐患报告台账管理
 * @author: Null
 * @date: 2021/7/28 17:11
 */
@Data
public class ComSwDangerReportExcelVO implements Serializable {
    /**
     * 小区名称
     */
    @ExcelProperty(value = "安全隐患地址" ,index = 0)
    private String address;
    /**
     * 隐患简述
     */
    @ExcelProperty(value = "隐患简述" ,index = 1)
    private String dagerDescription;
    /**
     * 隐患类型
     */
    @ExcelProperty(value = "隐患类型" ,index = 2)
    private String dangerType;
    /**
     * 风险等级
     */
    @ExcelProperty(value = "风险等级" ,index = 3)
    private String dangerLevel;
    /**
     * 巡查人员
     */
    @ExcelProperty(value = "巡查人员" ,index = 4)
    private String patrolPerson;
    /**
     * 联系电话
     */
    @ExcelProperty(value = "联系电话" ,index = 5)
    private String patrolPersonPhone;
    /**
     * 备注
     */
    @ExcelProperty(value = "备注" ,index = 6)
    private String remark;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java
New file
@@ -0,0 +1,267 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录实体类
 */
@Data
@ApiModel("隐患报告表")
public class ComSwDangerReportVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 隐患报告id
     */
    @ApiModelProperty("隐患报告id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long communityId;
    /**
     * 巡查时间
     */
    @ApiModelProperty("巡查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date PatrolTime;
    /**
     * 天气
     */
    @ApiModelProperty("天气")
    private String weather;
    /**
     * 温度
     */
    @ApiModelProperty("温度")
    private String temperature;
    /**
     * 风
     */
    @ApiModelProperty("风")
    private String wind;
    /**
    * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
    */
    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
    private String patrolType;
    /**
    * 巡查人员,多个以逗号隔开
    */
    @ApiModelProperty("巡查人员,多个以逗号隔开")
    private String patrolPerson;
    /**
     * 巡查人员联系电话,多个以逗号隔开
     */
    @ApiModelProperty("巡查人员联系电话,多个以逗号隔开")
    private String patrolPersonPhone;
    /**
     * 巡查地址
     */
    @ApiModelProperty("巡查地址")
    private String address;
    /**
    * 巡查记录
    */
    @ApiModelProperty("巡查记录")
    private String recordContent;
    /**
    * 发现记录
    */
    @ApiModelProperty("发现记录")
    private String findRecord;
    /**
    * 记录照片
    */
    @ApiModelProperty("记录照片")
    private String recordPhoto;
    /**
    * 备注
    */
    @ApiModelProperty("备注")
    private String remark;
    /**
    * 隐患名称
    */
    @ApiModelProperty("隐患名称")
    private String dagerName;
    /**
    * 排查时间
    */
    @ApiModelProperty("排查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date checkTime;
    /**
    * 主体部门、单位或个人全称
    */
    @ApiModelProperty("主体部门、单位或个人全称")
    private String unitName;
    /**
    * 隐患简述
    */
    @ApiModelProperty("隐患简述")
    private String dagerDescription;
    /**
     * 隐患编号
     */
    @ApiModelProperty("隐患编号")
    private Integer dangerNo;
    /**
     * 隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)
     */
    @ApiModelProperty("隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)")
    private String dangerType;
    /**
     * 状态(1.待查看 2.待处理 3.待整改 4.已整改)
     */
    @ApiModelProperty("状态(1.待处理 2.待整改 3.已整改)")
    private String status;
    /**
     * 风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)
     */
    @ApiModelProperty("风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)")
    private String dangerLevel;
    /**
    * 采取措施
    */
    @ApiModelProperty("采取措施")
    private String takeSteps;
    /**
    * 采取措施照片
    */
    @ApiModelProperty("采取措施照片")
    private String stepsPhoto;
    /**
    * 整改人员
    */
    @ApiModelProperty("整改人员")
    private String rectifyPerson;
    /**
     * 整改人员联系电话,多个以逗号隔开
     */
    @ApiModelProperty("整改人员联系电话,多个以逗号隔开")
    private String rectifyPersonPhone;
    /**
     * 整改时间
     */
    @ApiModelProperty("整改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date rectifyTime;
    /**
     * 社区处理建议
     */
    @ApiModelProperty("社区处理建议")
    private String communitySuggestion;
    /**
     * 街道安全人员管理建议
     */
    @ApiModelProperty("街道安全人员管理建议")
    private String streetSuggestion;
    /**
     * 承办记录
     */
    @ApiModelProperty("承办记录")
    private String undertakeRecord;
    /**
     * 领导意见
     */
    @ApiModelProperty("领导意见")
    private String leaderSuggestion;
    /**
     * 指派人员
     */
    @ApiModelProperty("指派人员")
    private String assignPerson;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;
    /**
     * 是否指派
     */
    @ApiModelProperty("是否指派(1.是 0.否)")
    private Integer isAssign;
    /**
     * 巡查类型
     */
    public interface patrolType{
        int huo = 1;
        int xun = 2;
        int yi = 3;
    }
    /**
     * 是否
     */
    public interface isOk{
        int yes = 1;
        int no = 0;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.common.model.vos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 巡查记录统计返回参数
 */
@Data
@ApiModel("巡查记录统计返回参数")
public class ComSwPatrolRecordStatisticsVO {
    /**
     * 巡查记录总数
     */
    @ApiModelProperty("巡查记录总数")
    private Long patrolRecordTotal;
    /**
     * 防火巡查
     */
    @ApiModelProperty("防火巡查")
    private Integer localTotal;
    /**
     * 防汛巡查
     */
    @ApiModelProperty("防汛巡查")
    private Integer outTotal;
    /**
     * 防疫巡查
     */
    @ApiModelProperty("防疫巡查")
    private Integer specialTotal;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java
New file
@@ -0,0 +1,234 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录实体类
 */
@Data
@ApiModel("巡查记录表")
public class ComSwPatrolRecordVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 巡查记录id
     */
    @ApiModelProperty("巡查记录id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long communityId;
    /**
     * 报告id
     */
    @ApiModelProperty("报告id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long reportId;
    /**
     * 巡查时间
     */
    @ApiModelProperty("巡查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date patrolTime;
    /**
     * 天气
     */
    @ApiModelProperty("天气")
    private String weather;
    /**
     * 温度
     */
    @ApiModelProperty("温度")
    private String temperature;
    /**
     * 风
     */
    @ApiModelProperty("风")
    private String wind;
    /**
    * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
    */
    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
    private String patrolType;
    /**
    * 巡查领导
    */
    @ApiModelProperty("巡查领导")
    private String patrolLeader;
    /**
    * 巡查人员
    */
    @ApiModelProperty("巡查人员")
    private String patrolPerson;
    /**
     * 巡查地址
     */
    @ApiModelProperty("巡查地址")
    private String address;
    /**
    * 巡查记录
    */
    @ApiModelProperty("巡查记录")
    private String recordContent;
    /**
    * 发现记录
    */
    @ApiModelProperty("发现记录")
    private String findRecord;
    /**
    * 记录照片
    */
    @ApiModelProperty("记录照片")
    private String recordPhoto;
    /**
    * 备注
    */
    @ApiModelProperty("备注")
    private String remark;
    /**
    * 接班领导
    */
    @ApiModelProperty("接班领导")
    private String successionLeader;
    /**
    * 接班人员
    */
    @ApiModelProperty("接班人员")
    private String successionPerson;
    /**
    * 接班时间
    */
    @ApiModelProperty("接班时间")
    private Date successionTime;
    /**
    * 是否存在隐患(1是 、0否)
    */
    @ApiModelProperty("是否存在隐患(1是 、0否)")
    private Integer isHiddenDanger;
    /**
    * 隐患名称
    */
    @ApiModelProperty("隐患名称")
    private String dagerName;
    /**
    * 排查时间
    */
    @ApiModelProperty("排查时间")
    private Date checkTime;
    /**
    * 主体部门、单位或个人全称
    */
    @ApiModelProperty("主体部门、单位或个人全称")
    private String unitName;
    /**
    * 隐患简述
    */
    @ApiModelProperty("隐患简述")
    private String dagerDescription;
    /**
    * 是否立即整改(1是 、0否)
    */
    @ApiModelProperty("是否立即整改(1是 、0否)")
    private Integer isRectifyImmediately;
    /**
    * 采取措施
    */
    @ApiModelProperty("采取措施")
    private String takeSteps;
    /**
    * 采取措施照片
    */
    @ApiModelProperty("采取措施照片")
    private String stepsPhoto;
    /**
    * 整改人员
    */
    @ApiModelProperty("整改人员")
    private String rectifyPerson;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;
    /**
     * 安全记录/隐患报告显示按钮
     */
    @ApiModelProperty("安全记录/隐患报告显示按钮(1.查看安全工作记录 2.隐患报告待填写 3.查看隐患报告)")
    private Integer displayButton;
    /**
     * 巡查类型
     */
    public interface patrolType{
        int huo = 1;
        int xun = 2;
        int yi = 3;
    }
    /**
     * 是否
     */
    public interface isOk{
        int yes = 1;
        int no = 0;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
New file
@@ -0,0 +1,135 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录实体类
 */
@Data
@ApiModel("安全工作记录表")
public class ComSwSafetyWorkRecordVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 安全工作记录id
     */
    @ApiModelProperty("巡查记录id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 社区id
     */
    @ApiModelProperty("社区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long communityId;
    /**
     * 巡查时间
     */
    @ApiModelProperty("巡查时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date PatrolTime;
    /**
     * 天气
     */
    @ApiModelProperty("天气")
    private String weather;
    /**
     * 温度
     */
    @ApiModelProperty("温度")
    private String temperature;
    /**
     * 风
     */
    @ApiModelProperty("风")
    private String wind;
    /**
    * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
    */
    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
    private String patrolType;
    /**
    * 巡查人员
    */
    @ApiModelProperty("巡查人员")
    private String patrolPerson;
    /**
     * 巡查地址
     */
    @ApiModelProperty("巡查地址")
    private String address;
    /**
    * 巡查记录
    */
    @ApiModelProperty("巡查记录")
    private String recordContent;
    /**
    * 发现记录
    */
    @ApiModelProperty("发现记录")
    private String findRecord;
    /**
    * 记录照片
    */
    @ApiModelProperty("记录照片")
    private String recordPhoto;
    /**
    * 备注
    */
    @ApiModelProperty("备注")
    private String remark;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    /**
    * 更新时间
    */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;
    /**
     * 巡查类型
     */
    public interface patrolType{
        int huo = 1;
        int xun = 2;
        int yi = 3;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.community.screen.civil;
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;
@@ -24,6 +26,7 @@
    private String villageImages;
    @ApiModelProperty("小区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long villageId;
    @ApiModelProperty("总户数")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
@@ -32,7 +32,11 @@
    @ApiModelProperty(value = "网格员上班结束时间")
    private Integer workEndTime;
    @ApiModelProperty(value = "市平台网格员关联id")
    private Long lcMemberId;
    private String lcMemberId;
    @ApiModelProperty(value = "市平台网格员关联名称")
    private String lcMemberName;
    @ApiModelProperty(value = "浪潮网格员绑定的用户ID")
    private String lcBindUserId;
    @ApiModelProperty(value = "网格员关联楼栋信息")
    private List<GridMemberBuildingVO> memberBuildingList;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java
@@ -17,5 +17,7 @@
    private String lcGridMemberId;
    @ApiModelProperty(value = "市平台网格员名称")
    private String lcGridMemberName;
    @ApiModelProperty(value = "浪潮网格员绑定的用户ID")
    private String lcBindUserId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java
New file
@@ -0,0 +1,71 @@
package com.panzhihua.common.model.vos.grid.admin.excel;
import com.alibaba.excel.annotation.ExcelProperty;
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导出")
public class GridMemberWorkExportExcelVO implements Serializable {
    @ExcelProperty(value = "网格员名称" ,index = 0)
    private String nickName;
    @ExcelProperty(value = "发布突发事件" ,index = 1)
    private Integer addTFTotal;
    @ExcelProperty(value = "处理突发事件" ,index = 2)
    private Integer handleTFTotal;
    @ExcelProperty(value = "发布矛盾纠纷" ,index = 3)
    private Integer addMDTotal;
    @ExcelProperty(value = "处理矛盾纠纷" ,index = 4)
    private Integer handleMDTotal;
    @ExcelProperty(value = "发布治安隐患" ,index = 5)
    private Integer addZATotal;
    @ExcelProperty(value = "小区名字" ,index = 6)
    private Integer handleZATotal;
    @ExcelProperty(value = "发布不稳定因素" ,index = 7)
    private Integer addBWDTotal;
    @ExcelProperty(value = "处理不稳定因素" ,index = 8)
    private Integer handleBWDTotal;
    @ExcelProperty(value = "发布公共服务" ,index = 9)
    private Integer addGGTotal;
    @ExcelProperty(value = "处理公共服务" ,index = 10)
    private Integer handleGGTotal;
    @ExcelProperty(value = "发布特殊人群" ,index = 11)
    private Integer addTSTotal;
    @ExcelProperty(value = "处理特殊人群" ,index = 12)
    private Integer handleTSTotal;
    @ExcelProperty(value = "完成走访任务" ,index = 13)
    private Integer handleZFTotal;
    @ExcelProperty(value = "处理随手拍" ,index = 14)
    private Integer easyPhotoTotal;
    @ExcelProperty(value = "发布宣传教育" ,index = 15)
    private Integer propagandaEducationTotal;
    @ExcelProperty(value = "新增居民数" ,index = 16)
    private Integer addResidentTotal = 0;
    @ExcelProperty(value = "新增实有房屋数" ,index = 17)
    private Integer addHouseTotal = 0;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java
@@ -23,4 +23,8 @@
    private Integer countPerson;
    @ApiModelProperty(value = "社区id",hidden = true)
    private Long communityId;
    @ApiModelProperty(value = "分页-当前页数",example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数",example = "10")
    private Long pageSize = 10L;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
@@ -72,4 +72,16 @@
    @ApiOperation(value = "自动上传重点人员和流动人员走访记录")
    @GetMapping("lc/auto/upload/visit_record")
    void automationUploadVisitRecord();
    @ApiOperation(value = "获取所有或者根据姓名和工号查询,分页")
    @GetMapping("lc/event/getGridMemberListByAreaIdOrName")
    R getGridMemberListByAreaIdOrName(@RequestParam("areaId") String areaId,@RequestParam("param") String param,@RequestParam("pageNum") Long pageNum,@RequestParam("pageSize") Long pageSize);
    @ApiOperation(value = "获取指定区域网格树形列表,不包括具体的网格数据")
    @GetMapping("lc/grid/tree")
    R getGridTreeByAreaId(@RequestParam("areaId") String areaId);
    @ApiOperation(value = "获取指定区域网格列表")
    @GetMapping("lc/grid/list")
    R getGridDataListByAreaId(@RequestParam("areaId") String areaId);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -42,6 +42,7 @@
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 io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@@ -117,7 +118,7 @@
     * @return 详情
     */
    @PostMapping("detailactivity")
    R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId);
    /**
     * 分页活动报名名单
@@ -1442,7 +1443,7 @@
     * @return
     */
    @PostMapping("/common/data/car/export")
    R exportRealCar(ExportComMngCarExcelDTO exportComMngCarExcelDTO);
    R exportRealCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO);
    /**
     * 社区后台实有单位管理列表
@@ -3727,4 +3728,116 @@
     */
    @PostMapping("/easyphoto/readUserReward")
    R readUserReward(@RequestParam("userId") Long userId,@RequestParam("communityId") Long communityId);
    /**
     * 分页查询巡查记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 分页集合
     */
    @PostMapping("/patrolRecord/page")
    R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 新增巡查记录
     * @param comSwPatrolRecordAddDTO 新增参数
     * @return 新增结果
     */
    @PostMapping("/patrolRecord/addPatrolRecord")
    R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO);
    /**
     * 根据巡查记录id查询详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 巡查记录详情查询结果
     */
    @PostMapping("/patrolRecord/detail")
    R detailPatrolRecord(@RequestParam("patrolRecordId") Long patrolRecordId);
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    @PostMapping("/patrolRecord/safetyWorkRecord/page")
    R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 根据安全工作记录id查询详情
     *
     * @param safetyWorkRecordId 安全工作记录
     * @return 安全工作记录详情查询结果
     */
    @PostMapping("/patrolRecord/safetyWorkRecord/detail")
    R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId);
    /**
     * 根据巡查记录id查询安全工作记录详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 安全工作记录详情查询结果
     */
    @PostMapping("/patrolRecord/safetyWorkRecord/detailByPrId")
    R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId);
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    @PostMapping("/patrolRecord/dangerReport/page")
    R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    @PostMapping("/patrolRecord/dangerReport/detail")
    R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId);
    /**
     * 根据巡查记录id查询隐患报告详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 隐患报告详情查询结果
     */
    @PostMapping("/patrolRecord/dangerReport/detailByPrId")
    R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId);
    /**
     * 处理隐患报告
     *
     * @param comSwDangerReportHandleDTO 隐患报告处理参数
     * @return 处理结果
     */
    @PostMapping("/patrolRecord/dangerReport/handle")
    R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO);
    /**
     * 整改隐患报告
     *
     * @param comSwDangerReportRectifyDTO 隐患报告整改参数
     * @return 整改结果
     */
    @PostMapping("/patrolRecord/dangerReport/rectify")
    R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO);
    /**
     * 隐患报告台账导出
     *
     * @param dangerReportIds
     * @return
     */
    @PostMapping("/patrolRecord/dangerReport/export")
    R exportDangerReport(@RequestBody List<Long> dangerReportIds);
    /**
     * 巡查记录统计接口
     *
     * @return 统计结果
     */
    @PostMapping("/patrolRecord/statistics")
    R patrolRecordStatistics(@RequestParam(value = "communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -956,7 +956,7 @@
     * @return 网格统计数据
     */
    @PostMapping("/statistics/getGridEventStatistics")
    R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId);
    R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId,@RequestParam("userId") Long userId);
    /**
     * 查询网格事件统计数据
@@ -1257,4 +1257,12 @@
     */
    @GetMapping("/screen/village/statistics")
    R civilVillageStatistics(@RequestParam("villageId") Long villageId);
    /**
     * 查询所有网格员工作汇总数据
     * @param statisticsAdminDTO    请求参数
     * @return  网格员工作汇总数据
     */
    @PostMapping("/statistics/admin/gridMemberStatisticsAll")
    R gridMemberStatisticsAll(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java
@@ -39,7 +39,7 @@
     * @return 党组织集合
     */
    @PostMapping("/partybuildIng/listpartyorganizationAll")
    R listPartyOrganizationAll(@RequestParam("communityId") Long communityId);
    R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO);
    
    /**
     * 新增党支部
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
New file
@@ -0,0 +1,258 @@
package com.panzhihua.community_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.JSONArray;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.SFTPUtil;
import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
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.transaction.annotation.Transactional;
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;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录前端控制器
 */
@Slf4j
@Api(tags = {"社区管理/安全工作"})
@RestController
@RequestMapping("/patrolRecord")
public class ComSwPatrolRecordApi 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;
    /**
     * 分页查询巡查记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 分页集合
     */
    @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class)
    @PostMapping("/pagePatrolRecord")
    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pagePatrolRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 新增巡查记录
     * @param comSwPatrolRecordAddDTO 新增参数
     * @return 新增结果
     */
    @ApiOperation(value = "新增巡查记录")
    @PostMapping("/addPatrolRecord")
    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordAddDTO.setCommunityId(communityId);
        return communityService.addPatrolRecord(comSwPatrolRecordAddDTO);
    }
    /**
     * 根据巡查记录id查询详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 巡查记录详情查询结果
     */
    @ApiOperation(value = "根据巡查记录id查询详情")
    @PostMapping("/detailPatrolRecord")
    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return communityService.detailPatrolRecord(patrolRecordId);
    }
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    @ApiOperation(value = "分页查询安全工作记录")
    @PostMapping("/pageSafetyWorkRecord")
    public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据安全工作记录id查询详情
     *
     * @param safetyWorkRecordId 安全工作记录
     * @return 安全工作记录详情查询结果
     */
    @ApiOperation(value = "根据安全工作记录id查询详情")
    @PostMapping("/detailSafetyWorkRecord")
    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) {
        return communityService.detailSafetyWorkRecord(safetyWorkRecordId);
    }
    /**
     * 根据巡查记录id查询安全工作记录详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 安全工作记录详情查询结果
     */
    @ApiOperation(value = "根据巡查记录id查询安全工作记录详情")
    @PostMapping("/detailSafetyWorkRecordByPrId")
    public R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return communityService.detailSafetyWorkRecordByPrId(patrolRecordId);
    }
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    @ApiOperation(value = "分页查询隐患报告")
    @PostMapping("/pageDangerReport")
    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        Long communityId = this.getCommunityId();
        comSwPatrolRecordPageDTO.setCommunityId(communityId);
        return communityService.pageDangerReport(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    @ApiOperation(value = "根据隐患报告id查询详情")
    @PostMapping("/detailDangerReport")
    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
        return communityService.detailDangerReport(dangerReportId);
    }
    /**
     * 根据巡查记录id查询隐患报告详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 隐患报告详情查询结果
     */
    @ApiOperation(value = "根据隐患报告id查询详情")
    @PostMapping("/detailDangerReportByPrId")
    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return communityService.detailDangerReportByPrId(patrolRecordId);
    }
    /**
     * 处理隐患报告
     *
     * @param comSwDangerReportHandleDTO 隐患报告处理参数
     * @return 处理结果
     */
    @ApiOperation(value = "处理隐患报告")
    @PostMapping("/handleDangerReport")
    public R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO){
        return communityService.handleDangerReport(comSwDangerReportHandleDTO);
    }
    /**
     * 导出台账-隐患报告
     *
     * @param dangerReportIds 隐患报告ids
     * @return 隐患报告导出结果
     */
    @ApiOperation(value = "导出台账-隐患报告")
    @PostMapping("/danger/export")
    public R exportComMngCar(@RequestBody List<Long> dangerReportIds) {
        String url = excelUrl;
        String name = "隐患报告台账导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
        //导出勾选了的隐患报告,不勾选则导出本页数据
        R r = communityService.exportDangerReport(dangerReportIds);
        if (R.isOk(r)) {
            List<ComSwDangerReportExcelVO> comSwDangerReportExcelVOS = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComSwDangerReportExcelVO.class);
            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 {
                        excelWriter = EasyExcel.write(fileName, ComSwDangerReportExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("隐患报告台账导出数据").build();
                        excelWriter.write(comSwDangerReportExcelVOS, 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(url + name);
            } catch (Exception e) {
                e.printStackTrace();
                log.error("文件传输失败【{}】", e.getMessage());
                return R.fail();
            }
        }
        return R.fail("未查询到隐患报告");
    }
    /**
     * 巡查记录统计接口
     *
     * @return 统计结果
     */
    @ApiOperation(value = "巡查记录统计接口", response = ComSwPatrolRecordStatisticsVO.class)
    @PostMapping("/patrolRecordStatistics")
    public R patrolRecordStatistics() {
        //获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
        return communityService.patrolRecordStatistics(communityId);
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
@@ -9,9 +9,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jcraft.jsch.SftpException;
import com.panzhihua.common.constants.Constants;
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.listen.*;
@@ -21,17 +19,13 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.*;
import com.panzhihua.common.model.vos.user.ComMngTagVO;
import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
import com.panzhihua.common.model.vos.user.InputUserInfoVO;
import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.FileUtil;
import com.panzhihua.common.utlis.SFTPUtil;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.community_backstage.easyexcel.UploadEexcelUserDTOListener;
import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
import com.panzhihua.community_backstage.model.dto.ExcelExportDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
@@ -73,7 +67,8 @@
    @Value("${excel.userurl}")
    private String excelUrl;
    @Value("${excel.carUrl}")
    private String carUrl = "http://panzhihua.nhys.cdnhxx.com/web/%e8%bd%a6%e8%be%86%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
    private String carUrl;
//            = "http://panzhihua.nhys.cdnhxx.com/web/%e8%bd%a6%e8%be%86%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
    @Value("${excel.companyUrl}")
    private String companyUrl = "http://panzhihua.nhys.cdnhxx.com/web/%e5%ae%9e%e6%9c%89%e5%8d%95%e4%bd%8d%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
    @Value("${excel.assetsUrl}")
@@ -119,7 +114,77 @@
    @ApiOperation(value = "下载模板-车辆管理")
    @GetMapping(value = "/car/download/template")
    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
        return R.ok(carUrl);
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "车辆导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    List<List<String>> list = new ArrayList<>();
                    List<String> head0 = new ArrayList<String>();
                    head0.add("小区名称");
                    List<String> head1 = new ArrayList<String>();
                    head1.add("车主姓名");
                    List<String> head2 = new ArrayList<String>();
                    head2.add("身份证号码");
                    List<String> head3 = new ArrayList<String>();
                    head3.add("联系方式");
                    List<String> head4 = new ArrayList<String>();
                    head4.add("车牌号");
                    List<String> head5 = new ArrayList<String>();
                    head5.add("品牌型号");
                    List<String> head6 = new ArrayList<String>();
                    head6.add("车身颜色");
                    list.add(head0);
                    list.add(head1);
                    list.add(head2);
                    list.add(head3);
                    list.add(head4);
                    list.add(head5);
                    list.add(head6);
                    List<List<Object>> dataList = new ArrayList<>();
                    List<Object> data = new ArrayList<>();
                    data.add("蓝湖国际");
                    data.add("张三");
                    data.add("510802199205054112");
                    data.add("13888000088");
                    data.add("川A66666");
                    data.add("大众s9");
                    data.add("黑色");
                    dataList.add(data);
                    EasyExcel.write(fileName).head(list).sheet("车辆导入模板").doWrite(dataList);
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
            return R.ok(excelUrl + "车辆导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "excel导入车辆信息")
@@ -718,10 +783,80 @@
        return communityService.detailComMngRealAssets(id);
    }
    @ApiOperation(value = "下载模板-实有资产导入模板")
    @ApiOperation(value = "下载模板-社区资产导入模板")
    @GetMapping(value = "/assets/download/template")
    public R downloadRealAssetsTemplate(HttpServletResponse response) throws IOException, SftpException {
        return R.ok(assetsUrl);
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "社区资产导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    List<List<String>> list = new ArrayList<>();
                    List<String> head0 = new ArrayList<String>();
                    head0.add("资产名称");
                    List<String> head1 = new ArrayList<String>();
                    head1.add("位置");
                    List<String> head2 = new ArrayList<String>();
                    head2.add("分类");
                    List<String> head3 = new ArrayList<String>();
                    head3.add("占地面积");
                    List<String> head4 = new ArrayList<String>();
                    head4.add("数量");
                    List<String> head5 = new ArrayList<String>();
                    head5.add("建筑类型");
                    List<String> head6 = new ArrayList<String>();
                    head6.add("楼层类型");
                    list.add(head0);
                    list.add(head1);
                    list.add(head2);
                    list.add(head3);
                    list.add(head4);
                    list.add(head5);
                    list.add(head6);
                    List<List<Object>> dataList = new ArrayList<>();
                    List<Object> data = new ArrayList<>();
                    data.add("张三");
                    data.add("位置");
                    data.add("公共设施");
                    data.add("500");
                    data.add("100");
                    data.add("社区");
                    data.add("高层");
                    dataList.add(data);
                    EasyExcel.write(fileName).head(list).sheet("社区资产导入模板").doWrite(dataList);
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
            return R.ok(excelUrl + "社区资产导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "excel导入实有资产信息")
@@ -740,14 +875,14 @@
        return R.ok();
    }
    @ApiOperation(value = "实有资产Excel")
    @ApiOperation(value = "社区资产导出数据")
    @PostMapping("/assets/export")
    public R exportRealAssets(@RequestBody ExportRealAssetsExcelDTO exportRealAssetsExcelDTO) {
        exportRealAssetsExcelDTO.setCommunityId(this.getCommunityId());
        String url = excelUrl;
//        String uuid = UUID.randomUUID().toString().replace("-", "");
//        String name = uuid + ".xlsx";
        String name = "实有资产导出数据.xlsx";
        String name = "社区资产导出数据.xlsx";
        String ftpUrl = "/mnt/data/web/excel/";
//        用户搜索了就下载搜索的用户否则下载所有用户
        R r = communityService.exportRealAssets(exportRealAssetsExcelDTO);
@@ -765,7 +900,7 @@
                    InputStream inputStream = null;
                    try {
                        excelWriter = EasyExcel.write(fileName, ComMngRealAssetsExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).registerWriteHandler(new CustomSheetWriteHandler()).build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("实有单位导出").build();
                        WriteSheet writeSheet = EasyExcel.writerSheet("社区资产导出").build();
                        excelWriter.write(eexcelUserDTOS, writeSheet);
                        excelWriter.finish();
                        File file = new File(fileName);
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -314,9 +314,6 @@
                            log.info("新增微心愿未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
                        }
                    } else if (type.intValue() == 5) {
                        if(comActMicroWishVO.getFeedback().length() > 200){
                            return R.fail("反馈字数不得超过200字");
                        }
                        sysUserNoticeVO.setTitle("微心愿已完成");
                        sysUserNoticeVO.setBusinessContent(comActMicroWishVO.getFeedback());
                        sysUserNoticeVO.setBusinessStatus(2);
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -97,11 +97,12 @@
    }
    @ApiOperation(value = "社区所有党组织列表", response = PartyOrganizationVO.class)
    @GetMapping("listpartyorganizationAll")
    public R listPartyOrganizationAll() {
    @PostMapping("listpartyorganizationAll")
    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO) {
        Long communityId = this.getCommunityId();
        partyOrganizationVO.setCommunityId(communityId);
        log.info("社区所有党组织社区id【{}】", communityId);
        return partyBuildingService.listPartyOrganizationAll(communityId);
        return partyBuildingService.listPartyOrganizationAll(partyOrganizationVO);
    }
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -90,7 +90,7 @@
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, this.getCommunityId());
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, this.getCommunityId(),userName,password,host,port,excelUrl);
            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
@@ -134,7 +134,7 @@
        try {
            Long communityId = Long.valueOf(request.getParameter("communityId"));
            inputStream = file.getInputStream();
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, communityId);
            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(communityService, communityId,userName,password,host,port,excelUrl);
            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
        } catch (IOException e) {
            log.error("导入模板失败【{}】", e.getMessage());
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
@@ -34,6 +34,10 @@
    private List<PartyBuildingMemberExcelVO> list = new ArrayList<>();
    @Override
    public void invoke(PartyBuildingMemberExcelVO partyBuildingMemberExcelVO, AnalysisContext analysisContext) {
        Boolean isRepeat = list.stream().anyMatch(v -> v.getIdCard().equals(partyBuildingMemberExcelVO.getIdCard()));
        if(isRepeat){
            throw new PartyBuildingMemberException("导入失败,存在多个相同身份证号:" + partyBuildingMemberExcelVO.getIdCard());
        }
        list.add(partyBuildingMemberExcelVO);
        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
        if(list.size() >= BATCH_COUNT){
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java
@@ -2,6 +2,7 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.ComMapGridDetailVO;
import com.panzhihua.common.model.vos.grid.GridEventStatisticsDetailVO;
@@ -24,10 +25,14 @@
    @ApiOperation(value = "根据网格id查询统计详情-lyq",response = GridEventStatisticsVO.class)
    @PostMapping("event")
    public R getGridDetail(@RequestParam("gridId") Long gridId){
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo == null){
            return R.fail("请先登录");
        }
        if(gridId == null){
            return R.fail("参数错误");
        }
        return gridService.getGridEventStatisticsByApp(gridId);
        return gridService.getGridEventStatisticsByApp(gridId,loginUserInfo.getUserId());
    }
    @ApiOperation(value = "网格id查询统计事件详情-lyq",response = GridEventStatisticsDetailVO.class)
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
@@ -1,15 +1,19 @@
package com.panzhihua.grid_backstage.api;
import com.alibaba.fastjson.JSONArray;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.api.GridMemberPageListDTO;
import com.panzhihua.common.model.dtos.grid.*;
import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
import com.panzhihua.common.model.dtos.grid.admin.LcGridMemberDTO;
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.api.ApiServiceFeign;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.DateUtils;
@@ -22,6 +26,7 @@
import com.panzhihua.common.service.grid.GridService;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@@ -41,6 +46,8 @@
    private GridService gridService;
    @Resource
    private UserService userService;
    @Resource
    private ApiServiceFeign apiService;
    /**
     * 网格员分页查询
@@ -116,9 +123,23 @@
    }
    @ApiOperation(value = "查询市平台网格员列表",response = GridMemberLcListVO.class)
    @GetMapping("/member/lc/list")
    public R gridMemberLcList(){
        return gridService.gridMemberLcList();
    @PostMapping("/member/lc/list/noToken")
    public R gridMemberLcList(@RequestBody LcGridMemberDTO memberDTO){
        List<GridMemberLcListVO> gridMemberLcList = new ArrayList<>();
        R r = apiService.getGridMemberListByAreaIdOrName("jhRxqEQp",memberDTO.getParam(),memberDTO.getPageNum(),memberDTO.getPageSize());
        if(R.isOk(r)){
            List<GridMemberPageListDTO> memberList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), GridMemberPageListDTO.class);
            if(!memberList.isEmpty()){
                memberList.forEach(member -> {
                    GridMemberLcListVO memberLcListVO = new GridMemberLcListVO();
                    memberLcListVO.setLcBindUserId(member.getBindUserId());
                    memberLcListVO.setLcGridMemberId(member.getId());
                    memberLcListVO.setLcGridMemberName(member.getName());
                    gridMemberLcList.add(memberLcListVO);
                });
            }
        }
        return R.ok(gridMemberLcList);
    }
    @ApiOperation(value = "添加网格员时级联列表",response = GridMemberCascadeVO.class)
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
@@ -6,6 +6,7 @@
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.api.ApiServiceFeign;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.StringUtils;
@@ -36,6 +37,8 @@
    private GridService gridService;
    @Resource
    private CommunityService communityService;
    @Resource
    private ApiServiceFeign apiService;
    @ApiOperation(value = "网格分页查询", response = EventGridAdminVO.class)
    @PostMapping("/event/list")
@@ -100,9 +103,15 @@
    }
    @ApiOperation(value = "查询所有关联市平台列表",response = EventLcGridAdminVO.class)
    @GetMapping("/lc/grid/list")
    public R getLcGridLists(){
        return gridService.getLcGridLists();
    @GetMapping("/lc/grid/list/noToken")
    public R getLcGridLists(@RequestParam("areaId") String areaId){
        return apiService.getGridDataListByAreaId(areaId);
    }
    @ApiOperation(value = "查询西区所有关联市平台树形结构列表",response = EventLcGridAdminVO.class)
    @GetMapping("/lc/grid/tree/list/noToken")
    public R getLcGridTreeLists(){
        return apiService.getGridTreeByAreaId("jhRxqEQp");
    }
}
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
@@ -1,6 +1,12 @@
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.MemberStatisticsAdminDTO;
import com.panzhihua.common.model.dtos.grid.PageEventManageDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
@@ -8,15 +14,25 @@
import com.panzhihua.common.model.vos.grid.EventStatisticsAllAdminVO;
import com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO;
import com.panzhihua.common.model.vos.grid.EventVO;
import com.panzhihua.common.model.vos.grid.admin.excel.ComMngVillageExportExcelVO;
import com.panzhihua.common.model.vos.grid.admin.excel.GridMemberWorkExportExcelVO;
import com.panzhihua.common.service.grid.GridService;
import com.panzhihua.common.utlis.ClazzUtils;
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.validation.annotation.Validated;
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;
/**
 * 统计模块
@@ -26,6 +42,21 @@
@RequestMapping("/statistics/")
@Api(tags = {"统计模块 @lyq"})
public class StatisticsApi extends BaseController {
    // 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;
    @Resource
    private GridService gridService;
@@ -53,4 +84,68 @@
        return gridService.gridMemberStatistics(statisticsAdminDTO);
    }
    @ApiOperation(value = "网格员统计导出")
    @PostMapping("/gridMemberStatistics/export")
    public R gridMemberStatisticsExport(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO){
//        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
//        if(loginUserInfoVO == null){
//            return R.fail("请先登录");
//        }
//        gridService.gridMemberStatistics(statisticsAdminDTO);
        //生成动态模板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<EventStatisticsMemberAdminVO> populList = JSON.parseArray(JSON.toJSONString(gridService.gridMemberStatisticsAll(statisticsAdminDTO).getData()), EventStatisticsMemberAdminVO.class);
                    List<GridMemberWorkExportExcelVO> workExportExcelList = new ArrayList<>();
                    if(!populList.isEmpty()){
                        populList.forEach(popul -> {
                            GridMemberWorkExportExcelVO workExportExcelVO = new GridMemberWorkExportExcelVO();
                            BeanUtils.copyProperties(popul,workExportExcelVO);
                            workExportExcelList.add(workExportExcelVO);
                        });
                    }
                    excelWriter = EasyExcel.write(fileName, GridMemberWorkExportExcelVO.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("网格员工作情况汇总数据").build();
                    excelWriter.write(workExportExcelList, 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();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
@@ -104,9 +104,9 @@
     */
    @ApiOperation(value = "获取所有或者根据姓名和工号查询,分页")
    @GetMapping("lc/event/getGridMemberListByAreaIdOrName")
    public R getGridMemberListByAreaIdOrName(String areaId,String param) {
    public R getGridMemberListByAreaIdOrName(String areaId,String param,Long pageNum,Long pageSize) {
        try {
            return R.ok(lcApiService.getGridMemberListByAreaIdOrName(areaId,param));
            return R.ok(lcApiService.getGridMemberListByAreaIdOrName(areaId,param,pageNum,pageSize));
        } catch (Exception e) {
            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
        }
@@ -114,7 +114,26 @@
    }
    /**
     * description 获取指定区域网格列表
     * description 获取指定区域网格列表,树形结构。不包括具体的网格数据。
     *
     * @param areaId 区域ID
     * @return String 事件信息
     * @author manailin
     * @date 2021/6/10 17:00
     */
    @ApiOperation(value = "获取指定区域网格树形列表,不包括具体的网格数据")
    @GetMapping("lc/grid/tree")
    public R getGridTreeByAreaId(String areaId) {
        try {
            return R.ok(lcApiService.getGridTreeByAreaId(areaId));
        } catch (Exception e) {
            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
        }
        return R.ok(Collections.emptyList());
    }
    /**
     * description 获取指定区域网格数据列表
     *
     * @param areaId 区域ID
     * @return String 事件信息
@@ -123,16 +142,14 @@
     */
    @ApiOperation(value = "获取指定区域网格列表")
    @GetMapping("lc/grid/list")
    public R getGridListByAreaId(String areaId) {
    public R getGridDataListByAreaId(String areaId) {
        try {
            return R.ok(lcApiService.getGridListByAreaId(areaId));
            return R.ok(lcApiService.getGridDataListByAreaId(areaId));
        } catch (Exception e) {
            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
        }
        return R.ok(Collections.emptyList());
    }
    /**
     * description 流动人口 走访详情
     *
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
@@ -77,8 +77,17 @@
     * @author manailin
     * @date 2021/6/10 17:00
     */
    List<LcGridData> getGridListByAreaId(String areaId);
    List<LcGridData> getGridTreeByAreaId(String areaId);
    /**
     * description 获取指定区域网格列表,直接返回网格列表
     *
     * @param areaId 区域ID
     * @return String 事件信息
     * @author manailin
     * @date 2021/6/10 17:00
     */
    List<LcGridData> getGridDataListByAreaId(String areaId);
    /**
     * description 获取所有或者根据姓名和工号查询,分页
     *
@@ -88,7 +97,7 @@
     * @author manailin
     * @date 2021/6/10 17:00
     */
    List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param);
    List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param,Long pageNum,Long pageSize);
    /**
     * description 提交事件登记关联的文件或者图片信息
springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
@@ -24,6 +24,7 @@
import com.panzhihua.common.service.grid.GridService;
import com.panzhihua.common.utlis.CopyUtil;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.serviceapi.biz.LcApiService;
import com.panzhihua.serviceapi.model.dto.*;
import lombok.extern.slf4j.Slf4j;
@@ -150,8 +151,18 @@
    }
    @Override
    public List<LcGridData> getGridListByAreaId(String areaId) {
    public List<LcGridData> getGridTreeByAreaId(String areaId) {
        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
        request.auth(getAuthToken());
        request.form("areaId", areaId);
        request.form("level", 4);
        HttpResponse result = request.execute();
        return JSONArray.parseArray(result.body(), LcGridData.class);
    }
    @Override
    public List<LcGridData> getGridDataListByAreaId(String areaId) {
        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
        request.auth(getAuthToken());
        request.form("areaId", areaId);
        HttpResponse result = request.execute();
@@ -159,11 +170,13 @@
    }
    @Override
    public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param) {
    public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId,String param,Long pageNum,Long pageSize) {
        HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
        request.auth(getAuthToken());
        request.form("areaId", areaId);
        if(param !=null){
        request.form("limit", pageSize);
        request.form("page", pageNum);
        if(StringUtils.isNotEmpty(param)){
            request.form("param", param);
        }
        HttpResponse result = request.execute();
springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
@@ -184,7 +184,17 @@
    @Test
    void getGridListByAreaId() {
        //jhRxqEQp 代表西区
        List<LcGridData> list = lcApiService.getGridListByAreaId("jhRxqEQp");
        List<LcGridData> list = lcApiService.getGridTreeByAreaId("jhRxqEQp");
        String pretty = JSONArray.toJSONString(list, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteDateUseDateFormat);
        log.info(pretty);
    }
    @Test
    void getGridDataListByAreaId() {
        //jhRxqEQp 代表西区
        List<LcGridData> list = lcApiService.getGridDataListByAreaId("2Fxq97CC");
        String pretty = JSONArray.toJSONString(list, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteDateUseDateFormat);
        log.info(pretty);
@@ -201,7 +211,7 @@
    @Test
    void getGridMemberListByAreaIdOrName() {
        List<GridMemberPageListDTO> data = lcApiService.getGridMemberListByAreaIdOrName("jhRxqEQp", "");
        List<GridMemberPageListDTO> data = lcApiService.getGridMemberListByAreaIdOrName("jhRxqEQp", "",1L,20L);
        // log.info(data);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java
New file
@@ -0,0 +1,168 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
import com.panzhihua.service_community.service.ComSwDangerReportService;
import com.panzhihua.service_community.service.ComSwPatrolRecordService;
import com.panzhihua.service_community.service.ComSwSafetyWorkRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录前端控制器
 */
@Slf4j
@RestController
@RequestMapping("/patrolRecord")
public class ComSwPatrolRecordApi {
    @Resource
    private ComSwPatrolRecordService comSwPatrolRecordService;
    @Resource
    private ComSwSafetyWorkRecordService comSwSafetyWorkRecordService;
    @Resource
    private ComSwDangerReportService comSwDangerReportService;
    /**
     * 分页查询巡查记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 巡查记录分页集合
     */
    @PostMapping("/page")
    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        return comSwPatrolRecordService.pagePatrolRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 新增巡查记录
     * @param comSwPatrolRecordAddDTO 新增参数
     * @return 新增结果
     */
    @PostMapping("/addPatrolRecord")
    @Transactional(rollbackFor = Exception.class)
    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO){
        return comSwPatrolRecordService.addPatrolRecord(comSwPatrolRecordAddDTO);
    }
    /**
     * 根据巡查记录id查询详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 巡查记录详情查询结果
     */
    @PostMapping("/detail")
    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return comSwPatrolRecordService.detailPatrolRecord(patrolRecordId);
    }
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    @PostMapping("/safetyWorkRecord/page")
    public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        return comSwSafetyWorkRecordService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据安全工作记录id查询详情
     *
     * @param safetyWorkRecordId 安全工作记录
     * @return 安全工作记录详情查询结果
     */
    @PostMapping("/safetyWorkRecord/detail")
    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) {
        return comSwSafetyWorkRecordService.detailSafetyWorkRecord(safetyWorkRecordId);
    }
    /**
     * 根据巡查记录id查询安全工作记录详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 安全工作记录详情查询结果
     */
    @PostMapping("/safetyWorkRecord/detailByPrId")
    public R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return comSwSafetyWorkRecordService.detailSafetyWorkRecordByPrId(patrolRecordId);
    }
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    @PostMapping("/dangerReport/page")
    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){
        return comSwDangerReportService.pageDangerReport(comSwPatrolRecordPageDTO);
    }
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    @PostMapping("/dangerReport/detail")
    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
        return comSwDangerReportService.detailDangerReport(dangerReportId);
    }
    /**
     * 根据巡查记录id查询隐患报告详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 隐患报告详情查询结果
     */
    @PostMapping("/dangerReport/detailByPrId")
    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
        return comSwDangerReportService.detailDangerReportByPrId(patrolRecordId);
    }
    /**
     * 处理隐患报告
     *
     * @param comSwDangerReportHandleDTO 隐患报告处理参数
     * @return 处理结果
     */
    @PostMapping("/dangerReport/handle")
    public R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO){
        return comSwDangerReportService.handleDangerReport(comSwDangerReportHandleDTO);
    }
    /**
     * 整改隐患报告
     *
     * @param comSwDangerReportRectifyDTO 隐患报告整改参数
     * @return 整改结果
     */
    @PostMapping("/dangerReport/rectify")
    public R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO){
        return comSwDangerReportService.rectifyDangerReport(comSwDangerReportRectifyDTO);
    }
    /**
     * 隐患报告台账导出
     *
     * @param dangerReportIds
     * @return
     */
    @PostMapping("/dangerReport/export")
    public R exportDangerReport(@RequestBody List<Long> dangerReportIds){
        return comSwDangerReportService.exportDangerReport(dangerReportIds);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -119,7 +119,7 @@
     * @return
     */
    @PostMapping("/car/export")
    public R exportRealCar(ExportComMngCarExcelDTO exportComMngCarExcelDTO){
    public R exportRealCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO){
        return comMngCarService.exportRealCar(exportComMngCarExcelDTO);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -258,7 +258,7 @@
     * @return 详情
     */
    @PostMapping("detailactivity")
    public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
    public R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId) {
        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
        if (ObjectUtils.isEmpty(comActActivityVO)) {
            return R.fail("活动不存在");
@@ -388,9 +388,9 @@
            }
        }
        if(StringUtils.isEmpty(comActDynVO.getCover())){
            comActDynVO.setCover(comActDynDO.getCover());
        }
//        if(StringUtils.isEmpty(comActDynVO.getCover())){
//            comActDynVO.setCover(comActDynDO.getCover());
//        }
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        boolean update = comActDynService.updateById(comActDynDO);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -261,13 +261,17 @@
            "  AND a.community_id =#{communityId}")
    CommunityActivitiesVO selectCommunityActivitiesVO(@Param("communityId") Long communityId, @Param("date")Date date);
    @Select("SELECT COUNT(id) AS totalNum," +
            "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND create_at LIKE CONCAT(#{nowDate},'%'))AS currentNum," +
            "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND volunteer_max = 0)AS commonNum," +
            "(SELECT COUNT(aas.id) FROM com_act_activity a INNER JOIN com_act_act_sign aas ON a.id = aas.activity_id WHERE a.volunteer_max = 0 AND (a.status = 3 OR a.status = 4 OR a.status = 5) AND  a.community_id=#{communityId})AS commonPeopleNum," +
            "(SELECT COUNT(id) FROM com_act_activity WHERE community_id = #{communityId} AND (status = 3 OR status = 4 OR status = 5) AND participant_max = 0)AS volunteerNum," +
            "(SELECT COUNT(aas.id) FROM com_act_activity a INNER JOIN com_act_act_sign aas ON a.id = aas.activity_id WHERE a.community_id=#{communityId} AND a.participant_max = 0 AND (a.status = 3 OR a.status = 4 OR a.status = 5))AS volunteerPeopleNum" +
            " FROM com_act_activity where community_id=#{communityId} AND (status = 3 OR status = 4 OR status = 5)")
    @Select("SELECT " +
            " count( caa.id ) as totalNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min = 0 and community_id = #{communityId}) as commonNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min > 0 and community_id = #{communityId}) as volunteerNum, " +
            " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 0 and caa.community_id = #{communityId}) as commonPeopleNum, " +
            " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 1 and caa.community_id = #{communityId}) as volunteerPeopleNum, " +
            " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and community_id = #{communityId} and create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now()) as currentNum " +
            "FROM " +
            " com_act_activity AS caa  " +
            "WHERE " +
            " caa.`status` IN (1,2,3,4,5) and community_id = #{communityId}")
    Map<String, Long> countByCommunityId(@Param("communityId")Long communityId,@Param("nowDate")String nowDate);
    @Select("SELECT id,activity_name as content,IF(volunteer_max = 0,'居民活动','志愿者活动') AS typeName  FROM com_act_activity " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -196,30 +196,28 @@
    ComActDiscussVO selectHaveSignAndHaveVote(@Param("id") Long id, @Param("loginUserId")Long loginUserId);
    @Select(" SELECT COUNT(id) AS totalNum," +
            "(SELECT COUNT(id)  FROM com_act_discuss WHERE community_id = 2 AND create_at LIKE CONCAT('','%'))AS currentNum," +
            "(SELECT COUNT(id)  FROM com_act_discuss WHERE community_id = 2 AND TYPE = 1)AS imgNum," +
            "(SELECT COUNT(id)  FROM com_act_discuss WHERE community_id = #{communityId} AND create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now())AS currentNum," +
            "(SELECT COUNT(id)  FROM com_act_discuss WHERE community_id = #{communityId} AND TYPE = 1)AS imgNum," +
            "(" +
            "SELECT COUNT(DISTINCT(user_id)) FROM (" +
            " SELECT c.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 1 " +
            " UNION ALL " +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id  WHERE d.community_id = 2 AND d.type = 1 " +
            "UNION ALL "  +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id  WHERE d.community_id = 2 AND d.type = 1 " +
            " UNION ALL " +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 1 " +
            ")d " +
            ")AS commonPeopleNum," +
            "SELECT " +
            " count(distinct cadc.user_id) " +
            "FROM " +
            " com_act_discuss_comment AS cadc " +
            " LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id " +
            " where cad.type = 1 and cad.community_id = #{communityId} " +
            ")AS imgPeopleNum," +
            "(" +
            "SELECT COUNT(DISTINCT(user_id)) FROM (" +
            " SELECT c.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id WHERE d.community_id = 2 AND d.type = 2 " +
            " UNION ALL" +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_comment c ON d.id = c.discuss_id INNER JOIN com_act_discuss_comment_user u ON c.id = u.disscuss_comment_id  WHERE d.community_id = 2 AND d.type = 2 " +
            "UNION ALL " +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_option o ON d.id = o.discuss_id INNER JOIN com_act_discuss_option_user u ON o.id = u.discuss_option_id  WHERE d.community_id = 2 AND d.type = 2 " +
            " UNION ALL " +
            " SELECT u.user_id FROM  com_act_discuss d INNER JOIN com_act_discuss_user u ON d.id = u.discuss_id WHERE d.community_id = 2 AND d.type = 2 " +
            ")d " +
            ")AS volunteerPeopleNum " +
            "select count(user_id) from ( " +
            "SELECT " +
            " distinct cadc.user_id " +
            "FROM " +
            " com_act_discuss_comment AS cadc " +
            " LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id " +
            " where cad.type = 2 and cad.community_id = #{communityId} " +
            " union all " +
            " SELECT DISTINCT cadou.user_id  FROM com_act_discuss_option_user AS cadou LEFT JOIN com_act_discuss_option AS cado ON cado.id = cadou.discuss_option_id left join com_act_discuss as cad on cad.id = cado.discuss_id where cad.community_id = #{communityId}" +
            ") t" +
            ")AS votePeopleNum " +
            " FROM com_act_discuss")
    Map<String, Long> countByCommunityId(@Param("communityId")Long communityId, @Param("date")String date);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java
@@ -35,7 +35,7 @@
     * @param endTime   活动结束时间
     * @return  返回冲突的活动数量
     */
    Integer getEasyPhotoActivityTimeConflict(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("activityId") Long activityId);
    Integer getEasyPhotoActivityTimeConflict(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("activityId") Long activityId,@Param("communityId") Long communityId);
    /**
     * 分页查询随手拍活动下居民参与记录
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java
@@ -56,7 +56,7 @@
            " com_act_message t LEFT JOIN sys_user u ON t.user_id = u.user_id " +
            " where t.community_id=#{comActMessageVO.communityId}\n" +
            "<if test='comActMessageVO.userAccount != null and comActMessageVO.userAccount.trim() != &quot;&quot;'>" +
            " and t.user_account=#{comActMessageVO.userAccount} \n" +
            " and u.phone=#{comActMessageVO.userAccount} \n" +
            " </if> " +
            "<if test='comActMessageVO.userName != null and comActMessageVO.userName.trim() != &quot;&quot;'>" +
            " and t.user_name=#{comActMessageVO.userName} \n" +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java
@@ -86,11 +86,11 @@
            "<if test='exportComMngCarExcelDTO.areaName != null and exportComMngCarExcelDTO.areaName.trim() != &quot;&quot;'>" +
            " and t.area_name LIKE concat( #{exportComMngCarExcelDTO.areaName}, '%' )  " +
            " </if> " +
            "<if test='exportComMngCarExcelDTO.communityId != null and exportComMngCarExcelDTO.communityId != 0'>" +
            "<if test='exportComMngCarExcelDTO.communityId != null and exportComMngCarExcelDTO.communityId != &quot;&quot;'>" +
            " and t.community_id = #{exportComMngCarExcelDTO.communityId} " +
            " </if> " +
            "<if test='exportComMngCarExcelDTO.villageId != null and exportComMngCarExcelDTO.villageId != 0'>" +
            " and t.village_id = #{exportComMngCarExcelDTO.villageId} " +
            "<if test='exportComMngCarExcelDTO.villageId != null and exportComMngCarExcelDTO.villageId != &quot;&quot;'>" +
            " and t.area_id = #{exportComMngCarExcelDTO.villageId} " +
            " </if> " +
            "<if test='exportComMngCarExcelDTO.userName != null and exportComMngCarExcelDTO.userName.trim() != &quot;&quot;'>" +
            " and t.user_name LIKE concat( #{exportComMngCarExcelDTO.userName}, '%' )  " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -225,9 +225,6 @@
            "<if test='comMngPopulationVO.remark != null and comMngPopulationVO.remark != &quot;&quot;'>" +
            "AND cmp.remark = #{comMngPopulationVO.remark} " +
            " </if> " +
            "<if test='comMngPopulationVO.address != null and comMngPopulationVO.address != &quot;&quot;'>" +
            "AND cmp.address like concat('%', #{comMngPopulationVO.address}, '%')  " +
            " </if> " +
            " </where>" +
            " order by cmp.create_at desc" +
            "</script>")
@@ -1047,6 +1044,7 @@
            " cmp.card_no, " +
            " cmp.label, " +
            " cmp.address, " +
            " cmp.culture_level, " +
            " cmp.nation, " +
            " cmp.political_outlook, " +
            " cmp.sex, " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java
@@ -45,7 +45,10 @@
            "join com_mng_struct_build_type t on b.type_id=t.id\n" +
            " <where>" +
            "<if test='comMngStructOtherBuildVO.name != null and comMngStructOtherBuildVO.name.trim() != &quot;&quot;'>" +
            "b.name like concat(#{comMngStructOtherBuildVO.name},'%') "+
            " and b.name like concat(#{comMngStructOtherBuildVO.name},'%') "+
            " </if> " +
            "<if test='comMngStructOtherBuildVO.communityId != null'>" +
            " and b.community_id = #{comMngStructOtherBuildVO.communityId} "+
            " </if> " +
            " </where>" +
            " order by b.create_at desc" +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java
New file
@@ -0,0 +1,47 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO;
import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @auther txb
 * @create 2021-07-27 14:31:04
 * @describe mapper类
 */
@Mapper
public interface ComSwDangerReportDAO extends BaseMapper<ComSwDangerReportDO> {
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    IPage<ComSwDangerReportVO> pageDangerReport(Page page, @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    ComSwDangerReportVO detailDangerReport(@Param("dangerReportId") Long dangerReportId);
    /**
     * 根据隐患报告id批量查询详情
     *
     * @param dangerReportIds 隐患报告ids
     * @return
     */
    List<ComSwDangerReportExcelVO> exportDangerReport(@Param("dangerReportIds") List<Long> dangerReportIds);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java
New file
@@ -0,0 +1,27 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录mapper类
 */
@Mapper
public interface ComSwPatrolRecordDAO extends BaseMapper<ComSwPatrolRecordDO> {
    /**
     * 分页查询巡查记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 分页集合
     */
    IPage<ComSwPatrolRecordVO> pagePatrolRecord(Page page, @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java
New file
@@ -0,0 +1,15 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
import org.apache.ibatis.annotations.Mapper;
/**
 * @auther txb
 * @create 2021-07-27 15:08:24
 * @describe 社区》安全工作》巡查记录-报告关系表mapper类
 */
@Mapper
public interface ComSwPatrolRecordReportDAO extends BaseMapper<ComSwPatrolRecordReportDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java
New file
@@ -0,0 +1,28 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * @auther txb
 * @create 2021-07-27 14:30:41
 * @describe mapper类
 */
@Mapper
public interface ComSwSafetyWorkRecordDAO extends BaseMapper<ComSwSafetyWorkRecordDO> {
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    IPage<ComSwSafetyWorkRecordVO> pageSafetyWorkRecord(Page page, @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -47,6 +47,11 @@
    private Integer relationId;
    /**
     * 人和房屋关系’ (1.是、0.否)
     */
    private Integer residence;
    /**
     * 入住开始时间
     */
    private Date startAt;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java
New file
@@ -0,0 +1,172 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-27 14:31:04
 * @describe 实体类
 */
@Data
@TableName("com_sw_danger_report")
public class ComSwDangerReportDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 主键id
    */
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
    * 隐患编号
    */
    private Integer dangerNo;
    /**
    * 隐患名称
    */
    private String dangerName;
    /**
    * 隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)
    */
    private String dangerType;
    /**
    * 状态(1.待处理 2.待整改 3.已整改)
    */
    private String status;
    /**
    * 风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)
    */
    private String dangerLevel;
    /**
    * 排查时间
    */
    private Date checkTime;
    /**
    * 主体部门、单位或个人全称
    */
    private String unitName;
    /**
    * 隐患简述
    */
    private String dagerDescription;
    /**
    * 是否立即整改(1是 、0否)
    */
    private Integer isRectifyImmediately;
    /**
    * 采取措施
    */
    private String takeSteps;
    /**
    * 采取措施照片
    */
    private String stepsPhoto;
    /**
    * 整改人员
    */
    private String rectifyPerson;
    /**
    * 整改时间
    */
    private Date rectifyTime;
    /**
    * 社区处理建议
    */
    private String communitySuggestion;
    /**
    * 街道安全人员管理建议
    */
    private String streetSuggestion;
    /**
    * 承办记录
    */
    private String undertakeRecord;
    /**
     * 领导意见
     */
    private String leaderSuggestion;
    /**
     * 指派人员
     */
    private String assignPerson;
    /**
    * 备注
    */
    private String remark;
    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
    * 创建人
    */
    private Long createBy;
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;
    /**
    * 修改人
    */
    private Long updateBy;
@Override
public String toString() {
        return "ComSwDangerReportDO{" +
                "id=" + id +
                ", dangerNo=" + dangerNo +
                ", dangerName=" + dangerName +
                ", dangerType=" + dangerType +
                ", status=" + status +
                ", dangerLevel=" + dangerLevel +
                ", checkTime=" + checkTime +
                ", unitName=" + unitName +
                ", dagerDescription=" + dagerDescription +
                ", isRectifyImmediately=" + isRectifyImmediately +
                ", takeSteps=" + takeSteps +
                ", stepsPhoto=" + stepsPhoto +
                ", rectifyPerson=" + rectifyPerson +
                ", rectifyTime=" + rectifyTime +
                ", communitySuggestion=" + communitySuggestion +
                ", streetSuggestion=" + streetSuggestion +
                ", undertakeRecord=" + undertakeRecord +
                ", remark=" + remark +
                ", createAt=" + createAt +
                ", createBy=" + createBy +
                ", updateAt=" + updateAt +
                ", updateBy=" + updateBy +
        "}";
        }
        }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java
New file
@@ -0,0 +1,162 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录实体类
 */
@Data
@TableName("com_sw_patrol_record")
public class ComSwPatrolRecordDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 主键id
    */
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
     * 社区id
     */
    private Long communityId;
    /**
     * 巡查时间
     */
    private Date patrolTime;
    /**
     * 天气
     */
    private String weather;
    /**
     * 温度
     */
    private String temperature;
    /**
     * 风
     */
    private String wind;
    /**
    * 巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开
    */
    private String patrolType;
    /**
    * 巡查领导
    */
    private String patrolLeader;
    /**
    * 巡查人员
    */
    private String patrolPerson;
    /**
     * 巡查地址
     */
    private String address;
    /**
    * 巡查记录
    */
    private String recordContent;
    /**
    * 发现记录
    */
    private String findRecord;
    /**
    * 记录照片
    */
    private String recordPhoto;
    /**
    * 备注
    */
    private String remark;
    /**
    * 接班领导
    */
    private String successionLeader;
    /**
    * 接班人员
    */
    private String successionPerson;
    /**
    * 接班时间
    */
    private Date successionTime;
    /**
    * 是否存在隐患(1是 、0否)
    */
    private Integer isHiddenDanger;
    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 创建人
     */
    private Long createBy;
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;
    /**
     * 更新人
     */
    private Long updateBy;
    @Override
    public String toString() {
        return "ComSwPatrolRecordDO{" +
                "id=" + id +
                ", patrolTime=" + patrolTime +
                ", weather=" + weather +
                ", temperature=" + temperature +
                ", wind=" + wind +
                ", patrolType=" + patrolType +
                ", patrolLeader=" + patrolLeader +
                ", patrolPerson=" + patrolPerson +
                ", address=" + address +
                ", recordContent=" + recordContent +
                ", findRecord=" + findRecord +
                ", recordPhoto=" + recordPhoto +
                ", remark=" + remark +
                ", successionLeader=" + successionLeader +
                ", successionPerson=" + successionPerson +
                ", successionTime=" + successionTime +
                ", isHiddenDanger=" + isHiddenDanger +
                ", createAt=" + createAt +
                ", createBy=" + createBy +
                ", updateAt=" + updateAt +
                ", updateBy=" + updateBy +
                "}";
        }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java
New file
@@ -0,0 +1,72 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-27 15:08:24
 * @describe 社区》安全工作》巡查记录-报告关系表实体类
 */
@Data
@TableName("com_sw_patrol_record_report")
public class ComSwPatrolRecordReportDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * id
    */
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
    * 巡查记录id
    */
    private Long patrolRecordId;
    /**
    * 报告id
    */
    private Long reportId;
    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
    * 创建人
    */
    private Long createBy;
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;
    /**
    * 修改人
    */
    private Long updateBy;
@Override
public String toString() {
        return "ComSwPatrolRecordReportDO{" +
                "id=" + id +
                ", patrolRecordId=" + patrolRecordId +
                ", reportId=" + reportId +
                ", createAt=" + createAt +
                ", createBy=" + createBy +
                ", updateAt=" + updateAt +
                ", updateBy=" + updateBy +
        "}";
        }
        }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java
New file
@@ -0,0 +1,66 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-27 14:30:41
 * @describe 实体类
 */
@Data
@TableName("com_sw_safety_work_record")
public class ComSwSafetyWorkRecordDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 主键id
    */
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
    * 备注
    */
    private String remark;
    /**
    * 创建时间
    */
    @TableField(fill = FieldFill.INSERT)
    private Date createAt;
    /**
    * 创建人
    */
    private Long createBy;
    /**
    * 更新时间
    */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateAt;
    /**
    * 修改人
    */
    private Long updateBy;
@Override
public String toString() {
        return "ComSwSafetyWorkRecordDO{" +
                "id=" + id +
                ", remark=" + remark +
                ", createAt=" + createAt +
                ", createBy=" + createBy +
                ", updateAt=" + updateAt +
                ", updateBy=" + updateBy +
        "}";
        }
        }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java
New file
@@ -0,0 +1,68 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * @auther txb
 * @create 2021-07-27 14:31:04
 * @describe 服务类
 */
public interface ComSwDangerReportService extends IService<ComSwDangerReportDO> {
    /**
     * 分页查询隐患报告
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 隐患报告分页集合
     */
    R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 根据隐患报告id查询详情
     *
     * @param dangerReportId 隐患报告id
     * @return 隐患报告详情查询结果
     */
    R detailDangerReport(Long dangerReportId);
    /**
     * 根据巡查记录id查询隐患报告详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 隐患报告详情查询结果
     */
    R detailDangerReportByPrId(Long patrolRecordId);
    /**
     * 处理隐患报告
     *
     * @param comSwDangerReportHandleDTO 隐患报告处理参数
     * @return 处理结果
     */
    R handleDangerReport(ComSwDangerReportHandleDTO comSwDangerReportHandleDTO);
    /**
     * 整改隐患报告
     *
     * @param comSwDangerReportRectifyDTO 隐患报告整改参数
     * @return 整改结果
     */
    R rectifyDangerReport(ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO);
    /**
     * 隐患报告台账导出
     *
     * @param dangerReportIds
     * @return
     */
    R exportDangerReport(List<Long> dangerReportIds);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java
New file
@@ -0,0 +1,42 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录服务类
 */
public interface ComSwPatrolRecordService extends IService<ComSwPatrolRecordDO> {
    /**
     * 分页查询巡查记录
     *
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 分页集合
     */
    R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 新增巡查记录
     *
     * @param comSwPatrolRecordAddDTO 新增参数
     * @return 新增结果
     */
    R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO);
    /**
     * 根据巡查记录id查询详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 巡查记录详情查询结果
     */
    R detailPatrolRecord(Long patrolRecordId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java
New file
@@ -0,0 +1,40 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * @auther txb
 * @create 2021-07-27 14:30:41
 * @describe 服务类
 */
public interface ComSwSafetyWorkRecordService extends IService<ComSwSafetyWorkRecordDO> {
    /**
     * 分页查询安全工作记录
     * @param comSwPatrolRecordPageDTO 查询参数
     * @return 安全工作记录分页集合
     */
    R pageSafetyWorkRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
    /**
     * 根据安全工作记录id查询详情
     *
     * @param safetyWorkRecordId 安全工作记录
     * @return 安全工作记录详情查询结果
     */
    R detailSafetyWorkRecord(Long safetyWorkRecordId);
    /**
     * 根据巡查记录id查询安全工作记录详情
     *
     * @param patrolRecordId 巡查记录id
     * @return 安全工作记录详情查询结果
     */
    R detailSafetyWorkRecordByPrId(Long patrolRecordId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONArray;
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;
@@ -189,7 +190,14 @@
    public ComActActivityVO inforActivity(Long id, Long userId) {
        ComActActivityVO comActActivityVO=comActActivityDAO.inforActivity(id);
        if (!ObjectUtils.isEmpty(comActActivityVO)) {
            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, id).eq(ComActActSignDO::getUserId, userId));
            LambdaQueryWrapper<ComActActSignDO> actSignQuery = new LambdaQueryWrapper<>();
            actSignQuery.eq(ComActActSignDO::getActivityId, id);
            if(userId != null){
                actSignQuery.eq(ComActActSignDO::getUserId, userId);
            }
            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(actSignQuery);
            if (!ObjectUtils.isEmpty(comActActSignDO)) {
                comActActivityVO.setIsSign(1);
                comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer());
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java
@@ -68,7 +68,7 @@
    public R addActivity(AddEasyPhotoActivityDTO addEasyPhotoActivityDTO){
        //判断当前活动时间是否与其他时间有冲突
        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(addEasyPhotoActivityDTO.getActivityStartAt(),addEasyPhotoActivityDTO.getActivityEndAt(),null);
        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(addEasyPhotoActivityDTO.getActivityStartAt(),addEasyPhotoActivityDTO.getActivityEndAt(),null,addEasyPhotoActivityDTO.getCommunityId());
        if(count > 0){
            return R.fail("在此期间已有活动,请勿重复添加");
        }
@@ -110,7 +110,7 @@
            return R.fail("未查询到活动记录");
        }
        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(editEasyPhotoActivityDTO.getActivityStartAt(),editEasyPhotoActivityDTO.getActivityEndAt(),editEasyPhotoActivityDTO.getId());
        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(editEasyPhotoActivityDTO.getActivityStartAt(),editEasyPhotoActivityDTO.getActivityEndAt(),editEasyPhotoActivityDTO.getId(),photoActivityDO.getCommunityId());
        if(count > 0){
            return R.fail("在此期间已有活动,请勿重复添加");
        }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
@@ -87,15 +87,17 @@
                if(comActEasyPhotoVO1.getActivityId() != null && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.ywc)){
                    //查询随手拍活动
                    ComActEasyPhotoActivityDO photoActivityDO = comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO1.getActivityId());
                    if(comActEasyPhotoVO1.getActivityType() != null){
                        if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)){
                            comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getGoodReward());
                        }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)){
                            comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getExcellentReward());
                        }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)){
                            comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getOrdinaryReward());
                        }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)){
                            comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getCommonlyReward());
                    if(photoActivityDO != null){
                        if(comActEasyPhotoVO1.getActivityType() != null){
                            if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)){
                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getGoodReward());
                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)){
                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getExcellentReward());
                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)){
                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getOrdinaryReward());
                            }else if(comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)){
                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getCommonlyReward());
                            }
                        }
                    }
                }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -149,6 +149,9 @@
                comActMicroWishDO.setForm(2);
                break;
            case 5:
                if(comActMicroWishVO.getFeedback().length() > 200){
                    return R.fail("反馈字数不得超过200字");
                }
                comActMicroWishDO.setFeedbackAt(date);
                comActMicroWishDO.setStatus(5);//待确认
                comActMicroWishDO.setFeedback(feedback);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -363,6 +363,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId) throws Exception {
        List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>();
        List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
        //查询该社区
        ComActDO comActDO = comActDAO.selectById(communityId);
@@ -396,10 +397,15 @@
            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();
                importErrorVO.setErrorMsg("街路巷或小区号不存在");
                importErrorVO.setErrorMsg("街路巷或小区号不存在,请先在“小区管理”中添加该小区");
                importErrorVO.setErrorPosition("街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo());
                populationImportErrorVOList.add(importErrorVO);
//                index++;
                ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                BeanUtils.copyProperties(vo,mistake);
                setMistake(mistake, vo);
                mistake.setMistake("街路巷或小区号不存在,请先在“小区管理”中添加该小区:街路巷:"+ vo.getRoad() +",小区号:" + vo.getDoorNo());
                mistakes.add(mistake);
                continue;
            }
@@ -454,6 +460,7 @@
                    populationHouseUserDO.setPopulId(populationDO.getId());
                    populationHouseUserDO.setRelation(vo.getRelation());
                    populationHouseUserDO.setRelationId(vo.getIsRent());
                    populationHouseUserDO.setResidence(vo.getResidence());
                    comMngPopulationHouseUserDAO.insert(populationHouseUserDO);
                }
            }
@@ -466,7 +473,7 @@
        this.saveBatch(populationDOList);*/
        if (!populationImportErrorVOList.isEmpty()) {
            return R.fail(JSON.toJSONString(populationImportErrorVOList));
            return R.fail(mistakes,JSON.toJSONString(populationImportErrorVOList));
        }
        return R.ok();
    }
@@ -814,6 +821,9 @@
                populationHouseUserDO.setRelation(houseEditDto.getRelation());
                if (houseEditDto.getIsResidence().equals(ComMngPopulationHouseEditDTO.isResidence.yes)) {
                    houseId = houseEditDto.getId();//居住地
                    populationHouseUserDO.setResidence(ComMngPopulationHouseEditDTO.isResidence.yes);
                }else {
                    populationHouseUserDO.setResidence(ComMngPopulationHouseEditDTO.isResidence.no);
                }
                populationHouseUserDOList.add(populationHouseUserDO);
@@ -1268,7 +1278,11 @@
            villageStatisticsList.forEach(village -> {
                CivilVillageStatisticsVO villageStatisticsVO = this.baseMapper.getCivilScreenVillageStatistics(village.getVillageId());
                if(villageStatisticsVO != null){
                    BeanUtils.copyProperties(villageStatisticsVO,village);
                    village.setPeopleNum(villageStatisticsVO.getPeopleNum());
                    village.setHouseNum(villageStatisticsVO.getHouseNum());
                    village.setRegisterNum(villageStatisticsVO.getRegisterNum());
                    village.setFlowNum(villageStatisticsVO.getFlowNum());
//                    BeanUtils.copyProperties(villageStatisticsVO,village);
                }
            });
        }
@@ -1900,4 +1914,19 @@
        return R.ok(this.baseMapper.getVillagePopulationAdmin(new Page(villagePopulationDTO.getPageNum(),villagePopulationDTO.getPageSize()),villagePopulationDTO));
    }
    private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo){
        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
        mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
        mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus()));
        mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel()));
        mvo.setMarriage(PopulMarriageEnum.getCnDescByName(vo.getMarriage()));
        mvo.setOutOrLocal(PopulOutOrLocalEnum.getCnDescByName(vo.getOutOrLocal()));
        mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
        mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
New file
@@ -0,0 +1,175 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.enums.SafeWordStatusEnum;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
import com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO;
import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComSwDangerReportDAO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
import com.panzhihua.service_community.service.ComSwDangerReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * @auther txb
 * @create 2021-07-27 14:31:04
 * @describe 服务实现类
 */
@Slf4j
@Service
public class ComSwDangerReportServiceImpl extends ServiceImpl<ComSwDangerReportDAO, ComSwDangerReportDO> implements ComSwDangerReportService {
    @Resource
    private ComSwDangerReportDAO comSwDangerReportDAO;
    @Resource
    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
    @Resource
    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
    @Resource
    private UserService userService;
    @Override
    public R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
        Page page = new Page<>();
        Long pageNum = comSwPatrolRecordPageDTO.getPageNum();
        Long pageSize = comSwPatrolRecordPageDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1L;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10L;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComSwDangerReportVO> iPage = comSwDangerReportDAO.pageDangerReport(page, comSwPatrolRecordPageDTO);
        if (!iPage.getRecords().isEmpty()) {
            iPage.getRecords().forEach(comSwDangerReportVO -> {
                if (StringUtils.isNotEmpty(comSwDangerReportVO.getAssignPerson())) {
                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.no);
                }else {
                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.yes);
                }
                List<String> patrolUserIds = Arrays.asList(comSwDangerReportVO.getPatrolPerson().split(","));
                List<String> patrolPhones = new ArrayList<>();
                for (String userId : patrolUserIds) {
                    LoginUserInfoVO loginUserInfoVO = userService.getUserInfoByUserId(userId).getData();
                    patrolPhones.add(loginUserInfoVO.getPhone());
                }
                comSwDangerReportVO.setPatrolPersonPhone(StringUtils.join(patrolPhones,","));
                List<String> rectifyUserIds = Arrays.asList(comSwDangerReportVO.getRectifyPerson().split(","));
                List<String> rectifyPhones = new ArrayList<>();
                for (String userId : rectifyUserIds) {
                    LoginUserInfoVO loginUserInfoVO = userService.getUserInfoByUserId(userId).getData();
                    rectifyPhones.add(loginUserInfoVO.getPhone());
                }
                comSwDangerReportVO.setRectifyPersonPhone(StringUtils.join(rectifyPhones,","));
            });
        }
        return R.ok(iPage);
    }
    @Override
    public R detailDangerReport(Long dangerReportId) {
        ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(dangerReportId);
        if (null == comSwDangerReportDO) {
            return R.fail("该隐患报告不存在");
        }
        ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO();
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getReportId, dangerReportId));
        if (null != comSwPatrolRecordReportDO) {
            ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId());
            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO);
        }
        BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO);
        return R.ok(comSwDangerReportVO);
    }
    @Override
    public R detailDangerReportByPrId(Long patrolRecordId) {
        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
        ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO();
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
        if (null != comSwPatrolRecordReportDO) {
            ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId());
            if (null == comSwDangerReportDO) {
                return R.fail("该隐患报告不存在");
            }
            BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO);
        }
        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO);
        return R.ok(comSwDangerReportVO);
    }
    @Override
    public R handleDangerReport(ComSwDangerReportHandleDTO comSwDangerReportHandleDTO) {
        ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportHandleDTO.getDangerReportId());
        if (null == comSwDangerReportDO) {
            return R.fail("该隐患报告不存在");
        }
        BeanUtils.copyProperties(comSwDangerReportHandleDTO, comSwDangerReportDO);
        comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YCL.getCode()));
        int update = comSwDangerReportDAO.updateById(comSwDangerReportDO);
        if (update > 0) {
            return R.ok();
        }
        return R.fail("处理失败");
    }
    @Override
    public R rectifyDangerReport(ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO) {
        ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportRectifyDTO.getDangerReportId());
        if (null == comSwDangerReportDO) {
            return R.fail("该隐患报告不存在");
        }
        BeanUtils.copyProperties(comSwDangerReportRectifyDTO, comSwDangerReportDO);
        comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
        int update = comSwDangerReportDAO.updateById(comSwDangerReportDO);
        if (update > 0) {
            return R.ok();
        }
        return R.fail("整改失败");
    }
    @Override
    public R exportDangerReport(List<Long> dangerReportIds) {
        List<ComSwDangerReportExcelVO> list = comSwDangerReportDAO.exportDangerReport(dangerReportIds);
        list.forEach(comSwDangerReportExcelVO -> {
            List<String> patrolUserIds = Arrays.asList(comSwDangerReportExcelVO.getPatrolPerson().split(","));
            List<String> patrolPhones = new ArrayList<>();
            for (String userId : patrolUserIds) {
                LoginUserInfoVO loginUserInfoVO = userService.getUserInfoByUserId(userId).getData();
                patrolPhones.add(loginUserInfoVO.getPhone());
            }
            comSwDangerReportExcelVO.setPatrolPersonPhone(StringUtils.join(patrolPhones,","));
        });
        return R.ok(list);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
New file
@@ -0,0 +1,130 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.enums.SafeWordStatusEnum;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComSwDangerReportDAO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComSwPatrolRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
 * @auther txb
 * @create 2021-07-23 14:38:38
 * @describe 社区》安全工作》巡查记录服务实现类
 */
@Slf4j
@Service
public class ComSwPatrolRecordServiceImpl extends ServiceImpl<ComSwPatrolRecordDAO, ComSwPatrolRecordDO> implements ComSwPatrolRecordService {
    @Resource
    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
    @Resource
    private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO;
    @Resource
    private ComSwDangerReportDAO comSwDangerReportDAO;
    @Resource
    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
    @Override
    public R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
        Page page = new Page<>();
        Long pageNum = comSwPatrolRecordPageDTO.getPageNum();
        Long pageSize = comSwPatrolRecordPageDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1L;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10L;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComSwPatrolRecordVO> iPage = comSwPatrolRecordDAO.pagePatrolRecord(page, comSwPatrolRecordPageDTO);
        return R.ok(iPage);
    }
    @Override
    public R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
        //巡查记录
        ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
        BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwPatrolRecordDO);
        Long patrolRecordId = Snowflake.getId();
        comSwPatrolRecordDO.setId(patrolRecordId);
        comSwPatrolRecordDAO.insert(comSwPatrolRecordDO);
        //巡查记录和关联报告信息
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = new ComSwPatrolRecordReportDO();
        Long patrolRecordReport = Snowflake.getId();
        comSwPatrolRecordReportDO.setId(patrolRecordReport);
        comSwPatrolRecordReportDO.setPatrolRecordId(patrolRecordId);
        if (comSwPatrolRecordAddDTO.getIsHiddenDanger().intValue() == ComSwPatrolRecordAddDTO.isOk.yes) {
            //如果存在安全隐患,自动生成安全隐患报告
            ComSwDangerReportDO comSwDangerReportDO = new ComSwDangerReportDO();
            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwDangerReportDO);
            Long dangerReportId = Snowflake.getId();
            comSwDangerReportDO.setId(dangerReportId);
            comSwPatrolRecordReportDO.setReportId(dangerReportId);
            comSwDangerReportDO.setDangerType(comSwPatrolRecordAddDTO.getPatrolType());
            if (comSwPatrolRecordAddDTO.getIsRectifyImmediately().intValue() == ComSwPatrolRecordAddDTO.isOk.yes && StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getTakeSteps())) {
                comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
            }
            comSwDangerReportDO.setRectifyTime(new Date());
            comSwDangerReportDAO.insert(comSwDangerReportDO);
        }else {
            //不存在安全隐患,生成安全工作记录
            ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = new ComSwSafetyWorkRecordDO();
            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwSafetyWorkRecordDO);
            Long safetyWorkRecord = Snowflake.getId();
            comSwSafetyWorkRecordDO.setId(safetyWorkRecord);
            comSwPatrolRecordReportDO.setReportId(safetyWorkRecord);
            comSwSafetyWorkRecordDAO.insert(comSwSafetyWorkRecordDO);
        }
        comSwPatrolRecordReportDAO.insert(comSwPatrolRecordReportDO);
        return R.ok();
    }
    @Override
    public R detailPatrolRecord(Long patrolRecordId) {
        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
        if (null == comSwPatrolRecordDO) {
            return R.fail("该巡查记录不存在");
        }
        ComSwPatrolRecordVO comSwPatrolRecordVO = new ComSwPatrolRecordVO();
        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwPatrolRecordVO);
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
        if (null != comSwPatrolRecordReportDO) {
            if (comSwPatrolRecordVO.getIsHiddenDanger().equals(ComSwPatrolRecordVO.isOk.yes)) {
                if (null != comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
                    comSwPatrolRecordVO.setDisplayButton(3);
                }else {
                    comSwPatrolRecordVO.setDisplayButton(2);
                }
            }else{
                if (null != comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
                    comSwPatrolRecordVO.setDisplayButton(1);
                }
            }
        }
        return R.ok(comSwPatrolRecordVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
New file
@@ -0,0 +1,89 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
import com.panzhihua.service_community.service.ComSwSafetyWorkRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * @auther txb
 * @create 2021-07-27 14:30:41
 * @describe 服务实现类
 */
@Slf4j
@Service
public class ComSwSafetyWorkRecordServiceImpl extends ServiceImpl<ComSwSafetyWorkRecordDAO, ComSwSafetyWorkRecordDO> implements ComSwSafetyWorkRecordService {
    @Resource
    private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO;
    @Resource
    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
    @Resource
    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
    @Override
    public R pageSafetyWorkRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
        Page page = new Page<>();
        Long pageNum = comSwPatrolRecordPageDTO.getPageNum();
        Long pageSize = comSwPatrolRecordPageDTO.getPageSize();
        if (null == pageNum || 0 == pageNum) {
            pageNum = 1L;
        }
        if (null == pageSize || 0 == pageSize) {
            pageSize = 10L;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComSwSafetyWorkRecordVO> iPage = comSwSafetyWorkRecordDAO.pageSafetyWorkRecord(page, comSwPatrolRecordPageDTO);
        return R.ok(iPage);
    }
    @Override
    public R detailSafetyWorkRecord(Long safetyWorkRecordId) {
        ComSwSafetyWorkRecordDO swSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(safetyWorkRecordId);
        if (null == swSafetyWorkRecordDO) {
            return R.fail("该安全工作记录不存在");
        }
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getReportId, safetyWorkRecordId));
        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
        if (null != comSwPatrolRecordReportDO) {
            ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId());
            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
        }
        return R.ok(comSwSafetyWorkRecordVO);
    }
    @Override
    public R detailSafetyWorkRecordByPrId(Long patrolRecordId) {
        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
        if (null != comSwPatrolRecordReportDO) {
            ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId());
            if (null == comSwSafetyWorkRecordDO) {
                return R.fail("该安全工作记录不存在");
            }
        }
        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
        return R.ok(comSwSafetyWorkRecordVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml
@@ -64,6 +64,8 @@
            and id != #{activityId}
        </if>
        and community_id = #{communityId}
    </select>
    <select id="pageActivityUser" parameterType="com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO"
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml
New file
@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComSwDangerReportDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwDangerReportDO">
                <id column="id" property="id" />
                <result column="danger_no" property="dangerNo" />
                <result column="danger_name" property="dangerName" />
                <result column="danger_type" property="dangerType" />
                <result column="status" property="status" />
                <result column="danger_level" property="dangerLevel" />
                <result column="check_time" property="checkTime" />
                <result column="unit_name" property="unitName" />
                <result column="dager_description" property="dagerDescription" />
                <result column="is_rectify_immediately" property="isRectifyImmediately" />
                <result column="take_steps" property="takeSteps" />
                <result column="steps_photo" property="stepsPhoto" />
                <result column="rectify_person" property="rectifyPerson" />
                <result column="rectify_time" property="rectifyTime" />
                <result column="community_suggestion" property="communitySuggestion" />
                <result column="street_suggestion" property="streetSuggestion" />
                <result column="undertake_record" property="undertakeRecord" />
                <result column="leader_suggestion" property="leaderSuggestion" />
                <result column="assign_person" property="assignPerson" />
                <result column="remark" property="remark" />
                <result column="create_at" property="createAt" />
                <result column="create_by" property="createBy" />
                <result column="update_at" property="updateAt" />
                <result column="update_by" property="updateBy" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
    id, danger_no, danger_name, danger_type, status, danger_level, check_time, unit_name, dager_description, is_rectify_immediately, take_steps, steps_photo, rectify_person, rectify_time, community_suggestion, street_suggestion, undertake_record, remark, create_at, create_by, update_at, update_by
    </sql>
    <select id="pageDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportVO">
        SELECT
            csdr.id,
            cspr.community_id AS communityId,
            cspr.patrol_time AS patrolTime,
            cspr.weather,
            cspr.temperature,
            cspr.wind,
            cspr.patrol_type AS patrolType,
            cspr.patrol_person AS patrolPerson,
            cspr.address,
            cspr.record_content AS recordContent,
            cspr.find_record AS findRecord,
            cspr.record_photo AS recordPhoto,
            cspr.create_at AS createAt,
            cspr.create_by AS createBy,
            csdr.remark,
            csdr.danger_name AS dangerName,
            csdr.check_time AS checkTime,
            csdr.unit_name AS unitName,
            csdr.dager_description AS dagerDescription,
            csdr.danger_no AS dangerNo,
            csdr.danger_type AS dangerType,
            csdr.status,
            csdr.danger_level AS dangerLevel,
            csdr.take_steps AS takeSteps,
            csdr.steps_photo AS stepsPhoto,
            csdr.rectify_person AS rectifyPerson,
            csdr.rectify_time AS rectifyTime,
            csdr.community_suggestion AS communitySuggestion,
            csdr.street_suggestion AS streetSuggestion,
            csdr.undertake_record AS undertakeRecord,
            csdr.leader_suggestion AS leaderSuggestion,
            csdr.assign_person AS assignPerson
        FROM
            com_sw_danger_report as csdr
                left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
                left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
        <where>
            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != ""'>
                AND cspr.community_id = #{comSwPatrolRecordDTO.communityId}
            </if>
            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
                AND cspr.patrol_person LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
            </if>
            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
                AND cspr.patrol_type = #{comSwPatrolRecordDTO.patrolType}
            </if>
            <if test='comSwPatrolRecordDTO.status != null and comSwPatrolRecordDTO.status != ""'>
                AND cspr.patrol_type = #{comSwPatrolRecordDTO.patrolType}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtBegin != null '>
                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtEnd != null '>
                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
        </where>
        order by csdr.create_at desc
    </select>
    <select id="detailDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportVO">
        SELECT
        csdr.id,
        cspr.community_id AS communityId,
        cspr.patrol_time AS patrolTime,
        cspr.weather,
        cspr.temperature,
        cspr.wind,
        cspr.patrol_type AS patrolType,
        cspr.patrol_person AS patrolPerson,
        cspr.address,
        cspr.record_content AS recordContent,
        cspr.find_record AS findRecord,
        cspr.record_photo AS recordPhoto,
        cspr.create_at AS createAt,
        cspr.create_by AS createBy,
        csdr.remark,
        csdr.danger_name AS dangerName,
        csdr.check_time AS checkTime,
        csdr.unit_name AS unitName,
        csdr.dager_description AS dagerDescription,
        csdr.danger_no AS dangerNo,
        csdr.danger_type AS dangerType,
        csdr.status,
        csdr.danger_level AS dangerLevel,
        csdr.take_steps AS takeSteps,
        csdr.steps_photo AS stepsPhoto,
        csdr.rectify_person AS rectifyPerson,
        csdr.rectify_time AS rectifyTime,
        csdr.community_suggestion AS communitySuggestion,
        csdr.street_suggestion AS streetSuggestion,
        csdr.undertake_record AS undertakeRecord,
        csdr.leader_suggestion AS leaderSuggestion,
        csdr.assign_person AS assignPerson
        FROM
        com_sw_danger_report as csdr
        left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
        left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
        where csdr.id = #{dangerReportId}
    </select>
    <select id="exportDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO" parameterType="java.util.List">
        SELECT
            cspr.patrol_person AS patrolPerson,
            cspr.address,
            csdr.remark,
            csdr.dager_description AS dagerDescription,
            csdr.danger_type AS dangerType,
            csdr.danger_level AS dangerLevel
        FROM
            com_sw_danger_report as csdr
                left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
                left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
        where csdr.id in
        <foreach collection="dangerReportIds" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordMapper.xml
New file
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComSwPatrolRecordDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO">
                <id column="id" property="id" />
                <result column="community_id" property="communityId" />
                <result column="patrol_time" property="patrolTime" />
                <result column="weather" property="weather" />
                <result column="temperature" property="temperature" />
                <result column="wind" property="wind" />
                <result column="patrol_type" property="patrolType" />
                <result column="patrol_leader" property="patrolLeader" />
                <result column="patrol_person" property="patrolPerson" />
                <result column="address" property="address" />
                <result column="record_content" property="recordContent" />
                <result column="find_record" property="findRecord" />
                <result column="record_photo" property="recordPhoto" />
                <result column="remark" property="remark" />
                <result column="succession_leader" property="successionLeader" />
                <result column="succession_person" property="successionPerson" />
                <result column="succession_time" property="successionTime" />
                <result column="is_hidden_danger" property="isHiddenDanger" />
                <result column="create_at" property="createAt" />
                <result column="create_by" property="createBy" />
                <result column="update_at" property="updateAt" />
                <result column="update_by" property="updateBy" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
    id, community_id, patrol_time, weather, temperature, wind, patrol_type, patrol_leader, patrol_person, address, record_content, find_record, record_photo, remark, succession_leader, succession_person, succession_time, is_hidden_danger, create_at, create_by, update_at, update_by
    </sql>
    <select id="pagePatrolRecord" resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO">
        SELECT
            cspr.id,
            cspr.community_id AS communityId,
            cspr.patrol_time AS patrolTime,
            cspr.weather,
            cspr.temperature,
            cspr.wind,
            cspr.patrol_type AS patrolType,
            cspr.patrol_person AS patrolPerson,
            cspr.address,
            cspr.record_content AS recordContent,
            cspr.find_record AS findRecord,
            cspr.record_photo AS recordPhoto,
            cspr.remark,
            cspr.succession_person AS successionPerson,
            cspr.succession_time AS successionTime,
            cspr.create_at AS createAt,
            cspr.create_by AS createBy,
            csprr.report_id AS reportId
        FROM
            com_sw_patrol_record as cspr
        left join com_sw_patrol_record_report as csprr on csprr.patrol_record_id = cspr.id
        <where>
            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != ""'>
                AND cspr.community_id = #{comSwPatrolRecordDTO.communityId}
            </if>
            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
                AND cspr.patrol_person LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
            </if>
            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
                AND cspr.patrol_type = #{comSwPatrolRecordDTO.patrolType}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtBegin != null '>
                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtEnd != null '>
                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
        </where>
        order by cspr.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml
New file
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO">
                <id column="id" property="id" />
                <result column="patrol_record_id" property="patrolRecordId" />
                <result column="report_id" property="reportId" />
                <result column="create_at" property="createAt" />
                <result column="create_by" property="createBy" />
                <result column="update_at" property="updateAt" />
                <result column="update_by" property="updateBy" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
    id, patrol_record_id, report_id, create_at, create_by, update_at, update_by
    </sql>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml
New file
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO">
        <id column="id" property="id" />
        <result column="remark" property="remark" />
        <result column="create_at" property="createAt" />
        <result column="create_by" property="createBy" />
        <result column="update_at" property="updateAt" />
        <result column="update_by" property="updateBy" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
    id, remark, create_at, create_by, update_at, update_by
    </sql>
    <select id="pageSafetyWorkRecord" resultType="com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO">
        SELECT
        csswr.id,
        cspr.community_id AS communityId,
        cspr.patrol_time AS patrolTime,
        cspr.weather,
        cspr.temperature,
        cspr.wind,
        cspr.patrol_type AS patrolType,
        cspr.patrol_person AS patrolPerson,
        cspr.address,
        cspr.record_content AS recordContent,
        cspr.find_record AS findRecord,
        cspr.record_photo AS recordPhoto,
        csswr.remark,
        cspr.create_at AS createAt,
        cspr.create_by AS createBy
        FROM
        com_sw_safety_work_record as csswr
        left join com_sw_patrol_record_report as csprr on csprr.report_id = csswr.id
        left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
        <where>
            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != ""'>
                AND cspr.community_id = #{comSwPatrolRecordDTO.communityId}
            </if>
            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
                AND cspr.patrol_person LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
            </if>
            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
                AND cspr.patrol_type = #{comSwPatrolRecordDTO.patrolType}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtBegin != null '>
                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
            <if test='comSwPatrolRecordDTO.patrolAtEnd != null '>
                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolTime}
            </if>
        </where>
        order by csswr.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java
@@ -43,8 +43,8 @@
     * @return  网格统计数据
     */
    @PostMapping("/getGridEventStatistics")
    public R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId){
        return eventService.getGridEventStatisticsByApp(gridId);
    public R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId,@RequestParam("userId") Long userId){
        return eventService.getGridEventStatisticsByApp(gridId,userId);
    }
    /**
@@ -56,4 +56,14 @@
    public R getGridEventDetailStatisticsByApp(@RequestBody GridEventStatisticsDTO statisticsDTO){
        return eventService.getGridEventDetailStatisticsByApp(statisticsDTO);
    }
    /**
     * 查询所有网格员工作汇总数据
     * @param statisticsAdminDTO    请求参数
     * @return  网格员工作汇总数据
     */
    @PostMapping("/admin/gridMemberStatisticsAll")
    public R gridMemberStatisticsAll(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO){
        return eventService.gridMemberStatisticsAll(statisticsAdminDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
@@ -68,4 +68,6 @@
    List<EventMapGridCascadeVO> getMapGridsListsByApp(@Param("userId") Long userId, @Param("type") Integer type, @Param("communityId") Long communityId);
    List<EventStatisticsMemberAdminVO> gridMemberStatisticsAll(@Param("statisticsAdminDTO") MemberStatisticsAdminDTO statisticsAdminDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java
@@ -137,4 +137,8 @@
    List<CivilVillageStatisticsVO> getCivilScreenVillageList(@Param("communityId") Long communityId);
    ScreenDrawEventPopulationTotalVO getVillagePopulationTotal(@Param("villageId") Long villageId);
    List<Map<String,Object>> getMemberBuildName(@Param("userId") Long userId);
    Integer getPopulationByLabelCount(@Param("floor") String floor,@Param("villageId") Long villageId);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
@@ -229,7 +229,7 @@
     * @param gridId    网格id
     * @return  网格统计数据
     */
    R getGridEventStatisticsByApp(Long gridId);
    R getGridEventStatisticsByApp(Long gridId,Long userId);
    /**
     * 查询网格事件统计数据
@@ -290,4 +290,11 @@
     * @return  小区统计数据
     */
    R civilVillageStatistics(Long villageId);
    /**
     * 查询所有网格员工作汇总数据
     * @param statisticsAdminDTO    请求参数
     * @return  网格员工作汇总数据
     */
    R gridMemberStatisticsAll(MemberStatisticsAdminDTO statisticsAdminDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
@@ -12,6 +12,7 @@
import com.panzhihua.common.model.dtos.grid.PageEventGridDataDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.*;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_grid.dao.*;
import com.panzhihua.service_grid.model.dos.*;
import com.panzhihua.service_grid.service.EventGridDataService;
@@ -206,11 +207,22 @@
                if(eventGridDataDTO.getLcGridId() != null){
                    //关联市平台网格
                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectById(eventGridDataDTO.getLcGridId());
                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>().lambda()
                            .eq(LcCompareCodeDO::getLcGridId,eventGridDataDTO.getLcGridId()));
                    if(compareCodeDO != null){
                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
                        compareCodeDO.setGridName(gridDataDO.getGridName());
                        compareCodeDO.setUpdateAt(new Date());
                        lcCompareCodeMapper.updateById(compareCodeDO);
                    }else{
                        compareCodeDO = new LcCompareCodeDO();
                        compareCodeDO.setId(Snowflake.getId());
                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
                        compareCodeDO.setGridName(gridDataDO.getGridName());
                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
                        compareCodeDO.setCreateAt(new Date());
                        lcCompareCodeMapper.insert(compareCodeDO);
                    }
                }
                return R.ok();
@@ -255,24 +267,29 @@
                    }
                }
                //查询已存在的关系需要清除
                lcCompareCodeMapper.delete(new QueryWrapper<LcCompareCodeDO>()
                        .lambda().eq(LcCompareCodeDO::getLocalGridId,gridDataDO.getId()));
                if(eventGridDataDTO.getLcGridId() != null){
                    //查询已存在的关系需要清除
                    LcCompareCodeDO oldCompareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
                            .lambda().eq(LcCompareCodeDO::getLocalGridId,gridDataDO.getId()));
                    if(oldCompareCodeDO != null){
                        lcCompareCodeMapper.updateLcCompareCode(gridDataDO.getId());
                    }
                    //关联市平台网格
                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectById(eventGridDataDTO.getLcGridId());
                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>().lambda()
                            .eq(LcCompareCodeDO::getLcGridId,eventGridDataDTO.getLcGridId()));
                    if(compareCodeDO != null){
                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
                        compareCodeDO.setGridName(gridDataDO.getGridName());
                        compareCodeDO.setUpdateAt(new Date());
                        lcCompareCodeMapper.updateById(compareCodeDO);
                    }else{
                        compareCodeDO = new LcCompareCodeDO();
                        compareCodeDO.setId(Snowflake.getId());
                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
                        compareCodeDO.setGridName(gridDataDO.getGridName());
                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
                        compareCodeDO.setCreateAt(new Date());
                        lcCompareCodeMapper.insert(compareCodeDO);
                    }
                }
                return R.ok();
            }
        }
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -1927,11 +1927,24 @@
     * @return  网格统计数据
     */
    @Override
    public R getGridEventStatisticsByApp(Long gridId){
    public R getGridEventStatisticsByApp(Long gridId,Long userId){
        GridEventStatisticsVO result = this.baseMapper.getGridEventStatisticsByApp(gridId);
        if(result != null){
            result.setTodayNum(result.getTodayNum() + result.getZfTodayNum());
            result.setMonthNum(result.getMonthNum() + result.getZfMonthNum());
            //查询当前网格员下管理的楼栋名称
            List<Map<String,Object>> buildNameList = this.baseMapper.getMemberBuildName(userId);
            Integer specialTotal = 0;
            if(!buildNameList.isEmpty()){
                for (Map<String,Object> buildMap:buildNameList) {
                    String buildName = buildMap.get("name").toString();
                    Long villageId = Long.parseLong(buildMap.get("village_id").toString());
                    Integer num = this.baseMapper.getPopulationByLabelCount(buildName,villageId);
                    specialTotal += num;
                }
            }
            result.setSpecialTotal(specialTotal);
        }
        return R.ok(result);
    }
@@ -2551,4 +2564,14 @@
        result.setVillageTotal(1);
        return R.ok(result);
    }
    /**
     * 查询所有网格员工作汇总数据
     * @param statisticsAdminDTO    请求参数
     * @return  网格员工作汇总数据
     */
    @Override
    public R gridMemberStatisticsAll(MemberStatisticsAdminDTO statisticsAdminDTO){
        return R.ok(eventGridMemberRelationMapper.gridMemberStatisticsAll(statisticsAdminDTO));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
@@ -384,4 +384,250 @@
        </if>
    </select>
    <select id="gridMemberStatisticsAll" resultType="com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO"
            parameterType="com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO">
        SELECT DISTINCT
        su.nick_name,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 5
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addTFTotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 5
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleTFTotal,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 3
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addMDTotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 3
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleMDTotal,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 1
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addZATotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 1
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleZATotal,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 4
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addBWDTotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 4
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleBWDTotal,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 2
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addGGTotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 2
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleGGTotal,(
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 6
        AND event_status = 2
        AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS addTSTotal,
        (
        SELECT
        count( id )
        FROM
        `event`
        WHERE
        event_category = 1
        AND event_type = 6
        AND event_status = 2
        AND event_process_status = 2
        AND process_user_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleTSTotal,
        ( SELECT count( id ) FROM event_visiting_tasks WHERE grid_member = su.user_id AND event_status = 2
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS handleZFTotal,
        ( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND handler_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS easyPhotoTotal,
        ( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2 AND grid_member_id = su.user_id
        <if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
        </if>
        <if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
        </if>
        ) AS propagandaEducationTotal
        FROM
        sys_user AS su
        LEFT JOIN `event` AS e ON su.user_id = e.grid_member_id
        WHERE
        su.type = 6
        <if test="statisticsAdminDTO.communityId!=null">
            AND su.community_id = #{statisticsAdminDTO.communityId}
        </if>
        <if test="statisticsAdminDTO.nickName!=null and statisticsAdminDTO.nickName != &quot;&quot;">
            AND su.nick_name like concat (#{statisticsAdminDTO.nickName},'%')
        </if>
        ORDER BY su.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -604,26 +604,6 @@
                </if>) AS educationNum,
            (
            SELECT
                count( id )
            FROM
                `event`
            WHERE
                event_category = 1
                AND event_type = 6
                AND event_status = 2
                AND event_process_status = 2
                AND process_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
            AND NOW()
            <if test="gridId!=null">
                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
                <if test="gridId!=null">
                    AND grid_id = #{gridId}
                </if>) AS specialTotal,
            (
            SELECT
                count( cmph.id )
            FROM
                com_mng_population_house AS cmph
@@ -640,7 +620,7 @@
        event_visiting_tasks
        WHERE
        event_status = 2 AND submit_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
        AND NOW()
        AND DATE_SUB( DATE_ADD(CURDATE(), INTERVAL 1 DAY),INTERVAL 1 SECOND)
        <if test="gridId!=null">
            AND grid_id = #{gridId}
        </if>
@@ -864,10 +844,10 @@
                    AND grid_id = #{statisticsDTO.gridId}
                </if>
                <if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
                    AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
                    AND submit_date <![CDATA[ >= ]]> #{statisticsDTO.startTime}
                </if>
                <if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
                    AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
                    AND submit_date <![CDATA[ <= ]]> #{statisticsDTO.endTime}
                </if>
            ) AS eventZFTotal,
            (
@@ -1351,4 +1331,18 @@
            village_id = #{villageId}
    </select>
    <select id="getMemberBuildName" resultType="Map">
        SELECT
            cmb.`name`,egmbr.village_id
        FROM
            event_grid_member_building_relation AS egmbr
            LEFT JOIN com_mng_building AS cmb ON cmb.id = egmbr.building_id
        WHERE
            egmbr.grid_member_id = #{userId}
    </select>
    <select id="getPopulationByLabelCount" resultType="Integer">
        select count(id) from com_mng_population where label is not null and village_id = #{villageId} and floor = #{floor}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java
@@ -55,9 +55,8 @@
     * @return 党组织集合
     */
    @PostMapping("listpartyorganizationAll")
    public R listPartyOrganizationAll(@RequestParam("communityId") Long communityId){
        List<PartyOrganizationVO> partyOrganizationVOS=partyOrganizationService.listPartyOrganizationAll(communityId);
        return R.ok(partyOrganizationVOS);
    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO){
        return partyOrganizationService.listPartyOrganizationAll(partyOrganizationVO);
    }
    
    /**
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java
@@ -1,8 +1,14 @@
package com.panzhihua.service_dangjian.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.vos.partybuilding.PartyOrganizationVO;
import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 党组织
@@ -11,5 +17,8 @@
 **/
@Mapper
public interface ComPbOrgDAO extends BaseMapper<ComPbOrgDO> {
    @Select("select id,`name`,`status` from com_pb_org where community_id = #{partyOrganizationVO.communityId}")
    IPage<PartyOrganizationVO> listPartyOrganizationAll(Page page, @Param("partyOrganizationVO") PartyOrganizationVO partyOrganizationVO);
    
}
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java
@@ -1,8 +1,6 @@
package com.panzhihua.service_dangjian.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
@@ -43,6 +41,7 @@
    /**
     * 封面url
     */
    @TableField(value = "cover", updateStrategy  = FieldStrategy.IGNORED)
    private String cover;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java
@@ -22,7 +22,7 @@
     * 平台所有的党组织
     * @return 党组织集合
     */
    List<PartyOrganizationVO> listPartyOrganizationAll(Long communityId);
    R listPartyOrganizationAll(PartyOrganizationVO partyOrganizationVO);
    /**
     * 新增党支部
     * @param partyOrganizationVO 党支部基本信息
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
@@ -141,8 +141,7 @@
        List<ComPbMemberDO> comPbMemberDOS=new ArrayList<>();
        if (!ObjectUtils.isEmpty(list)) {
            List<PartyOrganizationVO> partyOrganizationVOArrayList=partyOrganizationVOS;
            list.forEach(partyBuildingMemberExcelVO -> {
            for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO:list) {
                ComPbMemberDO comPbMemberDO=new ComPbMemberDO();
                Date date=new Date();
                comPbMemberDO.setUpdateAt(date);
@@ -150,7 +149,7 @@
                String orgName = partyBuildingMemberExcelVO.getOrgName();
                List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream().filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName())).collect(Collectors.toList());
                if (ObjectUtils.isEmpty(collect)) {
                    throw new PartyBuildingMemberException("导入失败,组织不存在"+partyBuildingMemberExcelVO.getOrgName());
                    throw new PartyBuildingMemberException("导入失败,组织不存在"+partyBuildingMemberExcelVO.getOrgName() + ",请先在“党支部管理”中添加该党支部");
                }else{
                    PartyOrganizationVO partyOrganizationVO = collect.get(0);
                    comPbMemberDO.setOrgId(partyOrganizationVO.getId());
@@ -161,7 +160,12 @@
                            .eq(ComPbMemberDO::getCommunityId,partyOrganizationVO.getCommunityId())
                            .in(ComPbMemberDO::getAuditResult,0,1));
                    if(!comPbMemberDOList.isEmpty()){
                        throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+ partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" + partyBuildingMemberExcelVO.getName());
                        comPbMemberDOList.forEach(comPbMember -> {
                            BeanUtils.copyProperties(partyBuildingMemberExcelVO,comPbMember);
                            this.baseMapper.updateById(comPbMember);
                        });
                        continue;
//                        throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+ partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" + partyBuildingMemberExcelVO.getName());
                    }
                }
@@ -190,7 +194,7 @@
                comPbMemberDO.setName(partyBuildingMemberExcelVO.getName());
                comPbMemberDO.setIdCard(partyBuildingMemberExcelVO.getIdCard());
                comPbMemberDOS.add(comPbMemberDO);
            });
            }
        }
        this.saveBatch(comPbMemberDOS);
        return R.ok();
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.partybuilding.ComListPartyDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.partybuilding.PartyOrganizationVO;
@@ -62,23 +64,16 @@
     * @return 党组织集合
     */
    @Override
    public List<PartyOrganizationVO> listPartyOrganizationAll(Long communityId) {
        List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
        List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO
                .selectList(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getCommunityId, communityId));
        if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
            comPbOrgDOS.forEach(comPbOrgDO -> {
                PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO();
    public R listPartyOrganizationAll(PartyOrganizationVO partyOrganizationVO) {
        IPage<PartyOrganizationVO> orgPgaeList = this.comPbOrgDAO.listPartyOrganizationAll(new Page(partyOrganizationVO.getPageNum(),partyOrganizationVO.getPageSize()),partyOrganizationVO);
        if (!ObjectUtils.isEmpty(orgPgaeList.getRecords())) {
            orgPgaeList.getRecords().forEach(comPbOrgDO -> {
                List<ComPbMemberDO> comPbMemberDOs = comPbMemberDAO.selectList(
                        new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getOrgId, comPbOrgDO.getId()));
                partyOrganizationVO.setId(comPbOrgDO.getId());
                partyOrganizationVO.setName(comPbOrgDO.getName());
                partyOrganizationVO.setStatus(comPbOrgDO.getStatus());
                partyOrganizationVO.setCountPerson(comPbMemberDOs.size());
                partyOrganizationVOS.add(partyOrganizationVO);
                comPbOrgDO.setCountPerson(comPbMemberDOs.size());
            });
        }
        return partyOrganizationVOS;
        return R.ok(orgPgaeList);
    }
    /**
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java
New file
@@ -0,0 +1,19 @@
package com.panzhihua.service_user.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO;
import org.apache.ibatis.annotations.Mapper;
/**
 * program 攀枝花智慧社区项目
 * description 本地网格和浪潮的对码表管理API
 *
 * @author manailin
 * Date 2021-01-22 15:30
 **/
@Mapper
public interface LcCompareMemberCodeMapper extends BaseMapper<LcCompareCodeMemberDO> {
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -414,7 +414,7 @@
    @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}")
    @Delete("delete from lc_compare_code_member 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}")
@@ -423,8 +423,8 @@
    @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);
    @Select("select lc_grid_member_id,lc_grid_member_name,lc_bind_user_id from lc_compare_code_member where local_grid_member_id = #{gridMemberId}")
    Map<String,String> getLcMemberId(@Param("gridMemberId") Long gridMemberId);
    @Select("select count(id) from event_grid_member_relation where grid_member_id = #{userId}")
    Integer getGridIsOk(@Param("userId") Long userId);
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java
New file
@@ -0,0 +1,38 @@
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;
/**
 * Description  本地网格和浪潮的对码表
 * ClassName    LcCompareCode
 * @author      manailin
 */
 @Data
 @TableName("lc_compare_code_member")
public class LcCompareCodeMemberDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.INPUT)
    private Long id;
    /**本地网格ID*/
    private String localGridMemberId;
    /**网格名称*/
    private String gridMemberName;
    /**浪潮市平台网格ID*/
    private String lcGridMemberId;
    /**浪潮市平台网格名称*/
    private String lcGridMemberName;
    /**浪潮网格员绑定的用户ID*/
    private String lcBindUserId;
    /**创建时间*/
    private Date createAt;
    /**修改时间*/
    private Date updateAt;
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -27,6 +27,7 @@
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.RealNameUtil;
import com.panzhihua.common.utlis.SensitiveUtil;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_user.dao.*;
import com.panzhihua.service_user.model.dos.*;
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
@@ -88,6 +89,8 @@
    private EventGridMemberBuildingRelationService buildingRelationService;
    @Resource
    private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
    @Resource
    private LcCompareMemberCodeMapper lcCompareMemberCodeMapper;
//    @Resource
//    private GridService gridService;
@@ -1938,7 +1941,24 @@
            //关联市平台网格员
            if(eventGridMemberAddDTO.getLcMemberId() != null){
                this.userDao.addLcMember(eventGridMemberAddDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
                LcCompareCodeMemberDO compareCodeMemberDO = lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId,eventGridMemberAddDTO.getLcMemberId()));
                if(compareCodeMemberDO != null){
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setUpdateAt(new Date());
                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
                }else{
                    compareCodeMemberDO = new LcCompareCodeMemberDO();
                    compareCodeMemberDO.setId(Snowflake.getId());
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setLcGridMemberId(eventGridMemberAddDTO.getLcMemberId());
                    compareCodeMemberDO.setLcBindUserId(eventGridMemberAddDTO.getLcBindUserId());
                    compareCodeMemberDO.setLcGridMemberName(eventGridMemberAddDTO.getLcMemberName());
                    compareCodeMemberDO.setCreateAt(new Date());
                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
                }
            }
            //网格员关联楼栋
@@ -1988,7 +2008,12 @@
        if(!gridMemberPage.getRecords().isEmpty()){
            gridMemberPage.getRecords().forEach(gridMember -> {
                //查询网格员关联市平台网格员id
                gridMember.setLcMemberId(this.userDao.getLcMemberId(gridMember.getUserId()));
                Map<String,String> lcMemberMap = this.userDao.getLcMemberId(gridMember.getUserId());
                if(lcMemberMap != null){
                    gridMember.setLcMemberId(lcMemberMap.get("lc_grid_member_id"));
                    gridMember.setLcMemberName(lcMemberMap.get("lc_grid_member_name"));
                    gridMember.setLcBindUserId(lcMemberMap.get("lc_bind_user_id"));
                }
                //查询网格员关联楼栋信息
                List<GridMemberBuildingVO> memberBuildingList = eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
@@ -2041,7 +2066,24 @@
            //关联市平台网格员
            if(gridMemberDTO.getLcMemberId() != null){
                //关联现有的网格员信息
                this.userDao.addLcMember(gridMemberDTO.getLcMemberId(),sysUserDO.getUserId(),sysUserDO.getNickName());
                LcCompareCodeMemberDO compareCodeMemberDO = lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
                        .eq(LcCompareCodeMemberDO::getLcGridMemberId,gridMemberDTO.getLcMemberId()));
                if(compareCodeMemberDO != null){
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setUpdateAt(new Date());
                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
                }else{
                    compareCodeMemberDO = new LcCompareCodeMemberDO();
                    compareCodeMemberDO.setId(Snowflake.getId());
                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
                    compareCodeMemberDO.setLcGridMemberId(gridMemberDTO.getLcMemberId());
                    compareCodeMemberDO.setLcBindUserId(gridMemberDTO.getLcBindUserId());
                    compareCodeMemberDO.setLcGridMemberName(gridMemberDTO.getLcMemberName());
                    compareCodeMemberDO.setCreateAt(new Date());
                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
                }
            }
            //清除原网格员与楼栋关联关系
            this.userDao.delGridMemberRelation(sysUserDO.getUserId());
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -86,6 +86,7 @@
//        boolean detailworkguide = !requestURI.contains("workguide/detailworkguide");
//        boolean pagedynamic = !requestURI.contains("partybuilding/pagedynamic");
//        boolean infodynamic = !requestURI.contains("partybuilding/infodynamic");
        SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
        if (login||doc||css||js||ui||swagger||ico||docs||error||refreshToken||useragreement||wxPay
                ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
@@ -198,8 +199,19 @@
                    safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO,hexStr );
                }
            } else {
                ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
                return;
                //小程序无需登录也可访问地址列表
                List<String> noLoginUrl = new ArrayList<>();
                noLoginUrl.add("/api/applets/community/detaildynamic");
                noLoginUrl.add("/api/applets/community/detailactivity");
                if(noLoginUrl.contains(requestURI)){
                    List<SimpleGrantedAuthority> authorities = new ArrayList<>();
                    authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(null, null, authorities);
                    SecurityContextHolder.getContext().setAuthentication(authentication);
                }else {
                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
                    return;
                }
            }
        }
        filterChain.doFilter(safeboxRequestWrapper,response);