Pu Zhibing
2025-02-24 573123827763851bba3ac301aba7515ff4ae037b
Merge remote-tracking branch 'origin/master'

# Conflicts:
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BannerMapper.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java
# springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java
9 文件已重命名
41个文件已修改
67个文件已添加
3169 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java 427 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -26,6 +26,7 @@
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml
@@ -11,31 +11,31 @@
    serviceUrl:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
spring:
  application:
    name: huacheng-config
  cloud:
    config:
      server:
        git:
          uri: http://gitlab.nhys.cdnhxx.com:9380/huanghongfa/config-repo.git
#          search-paths: adminConfig
          username: huanghongfa
          password: huanghongfa123456
          default-label: huacheng
#          basedir: F:\nahan\config-repo\config-repo
#spring:
#  application:
#    name: huacheng-config
#  profiles:
#    active: native
#
#  cloud:
#    config:
#      server:
#        native:
#          search-locations: file:E:\\work\\config\\config-repo
#        git:
#          uri: http://gitlab.nhys.cdnhxx.com:9380/huanghongfa/config-repo.git
##          search-paths: adminConfig
#          username: huanghongfa
#          password: huanghongfa123456
#          default-label: huacheng
##          basedir: F:\nahan\config-repo\config-repo
spring:
  application:
    name: huacheng-config
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: file:F:\lfl\config-repo-huacheng
management:
  endpoints:
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml
@@ -63,6 +63,13 @@
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
@@ -79,10 +86,10 @@
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-amqp</artifactId>-->
<!--        </dependency>-->
        <!--添加监控依赖包-->
        <dependency>
            <groupId>io.micrometer</groupId>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java
@@ -1,5 +1,6 @@
package com.panzhihua.sangeshenbian;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
@@ -7,16 +8,19 @@
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * Hello world!
 *
 */
@SpringCloudApplication
@EnableSwagger2
@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
@EnableEurekaClient
@EnableCircuitBreaker
@ComponentScan({"com.panzhihua.sangeshenbian", "com.panzhihua.common"})
@MapperScan("com.panzhihua.sangeshenbian.dao")
@EnableScheduling
public class ServiceSangeshenbianApplication
{
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.sangeshenbian.annotation;
import java.lang.annotation.*;
/**
 * @Descreption: 分布式锁注解
 * @Author: lfl
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DistributedLock {
    /**
     * 锁名字(没有EL解析)
     */
    String lockName() default "";
    /**
     * 锁前缀(有EL解析)
     */
    String lockNamePre() default "";
    /**
     * 锁后缀(有EL解析)
     */
    String lockNamePost() default "";
    /**
     * 锁前后缀拼接分隔符
     */
    String separator() default "_";
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java
@@ -4,9 +4,8 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.Banner;
import com.panzhihua.sangeshenbian.model.ProblemType;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.Banner;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.service.IBannerService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import io.swagger.annotations.Api;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java
@@ -3,8 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.Department;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.Department;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.service.IDepartmentService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import io.swagger.annotations.Api;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java
@@ -4,8 +4,7 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.MessageNotification;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java
@@ -5,8 +5,8 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.ProblemType;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.ProblemType;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.service.IProblemTypeService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import io.swagger.annotations.Api;
@@ -17,7 +17,6 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java
@@ -2,7 +2,7 @@
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.SystemMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
import com.panzhihua.sangeshenbian.service.ISystemMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java
@@ -5,8 +5,8 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.SystemRole;
import com.panzhihua.sangeshenbian.model.SystemRoleMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemRole;
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService;
import com.panzhihua.sangeshenbian.service.ISystemRoleService;
import com.panzhihua.sangeshenbian.warpper.*;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java
@@ -2,17 +2,15 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panzhihua.common.constants.SecurityConstants;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.dtos.PageBaseDTO;
import com.panzhihua.common.model.vos.LoginReturnVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
import com.panzhihua.common.service.auth.TokenService;
import com.panzhihua.sangeshenbian.model.SystemMenu;
import com.panzhihua.sangeshenbian.model.SystemRoleMenu;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.service.ISystemMenuService;
import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java
@@ -2,7 +2,7 @@
import com.panzhihua.common.interfaces.OperLog;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig;
import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java
New file
@@ -0,0 +1,138 @@
package com.panzhihua.sangeshenbian.aspectj;
import com.panzhihua.sangeshenbian.annotation.DistributedLock;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.Objects;
/**
 * @Desecription: 分布式锁切面
 * 注意!!!分布式锁不能加在事务方法当中:因为当锁释放,事务还没有提交
 */
@Aspect
@Component
@Slf4j
public class DistributedLockAspect {
    @Resource
    private RedissonClient redissonClient;
    /**
     * @Descreption: 定义切面:以注解为切面
     */
    @Pointcut("@annotation(com.panzhihua.sangeshenbian.annotation.DistributedLock)")
    public void distributedLockAspect() {
    }
    @Around(value = "distributedLockAspect()")
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        //切点所在的类
        MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
        Method method = methodSignature.getMethod();
        //
        DistributedLock annotation = method.getAnnotation(DistributedLock.class);
        String lockName = getLockName(annotation, pjp.getArgs(), method);
        //log.info("lockName:"+lockName);
        RLock lock = redissonClient.getLock(lockName);
        lock.lock();
        try {
            return pjp.proceed();
        } finally {
            if (lock.isLocked() && lock.isHeldByCurrentThread()) {
                //释放锁
                lock.unlock();
            }
        }
    }
    /**
     * @Descreption: 获取锁名字,优先获取注解中锁名
     */
    private String getLockName(DistributedLock distributedLock, Object[] args, Method method) {
        //优先获取注解名称
        if (StringUtils.isNotBlank(distributedLock.lockName())) {
            return distributedLock.lockName();
        }
        //根据参数匹配有参数就使用动态参数,没有就使用定义参数
        String lockNamePre = distributedLock.lockNamePre();
        String lockNamePost = distributedLock.lockNamePost();
        String separator = distributedLock.separator();
        String preExpression = parseExpression(lockNamePre, method, args);
        String postExpression = parseExpression(lockNamePost, method, args);
        StringBuilder sb = new StringBuilder();
        if (StringUtils.isNotBlank(preExpression)) {
            sb.append(preExpression);
        } else {
            sb.append(lockNamePre);
        }
        sb.append(separator);
        if (StringUtils.isNotBlank(postExpression)) {
            sb.append(postExpression);
        } else {
            sb.append(lockNamePost);
        }
        return sb.toString();
    }
    /**
     * el表达式解析
     *
     * @param expressionString 解析值
     * @param method           方法
     * @param args             参数
     * @return
     */
    private String parseExpression(String expressionString, Method method, Object[] args) {
        //获取被拦截方法参数名列表
        LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer();
        String[] paramNameArr = discoverer.getParameterNames(method);
        //SPEL解析
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        for (int i = 0; i < Objects.requireNonNull(paramNameArr).length; i++) {
            context.setVariable(paramNameArr[i], args[i]);
        }
        return parser.parseExpression(expressionString).getValue(context, String.class);
    }
//    ==========================示例=============================
    //    //固定静态参数锁:product_lock
//    @DistributedLock(lockName = "product_lock")
//    @GetMapping(value = "/test1")
//    public void test1() {
//        System.out.println("执行事务");
//    }
//
//    //未匹配到参数,因此仍然是静态参数锁:#param1_#param2
//    @DistributedLock(lockNamePre = "#param1", lockNamePost = "#param2")
//    @GetMapping(value = "/test2")
//    public void test2() {
//        System.out.println("执行事务");
//    }
//
    //匹配到参数,动态参数锁:hello_world
//    @DistributedLock(lockNamePre = "#order", lockNamePost = "#param2")
//    @GetMapping(value = "/test3")
    public void test3(String param1, String param2) {
        System.out.println("执行事务");
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java
New file
@@ -0,0 +1,42 @@
package com.panzhihua.sangeshenbian.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 自动填充
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-12-11 14:23
 **/
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
        // 或者
        this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        this.strictInsertFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        // 或者
        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
        this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        this.strictInsertFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
    }
    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
        // 或者
        this.strictUpdateFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        this.strictUpdateFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        // 或者
        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.sangeshenbian.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 分页
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-11-30 16:26
 **/
@Configuration
public class MybatisPlusConfig {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java
New file
@@ -0,0 +1,57 @@
package com.panzhihua.sangeshenbian.config;
import org.apache.commons.lang3.StringUtils;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.redisson.config.SingleServerConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @Desecription:
 */
@Configuration
public class RedissonConfig {
    @Value("${spring.redis.host}")
    private String host;
    @Value("${spring.redis.port}")
    private String port;
    @Value("${spring.redis.database}")
    private int database;
    @Value("${spring.redis.timeout}")
    private String timeout;
    @Value("${spring.redis.password}")
    private String password;
    /**
     * @Descreption: RedissonClient, 单机模式
     */
    @Bean(destroyMethod = "shutdown")
    public RedissonClient redisson() {
        Config config = new Config();
        SingleServerConfig singleServerConfig = config.useSingleServer();
        singleServerConfig.setAddress("redis://" + host + ":" + port);
        singleServerConfig.setTimeout(10000);
        singleServerConfig.setDatabase(database);
        singleServerConfig.setRetryInterval(1000);
        singleServerConfig.setPingConnectionInterval(1000);
        if (StringUtils.isNotBlank(password)) {
            singleServerConfig.setPassword(password);
        }
        return Redisson.create(config);
    }
//    @Bean
//    public RedissonLocker redissonLocker(RedissonClient redissonClient) {
//        RedissonLocker locker = new RedissonLocker(redissonClient);
//        redissonClient.getlo
//        //设置LockUtil的锁处理对象
//        LockUtils.setLocker(locker);
//        return locker;
//    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java
New file
@@ -0,0 +1,31 @@
package com.panzhihua.sangeshenbian.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: swagger3
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-11-19 16:08
 **/
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).select()
//            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
            .apis(RequestHandlerSelectors.basePackage("com.panzhihua.sangeshenbian")).build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("三个身边开发文档").description("。").contact(new Contact("lfl", "", ""))
            .version("1.0").build();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 行政区划表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@RestController
@RequestMapping("/bc-region")
public class BcRegionController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 社区表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@RestController
@RequestMapping("/com-act")
public class ComActController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 街道表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@RestController
@RequestMapping("/com-street")
public class ComStreetController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java
New file
@@ -0,0 +1,24 @@
package com.panzhihua.sangeshenbian.controller;
import com.panzhihua.common.model.vos.R;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 诉求上报、延期申请审核表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@RestController
@RequestMapping("/applet/complaint-audit-record")
public class ComplaintAuditRecordController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
New file
@@ -0,0 +1,158 @@
package com.panzhihua.sangeshenbian.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.sangeshenbian.annotation.DistributedLock;
import com.panzhihua.sangeshenbian.model.dto.*;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
import com.panzhihua.sangeshenbian.service.IComplaintService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
 * <p>
 * 诉求报告表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Validated
@RestController
@RequestMapping("/applet/complaint")
@RequiredArgsConstructor
@Api(tags = "诉求管理")
public class ComplaintController extends BaseController {
    private final IComplaintService complaintService;
    /**
     * 录入诉求
     */
    @PostMapping("/save")
    @ApiOperation(value = "录入诉求")
    @DistributedLock(lockName = "complaint_serial_number_lock")
    public void save(Complaint complaint) {
        complaintService.saveComplaint(complaint, getUserId());
    }
    @PostMapping("/list")
    @ApiOperation("工单列表")
    public R<Page<ComplaintVO>> complaintList(@RequestBody ComplaintQuery query) {
        return R.ok(complaintService.complaintList(query,getLoginUserInfo()));
    }
    @GetMapping("/detail")
    @ApiOperation("工单详情")
    public R<ComplaintVO> detail(@ApiParam(name = "id", value = "工单id", required = true) Long id) {
        return R.ok(complaintService.detail(id));
    }
    @GetMapping("/progress/{complaintId}")
    public R<List<ComplaintProgress>> progress(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) {
        return R.ok(complaintService.progress(complaintId));
    }
    @PostMapping("/save-process")
    @ApiOperation("办理进度录入")
    public R<?> saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){
        complaintService.saveProcess(dto,getLoginUserInfo());
        return R.ok();
    }
    @PostMapping("/save-result")
    @ApiOperation("办理结果录入")
    public R<?> saveResult(@RequestBody ComplaintCompletionDTO dto){
        complaintService.saveResult(dto,getLoginUserInfo());
        return R.ok();
    }
    @GetMapping("/delay-detail/{complaintId}")
    @ApiOperation("延期情况说明")
    public R<ComplaintAuditRecord> delayDetail(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) {
        return R.ok(complaintService.delayDetail(complaintId));
    }
    /**
     * 问题上报
     */
    @PostMapping("/report")
    @ApiOperation(value = "问题上报")
    public R<?> report(@RequestBody ComplaintReportDTO complaintReportDTO) {
        complaintService.saveReport(complaintReportDTO, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 诉求下派
     */
    @PostMapping("/saveDispatch")
    @ApiOperation("诉求下派")
    public R<?> saveDispatch(@RequestBody ComplaintDispatch dto){
        complaintService.saveDispatch(dto, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 延期申请
     */
    @PostMapping("/saveDelay")
    @ApiOperation(value = "延期申请")
    public R<?> saveDelay(@RequestBody ComplaintDelayDTO dto){
        complaintService.saveDelay(dto, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 延期审核
     */
    @PostMapping("/delayAudit")
    @ApiOperation(value = "延期审核")
    public R<?> delayAudit(@RequestBody ComplaintDelayAuditDTO dto) {
        complaintService.delayAudit(dto, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 上报审核
     */
    @PostMapping("/reportAudit")
    @ApiOperation(value = "问题上报审核")
    public R<?> reportAudit(@RequestBody ComplaintReporAuditDTO dto) {
        complaintService.reportAudit(dto, getLoginUserInfo());
        return R.ok();
    }
    /**
     * 获取下派单位列表
     */
    @GetMapping("/getDispatchList")
    @ApiOperation(value = "获取下派单位列表")
    public R<?> getDispatchList() {
        return R.ok(complaintService.getDispatchList(getLoginUserInfo()));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 诉求流转记录表 前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@RestController
@RequestMapping("/complaint-flow")
public class ComplaintFlowController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@RestController
@RequestMapping("/complaint-progress")
public class ComplaintProgressController {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
New file
@@ -0,0 +1,73 @@
package com.panzhihua.sangeshenbian.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
import com.panzhihua.common.service.sangeshenbian.SystemUserService;
import com.panzhihua.sangeshenbian.model.entity.Banner;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
import com.panzhihua.sangeshenbian.model.vo.PartyCardInfoVO;
import com.panzhihua.sangeshenbian.service.IBannerService;
import com.panzhihua.sangeshenbian.service.IComplaintService;
import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * @author mitao
 * @date 2025/2/23
 */
@RestController
@RequestMapping("/applet/home")
@RequiredArgsConstructor
@Api(tags = "首页相关接口")
public class HomeController extends BaseController {
    private final IBannerService bannerService;
    private final IMessageNotificationService messageNotificationService;
    private final IComplaintService complaintService;
    private final ISystemUserService systemUserService;
    @ApiOperation("获取banner列表")
    @GetMapping("/banner-list")
    public R<List<Banner>> getBannerList() {
        return R.ok(bannerService.list());
    }
    @GetMapping("/party-card-info")
    @ApiOperation("获取党员证信息")
    public R<PartyCardInfoVO> getPartyCardInfo() {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        PartyCardInfoVO partyCardInfoVO = new PartyCardInfoVO();
        partyCardInfoVO.setName(loginUserInfo.getName());
        partyCardInfoVO.setIdCard(loginUserInfo.getIdCard());
        partyCardInfoVO.setPartyOrganization(loginUserInfo.getCommunityName());
        return R.ok(partyCardInfoVO);
    }
    @PostMapping("/message")
    @ApiOperation("获取消息列表")
    public R<Page<MessageNotificationVO>> getMessageList(@RequestBody BasePage page) {
        return R.ok(messageNotificationService.getMessageList(page,getUserId()));
    }
    @PostMapping("/todo-list")
    @ApiOperation("获取待办诉求")
    public R<Page<ComplaintTodoVO>> getTodoList(@RequestBody BasePage page) {
        return R.ok(complaintService.getTodoList(page,getLoginUserInfo()));
    }
    @GetMapping("/current-user-info")
    @ApiOperation("获取三个身边当前用户信息 用于判断用户是否是上级")
    public R<SystemUser> getCurrentUserInfo() {
        return R.ok(systemUserService.getSystemUserByPhone(getLoginUserInfo().getPhone()).get());
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.BcRegion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 * 行政区划表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface BcRegionMapper extends BaseMapper<BcRegion> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 * 社区表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface ComActMapper extends BaseMapper<ComAct> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.ComStreet;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 * 街道表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface ComStreetMapper extends BaseMapper<ComStreet> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 * 诉求上报、延期申请审核表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface ComplaintAuditRecordMapper extends BaseMapper<ComplaintAuditRecord> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 * 诉求流转记录表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface ComplaintFlowMapper extends BaseMapper<ComplaintFlow> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
New file
@@ -0,0 +1,46 @@
package com.panzhihua.sangeshenbian.dao;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * 问题报告表 Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface ComplaintMapper extends BaseMapper<Complaint> {
    /**
     * 工单列表
     * @param page
     * @param query
     * @param targetId
     * @param isSuperior
     * @return
     */
    Page<ComplaintVO> selectComplaintPage(Page<ComplaintVO> page, @Param("query") ComplaintQuery query, @Param("targetId") String targetId, @Param("isSuperior") Integer isSuperior);
    /**
     *  工单详情
     * @param id
     * @return
     */
    ComplaintVO getDetail(Long id);
    /**
     * 获取待办诉求
     * @param page
     * @param targetId
     * @param isSuperior
     * @return
     */
    Page<ComplaintTodoVO> getTodoList(Page<ComplaintTodoVO> page, @Param("targetId") String targetId, @Param("isSuperior") int isSuperior);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.dao;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface ComplaintProgressMapper extends BaseMapper<ComplaintProgress> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.sangeshenbian.model.Department;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.sangeshenbian.model.entity.Department;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.sangeshenbian.model.MessageNotification;
import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.sangeshenbian.model.ProblemType;
import com.panzhihua.sangeshenbian.model.entity.ProblemType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.sangeshenbian.model.SystemMenu;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java
@@ -3,12 +3,10 @@
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.sangeshenbian.model.SystemRole;
import com.panzhihua.sangeshenbian.model.entity.SystemRole;
import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.sangeshenbian.model.SystemRoleMenu;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java
@@ -3,13 +3,11 @@
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.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.warpper.SystemUserList;
import com.panzhihua.sangeshenbian.warpper.SystemUserListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java
New file
@@ -0,0 +1,36 @@
package com.panzhihua.sangeshenbian.enums;
import lombok.Data;
// 审核状态枚举类
public enum AuditStatusEnum {
    PENDING(0, "待审核"),
    APPROVED(1, "审核通过"),
    REJECTED(2, "审核驳回");
    private final int code;
    private final String description;
    AuditStatusEnum(int code, String description) {
        this.code = code;
        this.description = description;
    }
    public int getCode() {
        return code;
    }
    public String getDescription() {
        return description;
    }
    public static String getDescriptionByCode(int code) {
        for (AuditStatusEnum status : AuditStatusEnum.values()) {
            if (status.getCode() == code) {
                return status.getDescription();
            }
        }
        return null;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.sangeshenbian.enums;
// 流转状态枚举类(更名为 ProcessStatusEnum)
public enum ProcessStatusEnum {
    PROCESSING(0, "正在办理"),
    EXTENDED(1, "延期办理"),
    OVERDUE(2, "超时办理"),
    COMPLETED(3, "已办结");
    private final int code;
    private final String description;
    ProcessStatusEnum(int code, String description) {
        this.code = code;
        this.description = description;
    }
    public int getCode() {
        return code;
    }
    public String getDescription() {
        return description;
    }
    public static String getDescriptionByCode(int code) {
        for (ProcessStatusEnum status : ProcessStatusEnum.values()) {
            if (status.getCode() == code) {
                return status.getDescription();
            }
        }
        return null;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java
New file
@@ -0,0 +1,33 @@
package com.panzhihua.sangeshenbian.enums;
public enum ReportTypeEnum {
    COMMUNITY(1, "社区"),
    STREET(2, "街道"),
    DISTRICT(3, "区县"),
    CITY(4, "市");
    private final int code;
    private final String description;
    ReportTypeEnum(int code, String description) {
        this.code = code;
        this.description = description;
    }
    public int getCode() {
        return code;
    }
    public String getDescription() {
        return description;
    }
    public static ReportTypeEnum fromCode(int code) {
        for (ReportTypeEnum type : ReportTypeEnum.values()) {
            if (type.getCode() == code) {
                return type;
            }
        }
        throw new IllegalArgumentException("Invalid code: " + code);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java
New file
@@ -0,0 +1,38 @@
package com.panzhihua.sangeshenbian.model.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("办理结果录入数据传输对象")
public class ComplaintCompletionDTO {
    @ApiModelProperty(value = "诉求id")
    private Long complaintId;
    @ApiModelProperty(value = "办结状态: 3-已办结 4-群众撤销")
    private Integer status;
    @ApiModelProperty(value = "诉求id")
    private Long id;
    @ApiModelProperty(value = "办理结果描述")
    private String completionDescription;
    @ApiModelProperty(value = "办理结果图片")
    private String completionImages;
    @ApiModelProperty(value = "办理结果视频")
    private String completionVideos;
    @ApiModelProperty(value = "办理结果其他说明")
    private String completionOtherDescription;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java
New file
@@ -0,0 +1,19 @@
package com.panzhihua.sangeshenbian.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "延期审核")
public class ComplaintDelayAuditDTO {
    @ApiModelProperty(value = "审核记录id")
    private Long id;
    @ApiModelProperty(value = "诉求id")
    private Long complaintId;
    @ApiModelProperty(value = "审核结果: 1-通过 2-驳回")
    private Integer auditResult;
    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java
New file
@@ -0,0 +1,22 @@
package com.panzhihua.sangeshenbian.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "诉求延期")
public class ComplaintDelayDTO {
    @ApiModelProperty(value = "诉求id")
    private Long complaintId;
    @ApiModelProperty("说明")
    private String comment;
    @ApiModelProperty("图片")
    private String images;
    @ApiModelProperty("视频")
    private String videos;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java
New file
@@ -0,0 +1,15 @@
package com.panzhihua.sangeshenbian.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "诉求下派")
public class ComplaintDispatch {
    @ApiModelProperty(value = "诉求id")
    private Long complaintId;
    @ApiModelProperty(value = "内容")
    private String comment;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.sangeshenbian.model.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel
public class ComplaintProcessDTO {
    @ApiModelProperty(value = "诉求id")
    @NotNull(message = "诉求id不能为空")
    private Long complaintId;
    @ApiModelProperty(value = "办理进度描述")
    @NotBlank(message = "办理进度描述不能为空")
    private String describe;
    @ApiModelProperty(value = "图片url")
    private String imgUrl;
    @ApiModelProperty(value = "视频url")
    private String video;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ComplaintReporAuditDTO {
    @ApiModelProperty(value = "审核记录id")
    private Long id;
    @ApiModelProperty(value = "审核结果: 1-通过 2-驳回")
    private Integer auditResult;
    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "诉求上报")
public class ComplaintReportDTO {
    @ApiModelProperty(value = "诉求id")
    private Long complaintId;
    @ApiModelProperty(value = "诉求内容")
    private String comment;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/Banner.java
@@ -1,8 +1,9 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -40,6 +41,7 @@
     * 删除标识(0=否,1=是)
     */
    @TableField("del")
    @TableLogic
    private Integer del;
    /**
     * 添加时间
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java
New file
@@ -0,0 +1,70 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 行政区划表
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="BcRegion对象", description="行政区划表")
public class BcRegion implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键")
    @TableId(value = "region_id", type = IdType.NONE)
    private String regionId;
    @ApiModelProperty(value = "行政区划编码")
    private String regionCode;
    @ApiModelProperty(value = "行政区划名称")
    private String regionName;
    @ApiModelProperty(value = "父id")
    private String parentId;
    @ApiModelProperty(value = "所在层级")
    private Integer hierarchyOrder;
    @ApiModelProperty(value = "同层顺序")
    private Integer levelOrder;
    @ApiModelProperty(value = "层级格式编码(格式 : `**`**` )")
    private String formatCode;
    @ApiModelProperty(value = "创建者")
    private Long createUserId;
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createDatetime;
    @ApiModelProperty(value = "修改者")
    private Long modifyUserId;
    @ApiModelProperty(value = "修改时间")
    private LocalDateTime modifyDatetime;
    @ApiModelProperty(value = "删除标识(0:未删除,1:已删除)")
    private Boolean deleteFlag;
    @ApiModelProperty(value = "子集数量")
    private Integer childrenNum;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java
New file
@@ -0,0 +1,106 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 社区表
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("com_act")
@ApiModel(value="ComAct对象", description="社区表")
public class ComAct implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = ",主键")
    @TableId(value = "community_id", type = IdType.NONE)
    private Long communityId;
    @ApiModelProperty(value = "街道Id")
    private Long streetId;
    @ApiModelProperty(value = "社区名字")
    private String name;
    @ApiModelProperty(value = "社区地址")
    private String address;
    @ApiModelProperty(value = "经度")
    private String lng;
    @ApiModelProperty(value = "维度")
    private String lat;
    @ApiModelProperty(value = "省份地址编码")
    private String provinceCode;
    @ApiModelProperty(value = "市级地址编码")
    private String cityCode;
    @ApiModelProperty(value = "区级地址编码")
    private String areaCode;
    @ApiModelProperty(value = "社区面积")
    private String square;
    @ApiModelProperty(value = "联系人")
    private String contacts;
    @ApiModelProperty(value = "联系人电话")
    private String contactsPhone;
    @ApiModelProperty(value = "社区总人口")
    private Integer totalUser;
    @ApiModelProperty(value = "社区书记-用户ID")
    private Long managerId;
    @ApiModelProperty(value = "社区书记_名称")
    private String managerName;
    @ApiModelProperty(value = "社区介绍")
    private String introduce;
    @ApiModelProperty(value = "层次递归字段(省>市>区县>街道>社区)")
    private String path;
    @ApiModelProperty(value = "超管账号")
    private String account;
    @ApiModelProperty(value = "账号密码")
    private String password;
    @ApiModelProperty(value = "状态 0 启用 1 禁用")
    private Integer state;
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createAt;
    @ApiModelProperty(value = "是否大屏统计(1.是 2.否)")
    private Integer isScreenStatistics;
    @ApiModelProperty(value = "明文密码")
    private String plaintextPassword;
    private String appId;
    private String solvePhone;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java
New file
@@ -0,0 +1,69 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 街道表
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="ComStreet对象", description="街道表")
public class ComStreet implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = ",主键")
    @TableId(value = "street_id", type = IdType.NONE)
    private String streetId;
    @ApiModelProperty(value = "街道名称")
    private String name;
    @ApiModelProperty(value = "省份地址编码")
    private Integer provinceCode;
    @ApiModelProperty(value = "市级地址编码")
    private Integer cityCode;
    @ApiModelProperty(value = "区级地址编码")
    private Integer areaCode;
    @ApiModelProperty(value = "街道地址")
    private String address;
    @ApiModelProperty(value = "经度")
    private String lng;
    @ApiModelProperty(value = "纬度")
    private String lat;
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createAt;
    @ApiModelProperty(value = "超管账号")
    private String account;
    @ApiModelProperty(value = "账号密码")
    private String password;
    @ApiModelProperty(value = "联系电话")
    private String phone;
    private String appId;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java
New file
@@ -0,0 +1,143 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.checkerframework.checker.units.qual.A;
/**
 * <p>
 * 问题报告表
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sgsb_complaint")
@ApiModel(value="Complaint对象", description="问题报告表")
public class Complaint implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = " ")
    @TableId(value = "id")
    private Long id;
    @ApiModelProperty(value = "诉求号")
    @TableField("serial_number")
    private String serialNumber;
    @ApiModelProperty(value = "问题发生时间")
    @TableField("time")
    private Date time;
    @ApiModelProperty(value = "问题类型")
    @TableField("problem_type")
    private String problemType;
    @ApiModelProperty(value = "群众姓名")
    @TableField("name")
    private String name;
    @ApiModelProperty(value = "联系电话")
    @TableField("contact_number")
    private String contactNumber;
    @ApiModelProperty(value = "问题发生地点")
    @TableField("location")
    private String location;
    @ApiModelProperty(value = "详细地址描述")
    @TableField("detailed_address")
    private String detailedAddress;
    @ApiModelProperty(value = "问题标题")
    @TableField("description_title")
    private String descriptionTitle;
    @ApiModelProperty(value = "问题描述内容")
    @TableField("description_content")
    private String descriptionContent;
    @ApiModelProperty(value = "上传图片")
    @TableField("images")
    private String images;
    @ApiModelProperty(value = "上传视频")
    @TableField("videos")
    private String videos;
    @ApiModelProperty(value = "流转状态:0-正在办理 1-延期办理 2-超时办理 3-已办结 4-群众撤销 5-上报待审核 6-上级驳回")
    @TableField("status")
    private Integer status;
    @ApiModelProperty(value = "上报类型 1=市级账号,2=区县账号,3=街道账号,4=社区账号")
    @TableField("report_type")
    private Integer reportType;
    @ApiModelProperty(value = "上级id")
    @TableField("superior_id")
    private Long superiorId;
    @ApiModelProperty(value = "创建人")
    @TableField("create_by")
    private Long createBy;
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private Date createTime;
    @ApiModelProperty(value = "修改人")
    @TableField("update_by")
    private Long updateBy;
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    private Date updateTime;
    @ApiModelProperty(value = "办理结果描述")
    @TableField("completion_description")
    private String completionDescription;
    @ApiModelProperty(value = "办理结果图片")
    @TableField("completion_images")
    private String completionImages;
    @ApiModelProperty(value = "办理结果视频")
    @TableField("completion_videos")
    private String completionVideos;
    @ApiModelProperty(value = "办理结果其他说明")
    @TableField("completion_other_description")
    private String completionOtherDescription;
    @ApiModelProperty(value = "办结时间")
    @TableField("completion_time")
    private Date completionTime;
    @ApiModelProperty(value = "办结人员id")
    @TableField("completion_user_id")
    private Long completionUserId;
    @ApiModelProperty(value = "办结人员")
    @TableField("completion_username")
    private String completionUsername;
    @ApiModelProperty(value = "办结人员")
    @TableField("completion_user_phone")
    private String completionUserPhone;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java
New file
@@ -0,0 +1,89 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 诉求上报、延期申请审核表
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sgsb_complaint_audit_record")
@ApiModel(value="ComplaintAuditRecord对象", description="诉求上报、延期申请审核表")
public class ComplaintAuditRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    @ApiModelProperty(value = "是否最新")
    @TableField("latest_flag")
    private Boolean latestFlag;
    @ApiModelProperty(value = "诉求id")
    @TableField("complaint_id")
    private Long complaintId;
    @ApiModelProperty(value = "审核人id")
    @TableField("auditor_id")
    private Long auditorId;
    @ApiModelProperty(value = "审核类型(1:延期申请, 2:上报申请)")
    @TableField("audit_type")
    private Integer auditType;
    @ApiModelProperty(value = "审核状态 (0:待审核 1:审核通过 2:审核驳回)")
    @TableField("audit_status")
    private Integer auditStatus;
    @ApiModelProperty(value = "驳回原因")
    @TableField("reject_reason")
    private String rejectReason;
    @ApiModelProperty(value = "上报说明/延期申请说明")
    @TableField("comment")
    private String comment;
    @ApiModelProperty(value = "图片")
    @TableField("images")
    private String images;
    @ApiModelProperty(value = "视频")
    @TableField("videos")
    private String videos;
    @ApiModelProperty(value = "创建人")
    @TableField("create_by")
    private Long createBy;
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "修改人")
    @TableField("update_by")
    private Long updateBy;
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    private LocalDateTime updateTime;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java
New file
@@ -0,0 +1,60 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 诉求流转记录表
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sgsb_complaint_flow")
@ApiModel(value="ComplaintFlow对象", description="诉求流转记录表")
public class ComplaintFlow implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    private Long id;
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "complaint_id")
    private Long complaintId;
    @ApiModelProperty(value = "处理层级: 1-市级,2-区县,3-街道,4-社区")
    @TableField("level")
    private Integer level;
    @ApiModelProperty(value = "处理单位名称")
    @TableField("name")
    private String name;
    @ApiModelProperty(value = "下派时间")
    @TableField("create_time")
    private Date createTime;
    @ApiModelProperty(value = "流转类型 0-上报 1-下派")
    @TableField("type")
    private Integer type;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java
New file
@@ -0,0 +1,67 @@
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sgsb_complaint_progress")
@ApiModel(value="ComplaintProgress对象", description="")
public class ComplaintProgress implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键")
    @TableId(value = "id")
    private Long id;
    @ApiModelProperty(value = "诉求id")
    @TableField("complaint_id")
    private Long complaintId;
    @ApiModelProperty(value = "办理进度描述")
    @TableField("describe")
    private String describe;
    @ApiModelProperty(value = "图片url")
    @TableField("img_url")
    private String imgUrl;
    @ApiModelProperty(value = "视频url")
    @TableField("video")
    private String video;
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private Date createTime;
    @ApiModelProperty(value = "创建人")
    @TableField("create_by")
    private Long createBy;
    @ApiModelProperty(value = "创建人")
    @TableField("create_by_name")
    private String createByName;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/Department.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/MessageNotification.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/ProblemType.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemMenu.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemRole.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemRoleMenu.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/SystemUser.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/WorkOrderItemConfig.java
@@ -1,4 +1,4 @@
package com.panzhihua.sangeshenbian.model;
package com.panzhihua.sangeshenbian.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java
New file
@@ -0,0 +1,19 @@
package com.panzhihua.sangeshenbian.model.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
public class BasePage {
    @ApiModelProperty(value = "当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "每页记录数", example = "10")
    private Long pageSize = 10L;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java
New file
@@ -0,0 +1,18 @@
package com.panzhihua.sangeshenbian.model.query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("工单查询数据传输对象")
public class ComplaintQuery extends BasePage{
    @ApiModelProperty("全部:不传,上报待审核:0,正在办理:1, 办结:2")
    private Integer type;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.sangeshenbian.model.vo;
import com.panzhihua.common.model.vos.common.SysUserVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.checkerframework.checker.units.qual.A;
import java.util.Date;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("待办述求视图对象")
public class ComplaintTodoVO extends SysUserVo {
    @ApiModelProperty("诉求id")
    private Long id;
    @ApiModelProperty("用户头像")
    private String imageUrl;
    @ApiModelProperty("诉求标题")
    private String descriptionTitle;
    @ApiModelProperty("最终处理期限")
    private Date closingTime;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java
New file
@@ -0,0 +1,39 @@
package com.panzhihua.sangeshenbian.model.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("工单视图对象")
public class ComplaintVO extends Complaint {
    @ApiModelProperty(value = "上报人")
    private String reportName;
    @ApiModelProperty(value = "所属部门")
    private String departmentName;
    @ApiModelProperty(value = "上报提交时间")
    private Date reportTime;
    @ApiModelProperty(value = "上报说明")
    private String comment;
    @ApiModelProperty(value = "诉求流转记录")
    List<ComplaintFlow> complaintFlows;
    @ApiModelProperty(value = "办理进度")
    List<ComplaintProgress> complaintProgresses;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java
New file
@@ -0,0 +1,14 @@
package com.panzhihua.sangeshenbian.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("下派单位")
public class DispatchVO {
    @ApiModelProperty(value = "下派单位id")
    private Long id;
    @ApiModelProperty(value = "下派单位名称")
    private String name;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
New file
@@ -0,0 +1,75 @@
package com.panzhihua.sangeshenbian.model.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("消息通知视图对象")
public class MessageNotificationVO {
    /**
     * 数据ID
     */
    @ApiModelProperty("数据ID")
    private Integer id;
    /**
     * 标题
     */
    @ApiModelProperty("标题")
    private String title;
    /**
     * 承办者用户id
     */
    @ApiModelProperty("承办者用户id")
    private Integer undertakerUserId;
    /**
     * 承办者
     */
    @ApiModelProperty("承办者")
    private String undertakerUser;
    /**
     * 联系电话
     */
    @TableField("phone")
    @ApiModelProperty("联系电话")
    private String phone;
    /**
     * 所在单位
     */
    @ApiModelProperty(value = "所在单位")
    private String department;
    /**
     * 所属职位
     */
    @ApiModelProperty("所属职位")
    private String position;
    /**
     * 需求应处理时间
     */
    @ApiModelProperty("需求应处理时间")
    private LocalDateTime responseTime;
    /**
     * 提示类型(1=临期提醒,2=超时提醒)
     */
    @ApiModelProperty("提示类型(1=临期提醒,2=超时提醒)")
    private Integer promptType;
    /**
     * 阅读状态(0=否,1=是)
     */
    @ApiModelProperty("阅读状态(0=否,1=是)")
    private Integer readStatus;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
New file
@@ -0,0 +1,24 @@
package com.panzhihua.sangeshenbian.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.bytebuddy.implementation.bind.annotation.Pipe;
/**
 * @author mitao
 * @date 2025/2/23
 */
@Data
@ApiModel("党员证信息")
public class PartyCardInfoVO {
    @ApiModelProperty(value = "姓名")
    private String name;
    @ApiModelProperty(value = "身份证号码")
    private String idCard;
    @ApiModelProperty(value = "所在党组织")
    private String partyOrganization;
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.scheduled;
import com.panzhihua.sangeshenbian.service.IComplaintService;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class ComplaintTasks {
    private final IComplaintService complaintService;
    /**
     * 诉求超时处理
     */
    @Scheduled(fixedRate = 60000)
    public void complaintTimeout() {
        complaintService.list()
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.Banner;
import com.panzhihua.sangeshenbian.model.entity.Banner;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.sangeshenbian.model.entity.BcRegion;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 行政区划表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface IBcRegionService extends IService<BcRegion> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 社区表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface IComActService extends IService<ComAct> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.sangeshenbian.model.entity.ComStreet;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 街道表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface IComStreetService extends IService<ComStreet> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java
New file
@@ -0,0 +1,23 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 诉求上报、延期申请审核表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
public interface IComplaintAuditRecordService extends IService<ComplaintAuditRecord> {
    // 创建审核记录
    void createComplaintAuditRecord(Long complaintId, Integer auditType, String comment, Long userId);
    // 审核
    void audit(Long id, Long userId, Integer auditResult, String rejectReason);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java
New file
@@ -0,0 +1,19 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
/**
 * <p>
 * 诉求流转记录表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface IComplaintFlowService extends IService<ComplaintFlow> {
    void createFlow(Long complaintId,Integer type, Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java
New file
@@ -0,0 +1,16 @@
package com.panzhihua.sangeshenbian.service;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface IComplaintProgressService extends IService<ComplaintProgress> {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
New file
@@ -0,0 +1,111 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO;
import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO;
import com.panzhihua.sangeshenbian.model.dto.*;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
import com.panzhihua.sangeshenbian.model.vo.DispatchVO;
import java.util.List;
/**
 * <p>
 * 问题报告表 服务类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
public interface IComplaintService extends IService<Complaint> {
    void saveComplaint(Complaint complaint,Long userId);
    /**
     * 诉求列表
     *
     * @param query
     * @param loginUserInfoVO
     * @return
     */
    Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO  loginUserInfoVO);
    /**
     * 工单详情
     * @param id
     * @return
     */
    ComplaintVO detail(Long id);
    /**
     * 保存办理进度
     *
     * @param dto
     * @param loginUserInfoVO
     */
    void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 办理结果录入
     *
     * @param dto
     * @param loginUserInfoVO
     */
    void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 办理进度列表
     * @param complaintId
     * @return
     */
    List<ComplaintProgress> progress(Long complaintId);
    /**
     * 诉求上报
     */
    void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 诉求下派
     */
    void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 上报审核
     * @param complaintReporAuditDTO
     * @param loginUserInfoVO
     */
    void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO);
    /**
     * 延期申请
     */
    void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO);
    /**
     * 延期审核
     */
    void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO);
    List<DispatchVO> getDispatchList(LoginUserInfoVO loginUserInfoVO);
    /**
     * 获取待办诉求
     * @param page
     * @param loginUserInfo
     * @return
     */
    Page<ComplaintTodoVO> getTodoList(BasePage page, LoginUserInfoVO loginUserInfo);
    /**
     * 延期情况说明
     * @param complaintId
     * @return
     */
    ComplaintAuditRecord delayDetail(Long complaintId);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java
@@ -1,7 +1,7 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.Department;
import com.panzhihua.sangeshenbian.model.entity.Department;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
@@ -1,8 +1,11 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.MessageNotification;
import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
/**
@@ -13,4 +16,6 @@
    
    
    IPage<MessageNotification> list(MessageNotificationList query);
    Page<MessageNotificationVO> getMessageList(BasePage page, Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.ProblemType;
import com.panzhihua.sangeshenbian.model.entity.ProblemType;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java
@@ -1,7 +1,7 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.SystemMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
import java.util.List;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java
@@ -1,7 +1,7 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.SystemRoleMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java
@@ -2,11 +2,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.SystemRole;
import com.panzhihua.sangeshenbian.model.entity.SystemRole;
import com.panzhihua.sangeshenbian.warpper.SystemRoleList;
import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo;
import java.util.List;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.warpper.SystemUserList;
import com.panzhihua.sangeshenbian.warpper.SystemUserListVo;
import java.util.List;
import java.util.Optional;
/**
 * @author zhibing.pu
@@ -20,4 +21,9 @@
     * @return
     */
    IPage<SystemUserListVo> list(Integer accountLevel, SystemUserList query);
    /**
     * 根据手机号码查询小程序用户在三个身边的上级角色用户
     */
    Optional<SystemUser> getSystemUserByPhone(String phone);
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java
@@ -1,7 +1,7 @@
package com.panzhihua.sangeshenbian.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig;
import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.BannerMapper;
import com.panzhihua.sangeshenbian.model.Banner;
import com.panzhihua.sangeshenbian.model.entity.Banner;
import com.panzhihua.sangeshenbian.service.IBannerService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.panzhihua.sangeshenbian.model.entity.BcRegion;
import com.panzhihua.sangeshenbian.dao.BcRegionMapper;
import com.panzhihua.sangeshenbian.service.IBcRegionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 行政区划表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Service
public class BcRegionServiceImpl extends ServiceImpl<BcRegionMapper, BcRegion> implements IBcRegionService {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.panzhihua.sangeshenbian.model.entity.ComAct;
import com.panzhihua.sangeshenbian.dao.ComActMapper;
import com.panzhihua.sangeshenbian.service.IComActService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 社区表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Service
public class ComActServiceImpl extends ServiceImpl<ComActMapper, ComAct> implements IComActService {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.panzhihua.sangeshenbian.model.entity.ComStreet;
import com.panzhihua.sangeshenbian.dao.ComStreetMapper;
import com.panzhihua.sangeshenbian.service.IComStreetService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 街道表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Service
public class ComStreetServiceImpl extends ServiceImpl<ComStreetMapper, ComStreet> implements IComStreetService {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java
New file
@@ -0,0 +1,48 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
import com.panzhihua.sangeshenbian.dao.ComplaintAuditRecordMapper;
import com.panzhihua.sangeshenbian.service.IComplaintAuditRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 诉求上报、延期申请审核表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-23
 */
@Service
public class ComplaintAuditRecordServiceImpl extends ServiceImpl<ComplaintAuditRecordMapper, ComplaintAuditRecord> implements IComplaintAuditRecordService {
    @Override
    public void createComplaintAuditRecord(Long complaintId, Integer auditType, String comment, Long userId) {
        ComplaintAuditRecord auditRecord = new ComplaintAuditRecord();
        auditRecord.setComplaintId(complaintId);
        auditRecord.setLatestFlag(true);
        auditRecord.setAuditType(1);
        auditRecord.setAuditStatus(0);
        auditRecord.setComment(comment);
        auditRecord.setCreateBy(userId);
        auditRecord.setCreateTime(DateUtils.getCurrentDate());
        auditRecord.setUpdateBy(userId);
        auditRecord.setUpdateTime(DateUtils.getCurrentDate());
        save(auditRecord);
    }
    @Override
    public void audit(Long id, Long userId, Integer auditResult, String rejectReason) {
        ComplaintAuditRecord auditRecord = getById(id);
        if (auditRecord == null) {
            throw new RuntimeException("审核记录不存在");
        }
        auditRecord.setAuditStatus(auditResult);
        auditRecord.setRejectReason(rejectReason);
        auditRecord.setUpdateBy(userId);
        auditRecord.setUpdateTime(DateUtils.getCurrentDate());
        save(auditRecord);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java
New file
@@ -0,0 +1,67 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.sangeshenbian.enums.ReportTypeEnum;
import com.panzhihua.sangeshenbian.model.entity.*;
import com.panzhihua.sangeshenbian.dao.ComplaintFlowMapper;
import com.panzhihua.sangeshenbian.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * <p>
 * 诉求流转记录表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ComplaintFlowServiceImpl extends ServiceImpl<ComplaintFlowMapper, ComplaintFlow> implements IComplaintFlowService {
    private final IComplaintService complaintService;
    private final IBcRegionService bcRegionService;
    private final IComStreetService comStreetService;
    private final IComActService comActService;
    @Override
    public void createFlow(Long complaintId , Integer type, Long userId) {
        Complaint complaint = complaintService.getById(complaintId);
        Integer reportType = complaint.getReportType();
        String name = getFlowName(reportType, complaint);
        ComplaintFlow complaintFlow = new ComplaintFlow();
        complaintFlow.setComplaintId(complaintId);
        complaintFlow.setLevel(reportType);
        complaintFlow.setName(name);
        complaintFlow.setCreateTime(new Date(System.currentTimeMillis()));
        complaintFlow.setType(type);
        save(complaintFlow);
    }
    private String getFlowName(Integer reportType, Complaint complaint) {
        String name;
        if (reportType == ReportTypeEnum.COMMUNITY.getCode()) {
            ComAct byId = comActService.getById(complaint.getSuperiorId());
            name = byId.getName();
        }else if (reportType == ReportTypeEnum.STREET.getCode()) {
            ComStreet comStreet = comStreetService.getById(complaint.getSuperiorId());
            name = comStreet.getName();
        }  else if (reportType == ReportTypeEnum.CITY.getCode() || reportType == ReportTypeEnum.DISTRICT.getCode()){
            BcRegion bcRegion = bcRegionService.getOne(new LambdaQueryWrapper<BcRegion>()
                    .eq(BcRegion::getRegionCode, complaint.getSuperiorId()));
            name = bcRegion.getRegionName();
        } else {
            // 处理未预期的账号等级
            throw new ServiceException("未知的账号等级");
        }
        return name;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.panzhihua.sangeshenbian.dao.ComplaintProgressMapper;
import com.panzhihua.sangeshenbian.service.IComplaintProgressService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Service
public class ComplaintProgressServiceImpl extends ServiceImpl<ComplaintProgressMapper, ComplaintProgress> implements IComplaintProgressService {
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
New file
@@ -0,0 +1,427 @@
package com.panzhihua.sangeshenbian.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.sangeshenbian.model.dto.ComplaintCompletionDTO;
import com.panzhihua.sangeshenbian.model.dto.ComplaintProcessDTO;
import com.panzhihua.sangeshenbian.model.entity.Complaint;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.sangeshenbian.enums.ReportTypeEnum;
import com.panzhihua.sangeshenbian.model.dto.*;
import com.panzhihua.sangeshenbian.model.entity.*;
import com.panzhihua.sangeshenbian.enums.ProcessStatusEnum;
import com.panzhihua.sangeshenbian.dao.ComplaintMapper;
import com.panzhihua.sangeshenbian.model.entity.ComplaintFlow;
import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO;
import com.panzhihua.sangeshenbian.service.IComplaintFlowService;
import com.panzhihua.sangeshenbian.service.IComplaintProgressService;
import com.panzhihua.sangeshenbian.service.IComplaintService;
import com.panzhihua.sangeshenbian.model.vo.DispatchVO;
import com.panzhihua.sangeshenbian.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import static cn.hutool.core.util.ObjectUtil.isNull;
/**
 * <p>
 * 问题报告表 服务实现类
 * </p>
 *
 * @author
 * @since 2025-02-22
 */
@Service
@RequiredArgsConstructor
public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService {
    private final ISystemUserService systemUserService;
    private final IComplaintFlowService complaintFlowService;
    private final IComplaintProgressService complaintProgressService;
    private final IComplaintAuditRecordService complaintAuditRecordService;
    private final IBcRegionService bcRegionService;
    private final IComStreetService comStreetService;
    private final IComActService comActService;
    @Override
    public void saveComplaint(Complaint complaint, Long userId) {
        // 获取当前日期(年月日)
        String datePrefix = new SimpleDateFormat("yyyyMMdd").format(new Date());
        // 查询当前日期的最大流水号
        Complaint lastComplaint = getOne(new LambdaQueryWrapper<Complaint>()
                .likeRight(Complaint::getSerialNumber, datePrefix) // 查询以当前日期开头的流水号
                .orderByDesc(Complaint::getSerialNumber)
                .last("limit 1"));
        String serialNumber;
        if (isNull(lastComplaint)) {
            // 如果当天没有记录,从 0001 开始
            serialNumber = datePrefix + "0001";
        } else {
            // 获取当前日期的最大流水号,并递增
            String lastSerialNumber = lastComplaint.getSerialNumber();
            int num = Integer.parseInt(lastSerialNumber.substring(lastSerialNumber.length() - 4)); // 提取后4位数字
            serialNumber = datePrefix + String.format("%04d", num + 1); // 递增并格式化为4位
        }
        // 设置流水号
        complaint.setSerialNumber(serialNumber);
        // 设置其他字段
        complaint.setStatus(ProcessStatusEnum.PROCESSING.getCode());
        complaint.setCreateTime(new Date(System.currentTimeMillis()));
        complaint.setCreateBy(userId);
        complaint.setUpdateBy(userId);
        complaint.setUpdateTime(new Date(System.currentTimeMillis()));
        // 保存诉求记录
        save(complaint);
    }
    /**
     * @param query
     * @param loginUserInfoVO
     * @return
     */
    @Override
    public Page<ComplaintVO> complaintList(ComplaintQuery query, LoginUserInfoVO loginUserInfoVO) {
        Page<ComplaintVO> page = new Page<>(query.getPageNum(), query.getPageSize());
        //判断当前登录用户级别,查询对应工单
        Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone());
        String targetId = "";
        int isSuperior = 0;
        //上级
        if (systemUserByPhone.isPresent()) {
            SystemUser systemUser = systemUserByPhone.get();
            Integer accountLevel = systemUser.getAccountLevel();
            switch (accountLevel) {
                case 1:
                    //市级
                    targetId = "510400";
                    break;
                case 2:
                    //区县级
                    targetId = systemUser.getDistrictsCode();
                    break;
                case 3:
                    //街道
                    targetId = systemUser.getStreetCode();
                    break;
                case 4:
                    //社区
                    targetId = systemUser.getCommunityCode();
                    break;
            }
            isSuperior = 1;
        } else {
        //党员
            targetId = loginUserInfoVO.getUserId().toString();
        }
        //查询对应诉求
        page = baseMapper.selectComplaintPage(page, query, targetId,isSuperior);
        return page;
    }
    /**
     * 工单详情
     * @param id
     * @return
     */
    @Override
    public ComplaintVO detail(Long id) {
        ComplaintVO detail = baseMapper.getDetail(id);
        if (detail.getStatus().equals(0)) {
            List<ComplaintFlow> list = complaintFlowService.lambdaQuery().eq(ComplaintFlow::getComplaintId, id).orderByAsc(ComplaintFlow::getCreateTime).list();
            detail.setComplaintFlows(list);
        }
        //查询办理进度
        List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id)
                .orderByAsc(ComplaintProgress::getCreateTime).list();
        detail.setComplaintProgresses(list);
        return detail;
    }
    /**
     * 办理进度录入
     *
     * @param dto
     * @param loginUserInfoVO
     */
    @Override
    public void saveProcess(ComplaintProcessDTO dto, LoginUserInfoVO loginUserInfoVO) {
        ComplaintProgress complaintProgress = BeanUtil.copyProperties(dto, ComplaintProgress.class);
        complaintProgress.setCreateTime(new Date());
        complaintProgress.setCreateBy(loginUserInfoVO.getUserId());
        complaintProgress.setCreateByName(loginUserInfoVO.getName());
        complaintProgressService.save(complaintProgress);
    }
    /**
     * 办理结果录入
     *
     * @param dto
     * @param loginUserInfoVO
     */
    @Override
    public void saveResult(ComplaintCompletionDTO dto, LoginUserInfoVO loginUserInfoVO) {
        Complaint complaint = BeanUtil.copyProperties(dto, Complaint.class);
        complaint.setUpdateTime(new Date());
        complaint.setCompletionUserId(loginUserInfoVO.getUserId());
        complaint.setCompletionUsername(loginUserInfoVO.getName());
        complaint.setCompletionTime(new Date());
        this.updateById(complaint);
    }
    /**
     * 办理进度列表
     * @param complaintId
     * @return
     */
    @Override
    public List<ComplaintProgress> progress(Long complaintId) {
        //查询办理进度
        return complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, complaintId)
                .orderByAsc(ComplaintProgress::getCreateTime).list();
    }
    @Override
    public void saveReport(ComplaintReportDTO dto, LoginUserInfoVO loginUserInfoVO) {
        String phone = loginUserInfoVO.getPhone();
        SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>()
                .eq(SystemUser::getPhone, phone)
                .eq(SystemUser::getIsAdmin, 1)
                .eq(SystemUser::getStatus, 3)
                .last("LIMIT 1"));
        Long superiorId;
        int reportType;
        if (adminUser == null) {
            superiorId = loginUserInfoVO.getCommunityId();
            reportType = ReportTypeEnum.COMMUNITY.getCode();
        } else {
            int accountLevel = adminUser.getAccountLevel(); // 改为基本类型
            if (accountLevel == 1) {
                throw new ServiceException("市级账号,无法上报!");
            }
            reportType = accountLevel + 1;
            // 使用基本类型比较并补充默认分支
            if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
                superiorId = Long.parseLong(adminUser.getStreetCode());
            } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
                superiorId = Long.parseLong(adminUser.getDistrictsCode());
            } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
                superiorId = 510400L; // 攀枝花市
            } else {
                // 处理未预期的账号等级
                throw new ServiceException("未知的账号等级");
            }
        }
        Complaint complaint = getById(dto.getComplaintId());
        complaint.setReportType(reportType);
        complaint.setSuperiorId(superiorId);
        updateById(complaint);
        // 标记最新
        complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>()
                .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                .set(ComplaintAuditRecord::getLatestFlag,false));
        // 添加审核记录
        complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 2, dto.getComment(), loginUserInfoVO.getUserId());
    }
    @Override
    public void saveDispatch(ComplaintDispatch dto, LoginUserInfoVO loginUserInfoVO) {
        String phone = loginUserInfoVO.getPhone();
        SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>()
                .eq(SystemUser::getPhone, phone)
                .eq(SystemUser::getIsAdmin, 1)
                .eq(SystemUser::getStatus, 3)
                .last("LIMIT 1"));
        if (adminUser == null) {
            throw new ServiceException("无权下派");
        }
        long superiorId;
        int reportType;
        int accountLevel = adminUser.getAccountLevel(); // 改为基本类型
        if (accountLevel == 1) {
            throw new ServiceException("市级账号,无法上报!");
        }
        reportType = accountLevel - 1;
        // 使用基本类型比较并补充默认分支
        if (accountLevel == ReportTypeEnum.STREET.getCode()) {
            superiorId = Long.parseLong(adminUser.getCommunityCode());
        } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
            superiorId = Long.parseLong(adminUser.getStreetCode());
        } else if (accountLevel == ReportTypeEnum.CITY.getCode()) {
            superiorId = Long.parseLong(adminUser.getDistrictsCode());
        } else {
            // 处理未预期的账号等级
            throw new ServiceException("未知的账号等级");
        }
        Complaint complaint = getById(dto.getComplaintId());
        complaint.setReportType(reportType);
        complaint.setSuperiorId(superiorId);
        updateById(complaint);
        // 添加流转记录
        complaintFlowService.createFlow(dto.getComplaintId(), 1, loginUserInfoVO.getUserId());
    }
    @Override
    public void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO) {
        complaintAuditRecordService.audit(complaintReporAuditDTO.getId(), loginUserInfoVO.getUserId(),
                complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason());
        // 添加流转记录
        ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.getById(complaintReporAuditDTO.getId());
        complaintFlowService.createFlow(complaintAuditRecord.getComplaintId(), 0, loginUserInfoVO.getUserId());
    }
    @Override
    public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) {
        // 标记最新
        complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>()
                .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
                .set(ComplaintAuditRecord::getLatestFlag,false));
        // 添加审核记录
        complaintAuditRecordService.createComplaintAuditRecord(dto.getComplaintId(), 1, dto.getComment(), loginUserInfoVO.getUserId());
    }
    @Override
    public void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO) {
        complaintAuditRecordService.audit(complaintDelayAuditDTO.getId(), loginUserInfoVO.getUserId(),
                complaintDelayAuditDTO.getAuditResult(), complaintDelayAuditDTO.getRejectReason());
    }
    @Override
    public List<DispatchVO> getDispatchList(LoginUserInfoVO loginUserInfoVO) {
        String phone = loginUserInfoVO.getPhone();
        SystemUser adminUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>()
                .eq(SystemUser::getPhone, phone)
                .eq(SystemUser::getIsAdmin, 1)
                .eq(SystemUser::getStatus, 3)
                .last("LIMIT 1"));
        if (adminUser == null) {
            throw new ServiceException("无权下派");
        }
        int accountLevel = adminUser.getAccountLevel(); // 改为基本类型
        if (accountLevel == 1) {
            throw new ServiceException("市级账号,无法上报!");
        }
        // 使用基本类型比较并补充默认分支
        List<DispatchVO> dispatchVOList = new ArrayList<>();
        if (accountLevel == ReportTypeEnum.STREET.getCode()) {
            List<ComAct> list = comActService.list();
            for (ComAct comAct : list) {
                DispatchVO dispatchVO = new DispatchVO();
                dispatchVO.setId(comAct.getCommunityId());
                dispatchVO.setName(comAct.getName());
                dispatchVOList.add(dispatchVO);
            }
        } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
            List<ComStreet> list = comStreetService.list();
            for (ComStreet street : list) {
                DispatchVO dispatchVO = new DispatchVO();
                dispatchVO.setId(Long.valueOf(street.getStreetId()));
                dispatchVO.setName(street.getName());
                dispatchVOList.add(dispatchVO);
            }
        } else if (accountLevel == ReportTypeEnum.CITY.getCode()) {
            List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>()
                    .eq(BcRegion::getHierarchyOrder, 3));
            for (BcRegion region : list) {
                DispatchVO dispatchVO = new DispatchVO();
                dispatchVO.setId(Long.valueOf(region.getRegionCode()));
                dispatchVO.setName(region.getRegionName());
                dispatchVOList.add(dispatchVO);
            }
        } else {
            // 处理未预期的账号等级
            throw new ServiceException("未知的账号等级");
        }
        return dispatchVOList;
    }
    /**
     * 获取待办诉求
     * @param basePage
     * @param loginUserInfo
     * @return
     */
    @Override
    public Page<ComplaintTodoVO> getTodoList(BasePage basePage, LoginUserInfoVO loginUserInfo) {
        Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfo.getPhone());
        String targetId = "";
        int isSuperior = 0;
        //上级
        if (systemUserByPhone.isPresent()) {
            SystemUser systemUser = systemUserByPhone.get();
            Integer accountLevel = systemUser.getAccountLevel();
            switch (accountLevel) {
                case 1:
                    //市级
                    targetId = "510400";
                    break;
                case 2:
                    //区县级
                    targetId = systemUser.getDistrictsCode();
                    break;
                case 3:
                    //街道
                    targetId = systemUser.getStreetCode();
                    break;
                case 4:
                    //社区
                    targetId = systemUser.getCommunityCode();
                    break;
            }
            isSuperior = 1;
        } else {
            //党员
            targetId = loginUserInfo.getUserId().toString();
        }
        Page<ComplaintTodoVO> page = baseMapper.getTodoList(new Page<>(basePage.getPageNum(), basePage.getPageSize()), targetId,isSuperior);
        return page;
    }
    /**
     * 延期情况说明
     * @param complaintId
     * @return
     */
    @Override
    public ComplaintAuditRecord delayDetail(Long complaintId) {
        return complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintId)
                .eq(ComplaintAuditRecord::getAuditType, 1)
                .eq(ComplaintAuditRecord::getLatestFlag, true)
                .last("LIMIT 1").one();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.DepartmentMapper;
import com.panzhihua.sangeshenbian.model.Department;
import com.panzhihua.sangeshenbian.model.entity.Department;
import com.panzhihua.sangeshenbian.service.IDepartmentService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
@@ -4,7 +4,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.MessageNotificationMapper;
import com.panzhihua.sangeshenbian.model.MessageNotification;
import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
import com.panzhihua.sangeshenbian.model.query.BasePage;
import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
import org.springframework.stereotype.Service;
@@ -25,4 +27,11 @@
        IPage<MessageNotification> list = this.baseMapper.list(page, query);
        return list;
    }
    @Override
    public Page<MessageNotificationVO> getMessageList(BasePage basePage, Long userId) {
        //TODO 待完善
        Page<MessageNotificationVO> page = new Page<>(basePage.getPageNum(),basePage.getPageSize());
        return page;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.ProblemTypeMapper;
import com.panzhihua.sangeshenbian.model.ProblemType;
import com.panzhihua.sangeshenbian.model.entity.ProblemType;
import com.panzhihua.sangeshenbian.service.IProblemTypeService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java
@@ -1,9 +1,8 @@
package com.panzhihua.sangeshenbian.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.SystemMenuMapper;
import com.panzhihua.sangeshenbian.model.SystemMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
import com.panzhihua.sangeshenbian.service.ISystemMenuService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.SystemRoleMenuMapper;
import com.panzhihua.sangeshenbian.model.SystemRoleMenu;
import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java
@@ -4,13 +4,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.SystemRoleMapper;
import com.panzhihua.sangeshenbian.model.SystemRole;
import com.panzhihua.sangeshenbian.model.entity.SystemRole;
import com.panzhihua.sangeshenbian.service.ISystemRoleService;
import com.panzhihua.sangeshenbian.warpper.SystemRoleList;
import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @author zhibing.pu
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -3,14 +3,15 @@
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.utlis.StringUtils;
import com.panzhihua.sangeshenbian.dao.SystemUserMapper;
import com.panzhihua.sangeshenbian.model.SystemUser;
import com.panzhihua.sangeshenbian.model.entity.SystemUser;
import com.panzhihua.sangeshenbian.service.ISystemUserService;
import com.panzhihua.sangeshenbian.warpper.SystemUserList;
import com.panzhihua.sangeshenbian.warpper.SystemUserListVo;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
 * @author zhibing.pu
@@ -32,4 +33,19 @@
        IPage<SystemUserListVo> list = this.baseMapper.list(page, accountLevel, query);
        return list;
    }
    /**
     * 根据手机号码查询小程序用户在三个身边的上级角色用户
     * @param phone
     * @return
     */
    @Override
    public Optional<SystemUser> getSystemUserByPhone(String phone) {
        if (StringUtils.isBlank(phone)) {
            return Optional.empty();
        }
        return this.lambdaQuery()
                .eq(SystemUser::getPhone, phone).ne(SystemUser::getStatus, 3)
                .eq(SystemUser::getIsAdmin, 1).last("LIMIT 1").oneOpt();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.sangeshenbian.dao.WorkOrderItemConfigMapper;
import com.panzhihua.sangeshenbian.model.WorkOrderItemConfig;
import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService;
import org.springframework.stereotype.Service;
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml
@@ -4,7 +4,7 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.sangeshenbian.dao.BannerMapper">
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.Banner">
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.Banner">
        select * from banner where del = 0
        <if test="name != null and name != ''">
            and name like concat('%',#{name},'%')
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.BcRegionMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.ComActMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.ComStreetMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.ComplaintAuditRecordMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.ComplaintFlowMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
New file
@@ -0,0 +1,146 @@
<?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.sangeshenbian.dao.ComplaintMapper">
    <select id="selectComplaintPage" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO">
        SELECT sc.id,
               sc.serial_number,
               sc.time,
               sc.problem_type,
               sc.name,
               sc.contact_number,
               sc.location,
               sc.detailed_address,
               sc.description_title,
               sc.description_content,
               sc.images,
               sc.videos,
               CASE
                   WHEN scar.audit_type = 1 AND scar.audit_status = 1 THEN 5
                   WHEN scar.audit_type = 2 AND scar.audit_status = 2 THEN 6
                   ELSE sc.status
                   END          AS status,
               sc.report_type,
               sc.superior_id,
               sc.create_by,
               sc.create_time,
               sc.update_by,
               sc.update_time,
               sc.completion_description,
               sc.completion_images,
               sc.completion_videos,
               sc.completion_other_description,
               sc.completion_time,
               sc.completion_user_id,
               sc.completion_username,
               sc.completion_user_phone,
               sc.closing_time,
               sc.latitude,
               sc.longitude,
               scar.audit_type,
               scar.audit_status,
               scar.comment,
               scar.images,
               scar.videos,
               scar.create_time AS reportTime,
               scar.system_user_id,
               scar.name        AS reportName,
               scar.department_name,
               scar.department_id
        FROM sgsb_complaint sc
                 LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id AND scar.latest_flag = 1
        <where>
            <if test="query.type ==null">
                (scar.audit_type = 1 AND scar.audit_status = 1)
                OR (scar.audit_type = 2 AND scar.audit_status = 2)
            </if>
            <if test="isSuperior == 1 and targetId != null">
                AND sc.superior_id = #{targetId}
            </if>
            <if test="isSuperior == 0 and targetId != null">
                AND sc.create_by = #{targetId}
            </if>
            <if test="query.type!=null and query.type == 0">
                AND scar.audit_type = 2 AND scar.audit_status = 2
            </if>
            <if test="query.type!=null and query.type == 1">
                AND sc.status = 0
            </if>
            <if test="query.type!=null and query.type == 2">
                AND sc.status = 3
            </if>
        </where>
        ORDER BY sc.create_time DESC
    </select>
    <select id="getDetail" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintVO">
        SELECT sc.id,
               sc.serial_number,
               sc.time,
               sc.problem_type,
               sc.name,
               sc.contact_number,
               sc.location,
               sc.detailed_address,
               sc.description_title,
               sc.description_content,
               sc.images,
               sc.videos,
               CASE
                   WHEN scar.audit_type = 1 AND scar.audit_status = 1 THEN 5
                   WHEN scar.audit_type = 2 AND scar.audit_status = 2 THEN 6
                   ELSE sc.status
                   END          AS status,
               sc.report_type,
               sc.superior_id,
               sc.create_by,
               sc.create_time,
               sc.update_by,
               sc.update_time,
               sc.completion_description,
               sc.completion_images,
               sc.completion_videos,
               sc.completion_other_description,
               sc.completion_time,
               sc.completion_user_id,
               sc.completion_username,
               sc.completion_user_phone,
               sc.closing_time,
               sc.latitude,
               sc.longitude,
               scar.audit_type,
               scar.audit_status,
               scar.comment,
               scar.images,
               scar.videos,
               scar.create_time AS reportTime,
               scar.system_user_id,
               scar.name        AS reportName,
               scar.department_name,
               scar.department_id,
               scar.comment
        FROM sgsb_complaint sc
                 LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id AND scar.latest_flag = 1
        WHERE sc.id = #{id}
        <where>
            sc.id = #{id}
        </where>
    </select>
    <select id="getTodoList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO">
        SELECT sc.id,
        sc.description_title,
        sc.closing_time,
        su.image_url
        FROM sgsb_complaint sc
        LEFT JOIN sys_user su  ON su.user_id = sc.create_by
        <where>
            sc.status = 0
            <if test="isSuperior == 1 and targetId != null">
                AND sc.superior_id = #{targetId}
            </if>
            <if test="isSuperior == 0 and targetId != null">
                AND sc.create_by = #{targetId}
            </if>
        </where>
        ORDER BY sc.create_time DESC
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml
New file
@@ -0,0 +1,5 @@
<?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.sangeshenbian.dao.ComplaintProgressMapper">
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml
@@ -5,7 +5,7 @@
<mapper namespace="com.panzhihua.sangeshenbian.dao.MessageNotificationMapper">
    
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.MessageNotification">
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.MessageNotification">
        select
            a.id,
            a.title,
springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml
@@ -4,7 +4,7 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.sangeshenbian.dao.ProblemTypeMapper">
    
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.ProblemType">
    <select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.ProblemType">
        select * from sgsb_problem_type where del = 0
        <if test="name != null and name != ''">
            and name like concat('%', #{name}, '%')