From b37f92c1f5bea036b13af38d82a0fa9ca690eb3b Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 26 二月 2025 01:27:18 +0800
Subject: [PATCH] 三个身边

---
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml                                                            |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java                   |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java            |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java              |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java            |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java             |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/LoginVo.java                              |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java                   |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml                                             |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java                          |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java        |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml                                                                                     |  176 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleList.java                       |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml                                               |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java           |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/TokenVo.java                              |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMapper.xml                                              |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemPostController.java                     |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java         |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml                                       |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java                         |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemUserMapper.xml                                              |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java            |  529 ++++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemPostServiceImpl.java           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java    |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java                |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java                         |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java               |  169 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java                   |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java                   |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java                          |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java             |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java               |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java                         |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java                   |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java                       |  161 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/sangeshenbian/SystemUserService.java                            |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java                   |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java                     |  132 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java                     |  128 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserListVo.java                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMenuMapper.xml                                          |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java                  |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BannerMapper.java                             |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java                     |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml                                     |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java                     |  246 ++
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleListVo.java                     |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemPost.java                      |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java                 |   16 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java                                   |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java                           |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java                       |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java            |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java                  |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml                                               |  156 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/MessageNotificationList.java              |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml                                                  |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java             |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java               |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/EditSystemRole.java                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java                        |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/logback-spring.xml                                                       |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml                                                  |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java       |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java             |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java            |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java                    |  117 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java           |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java                          |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java       |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java                     |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java          |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemMenuMapper.xml                                              |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java          |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java                     |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java                   |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java                     |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java                      |  141 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java                     |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java             |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java                         |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java                          |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserList.java                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml                                                |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java                      |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/AddSystemRole.java                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java            |  110 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java                    |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemPostMapper.java                         |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml                                           |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java                      |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java               |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sangeshenbian/SystemUserVo.java                               |  118 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java               |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java                |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java  |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java           |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java             |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java                   |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java                      |   34 
 springcloud_k8s_panzhihuazhihuishequ/pom.xml                                                                                                           |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java                        |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemPostMapper.xml                                              |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java                  |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java                         |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java                       |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemPostService.java                   |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/WorkOrderItemConfigMapper.xml                                     |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java                      |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java                    |  111 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java                |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java                       |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml                                    |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java                          |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/test/java/com/panzhihua/ServiceSangeshenbianApplicationTest.java                        |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java           |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java               |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java  |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java               |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java                |  138 +
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/DepartmentMapper.xml                                              |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleInfo.java                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java                         |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java           |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java    |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java          |   28 
 145 files changed, 6,459 insertions(+), 1 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sangeshenbian/SystemUserVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sangeshenbian/SystemUserVo.java
new file mode 100644
index 0000000..b566a02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sangeshenbian/SystemUserVo.java
@@ -0,0 +1,118 @@
+package com.panzhihua.common.model.vos.sangeshenbian;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.Set;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 0:28
+ */
+@Data
+public class SystemUserVo {
+	/**
+	 * 主键
+	 */
+	@ApiModelProperty(value = "数据ID")
+	private Integer id;
+	/**
+	 * 姓名
+	 */
+	@ApiModelProperty(value = "姓名", required = true)
+	private String name;
+	/**
+	 * 手机号
+	 */
+	@ApiModelProperty(value = "手机号", required = true)
+	private String phone;
+	/**
+	 * 密码
+	 */
+	@ApiModelProperty(value = "密码", required = true)
+	private String password;
+	/**
+	 * 一级单位id
+	 */
+	@ApiModelProperty(value = "一级单位id", required = true)
+	private Integer oneDepartmentId;
+	/**
+	 * 二级单位id
+	 */
+	@ApiModelProperty(value = "二级单位id")
+	private Integer twoDepartmentId;
+	/**
+	 * 三级单位id
+	 */
+	@ApiModelProperty(value = "三级单位id")
+	private Integer threeDepartmentId;
+	/**
+	 * 四级单位id
+	 */
+	@ApiModelProperty(value = "四级单位id")
+	private Integer fourDepartmentId;
+	/**
+	 * 是否是管理员(0=否,1=是)
+	 */
+	@ApiModelProperty(value = "是否是管理员(0=否,1=是)", required = true)
+	private Integer isAdmin;
+	/**
+	 * 职位id
+	 */
+	@ApiModelProperty(value = "职位id", required = true)
+	private Integer systemPostId;
+	/**
+	 * 角色id
+	 */
+	@ApiModelProperty(value = "角色id", required = true)
+	private Integer systemRoleId;
+	/**
+	 * 账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号)
+	 */
+	@ApiModelProperty(value = "账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号)", required = true)
+	private Integer accountLevel;
+	/**
+	 * 所属区县
+	 */
+	@ApiModelProperty(value = "所属区县")
+	private String districts;
+	/**
+	 * 区县编号
+	 */
+	@ApiModelProperty(value = "区县编号")
+	private String districtsCode;
+	/**
+	 * 街道
+	 */
+	@ApiModelProperty(value = "街道")
+	private String street;
+	/**
+	 * 街道编号
+	 */
+	@ApiModelProperty(value = "街道编号")
+	private String streetCode;
+	/**
+	 * 社区
+	 */
+	@ApiModelProperty(value = "社区")
+	private String community;
+	/**
+	 * 社区编号
+	 */
+	@ApiModelProperty(value = "社区编号")
+	private String communityCode;
+	/**
+	 * 状态(1=正常,2=冻结,3=删除)
+	 */
+	private Integer status;
+	/**
+	 * 添加时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	private LocalDateTime createTime;
+	
+	@ApiModelProperty("权限集合")
+	private Set<String> permissions;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/sangeshenbian/SystemUserService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/sangeshenbian/SystemUserService.java
new file mode 100644
index 0000000..cb18ab9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/sangeshenbian/SystemUserService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.service.sangeshenbian;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 0:14
+ */
+@FeignClient(name = "huacheng-sangeshenbian")
+public interface SystemUserService {
+	
+	/**
+	 *
+	 * @param id
+	 *            用户的ID
+	 * @return 用户所有角色
+	 */
+	@PostMapping("/systemUser/getUserById")
+	R<SystemUserVo> getUserById(@RequestParam("id") String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/pom.xml
index 6fbc298..e20b589 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/pom.xml
@@ -233,6 +233,8 @@
         <module>service_dlz</module>
         <module>service_bracelet</module>
         <module>service_jinhui_community</module>
+        <!--三个身边-->
+        <module>service_sangeshenbian</module>
     </modules>
     <packaging>pom</packaging>
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml
new file mode 100644
index 0000000..7f16f4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/pom.xml
@@ -0,0 +1,176 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_sangeshenbian</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>server_sangeshenbian</name>
+    <description>三个身边</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--jsoup爬虫爬取网页 -->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.13.1</version>
+        </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>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-amqp</artifactId>-->
+<!--        </dependency>-->
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- zxing生成二维码 -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <!-- lbs附近定位 -->
+        <dependency>
+            <groupId>com.spatial4j</groupId>
+            <artifactId>spatial4j</artifactId>
+            <version>0.5</version>
+        </dependency>
+        <!--        微信小程序-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>3.9.9.B</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_community.ServiceCommunityApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_community:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java
new file mode 100644
index 0000000..45291ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/ServiceSangeshenbianApplication.java
@@ -0,0 +1,28 @@
+package com.panzhihua.sangeshenbian;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+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"})
+@EnableScheduling
+public class ServiceSangeshenbianApplication
+{
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceSangeshenbianApplication.class, args);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java
new file mode 100644
index 0000000..5eadeb0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/annotation/DistributedLock.java
@@ -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 "_";
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java
new file mode 100644
index 0000000..1881471
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/BannerController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+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;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:46
+ */
+@Api
+@RestController
+@RequestMapping("/banner")
+public class BannerController extends BaseController {
+	
+	@Resource
+	private IBannerService bannerService;
+	
+	@Resource
+	private ISystemUserService systemUserService;
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取banner列表", tags = {"三个身边后台-banner管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取banner列表")
+	public R<IPage<Banner>> list(String name, Integer pageNum, Integer pageSize){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.ok();
+		}
+		IPage<Banner> list = bannerService.list(name, pageNum, pageSize);
+		return R.ok(list);
+	}
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加banner", tags = {"三个身边后台-banner管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1, businessType = "添加banner")
+	public R<Banner> add(@RequestBody Banner banner){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("添加失败");
+		}
+		banner.setDel(0);
+		banner.setCreateTime(LocalDateTime.now());
+		bannerService.save(banner);
+		return R.ok(banner);
+	}
+	
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑banner", tags = {"三个身边后台-banner管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2, businessType = "编辑banner")
+	public R<Banner> edit(@RequestBody Banner banner){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("编辑失败");
+		}
+		bannerService.updateById(banner);
+		return R.ok(banner);
+	}
+	
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除banner", tags = {"三个身边后台-banner管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3, businessType = "删除banner")
+	public R delete(@PathVariable("id") Integer id){
+		Integer id1 = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id1);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("删除失败");
+		}
+		Banner banner = new Banner();
+		banner.setId(id);
+		banner.setDel(1);
+		bannerService.updateById(banner);
+		return R.ok();
+	}
+	
+	@GetMapping("/getBannerInfo/{id}")
+	@ApiOperation(value = "获取banner信息", tags = {"三个身边后台-banner管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "id", value = "bannerID", required = true, dataType = "Integer")
+	})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取banner信息")
+	public R<Banner> getBannerInfo(@PathVariable("id") Integer id){
+		Banner banner = bannerService.getById(id);
+		return R.ok(banner);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java
new file mode 100644
index 0000000..7f3d84c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/DepartmentController.java
@@ -0,0 +1,128 @@
+package com.panzhihua.sangeshenbian.api;
+
+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.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;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:44
+ */
+@Api
+@RestController
+@RequestMapping("/department")
+public class DepartmentController {
+	
+	@Resource
+	private IDepartmentService departmentService;
+	
+	@Resource
+	private ISystemUserService systemUserService;
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取单位列表", tags = {"三个身边后台-用户管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取单位列表")
+	public R<List<Department>> list(){
+		List<Department> list = departmentService.list();
+		List<Department> departmentList1 = list.stream().filter(s -> s.getPid() == 0).collect(Collectors.toList());
+		for (Department department : departmentList1) {
+			List<Department> departmentList2 = list.stream().filter(s -> s.getPid().equals(department.getId())).collect(Collectors.toList());
+			for (Department department1 : departmentList2) {
+				List<Department> departmentList3 = list.stream().filter(s -> s.getPid().equals(department1.getId())).collect(Collectors.toList());
+				for (Department department2 : departmentList3) {
+					List<Department> departmentList4 = list.stream().filter(s -> s.getPid().equals(department2.getId())).collect(Collectors.toList());
+					department2.setChild(departmentList4);
+				}
+				department1.setChild(departmentList3);
+			}
+			department.setChild(departmentList2);
+		}
+		return R.ok(departmentList1);
+	}
+	
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加单位信息", tags = {"三个身边后台-用户管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1, businessType = "添加单位信息")
+	public R add(@RequestBody Department department){
+		if(null == department.getPid()){
+			department.setPid(0);
+		}
+		long count = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getPid, department.getPid()).eq(Department::getName, department.getName()));
+		if(0 < count){
+			return R.fail("单位名称重复。");
+		}
+		Department department1 = departmentService.getById(department.getPid());
+		if(null != department1 && 4 == department1.getTier()){
+			return R.fail("层级超过4级,保存失败。");
+		}
+		department.setTier(null == department1 ? 1 : department1.getTier() + 1);
+		departmentService.save(department);
+		return R.ok();
+	}
+	
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑单位信息", tags = {"三个身边后台-用户管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2, businessType = "编辑单位信息")
+	public R edit(@RequestBody Department department){
+		if(null == department.getPid()){
+			department.setPid(0);
+		}
+		long count = departmentService.count(new LambdaQueryWrapper<Department>().eq(Department::getPid, department.getPid())
+				.eq(Department::getName, department.getName()).ne(Department::getId, department.getId()));
+		if(0 < count){
+			return R.fail("单位名称重复。");
+		}
+		Department department1 = departmentService.getById(department.getPid());
+		if(null != department1 && 4 == department1.getTier()){
+			return R.fail("层级超过4级,保存失败。");
+		}
+		department.setTier(null == department1 ? 1 : department1.getTier() + 1);
+		departmentService.updateById(department);
+		return R.ok();
+	}
+	
+	
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除单位信息", tags = {"三个身边后台-用户管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3, businessType = "删除单位信息")
+	public R delete(@PathVariable("id") Integer id){
+		long count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getOneDepartmentId, id).or().eq(SystemUser::getTwoDepartmentId, id)
+				.or().eq(SystemUser::getThreeDepartmentId, id).or().eq(SystemUser::getFourDepartmentId, id).ne(SystemUser::getStatus, 3));
+		if(0 < count){
+			return R.fail("该单位已被使用,删除失败。");
+		}
+		departmentService.removeById(id);
+		return R.ok();
+	}
+	
+	
+	
+	@GetMapping("/getDepartmentList/{tier}")
+	@ApiOperation(value = "根据单位层级查询单位数据", tags = {"三个身边后台-用户管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "tier", value = "单位层级", required = true, dataType = "Integer")
+	})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "根据单位层级查询单位数据")
+	public R<List<Department>> getDepartmentList(@PathVariable("tier") Integer tier){
+		List<Department> list = departmentService.list(new LambdaQueryWrapper<Department>().eq(Department::getTier, tier));
+		return R.ok(list);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java
new file mode 100644
index 0000000..591ca78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/MessageNotificationController.java
@@ -0,0 +1,110 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
+import com.panzhihua.sangeshenbian.model.entity.SystemUser;
+import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
+import com.panzhihua.sangeshenbian.service.ISystemUserService;
+import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 3:05
+ */
+
+@Api
+@RestController
+@RequestMapping("/messageNotification")
+public class MessageNotificationController extends BaseController {
+	
+	@Resource
+	private IMessageNotificationService messageNotificationService;
+	
+	@Resource
+	private ISystemUserService systemUserService;
+	
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取消息通知列表", tags = {"三个身边后台-消息通知"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取消息通知列表")
+	public R<IPage<MessageNotification>> list(MessageNotificationList query) {
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		switch (systemUser.getAccountLevel()){
+			case 1:
+				query.setUserId("510400");
+				break;
+			case 2:
+				query.setUserId(systemUser.getDistrictsCode());
+				break;
+			case 3:
+				query.setUserId(systemUser.getStreetId().toString());
+				break;
+			case 4:
+				query.setUserId(systemUser.getCommunityId().toString());
+				break;
+			case 5:
+				query.setUserId(id.toString());
+				break;
+		}
+		query.setUndertakerType(systemUser.getAccountLevel());
+		IPage<MessageNotification> page = messageNotificationService.list(query);
+		return R.ok(page);
+	}
+	
+	
+	@PutMapping("/read/{id}")
+	@ApiOperation(value = "标记为已读", tags = {"三个身边后台-消息通知"})
+	@OperLog(operModul = "三个身边后台",operType = 2, businessType = "标记为已读")
+	public R read(@PathVariable("id") Integer id) {
+		MessageNotification messageNotification = messageNotificationService.getById(id);
+		if(messageNotification.getReadStatus()==1){
+			return R.fail("不能重复操作");
+		}
+		messageNotification.setReadStatus(1);
+		messageNotificationService.updateById(messageNotification);
+		return R.ok();
+	}
+	
+	
+	@GetMapping("/unreadCount")
+	@ApiOperation(value = "获取未读数量", tags = {"三个身边后台-消息通知"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取未读数量")
+	public R unreadCount() {
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		String userId = null;
+		switch (systemUser.getAccountLevel()){
+			case 1:
+				userId = "510400";
+				break;
+			case 2:
+				userId = systemUser.getDistrictsCode();
+				break;
+			case 3:
+				userId = systemUser.getStreetId().toString();
+				break;
+			case 4:
+				userId = systemUser.getCommunityId().toString();
+				break;
+			case 5:
+				userId = id.toString();
+				break;
+		}
+		long count = messageNotificationService.lambdaQuery()
+				.eq(MessageNotification::getReadStatus, 0)
+				.eq(MessageNotification::getUndertakerType, systemUser.getAccountLevel())
+				.eq(MessageNotification::getUndertakerUserId, userId)
+				.count();
+		return R.ok(count);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java
new file mode 100644
index 0000000..a816fe3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ProblemTypeController.java
@@ -0,0 +1,117 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+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;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:27
+ */
+@Api
+@RestController
+@RequestMapping("/problemType")
+public class ProblemTypeController extends BaseController {
+	
+	@Resource
+	private IProblemTypeService problemTypeService;
+	
+	@Resource
+	private ISystemUserService systemUserService;
+	
+	
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取问题类型列表", tags = {"三个身边后台-问题类型管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取问题类型列表")
+	public R<IPage<ProblemType>> list(String name, Integer pageNum, Integer pageSize){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.ok();
+		}
+		IPage<ProblemType> list = problemTypeService.list(name, pageNum, pageSize);
+		return R.ok(list);
+	}
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加问题类型", tags = {"三个身边后台-问题类型管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1, businessType = "添加问题类型")
+	public R add(@RequestBody ProblemType problemType){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("添加失败");
+		}
+		long count = problemTypeService.count(new LambdaQueryWrapper<ProblemType>().eq(ProblemType::getName, problemType.getName()).eq(ProblemType::getDel, 0));
+		if(0 < count){
+			return R.fail("该问题类型已存在");
+		}
+		problemType.setDel(0);
+		problemType.setCreateTime(LocalDateTime.now());
+		problemTypeService.save(problemType);
+		return R.ok();
+	}
+	
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑问题类型", tags = {"三个身边后台-问题类型管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2, businessType = "编辑问题类型")
+	public R edit(@RequestBody ProblemType problemType){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(id);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("编辑失败");
+		}
+		long count = problemTypeService.count(new LambdaQueryWrapper<ProblemType>().eq(ProblemType::getName, problemType.getName()).eq(ProblemType::getDel, 0).ne(ProblemType::getId, problemType.getId()));
+		if(0 < count){
+			return R.fail("该问题类型已存在");
+		}
+		problemTypeService.updateById(problemType);
+		return R.ok();
+	}
+	
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除问题类型", tags = {"三个身边后台-问题类型管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3, businessType = "删除问题类型")
+	public R delete(@PathVariable("id") Integer id){
+		Integer userid = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser systemUser = systemUserService.getById(userid);
+		if(systemUser.getAccountLevel() != 1){
+			return R.fail("删除失败");
+		}
+		ProblemType problemType = new ProblemType();
+		problemType.setId(id);
+		problemType.setDel(1);
+		problemTypeService.updateById(problemType);
+		return R.ok();
+	}
+	
+	@GetMapping("/getProblemTypeInfo/{id}")
+	@ApiOperation(value = "获取问题类型信息", tags = {"三个身边后台-问题类型管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "id", value = "问题类型ID", required = true, dataType = "Integer")
+	})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取问题类型信息")
+	public R<ProblemType> getProblemTypeInfo(@PathVariable("id") Integer id){
+		ProblemType problemType = problemTypeService.getById(id);
+		return R.ok(problemType);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java
new file mode 100644
index 0000000..d29ec04
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemMenuController.java
@@ -0,0 +1,34 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
+import com.panzhihua.sangeshenbian.service.ISystemMenuService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 1:22
+ */
+@Api
+@RestController
+@RequestMapping("/systemMenu")
+public class SystemMenuController {
+	
+	@Resource
+	private ISystemMenuService systemMenuService;
+	
+	@GetMapping("/getSystemMenuList")
+	@ApiOperation(value = "获取菜单列表", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0, businessType = "获取菜单列表")
+	public R<List<SystemMenu>> getSystemMenuList(){
+		return R.ok(systemMenuService.getSystemMenuList());
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemPostController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemPostController.java
new file mode 100644
index 0000000..2ca0c24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemPostController.java
@@ -0,0 +1,59 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.sangeshenbian.model.entity.SystemPost;
+import com.panzhihua.sangeshenbian.service.ISystemPostService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 19:44
+ */
+@Api
+@RestController
+@RequestMapping("/systemPost")
+public class SystemPostController {
+	
+	@Resource
+	private ISystemPostService systemPostService;
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加职位", tags = {"三个身边后台-职位管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1,businessType = "添加职位")
+	public R add(@RequestBody SystemPost systemPost) {
+		systemPostService.save(systemPost);
+		return R.ok();
+	}
+	
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑职位", tags = {"三个身边后台-职位管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2,businessType = "编辑职位")
+	public R edit(@RequestBody SystemPost systemPost) {
+		systemPostService.updateById(systemPost);
+		return R.ok();
+	}
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除职位", tags = {"三个身边后台-职位管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3,businessType = "删除职位")
+	public R delete(@PathVariable("id") Integer id) {
+		systemPostService.removeById(id);
+		return R.ok();
+	}
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取列表数据", tags = {"三个身边后台-职位管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取职位列表数据")
+	public R<IPage<SystemPost>> list(String name, Integer pageNum, Integer pageSize) {
+		return R.ok(systemPostService.list(name, pageNum, pageSize));
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java
new file mode 100644
index 0000000..666bd4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemRoleController.java
@@ -0,0 +1,132 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+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.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:41
+ */
+@Api
+@RestController
+@RequestMapping("/systemRole")
+public class SystemRoleController extends BaseController {
+	
+	@Resource
+	private ISystemRoleService systemRoleService;
+	
+	@Resource
+	private ISystemRoleMenuService systemRoleMenuService;
+	
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取列表数据", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取角色列表数据")
+	public R<IPage<SystemRoleListVo>> list(SystemRoleList systemRoleList){
+		IPage<SystemRoleListVo> list = systemRoleService.list(systemRoleList);
+		return R.ok(list);
+	}
+	
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加角色", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1,businessType = "添加角色")
+	public R add(@RequestBody AddSystemRole addSystemRole){
+		long count = systemRoleService.count(new LambdaQueryWrapper<SystemRole>().eq(SystemRole::getDel, 0).eq(SystemRole::getName, addSystemRole.getName()));
+		if(0 < count){
+			return R.fail("该角色名称已存在");
+		}
+		SystemRole systemRole = new SystemRole();
+		systemRole.setName(addSystemRole.getName());
+		systemRole.setDel(0);
+		systemRole.setCreateTime(LocalDateTime.now());
+		systemRoleService.save(systemRole);
+		//添加角色菜单权限
+		List<Integer> systemMenuIds = addSystemRole.getSystemMenuIds();
+		for (Integer systemMenuId : systemMenuIds) {
+			SystemRoleMenu systemRoleMenu = new SystemRoleMenu();
+			systemRoleMenu.setSystemRoleId(systemRole.getId());
+			systemRoleMenu.setSystemMenuId(systemMenuId);
+			systemRoleMenuService.save(systemRoleMenu);
+		}
+		return R.ok();
+	}
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑角色", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2,businessType = "编辑角色")
+	public R edit(@RequestBody EditSystemRole editSystemRole){
+		long count = systemRoleService.count(new LambdaQueryWrapper<SystemRole>().eq(SystemRole::getDel, 0)
+				.eq(SystemRole::getName, editSystemRole.getName()).ne(SystemRole::getId, editSystemRole.getId()));
+		if(0 < count){
+			return R.fail("该角色名称已存在");
+		}
+		SystemRole systemRole = systemRoleService.getById(editSystemRole.getId());
+		if(null == systemRole){
+			return R.fail("无效的角色数据");
+		}
+		systemRole.setName(editSystemRole.getName());
+		systemRoleService.updateById(systemRole);
+		//添加角色菜单权限
+		systemRoleMenuService.remove(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, editSystemRole.getId()));
+		List<Integer> systemMenuIds = editSystemRole.getSystemMenuIds();
+		for (Integer systemMenuId : systemMenuIds) {
+			SystemRoleMenu systemRoleMenu = new SystemRoleMenu();
+			systemRoleMenu.setSystemRoleId(systemRole.getId());
+			systemRoleMenu.setSystemMenuId(systemMenuId);
+			systemRoleMenuService.save(systemRoleMenu);
+		}
+		return R.ok();
+	}
+	
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除角色", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3,businessType = "删除角色")
+	public R delete(@PathVariable("id") Integer id){
+		SystemRole systemRole = systemRoleService.getById(id);
+		systemRole.setDel(1);
+		systemRoleService.updateById(systemRole);
+		//删除角色菜单权限
+		systemRoleMenuService.remove(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, id));
+		return R.ok();
+	}
+	
+	
+	
+	@GetMapping("/getSystemRoleInfo/{id}")
+	@ApiOperation(value = "获取角色详情", tags = {"三个身边后台-角色管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取角色详情")
+	public R<SystemRoleInfo> getSystemRoleInfo(@PathVariable("id") Integer id){
+		SystemRole systemRole = systemRoleService.getById(id);
+		if(null == systemRole){
+			return R.fail("无效的角色数据");
+		}
+		
+		List<SystemRoleMenu> list = systemRoleMenuService.list(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, id));
+		SystemRoleInfo systemRoleInfo = new SystemRoleInfo();
+		systemRoleInfo.setId(systemRole.getId());
+		systemRoleInfo.setName(systemRoleInfo.getName());
+		systemRoleInfo.setSystemMenuIds(list.stream().map(SystemRoleMenu::getSystemMenuId).collect(Collectors.toList()));
+		return R.ok(systemRoleInfo);
+	}
+	
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java
new file mode 100644
index 0000000..1d7edde
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/SystemUserController.java
@@ -0,0 +1,246 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+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.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;
+import com.panzhihua.sangeshenbian.warpper.LoginVo;
+import com.panzhihua.sangeshenbian.warpper.SystemUserList;
+import com.panzhihua.sangeshenbian.warpper.SystemUserListVo;
+import com.panzhihua.sangeshenbian.warpper.TokenVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:30
+ */
+@Api
+@RestController
+@RequestMapping("/systemUser")
+public class SystemUserController extends BaseController {
+	
+	@Resource
+	private ISystemUserService systemUserService;
+	
+	@Resource
+	private RedisTemplate redisTemplate;
+	
+	@Resource
+	private TokenService tokenService;
+	
+	private final Integer max_err = 5;
+	
+	@Resource
+	private ISystemRoleMenuService systemRoleMenuService;
+	
+	@Resource
+	private ISystemMenuService systemMenuService;
+	
+	
+	
+	
+	
+	@PostMapping("/login")
+	@ApiOperation(value = "登录", tags = {"三个身边后台-登录"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "登录")
+	public R<TokenVo> login(@RequestBody LoginVo vo){
+		String key = "login:" + vo.getPhone();
+		Integer size = (Integer) redisTemplate.opsForValue().get(key);
+		if(null != size && max_err.equals(size)){
+			return R.fail("连续登录失败,请稍后重试。");
+		}
+		if(null == size){
+			size = 0;
+		}
+		SystemUser systemUser = systemUserService.getOne(new LambdaQueryWrapper<SystemUser>()
+				.eq(SystemUser::getPhone, vo.getPhone()).ne(SystemUser::getStatus, 3));
+		if(null == systemUser){
+			size++;
+			redisTemplate.opsForValue().set(key, size, 5, TimeUnit.MINUTES);
+			return R.fail("登录失败,手机号/密码错误。");
+		}
+		if(!vo.getPassword().equals(systemUser.getPassword())){
+			size++;
+			redisTemplate.opsForValue().set(key, size, 5, TimeUnit.MINUTES);
+			return R.fail("登录失败,手机号/密码错误。");
+		}
+		if(2 == systemUser.getStatus()){
+			return R.fail("当前账号已冻结。");
+		}
+		//创建token
+		R<LoginReturnVO> reult = tokenService.loginThreeAround(systemUser.getId());
+		redisTemplate.delete(key);
+		LoginReturnVO loginReturnVO = reult.getData();
+		TokenVo tokenVo = new TokenVo();
+		BeanUtils.copyProperties(loginReturnVO, tokenVo);
+		List<SystemRoleMenu> list = systemRoleMenuService.list(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, systemUser.getSystemRoleId()));
+		List<Integer> collect = list.stream().map(SystemRoleMenu::getSystemMenuId).collect(Collectors.toList());
+		Set<String> collect1 = new HashSet<>();
+		if(collect.size() > 0){
+			List<SystemMenu> systemMenus = systemMenuService.listByIds(collect);
+			collect1 = systemMenus.stream().map(SystemMenu::getUrl).collect(Collectors.toSet());
+		}
+		tokenVo.setMenu(collect1);
+		tokenVo.setName(systemUser.getName());
+		return R.ok(tokenVo);
+	}
+	
+	
+	@PostMapping("logout")
+	@ApiOperation(value = "退出登录", tags = {"三个身边后台-登录"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "退出登录")
+	public R login() {
+		String token = this.getToken();
+		if (ObjectUtils.isEmpty(token)) {
+			return R.ok();
+		}
+		return tokenService.logout(token);
+	}
+	
+	
+	@GetMapping("/list")
+	@ApiOperation(value = "获取列表数据", tags = {"三个身边管理后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取人员管理列表数据")
+	public R<IPage<SystemUserListVo>> list(SystemUserList query){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser user = systemUserService.getById(id);
+		IPage<SystemUserListVo> list = systemUserService.list(user.getAccountLevel(), query);
+		return R.ok(list);
+	}
+	
+	
+	
+	@PostMapping("/add")
+	@ApiOperation(value = "添加人员", tags = {"三个身边管理后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 1,businessType = "添加人员")
+	public R add(@RequestBody SystemUser systemUser){
+		Integer id = this.getLoginUserInfoSanGeShenBian().getId();
+		SystemUser user = systemUserService.getById(id);
+		if(2 == user.getAccountLevel() && 1 == systemUser.getAccountLevel()){
+			return R.fail("不能添加市级账号");
+		}
+		if(3 == user.getAccountLevel() && 3 < systemUser.getAccountLevel()){
+			return R.fail("不能添加区县和市级账号");
+		}
+		if(4 == user.getAccountLevel() && 4 < systemUser.getAccountLevel()){
+			return R.fail("不能添加街道、区县和市级账号");
+		}
+		long count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getPhone, systemUser.getPhone()).ne(SystemUser::getStatus, 3));
+		if(0 < count){
+			return R.fail("手机号重复。");
+		}
+		systemUser.setStatus(1);
+		systemUser.setCreateTime(LocalDateTime.now());
+		systemUserService.save(systemUser);
+		return R.ok();
+	}
+	
+	
+	@PostMapping("/edit")
+	@ApiOperation(value = "编辑人员", tags = {"三个身边后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 2,businessType = "编辑人员")
+	public R edit(@RequestBody SystemUser systemUser){
+		long count = systemUserService.count(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getPhone, systemUser.getPhone())
+				.ne(SystemUser::getStatus, 3).ne(SystemUser::getId, systemUser.getId()));
+		if(0 < count){
+			return R.fail("手机号重复。");
+		}
+		systemUser.setStatus(1);
+		systemUser.setCreateTime(LocalDateTime.now());
+		systemUserService.updateById(systemUser);
+		return R.ok();
+	}
+	
+	
+	@DeleteMapping("/delete/{id}")
+	@ApiOperation(value = "删除人员", tags = {"三个身边后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 3,businessType = "删除人员")
+	public R delete(@PathVariable("id") Integer id){
+		SystemUser systemUser = systemUserService.getById(id);
+		systemUser.setStatus(3);
+		systemUserService.updateById(systemUser);
+		return R.ok();
+	}
+	
+	
+	@GetMapping("/getSystemUserInfo/{id}")
+	@ApiOperation(value = "查询人员详情", tags = {"三个身边后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "查询人员详情")
+	public R<SystemUser> getSystemUserInfo(@PathVariable("id") Integer id){
+		SystemUser systemUser = systemUserService.getById(id);
+		return R.ok(systemUser);
+	}
+	
+	
+	@PutMapping("/freeze/{id}")
+	@ApiOperation(value = "冻结账号", tags = {"三个身边后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "冻结账号")
+	public R freeze(@PathVariable("id") Integer id){
+		SystemUser systemUser = systemUserService.getById(id);
+		if(2 == systemUser.getStatus()){
+			return R.fail("不能重复操作");
+		}
+		systemUser.setStatus(2);
+		systemUserService.updateById(systemUser);
+		return R.ok();
+	}
+	
+	
+	@PutMapping("/unfreeze/{id}")
+	@ApiOperation(value = "解冻账号", tags = {"三个身边后台-人员管理"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "解冻账号")
+	public R unfreeze(@PathVariable("id") Integer id){
+		SystemUser systemUser = systemUserService.getById(id);
+		if(1 == systemUser.getStatus()){
+			return R.fail("不能重复操作");
+		}
+		systemUser.setStatus(1);
+		systemUserService.updateById(systemUser);
+		return R.ok();
+	}
+	
+	
+	/**
+	 * 根据用户id获取信息
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/getUserById")
+	public R<SystemUserVo> getUserById(@RequestParam("id") String id){
+		SystemUser systemUser = systemUserService.getById(id);
+		SystemUserVo systemUserVo = new SystemUserVo();
+		List<SystemRoleMenu> list = systemRoleMenuService.list(new LambdaQueryWrapper<SystemRoleMenu>().eq(SystemRoleMenu::getSystemRoleId, systemUser.getSystemRoleId()));
+		List<Integer> collect = list.stream().map(SystemRoleMenu::getSystemMenuId).collect(Collectors.toList());
+		Set<String> collect1 = new HashSet<>();
+		if(collect.size() > 0){
+			List<SystemMenu> systemMenus = systemMenuService.listByIds(collect);
+			collect1 = systemMenus.stream().map(SystemMenu::getUrl).collect(Collectors.toSet());
+		}
+		systemUserVo.setPermissions(collect1);
+		BeanUtils.copyProperties(systemUser, systemUserVo);
+		return R.ok(systemUserVo);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java
new file mode 100644
index 0000000..83d1223
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/WorkOrderItemConfigController.java
@@ -0,0 +1,42 @@
+package com.panzhihua.sangeshenbian.api;
+
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
+import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:09
+ */
+@Api
+@RestController
+@RequestMapping("/workOrderItemConfig")
+public class WorkOrderItemConfigController {
+	
+	@Resource
+	private IWorkOrderItemConfigService workOrderItemConfigService;
+	
+	
+	@GetMapping("/getWorkOrderItemConfigInfo")
+	@ApiOperation(value = "获取工单事项配置", tags = {"三个身边后台-工单事项配置"})
+	@OperLog(operModul = "三个身边后台",operType = 0,businessType = "获取工单事项配置")
+	public R<WorkOrderItemConfig> getWorkOrderItemConfigInfo(){
+		WorkOrderItemConfig one = workOrderItemConfigService.getOne(null);
+		return R.ok(one);
+	}
+	
+	
+	@PostMapping("/addWorkOrderItemConfig")
+	@ApiOperation(value = "保存工单事项配置", tags = {"三个身边后台-工单事项配置"})
+	@OperLog(operModul = "三个身边后台",operType = 1,businessType = "保存工单事项配置")
+	public R<WorkOrderItemConfig> add(@RequestBody WorkOrderItemConfig workOrderItemConfig){
+		workOrderItemConfigService.saveOrUpdate(workOrderItemConfig);
+		return R.ok();
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java
new file mode 100644
index 0000000..660bd89
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/aspectj/DistributedLockAspect.java
@@ -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("执行事务");
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..ea4d7d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MyMetaObjectHandler.java
@@ -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)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..d710fcb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/MybatisPlusConfig.java
@@ -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);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java
new file mode 100644
index 0000000..9e5e13e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/RedissonConfig.java
@@ -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;
+//    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java
new file mode 100644
index 0000000..385c4e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/config/SwaggerConfig.java
@@ -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();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java
new file mode 100644
index 0000000..af33552
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/BcRegionController.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java
new file mode 100644
index 0000000..8ae4065
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComActController.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java
new file mode 100644
index 0000000..acbcf29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComStreetController.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java
new file mode 100644
index 0000000..a9850ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintAuditRecordController.java
@@ -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 {
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
new file mode 100644
index 0000000..ef7e064
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java
@@ -0,0 +1,169 @@
+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.entity.ProblemType;
+import com.panzhihua.sangeshenbian.model.query.ComplaintQuery;
+import com.panzhihua.sangeshenbian.model.vo.ComplaintVO;
+import com.panzhihua.sangeshenbian.model.vo.DispatchVO;
+import com.panzhihua.sangeshenbian.service.IComplaintService;
+import com.panzhihua.sangeshenbian.service.IProblemTypeService;
+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.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+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(onConstructor_ = {@Lazy})
+@Api(tags = "诉求管理")
+public class ComplaintController extends BaseController {
+
+    private final IComplaintService complaintService;
+    private final IProblemTypeService problemTypeService;
+    @GetMapping("/problem-type/list")
+    @ApiOperation("获取诉求问题类型列表")
+    public R<List<ProblemType>> problemTypeList() {
+        return R.ok(problemTypeService.list());
+    }
+    /**
+     * 录入诉求
+     */
+    @PostMapping("/save")
+    @ApiOperation(value = "录入诉求")
+    @DistributedLock(lockName = "complaint_serial_number_lock")
+    public R<?> save(@RequestBody Complaint complaint) {
+        complaintService.saveComplaint(complaint, getUserId());
+        return R.ok();
+    }
+
+    @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}")
+    @ApiOperation("办理进度")
+    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<List<DispatchVO>> getDispatchList() {
+        return R.ok(complaintService.getDispatchList(getLoginUserInfo()));
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java
new file mode 100644
index 0000000..4df371c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintFlowController.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java
new file mode 100644
index 0000000..b9211ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintProgressController.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
new file mode 100644
index 0000000..840cc85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -0,0 +1,85 @@
+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.common.service.user.UserService;
+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.context.annotation.Lazy;
+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(onConstructor_=@Lazy)
+@Api(tags = "首页相关接口")
+public class HomeController extends BaseController {
+    private final IBannerService bannerService;
+    private final IMessageNotificationService messageNotificationService;
+    private final IComplaintService complaintService;
+    private final ISystemUserService systemUserService;
+    private final UserService userService;
+    @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()).orElse(null));
+    }
+    /**
+     * 标记已读
+     */
+    @PostMapping("/read")
+    @ApiOperation("标记已读")
+    public R<?> read(){
+        messageNotificationService.read(getLoginUserInfo());
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BannerMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BannerMapper.java
new file mode 100644
index 0000000..3e3b280
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BannerMapper.java
@@ -0,0 +1,19 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.sangeshenbian.model.entity.Banner;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:44
+ */
+@Mapper
+public interface BannerMapper extends BaseMapper<Banner> {
+	
+	
+	IPage<Banner> list(Page page, @Param("name") String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java
new file mode 100644
index 0000000..097df9f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/BcRegionMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java
new file mode 100644
index 0000000..e80674b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComActMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java
new file mode 100644
index 0000000..892698e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComStreetMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java
new file mode 100644
index 0000000..5577c20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintAuditRecordMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java
new file mode 100644
index 0000000..77b4e97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintFlowMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
new file mode 100644
index 0000000..15a4188
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintMapper.java
@@ -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);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java
new file mode 100644
index 0000000..304f39e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintProgressMapper.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java
new file mode 100644
index 0000000..fe48098
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/DepartmentMapper.java
@@ -0,0 +1,13 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.sangeshenbian.model.entity.Department;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:42
+ */
+@Mapper
+public interface DepartmentMapper extends BaseMapper<Department> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java
new file mode 100644
index 0000000..964e8fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/MessageNotificationMapper.java
@@ -0,0 +1,20 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
+import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 3:03
+ */
+@Mapper
+public interface MessageNotificationMapper extends BaseMapper<MessageNotification> {
+	
+	
+	IPage<MessageNotification> list(Page page, @Param("query") MessageNotificationList query);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java
new file mode 100644
index 0000000..401e1e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ProblemTypeMapper.java
@@ -0,0 +1,19 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.sangeshenbian.model.entity.ProblemType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:25
+ */
+@Mapper
+public interface ProblemTypeMapper extends BaseMapper<ProblemType> {
+	
+	
+	IPage<ProblemType> list(Page page, @Param("name") String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java
new file mode 100644
index 0000000..d1d5789
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemMenuMapper.java
@@ -0,0 +1,13 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 1:02
+ */
+@Mapper
+public interface SystemMenuMapper extends BaseMapper<SystemMenu> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemPostMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemPostMapper.java
new file mode 100644
index 0000000..52cf77e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemPostMapper.java
@@ -0,0 +1,20 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.sangeshenbian.model.entity.SystemPost;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 19:41
+ */
+@Mapper
+public interface SystemPostMapper extends BaseMapper<SystemPost> {
+	
+	
+	
+	IPage<SystemPost> list(Page page, @Param("name") String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java
new file mode 100644
index 0000000..a42229d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMapper.java
@@ -0,0 +1,25 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.sangeshenbian.model.entity.SystemRole;
+import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:40
+ */
+@Mapper
+public interface SystemRoleMapper extends BaseMapper<SystemRole> {
+	
+	
+	/**
+	 * 获取列表数据
+	 * @param name
+	 * @return
+	 */
+	IPage<SystemRoleListVo> list(Page page, @Param("name") String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java
new file mode 100644
index 0000000..ba5bda6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemRoleMenuMapper.java
@@ -0,0 +1,13 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:24
+ */
+@Mapper
+public interface SystemRoleMenuMapper extends BaseMapper<SystemRoleMenu> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java
new file mode 100644
index 0000000..13766a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemUserMapper.java
@@ -0,0 +1,25 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:29
+ */
+@Mapper
+public interface SystemUserMapper extends BaseMapper<SystemUser> {
+	
+	/**
+	 * 获取列表数据
+	 * @param query
+	 * @return
+	 */
+	IPage<SystemUserListVo> list(Page page, @Param("accountLevel") Integer accountLevel, @Param("query") SystemUserList query);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java
new file mode 100644
index 0000000..40d2bfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/WorkOrderItemConfigMapper.java
@@ -0,0 +1,13 @@
+package com.panzhihua.sangeshenbian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:06
+ */
+@Mapper
+public interface WorkOrderItemConfigMapper extends BaseMapper<WorkOrderItemConfig> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java
new file mode 100644
index 0000000..e2558b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/AuditStatusEnum.java
@@ -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;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java
new file mode 100644
index 0000000..2259c4b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ProcessStatusEnum.java
@@ -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;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java
new file mode 100644
index 0000000..c9c4ea8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/enums/ReportTypeEnum.java
@@ -0,0 +1,33 @@
+package com.panzhihua.sangeshenbian.enums;
+
+public enum ReportTypeEnum {
+    COMMUNITY(4, "社区"),
+    STREET(3, "街道"),
+    DISTRICT(2, "区县"),
+    CITY(1, "市");
+
+    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);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java
new file mode 100644
index 0000000..e7aabaf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintCompletionDTO.java
@@ -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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java
new file mode 100644
index 0000000..a5791dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayAuditDTO.java
@@ -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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java
new file mode 100644
index 0000000..364c2a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDelayDTO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java
new file mode 100644
index 0000000..7f1f776
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintDispatch.java
@@ -0,0 +1,18 @@
+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 = "单位id")
+    private Long dispatchId; // TODO 待实现
+
+    @ApiModelProperty(value = "内容")
+    private String comment;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java
new file mode 100644
index 0000000..b94461c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintProcessDTO.java
@@ -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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java
new file mode 100644
index 0000000..576697f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReporAuditDTO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java
new file mode 100644
index 0000000..60c49fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/dto/ComplaintReportDTO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java
new file mode 100644
index 0000000..abdbf6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Banner.java
@@ -0,0 +1,51 @@
+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;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:42
+ */
+@Data
+@ApiModel
+@TableName("sgsb_banner")
+public class Banner {
+	/**
+	 * 数据ID
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty("数据ID")
+	private Integer id;
+	/**
+	 * 名称
+	 */
+	@TableField("name")
+	@ApiModelProperty("名称")
+	private String name;
+	/**
+	 * 地址
+	 */
+	@TableField("url")
+	@ApiModelProperty("地址")
+	private String url;
+	/**
+	 * 删除标识(0=否,1=是)
+	 */
+	@TableField("del")
+	@TableLogic
+	private Integer del;
+	/**
+	 * 添加时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java
new file mode 100644
index 0000000..7c53488
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/BcRegion.java
@@ -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;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java
new file mode 100644
index 0000000..204b79d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComAct.java
@@ -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;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java
new file mode 100644
index 0000000..cbbe5ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComStreet.java
@@ -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;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java
new file mode 100644
index 0000000..adaca43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java
@@ -0,0 +1,161 @@
+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.math.BigDecimal;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+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",type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    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-上级驳回 7-延期待审核")
+    @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;
+
+    @ApiModelProperty(value = "截止日期")
+    @TableField("closing_time")
+    private Date closingTime;
+
+    @ApiModelProperty(value = "超时天数")
+    @TableField("over_time_days")
+    private Integer overTimeDays;
+
+    @ApiModelProperty(value = "经度")
+    private BigDecimal longitude;
+
+    @ApiModelProperty(value = "纬度")
+    private BigDecimal latitude;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java
new file mode 100644
index 0000000..c9f3f9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java
@@ -0,0 +1,101 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+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)
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    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 Date createTime;
+
+    @ApiModelProperty(value = "修改人")
+    @TableField("update_by")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField("update_time")
+    private Date updateTime;
+
+    @ApiModelProperty("上报人")
+    private String reporter;
+
+    @ApiModelProperty("所属部门")
+    private String departmentName;
+
+    @ApiModelProperty("部门id")
+    private Integer departmentId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java
new file mode 100644
index 0000000..5dd7402
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintFlow.java
@@ -0,0 +1,62 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+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)
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "诉求ID")
+    @TableField(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;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java
new file mode 100644
index 0000000..ce8ef58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintProgress.java
@@ -0,0 +1,69 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+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",type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
+    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;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java
new file mode 100644
index 0000000..cfd7e5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Department.java
@@ -0,0 +1,50 @@
+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.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:40
+ */
+@Data
+@ApiModel
+@TableName("sgsb_department")
+public class Department {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty("数据ID")
+	private Integer id;
+	/**
+	 * 上级id
+	 */
+	@TableField("pid")
+	@ApiModelProperty("上级id")
+	private Integer pid;
+	/**
+	 * 单位名称
+	 */
+	@TableField("name")
+	@ApiModelProperty("单位名称")
+	private String name;
+	/**
+	 * 层级,最多4层
+	 */
+	@TableField("tier")
+	@ApiModelProperty("层级,最多4层")
+	private Integer tier;
+	
+	
+	@TableField(exist = false)
+	@ApiModelProperty("下级单位")
+	private List<Department> child;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java
new file mode 100644
index 0000000..26d3e6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/MessageNotification.java
@@ -0,0 +1,93 @@
+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.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:57
+ */
+@Data
+@ApiModel
+@TableName("sgsb_message_notification")
+public class MessageNotification {
+	/**
+	 * 数据ID
+	 */
+	@ApiModelProperty("数据ID")
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 标题
+	 */
+	@TableField("title")
+	@ApiModelProperty("标题")
+	private String title;
+	/**
+	 * 承办者用户id
+	 */
+	@TableField("undertaker_user_id")
+	@ApiModelProperty("承办者用户id")
+	private String undertakerUserId;
+	/**
+	 * 承办人类型(1=市级,2=区县,3=街道,4=社区,5=党员)
+	 */
+	@TableField("undertaker_type")
+	@ApiModelProperty("承办人类型(1=市级,2=区县,3=街道,4=社区,5=党员)")
+	private Integer undertakerType;
+	/**
+	 * 承办者
+	 */
+	@TableField(exist = false)
+	@ApiModelProperty("承办者")
+	private String undertakerUser;
+	/**
+	 * 联系电话
+	 */
+	@TableField("phone")
+	@ApiModelProperty("联系电话")
+	private String phone;
+	/**
+	 * 所在单位
+	 */
+	@TableField(exist = false)
+	@ApiModelProperty(value = "所在单位")
+	private String department;
+	/**
+	 * 所属职位
+	 */
+	@TableField(exist = false)
+	@ApiModelProperty("所属职位")
+	private String position;
+	/**
+	 * 需求应处理时间
+	 */
+	@TableField("response_time")
+	@ApiModelProperty("需求应处理时间")
+	private LocalDateTime responseTime;
+	/**
+	 * 提示类型(1=临期提醒,2=超时提醒)
+	 */
+	@TableField("prompt_type")
+	@ApiModelProperty("提示类型(1=临期提醒,2=超时提醒)")
+	private Integer promptType;
+	/**
+	 * 阅读状态(0=否,1=是)
+	 */
+	@TableField("read_status")
+	@ApiModelProperty("阅读状态(0=否,1=是)")
+	private Integer readStatus;
+	/**
+	 * 创建时间
+	 */
+	@TableField("create_time")
+	@ApiModelProperty("创建时间")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java
new file mode 100644
index 0000000..51b843f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ProblemType.java
@@ -0,0 +1,45 @@
+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;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:24
+ */
+@Data
+@ApiModel
+@TableName("sgsb_problem_type")
+public class ProblemType {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty("主键")
+	private Integer id;
+	/**
+	 * 名称
+	 */
+	@TableField("name")
+	@ApiModelProperty("名称")
+	private String name;
+	/**
+	 * 删除标识(0=否,1=是)
+	 */
+	@TableField("del")
+	@TableLogic
+	private Integer del;
+	/**
+	 * 添加时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java
new file mode 100644
index 0000000..8756386
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemMenu.java
@@ -0,0 +1,50 @@
+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.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 0:54
+ */
+@Data
+@ApiModel
+@TableName("sgsb_system_menu")
+public class SystemMenu {
+	/** 菜单ID */
+	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty("菜单ID")
+	private Integer id;
+	
+	/** 菜单名称 */
+	@TableField("name")
+	@ApiModelProperty("菜单名称")
+	private String name;
+	
+	/** 父菜单ID */
+	@TableField("parent_id")
+	private Long parentId;
+	
+	/** 显示顺序 */
+	@TableField("order_num")
+	private String orderNum;
+	
+	/** 菜单URL */
+	@TableField("url")
+	@ApiModelProperty("菜单URL")
+	private String url;
+	
+	/** 子菜单 */
+	@TableField(exist = false)
+	@ApiModelProperty("子菜单")
+	private List<SystemMenu> children = new ArrayList<SystemMenu>();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemPost.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemPost.java
new file mode 100644
index 0000000..eb3615d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemPost.java
@@ -0,0 +1,38 @@
+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.TableName;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 19:39
+ */
+@Data
+@TableName("sgsb_system_post")
+public class SystemPost {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 名称
+	 */
+	@TableField("name")
+	private String name;
+	/**
+	 * 删除标识(0=否,1=是)
+	 */
+	@TableField("del")
+	private Integer del;
+	/**
+	 * 添加时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java
new file mode 100644
index 0000000..5fa6983
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRole.java
@@ -0,0 +1,38 @@
+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.TableName;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:35
+ */
+@Data
+@TableName("sgsb_system_role")
+public class SystemRole {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 角色名称
+	 */
+	@TableField("name")
+	private String name;
+	/**
+	 * 删除标识(0=否,1=是)
+	 */
+	@TableField("del")
+	private Integer del;
+	/**
+	 * 添加时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java
new file mode 100644
index 0000000..f7c22e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemRoleMenu.java
@@ -0,0 +1,24 @@
+package com.panzhihua.sangeshenbian.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:21
+ */
+@Data
+@TableName("sgsb_system_role_menu")
+public class SystemRoleMenu {
+	/**
+	 * 角色id
+	 */
+	@TableField("system_role_id")
+	private Integer systemRoleId;
+	/**
+	 * 菜单id
+	 */
+	@TableField("system_menu_id")
+	private Integer systemMenuId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java
new file mode 100644
index 0000000..447ba36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/SystemUser.java
@@ -0,0 +1,141 @@
+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.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.xalan.templates.VarNameCollector;
+
+import java.time.LocalDateTime;
+
+/**
+ * 系统用户
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:18
+ */
+@Data
+@ApiModel
+@TableName("sgsb_system_user")
+public class SystemUser {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	@ApiModelProperty(value = "数据ID")
+	private Integer id;
+	/**
+	 * 姓名
+	 */
+	@TableField("name")
+	@ApiModelProperty(value = "姓名", required = true)
+	private String name;
+	/**
+	 * 手机号
+	 */
+	@TableField("phone")
+	@ApiModelProperty(value = "手机号", required = true)
+	private String phone;
+	/**
+	 * 密码
+	 */
+	@TableField("password")
+	@ApiModelProperty(value = "密码", required = true)
+	private String password;
+	/**
+	 * 一级单位id
+	 */
+	@TableField("one_department_id")
+	@ApiModelProperty(value = "一级单位id", required = true)
+	private Integer oneDepartmentId;
+	/**
+	 * 二级单位id
+	 */
+	@TableField("two_department_id")
+	@ApiModelProperty(value = "二级单位id")
+	private Integer twoDepartmentId;
+	/**
+	 * 三级单位id
+	 */
+	@TableField("three_department_id")
+	@ApiModelProperty(value = "三级单位id")
+	private Integer threeDepartmentId;
+	/**
+	 * 四级单位id
+	 */
+	@TableField("four_department_id")
+	@ApiModelProperty(value = "四级单位id")
+	private Integer fourDepartmentId;
+	/**
+	 * 是否是管理员(0=否,1=是)
+	 */
+	@TableField("is_admin")
+	@ApiModelProperty(value = "是否是管理员(0=否,1=是)", required = true)
+	private Integer isAdmin;
+	/**
+	 * 职位id
+	 */
+	@TableField("system_post_id")
+	@ApiModelProperty(value = "职位id", required = true)
+	private Integer systemPostId;
+	/**
+	 * 角色id
+	 */
+	@TableField("system_role_id")
+	@ApiModelProperty(value = "角色id", required = true)
+	private Integer systemRoleId;
+	/**
+	 * 账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号)
+	 */
+	@TableField("account_level")
+	@ApiModelProperty(value = "账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号,5=党员账号)", required = true)
+	private Integer accountLevel;
+	/**
+	 * 所属区县
+	 */
+	@TableField("districts")
+	@ApiModelProperty(value = "所属区县")
+	private String districts;
+	/**
+	 * 区县编号
+	 */
+	@TableField("districts_code")
+	@ApiModelProperty(value = "区县编号")
+	private String districtsCode;
+	/**
+	 * 街道
+	 */
+	@TableField("street")
+	@ApiModelProperty(value = "街道")
+	private String street;
+	/**
+	 * 街道ID
+	 */
+	@TableField("street_id")
+	@ApiModelProperty(value = "街道ID")
+	private String streetId;
+	/**
+	 * 社区
+	 */
+	@TableField("community")
+	@ApiModelProperty(value = "社区")
+	private String community;
+	/**
+	 * 社区ID
+	 */
+	@TableField("community_id")
+	@ApiModelProperty(value = "社区ID")
+	private Long communityId;
+	/**
+	 * 状态(1=正常,2=冻结,3=删除)
+	 */
+	@TableField("status")
+	private Integer status;
+	/**
+	 * 添加时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java
new file mode 100644
index 0000000..5f784fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/WorkOrderItemConfig.java
@@ -0,0 +1,88 @@
+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.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:04
+ */
+@Data
+@TableName("sgsb_work_order_item_config")
+public class WorkOrderItemConfig {
+	/**
+	 * 主键
+	 */
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+	/**
+	 * 市级账号诉求处理时间
+	 */
+	@TableField("city_handling_time")
+	@ApiModelProperty(value = "市级账号诉求处理时间", required = true)
+	private Integer cityHandlingTime;
+	/**
+	 * 区县级账号诉求处理时间
+	 */
+	@TableField("district_handling_time")
+	@ApiModelProperty(value = "区县级账号诉求处理时间", required = true)
+	private Integer districtHandlingTime;
+	/**
+	 * 街道级账号诉求处理时间
+	 */
+	@TableField("street_handling_time")
+	@ApiModelProperty(value = "街道级账号诉求处理时间", required = true)
+	private Integer streetHandlingTime;
+	/**
+	 * 社区级账号诉求处理时间
+	 */
+	@TableField("community_handling_time")
+	@ApiModelProperty(value = "社区级账号诉求处理时间", required = true)
+	private Integer communityHandlingTime;
+	/**
+	 * 党员级账号诉求处理时间
+	 */
+	@TableField("party_member_handling_time")
+	@ApiModelProperty(value = "党员级账号诉求处理时间", required = true)
+	private Integer partyMemberHandlingTime;
+	/**
+	 * 市级账号临期提醒
+	 */
+	@TableField("city_deadline_reminder")
+	@ApiModelProperty(value = "市级账号临期提醒", required = true)
+	private Integer cityDeadlineReminder;
+	/**
+	 * 区县级账号临期提醒
+	 */
+	@TableField("district_deadline_reminder")
+	@ApiModelProperty(value = "区县级账号临期提醒", required = true)
+	private Integer districtDeadlineReminder;
+	/**
+	 * 街道级账号临期提醒
+	 */
+	@TableField("street_deadline_reminder")
+	@ApiModelProperty(value = "街道级账号临期提醒", required = true)
+	private Integer streetDeadlineReminder;
+	/**
+	 * 社区级账号临期提醒
+	 */
+	@TableField("community_deadline_reminder")
+	@ApiModelProperty(value = "社区级账号临期提醒", required = true)
+	private Integer communityDeadlineReminder;
+	/**
+	 * 党员级账号临期提醒
+	 */
+	@TableField("party_member_deadline_reminder")
+	@ApiModelProperty(value = "党员级账号临期提醒", required = true)
+	private Integer partyMemberDeadlineReminder;
+	/**
+	 * 诉求处理时间
+	 */
+	@TableField("demand_processing_time")
+	@ApiModelProperty(value = "诉求处理时间", required = true)
+	private Integer demandProcessingTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java
new file mode 100644
index 0000000..ba5e0a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/BasePage.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java
new file mode 100644
index 0000000..82dd5fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintQuery.java
@@ -0,0 +1,23 @@
+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;
+
+    /**
+     * 当前登录用户id
+     */
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
new file mode 100644
index 0000000..79407bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintTodoVO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java
new file mode 100644
index 0000000..76b4c5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintVO.java
@@ -0,0 +1,57 @@
+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 reporter;
+
+    @ApiModelProperty(value = "所属部门")
+    private String departmentName;
+
+    @ApiModelProperty(value = "上报提交时间")
+    private Date reportTime;
+
+    @ApiModelProperty(value = "上报说明")
+    private String comment;
+
+    @ApiModelProperty(value = "录入人")
+    private String nickname;
+
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    @ApiModelProperty(value = "审核人")
+    private String auditorName;
+
+    @ApiModelProperty(value = "审核人联系方式")
+    private String auditorPhone;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "审核时间")
+    private Date auditTime;
+
+    @ApiModelProperty(value = "诉求流转记录")
+    List<ComplaintFlow> complaintFlows;
+
+    @ApiModelProperty(value = "办理进度")
+    List<ComplaintProgress> complaintProgresses;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java
new file mode 100644
index 0000000..8aea991
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/DispatchVO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
new file mode 100644
index 0000000..5e30418
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/MessageNotificationVO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
new file mode 100644
index 0000000..ce71a7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/PartyCardInfoVO.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java
new file mode 100644
index 0000000..49e134e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/ComplaintTasks.java
@@ -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();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java
new file mode 100644
index 0000000..b23481c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBannerService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.Banner;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:45
+ */
+public interface IBannerService extends IService<Banner> {
+	
+	
+	IPage<Banner> list(String name, Integer pageNum, Integer pageSize);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java
new file mode 100644
index 0000000..9693f88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IBcRegionService.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java
new file mode 100644
index 0000000..caabbf6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComActService.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java
new file mode 100644
index 0000000..96d6b21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComStreetService.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java
new file mode 100644
index 0000000..d63548c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintAuditRecordService.java
@@ -0,0 +1,23 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.SystemUser;
+
+/**
+ * <p>
+ * 诉求上报、延期申请审核表 服务类
+ * </p>
+ *
+ * @author
+ * @since 2025-02-23
+ */
+public interface IComplaintAuditRecordService extends IService<ComplaintAuditRecord> {
+    // 创建审核记录
+    void createComplaintAuditRecord(Long complaintId, Integer auditType, String comment, LoginUserInfoVO loginUserInfoVO, SystemUser adminUser);
+
+    // 审核
+    void audit(ComplaintAuditRecord complaintAuditRecord, Long userId, Integer auditResult, String rejectReason);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java
new file mode 100644
index 0000000..6ea96f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintFlowService.java
@@ -0,0 +1,27 @@
+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> {
+
+    /**
+     * 创建流程
+     * @param complaintId
+     * @param reportType
+     * @param type 流转类型 0-上报 1-下派
+     * @param userId
+     */
+    void createFlow(Long complaintId , Long superiorId, Integer reportType, Integer type, Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java
new file mode 100644
index 0000000..8fce8b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintProgressService.java
@@ -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> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
new file mode 100644
index 0000000..728cb97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java
@@ -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);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java
new file mode 100644
index 0000000..efbb6f0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IDepartmentService.java
@@ -0,0 +1,11 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.Department;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:43
+ */
+public interface IDepartmentService extends IService<Department> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
new file mode 100644
index 0000000..9edb204
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IMessageNotificationService.java
@@ -0,0 +1,28 @@
+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.common.model.vos.LoginUserInfoVO;
+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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 3:04
+ */
+public interface IMessageNotificationService extends IService<MessageNotification> {
+	
+	
+	IPage<MessageNotification> list(MessageNotificationList query);
+
+    Page<MessageNotificationVO> getMessageList(BasePage page, Long userId);
+
+    /**
+     * 标记已读
+     * @param loginUserInfoVO
+     */
+    void read(LoginUserInfoVO loginUserInfoVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java
new file mode 100644
index 0000000..d638ed7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IProblemTypeService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.ProblemType;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:26
+ */
+public interface IProblemTypeService extends IService<ProblemType> {
+	
+	
+	IPage<ProblemType> list(String name, Integer pageNum, Integer pageSize);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java
new file mode 100644
index 0000000..0c8831b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemMenuService.java
@@ -0,0 +1,19 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 1:03
+ */
+public interface ISystemMenuService extends IService<SystemMenu> {
+	
+	/**
+	 * 获取获取系统菜单列表
+	 * @return
+	 */
+	List<SystemMenu> getSystemMenuList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemPostService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemPostService.java
new file mode 100644
index 0000000..dcb2552
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemPostService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.SystemPost;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 19:42
+ */
+public interface ISystemPostService extends IService<SystemPost> {
+	
+	
+	IPage<SystemPost> list(String name, Integer pageNum, Integer pageSize);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java
new file mode 100644
index 0000000..705203b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleMenuService.java
@@ -0,0 +1,11 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:25
+ */
+public interface ISystemRoleMenuService extends IService<SystemRoleMenu> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java
new file mode 100644
index 0000000..6b74017
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemRoleService.java
@@ -0,0 +1,21 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.SystemRole;
+import com.panzhihua.sangeshenbian.warpper.SystemRoleList;
+import com.panzhihua.sangeshenbian.warpper.SystemRoleListVo;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:40
+ */
+public interface ISystemRoleService extends IService<SystemRole> {
+	
+	/**
+	 * 获取列表数据
+	 * @param systemRoleList
+	 * @return
+	 */
+	IPage<SystemRoleListVo> list(SystemRoleList systemRoleList);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java
new file mode 100644
index 0000000..a7de19e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+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.Optional;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:30
+ */
+public interface ISystemUserService extends IService<SystemUser> {
+	
+	/**
+	 * 获取列表数据
+	 * @param query
+	 * @return
+	 */
+	IPage<SystemUserListVo> list(Integer accountLevel, SystemUserList query);
+
+	/**
+	 * 根据手机号码查询小程序用户在三个身边的上级角色用户
+	 */
+	Optional<SystemUser> getSystemUserByPhone(String phone);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java
new file mode 100644
index 0000000..458aa93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IWorkOrderItemConfigService.java
@@ -0,0 +1,11 @@
+package com.panzhihua.sangeshenbian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:07
+ */
+public interface IWorkOrderItemConfigService extends IService<WorkOrderItemConfig> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java
new file mode 100644
index 0000000..7455b86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BannerServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+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.sangeshenbian.dao.BannerMapper;
+import com.panzhihua.sangeshenbian.model.entity.Banner;
+import com.panzhihua.sangeshenbian.service.IBannerService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:45
+ */
+@Service
+public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> implements IBannerService {
+	
+	@Override
+	public IPage<Banner> list(String name, Integer pageNum, Integer pageSize) {
+		Page page = new Page<>();
+		page.setCurrent(pageNum);
+		page.setSize(pageSize);
+		IPage<Banner> list = this.baseMapper.list(page, name);
+		return list;
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java
new file mode 100644
index 0000000..6cd06cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/BcRegionServiceImpl.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java
new file mode 100644
index 0000000..dd4b78f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComActServiceImpl.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java
new file mode 100644
index 0000000..efc713d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComStreetServiceImpl.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java
new file mode 100644
index 0000000..faf3f8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintAuditRecordServiceImpl.java
@@ -0,0 +1,72 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord;
+import com.panzhihua.sangeshenbian.dao.ComplaintAuditRecordMapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemUser;
+import com.panzhihua.sangeshenbian.service.IComplaintAuditRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <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, LoginUserInfoVO loginUserInfoVO, SystemUser adminUser) {
+        ComplaintAuditRecord auditRecord = new ComplaintAuditRecord();
+        auditRecord.setComplaintId(complaintId);
+        auditRecord.setLatestFlag(true);
+        auditRecord.setAuditType(auditType);
+        auditRecord.setAuditStatus(0);
+        auditRecord.setComment(comment);
+        auditRecord.setCreateBy(loginUserInfoVO.getUserId());
+        auditRecord.setCreateTime(new Date());
+        auditRecord.setUpdateBy(loginUserInfoVO.getUserId());
+        auditRecord.setUpdateTime(new Date());
+
+        String departmentName = "";
+        String reporter = loginUserInfoVO.getNickName();
+
+        if (Objects.nonNull(adminUser) && adminUser.getIsAdmin().equals(1)){
+            switch (adminUser.getAccountLevel()) {
+                case 1:
+                    departmentName = "攀枝花市";//默认市级
+                    break;
+                case 2:
+                    departmentName = adminUser.getDistricts();
+                    break;
+                case 3:
+                    departmentName = adminUser.getStreet();
+                    break;
+                case 4:
+                    departmentName = adminUser.getCommunity();
+                    break;
+            }
+            auditRecord.setDepartmentName(departmentName);
+            reporter = adminUser.getName();
+        }
+        auditRecord.setReporter(reporter);
+        save(auditRecord);
+    }
+
+    @Override
+    public void audit(ComplaintAuditRecord complaintAuditRecord, Long userId, Integer auditResult, String rejectReason) {
+        complaintAuditRecord.setAuditStatus(auditResult);
+        complaintAuditRecord.setRejectReason(rejectReason);
+        complaintAuditRecord.setAuditorId(userId);
+        complaintAuditRecord.setUpdateBy(userId);
+        complaintAuditRecord.setUpdateTime(new Date());
+        updateById(complaintAuditRecord);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java
new file mode 100644
index 0000000..a11c5bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintFlowServiceImpl.java
@@ -0,0 +1,75 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.netflix.servo.monitor.LongGauge;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+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.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * <p>
+ * 诉求流转记录表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2025-02-22
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+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;
+    private final UserService userService;
+
+    @Override
+    public void createFlow(Long complaintId , Long superiorId, Integer reportType, Integer type, Long userId) {
+
+
+        String name = getFlowName(reportType, superiorId);
+
+        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, Long superiorId) {
+        String name;
+        if (reportType == ReportTypeEnum.COMMUNITY.getCode()) {
+            ComAct byId = comActService.getById(superiorId);
+            name = byId.getName();
+        }else if (reportType == ReportTypeEnum.STREET.getCode()) {
+            ComStreet comStreet = comStreetService.getById(superiorId);
+            name = comStreet.getName();
+        }  else if (reportType == ReportTypeEnum.CITY.getCode() || reportType == ReportTypeEnum.DISTRICT.getCode()){
+            BcRegion bcRegion = bcRegionService.getOne(new LambdaQueryWrapper<BcRegion>()
+                    .eq(BcRegion::getRegionCode, superiorId));
+            name = bcRegion.getRegionName();
+        } else {
+            R<LoginUserInfoVO> userR = userService.getUserInfoByUserId(String.valueOf(superiorId));
+            if (R.isOk(userR)) {
+                throw new ServiceException("获取用户信息失败");
+            }
+            name =  userR.getData().getNickName();
+        }
+        return name;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java
new file mode 100644
index 0000000..d1660c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintProgressServiceImpl.java
@@ -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 {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
new file mode 100644
index 0000000..0819eb4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -0,0 +1,529 @@
+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.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+import static cn.hutool.core.util.ObjectUtil.isNull;
+
+/**
+ * <p>
+ * 问题报告表 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2025-02-22
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+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;
+    private final IWorkOrderItemConfigService workOrderItemConfigService;
+
+    @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()));
+        //查询系统配置诉求处理期限,设置截止日期
+        WorkOrderItemConfig config = workOrderItemConfigService.lambdaQuery().orderByDesc(WorkOrderItemConfig::getId).last("LIMIT 1").one();
+        if (Objects.isNull(config)){
+            throw new ServiceException("工单事项未配置,请联系管理员");
+        }
+        complaint.setClosingTime(new Date(System.currentTimeMillis() + config.getDemandProcessingTime() * 24 * 60 * 60 * 1000));
+        // 保存诉求记录
+        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.getStreetId().toString();
+                    break;
+                case 4:
+                    //社区
+                    targetId = systemUser.getCommunityId().toString();
+                    break;
+            }
+            isSuperior = 1;
+        } else {
+        //党员
+            targetId = loginUserInfoVO.getUserId().toString();
+        }
+        //查询对应诉求
+        query.setUserId(loginUserInfoVO.getUserId());//当前登录用户id
+        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.getNickName());
+        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.getNickName());
+        complaint.setCompletionUserPhone(loginUserInfoVO.getPhone());
+        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
+    @Transactional(rollbackFor = Exception.class)
+    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)
+                .ne(SystemUser::getStatus, 3)
+                .last("LIMIT 1"));
+
+        Long superiorId;
+        int reportType;
+        if (adminUser == null) {
+            superiorId = loginUserInfoVO.getCommunityId();
+            if (Objects.isNull(superiorId)){
+                throw new ServiceException("上报失败,请绑定社区");
+            }
+            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.getStreetId());
+            } 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,adminUser);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    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)
+                .ne(SystemUser::getStatus, 3)
+                .last("LIMIT 1"));
+
+        if (adminUser == null) {
+            throw new ServiceException("无权下派");
+        }
+
+
+        long superiorId;
+        int accountLevel = adminUser.getAccountLevel(); // 改为基本类型
+        if (accountLevel == 4) {
+            throw new ServiceException("社区账号,无法下派!");
+        }
+
+        // 使用基本类型比较并补充默认分支
+        if (accountLevel == ReportTypeEnum.STREET.getCode()) {
+            superiorId = adminUser.getCommunityId().longValue();
+        } else if (accountLevel == ReportTypeEnum.DISTRICT.getCode()) {
+            superiorId = Long.parseLong(adminUser.getStreetId());
+        } else if (accountLevel == ReportTypeEnum.CITY.getCode()) {
+            superiorId = Long.parseLong(adminUser.getDistrictsCode());
+        } else {
+            // 处理未预期的账号等级
+            throw new ServiceException("未知的账号等级");
+        }
+
+        Long superiorOrgId;
+        Complaint complaint = getById(dto.getComplaintId());
+        superiorOrgId = complaint.getSuperiorId();
+        complaint.setReportType(accountLevel + 1);
+        complaint.setSuperiorId(superiorId);
+        updateById(complaint);
+
+        // 添加流转记录
+        complaintFlowService.createFlow(dto.getComplaintId(), superiorOrgId, accountLevel, 1, loginUserInfoVO.getUserId());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void reportAudit(ComplaintReporAuditDTO complaintReporAuditDTO, LoginUserInfoVO loginUserInfoVO) {
+        Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone());
+        if (!systemUserByPhone.isPresent()) {
+            throw new ServiceException("无权审核");
+        }
+        //查询上报审核记录
+        ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintReporAuditDTO.getId())
+                .eq(ComplaintAuditRecord::getAuditType, 2)
+                .eq(ComplaintAuditRecord::getLatestFlag, true)
+                .last("LIMIT 1").one();
+        if (Objects.isNull(complaintAuditRecord)) {
+            throw new ServiceException("上报申请记录不存在");
+        }
+        //查询待审核诉求
+        complaintAuditRecordService.audit(complaintAuditRecord,  loginUserInfoVO.getUserId(),
+                complaintReporAuditDTO.getAuditResult(), complaintReporAuditDTO.getRejectReason());
+
+        // 添加流转记录
+        Complaint complaint = getById(complaintAuditRecord.getComplaintId());
+
+        Long superiorId = null;
+        if (Objects.nonNull(complaint)) {
+            superiorId = complaint.getCreateBy();
+            if (Objects.nonNull(complaint.getSuperiorId())) {
+                superiorId = complaint.getSuperiorId();
+            }
+            complaintFlowService.createFlow(complaintAuditRecord.getComplaintId(), superiorId,complaint.getReportType(),0, loginUserInfoVO.getUserId());
+        }
+        //审核通过后,将诉求转移给上级
+        if (complaintAuditRecord.getAuditType().equals(2) && complaintAuditRecord.getAuditStatus().equals(1)){
+            SystemUser systemUser = systemUserByPhone.get();
+                switch (systemUser.getAccountLevel()) {
+                    case 1:
+                        superiorId = 510400L;//默认市级
+                        break;
+                    case 2:
+                        superiorId = Long.parseLong(systemUser.getDistrictsCode());
+                        break;
+                    case 3:
+                        superiorId = Long.parseLong(systemUser.getStreetId());
+                        break;
+                    case 4:
+                        superiorId = systemUser.getCommunityId();
+                        break;
+                }
+            }
+            complaint.setSuperiorId(superiorId);
+            updateById(complaint );
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) {
+        // 标记最新
+        complaintAuditRecordService.update(new LambdaUpdateWrapper<ComplaintAuditRecord>()
+                .eq(ComplaintAuditRecord::getComplaintId, dto.getComplaintId())
+                .set(ComplaintAuditRecord::getLatestFlag,false));
+        SystemUser systemUser = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone()).orElse(null);
+        Long superiorId;
+        int reportType;
+        if (systemUser == null) {
+            superiorId = loginUserInfoVO.getCommunityId();
+            if (Objects.isNull(superiorId)){
+                throw new ServiceException("上报失败,请绑定社区");
+            }
+            reportType = ReportTypeEnum.COMMUNITY.getCode();
+        } else {
+            int accountLevel = systemUser.getAccountLevel(); // 改为基本类型
+            if (accountLevel == 1) {
+                throw new ServiceException("市级账号,无法上报!");
+            }
+            reportType = accountLevel + 1;
+
+            // 使用基本类型比较并补充默认分支
+            if (accountLevel == ReportTypeEnum.COMMUNITY.getCode()) {
+                superiorId = Long.parseLong(systemUser.getStreetId());
+            } else if (accountLevel == ReportTypeEnum.STREET.getCode()) {
+                superiorId = Long.parseLong(systemUser.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.createComplaintAuditRecord(dto.getComplaintId(), 1, dto.getComment(), loginUserInfoVO, systemUser);
+    }
+
+
+    @Override
+    public void delayAudit(ComplaintDelayAuditDTO complaintDelayAuditDTO, LoginUserInfoVO loginUserInfoVO) {
+        //查询待审核诉求
+        ComplaintAuditRecord complaintAuditRecord = complaintAuditRecordService.lambdaQuery().eq(ComplaintAuditRecord::getComplaintId, complaintDelayAuditDTO.getComplaintId())
+                .eq(ComplaintAuditRecord::getAuditType, 1)
+                .eq(ComplaintAuditRecord::getAuditStatus, 0)
+                .eq(ComplaintAuditRecord::getLatestFlag, true)
+                .last("LIMIT 1").one();
+        if (Objects.isNull(complaintAuditRecord)) {
+            throw new ServiceException("诉求延期申请不存在");
+        }
+        complaintAuditRecordService.audit(complaintAuditRecord, 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)
+                .ne(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).eq(BcRegion::getParentId, 510400));//获取攀枝花市下的区县
+            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.getStreetId().toString();
+                    break;
+                case 4:
+                    //社区
+                    targetId = systemUser.getCommunityId().toString();
+                    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();
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java
new file mode 100644
index 0000000..5861e68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/DepartmentServiceImpl.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.sangeshenbian.dao.DepartmentMapper;
+import com.panzhihua.sangeshenbian.model.entity.Department;
+import com.panzhihua.sangeshenbian.service.IDepartmentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:43
+ */
+@Service
+public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements IDepartmentService {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
new file mode 100644
index 0000000..0317f8e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/MessageNotificationServiceImpl.java
@@ -0,0 +1,80 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.service.sangeshenbian.SystemUserService;
+import com.panzhihua.sangeshenbian.dao.MessageNotificationMapper;
+import com.panzhihua.sangeshenbian.model.entity.MessageNotification;
+import com.panzhihua.sangeshenbian.model.entity.SystemUser;
+import com.panzhihua.sangeshenbian.model.query.BasePage;
+import com.panzhihua.sangeshenbian.model.vo.MessageNotificationVO;
+import com.panzhihua.sangeshenbian.service.IMessageNotificationService;
+import com.panzhihua.sangeshenbian.service.ISystemUserService;
+import com.panzhihua.sangeshenbian.warpper.MessageNotificationList;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 3:04
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class MessageNotificationServiceImpl extends ServiceImpl<MessageNotificationMapper, MessageNotification> implements IMessageNotificationService {
+	private final ISystemUserService systemUserService;
+	
+	@Override
+	public IPage<MessageNotification> list(MessageNotificationList query) {
+		Page page = new Page<>();
+		page.setCurrent(query.getPageNum());
+		page.setSize(query.getPageSize());
+		IPage<MessageNotification> list = this.baseMapper.list(page, query);
+		return list;
+	}
+
+	@Override
+	public Page<MessageNotificationVO> getMessageList(BasePage basePage, Long userId) {
+		//TODO 待完善
+		Page<MessageNotification> page = lambdaQuery().page(new Page<>(basePage.getPageNum(),basePage.getPageSize()));
+		return (Page<MessageNotificationVO>) page.convert(item-> BeanUtil.copyProperties(item, MessageNotificationVO.class));
+	}
+
+	/**
+	 * 标记已读
+	 * @param loginUserInfoVO
+	 */
+	@Override
+	public void read(LoginUserInfoVO loginUserInfoVO) {
+		String undertakerUserId = "";
+		Optional<SystemUser> systemUserByPhone = systemUserService.getSystemUserByPhone(loginUserInfoVO.getPhone());
+		if (systemUserByPhone.isPresent()) {
+			SystemUser systemUser = systemUserByPhone.get();
+			if (systemUser.getIsAdmin().equals(1)){
+				switch (systemUser.getAccountLevel()) {
+					case 1:
+						undertakerUserId = "510400";//默认市级
+						break;
+					case 2:
+						undertakerUserId = systemUser.getDistrictsCode();
+						break;
+					case 3:
+						undertakerUserId = systemUser.getStreetId();
+						break;
+					case 4:
+						undertakerUserId = systemUser.getCommunityId().toString();
+						break;
+				}
+			}
+		}else {
+			undertakerUserId = loginUserInfoVO.getUserId().toString();
+		}
+		this.lambdaUpdate().eq(MessageNotification::getUndertakerUserId, undertakerUserId).set(MessageNotification::getReadStatus, 1).update();
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java
new file mode 100644
index 0000000..0756ad9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ProblemTypeServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+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.sangeshenbian.dao.ProblemTypeMapper;
+import com.panzhihua.sangeshenbian.model.entity.ProblemType;
+import com.panzhihua.sangeshenbian.service.IProblemTypeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:27
+ */
+@Service
+public class ProblemTypeServiceImpl extends ServiceImpl<ProblemTypeMapper, ProblemType> implements IProblemTypeService {
+	
+	@Override
+	public IPage<ProblemType> list(String name, Integer pageNum, Integer pageSize) {
+		Page page = new Page<>();
+		page.setCurrent(pageNum);
+		page.setSize(pageSize);
+		IPage<ProblemType> list = this.baseMapper.list(page, name);
+		return list;
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java
new file mode 100644
index 0000000..631b79a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemMenuServiceImpl.java
@@ -0,0 +1,40 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.sangeshenbian.dao.SystemMenuMapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemMenu;
+import com.panzhihua.sangeshenbian.service.ISystemMenuService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 1:03
+ */
+@Service
+public class SystemMenuServiceImpl extends ServiceImpl<SystemMenuMapper, SystemMenu> implements ISystemMenuService {
+	
+	@Override
+	public List<SystemMenu> getSystemMenuList() {
+		List<SystemMenu> list = this.list();
+		List<SystemMenu> collect = list.stream().filter(s->s.getParentId() == 0).collect(Collectors.toList());
+		for (SystemMenu systemMenu : collect) {
+			build(systemMenu, list);
+		}
+		return list;
+	}
+	
+	
+	public void build(SystemMenu systemMenu, List<SystemMenu> list) {
+		List<SystemMenu> collect = list.stream().filter(s->s.getParentId().equals(systemMenu.getParentId())).collect(Collectors.toList());
+		if(collect.size() == 0){
+			return;
+		}
+		systemMenu.setChildren(collect);
+		for (SystemMenu menu : collect) {
+			build(menu, list);
+		}
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemPostServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemPostServiceImpl.java
new file mode 100644
index 0000000..78ae394
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemPostServiceImpl.java
@@ -0,0 +1,25 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+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.sangeshenbian.dao.SystemPostMapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemPost;
+import com.panzhihua.sangeshenbian.service.ISystemPostService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 19:43
+ */
+@Service
+public class SystemPostServiceImpl extends ServiceImpl<SystemPostMapper, SystemPost> implements ISystemPostService {
+	
+	@Override
+	public IPage<SystemPost> list(String name, Integer pageNum, Integer pageSize) {
+		Page page = new Page<>();
+		page.setCurrent(pageNum);
+		page.setSize(pageSize);
+		return this.baseMapper.list(page, name);
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java
new file mode 100644
index 0000000..d268139
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleMenuServiceImpl.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.sangeshenbian.dao.SystemRoleMenuMapper;
+import com.panzhihua.sangeshenbian.model.entity.SystemRoleMenu;
+import com.panzhihua.sangeshenbian.service.ISystemRoleMenuService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:26
+ */
+@Service
+public class SystemRoleMenuServiceImpl extends ServiceImpl<SystemRoleMenuMapper, SystemRoleMenu> implements ISystemRoleMenuService {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java
new file mode 100644
index 0000000..df12721
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemRoleServiceImpl.java
@@ -0,0 +1,33 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+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.sangeshenbian.dao.SystemRoleMapper;
+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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:41
+ */
+@Service
+public class SystemRoleServiceImpl extends ServiceImpl<SystemRoleMapper, SystemRole> implements ISystemRoleService {
+	
+	
+	/**
+	 * 获取列表数据
+	 * @param query
+	 * @return
+	 */
+	@Override
+	public IPage<SystemRoleListVo> list(SystemRoleList query) {
+		Page page = new Page<>();
+		page.setCurrent(query.getPageNum());
+		page.setSize(query.getPageSize());
+		return this.baseMapper.list(page, query.getName());
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
new file mode 100644
index 0000000..ddfbdfa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -0,0 +1,51 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+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.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.Optional;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:30
+ */
+@Service
+public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser> implements ISystemUserService {
+	
+	/**
+	 * 获取列表数据
+	 * @param query
+	 * @return
+	 */
+	@Override
+	public IPage<SystemUserListVo> list(Integer accountLevel, SystemUserList query) {
+		Page page = new Page<>();
+		page.setCurrent(query.getPageNum());
+		page.setSize(query.getPageSize());
+		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();
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java
new file mode 100644
index 0000000..60f82ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/WorkOrderItemConfigServiceImpl.java
@@ -0,0 +1,15 @@
+package com.panzhihua.sangeshenbian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.sangeshenbian.dao.WorkOrderItemConfigMapper;
+import com.panzhihua.sangeshenbian.model.entity.WorkOrderItemConfig;
+import com.panzhihua.sangeshenbian.service.IWorkOrderItemConfigService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 2:08
+ */
+@Service
+public class WorkOrderItemConfigServiceImpl extends ServiceImpl<WorkOrderItemConfigMapper, WorkOrderItemConfig> implements IWorkOrderItemConfigService {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/AddSystemRole.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/AddSystemRole.java
new file mode 100644
index 0000000..5dcde6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/AddSystemRole.java
@@ -0,0 +1,20 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:11
+ */
+@Data
+@ApiModel
+public class AddSystemRole {
+	@ApiModelProperty(value = "角色名称", required = true)
+	private String name;
+	@ApiModelProperty(value = "权限id集合", required = true)
+	private List<Integer> systemMenuIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/EditSystemRole.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/EditSystemRole.java
new file mode 100644
index 0000000..38ea07a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/EditSystemRole.java
@@ -0,0 +1,22 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:11
+ */
+@Data
+@ApiModel
+public class EditSystemRole {
+	@ApiModelProperty(value = "角色ID", required = true)
+	private Integer id;
+	@ApiModelProperty(value = "角色名称", required = true)
+	private String name;
+	@ApiModelProperty(value = "权限id集合", required = true)
+	private List<Integer> systemMenuIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/LoginVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/LoginVo.java
new file mode 100644
index 0000000..329559a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/LoginVo.java
@@ -0,0 +1,18 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 22:33
+ */
+@Data
+@ApiModel
+public class LoginVo {
+	@ApiModelProperty(value = "登录账号", required = true)
+	private String phone;
+	@ApiModelProperty(value = "登录密码", required = true)
+	private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/MessageNotificationList.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/MessageNotificationList.java
new file mode 100644
index 0000000..1f8f97d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/MessageNotificationList.java
@@ -0,0 +1,32 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/23 3:10
+ */
+@ApiModel
+@Data
+public class MessageNotificationList {
+	@ApiModelProperty("标题")
+	private String title;
+	@ApiModelProperty("承办人")
+	private String undertaker;
+	@ApiModelProperty("电话")
+	private String phone;
+	@ApiModelProperty("所属单位id")
+	private Integer departmentId;
+	@ApiModelProperty("职位id")
+	private Integer positionId;
+	@ApiModelProperty("页码")
+	private Integer pageNum;
+	@ApiModelProperty("每页数")
+	private Integer pageSize;
+	
+	private Integer undertakerType;
+	
+	private String userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleInfo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleInfo.java
new file mode 100644
index 0000000..f664fac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleInfo.java
@@ -0,0 +1,22 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 17:36
+ */
+@Data
+@ApiModel
+public class SystemRoleInfo {
+	@ApiModelProperty("角色ID")
+	private Integer id;
+	@ApiModelProperty("角色名称")
+	private String name;
+	@ApiModelProperty("菜单id集合")
+	private List<Integer> systemMenuIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleList.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleList.java
new file mode 100644
index 0000000..7ac9d0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleList.java
@@ -0,0 +1,20 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:58
+ */
+@Data
+@ApiModel
+public class SystemRoleList {
+	@ApiModelProperty(value = "角色名称")
+	private String name;
+	@ApiModelProperty(value = "页码", required = true)
+	private Integer pageNum;
+	@ApiModelProperty(value = "每页数量", required = true)
+	private Integer pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleListVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleListVo.java
new file mode 100644
index 0000000..7dc7794
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemRoleListVo.java
@@ -0,0 +1,18 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 16:50
+ */
+@Data
+@ApiModel
+public class SystemRoleListVo {
+	@ApiModelProperty("数据ID")
+	private Integer id;
+	@ApiModelProperty("角色名称")
+	private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserList.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserList.java
new file mode 100644
index 0000000..1fc513b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserList.java
@@ -0,0 +1,28 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/20 11:01
+ */
+@Data
+@ApiModel
+public class SystemUserList {
+	@ApiModelProperty(value = "姓名")
+	private String name;
+	@ApiModelProperty(value = "联系方式")
+	private String phone;
+	@ApiModelProperty(value = "所在单位")
+	private Integer departmentId;
+	@ApiModelProperty(value = "所属角色")
+	private Integer systemRoleId;
+	@ApiModelProperty(value = "账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号)")
+	private Integer accountLevel;
+	@ApiModelProperty(value = "页码", required = true)
+	private Integer pageNum;
+	@ApiModelProperty(value = "每页数量", required = true)
+	private Integer pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserListVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserListVo.java
new file mode 100644
index 0000000..660d5c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/SystemUserListVo.java
@@ -0,0 +1,30 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/20 11:05
+ */
+@Data
+@ApiModel
+public class SystemUserListVo {
+	@ApiModelProperty("数据ID")
+	private Integer id;
+	@ApiModelProperty("姓名")
+	private String name;
+	@ApiModelProperty("联系方式")
+	private String phone;
+	@ApiModelProperty("所属单位")
+	private String departmentName;
+	@ApiModelProperty("所属职位")
+	private String systemPostName;
+	@ApiModelProperty("所属角色")
+	private String systemRoleName;
+	@ApiModelProperty(value = "账号层级(1=市级账号,2=区县账号,3=街道账号,4=社区账号)")
+	private Integer accountLevel;
+	@ApiModelProperty("账号状态(1=使用中,2=已冻结)")
+	private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/TokenVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/TokenVo.java
new file mode 100644
index 0000000..8f7efcd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/warpper/TokenVo.java
@@ -0,0 +1,33 @@
+package com.panzhihua.sangeshenbian.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/18 23:32
+ */
+@ApiModel
+@Data
+public class TokenVo {
+	@ApiModelProperty("接口请求令牌")
+	private String token;
+	@ApiModelProperty("刷新token有效期长")
+	private String refreshToken;
+	@ApiModelProperty("communityId")
+	private Long communityId;
+	@ApiModelProperty("openId")
+	private String openId;
+	@ApiModelProperty("社区经度")
+	private String lng;
+	@ApiModelProperty("社区维度")
+	private String lat;
+	@ApiModelProperty("权限集合")
+	private Set<String> menu;
+	@ApiModelProperty("用户名")
+	private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..0500831
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: huacheng-sangeshenbian
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-sangeshenbian
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..32d6659
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/logback-spring.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:\log"/>
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengservice_sangeshenbian.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.sangeshenbian" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+
+    <!--慢接口和方法日志记录到不同的文件-->
+    <appender name="slowClassAndMethodAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_HOME}/slow_service_community.log</File>
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/slow_service_community.%d.%i.log</fileNamePattern>
+            <maxHistory>10</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread] [%c{0}:%L] : %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--这是我们定义的慢接口和方法日志传入的名称-->
+    <logger name="slowClassAndMethodLog" additivity="false" level="INFO">
+        <appender-ref ref="slowClassAndMethodAppender"/>
+    </logger>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml
new file mode 100644
index 0000000..d7ce1de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BannerMapper.xml
@@ -0,0 +1,14 @@
+<?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.BannerMapper">
+
+	<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},'%')
+		</if>
+		order by create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml
new file mode 100644
index 0000000..6cabf80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/BcRegionMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml
new file mode 100644
index 0000000..6dc1721
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComActMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml
new file mode 100644
index 0000000..a38db4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComStreetMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml
new file mode 100644
index 0000000..7c632da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintAuditRecordMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml
new file mode 100644
index 0000000..7cb02af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintFlowMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
new file mode 100644
index 0000000..2d7d32d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -0,0 +1,156 @@
+<?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 = 0 THEN 7
+                   WHEN scar.audit_type = 2 AND scar.audit_status = 0 THEN 5
+                   WHEN 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.over_time_days,
+               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.reporter,
+               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 and isSuperior == 1">
+                 AND (scar.auditor_id IS NULL OR scar.auditor_id != #{query.userId})
+            </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 = 1 AND scar.audit_status = 0) OR (scar.audit_type = 2 AND scar.audit_status = 0)
+            </if>
+            <if test="query.type!=null and query.type == 1">
+                AND sc.status IN(0,1,2)
+            </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 = 0 THEN 7
+        WHEN scar.audit_type = 2 AND scar.audit_status = 0 THEN 5
+        WHEN 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.over_time_days,
+        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.reporter,
+        scar.department_name,
+        scar.department_id,
+        scar.comment,
+        scar.create_time AS auditTime,
+        scar.reject_reason,
+        su.nick_name,
+        su.phone,
+        su2.nick_name AS auditorName,
+        su2.phone AS auditorPhone
+        FROM sgsb_complaint sc
+            LEFT JOIN sys_user su ON su.user_id = sc.create_by
+                 LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id AND scar.latest_flag = 1
+        LEFT JOIN sys_user su2 ON su2.user_id = scar.auditor_id AND scar.audit_status != 0
+        <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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml
new file mode 100644
index 0000000..7e6380a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintProgressMapper.xml
@@ -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>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/DepartmentMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/DepartmentMapper.xml
new file mode 100644
index 0000000..9c394c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/DepartmentMapper.xml
@@ -0,0 +1,7 @@
+<?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.DepartmentMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml
new file mode 100644
index 0000000..81e9b33
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/MessageNotificationMapper.xml
@@ -0,0 +1,42 @@
+<?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.MessageNotificationMapper">
+
+	
+	<select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.MessageNotification">
+		select
+		    a.id,
+		    a.title,
+		    b.name as undertakerUser,
+		    a.phone,
+		    d.name as department,
+		    e.name as `position`,
+		    DATE_FORMAT(a.response_time, '%Y-%m-%d')as responseTime,
+		    if(a.prompt_type = 1, '临期提醒', '超时提醒') as promptType,
+		    if(a.read_status = 0, '未读', '已读') as readStatus
+		from sgsb_message_notification a
+		left join sys_user b on (a.undertaker_user_id = b.id)
+		left join sgsb_system_user c on (a.phone = c.phone)
+		left join sgsb_department d on (c.department_id = d.id)
+		left join sgsb_position e on (c.position_id = e.id)
+		where a.undertaker_type = #{query.undertakerType} and a.undertaker_user_id = #{query.userId}
+		<if test="query.title != null and query.title != ''">
+			and a.title like concat('%', #{query.title}, '%')
+		</if>
+		<if test="query.undertakerUser != null and query.undertakerUser != ''">
+			and b.name like concat('%', #{query.undertakerUser}, '%')
+		</if>
+		<if test="query.phone != null and query.phone != ''">
+			and a.phone like concat('%', #{query.phone}, '%')
+		</if>
+		<if test="query.departmentId != null">
+			and c.department_id = #{query.department}
+		</if>
+		<if test="query.positionId != null">
+			and c.position_id = #{query.position}
+		</if>
+		order by a.read_status asc, a.create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml
new file mode 100644
index 0000000..fe5fb3e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ProblemTypeMapper.xml
@@ -0,0 +1,14 @@
+<?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.ProblemTypeMapper">
+	
+	<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}, '%')
+		</if>
+		order by create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemMenuMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemMenuMapper.xml
new file mode 100644
index 0000000..dcd49bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemMenuMapper.xml
@@ -0,0 +1,7 @@
+<?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.SystemMenuMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemPostMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemPostMapper.xml
new file mode 100644
index 0000000..7ce5395
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemPostMapper.xml
@@ -0,0 +1,20 @@
+<?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.SystemPostMapper">
+
+	<select id="list" resultType="com.panzhihua.sangeshenbian.model.entity.SystemPost">
+		select
+		id,
+		name,
+		del,
+		create_time
+		from sgsb_system_post
+		where del = 0
+		<if test="name != null and name != ''">
+			and name like concat('%',#{name},'%')
+		</if>
+		order by create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMapper.xml
new file mode 100644
index 0000000..0f2f1b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMapper.xml
@@ -0,0 +1,15 @@
+<?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.SystemRoleMapper">
+
+	
+	<select id="list" resultType="com.panzhihua.sangeshenbian.warpper.SystemRoleListVo">
+		select id, name from sgsb_system_role where del = 0
+		<if test="null != name and '' != name">
+			and name like CONCAT('%', #{name}, '%')
+		</if>
+		order by create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMenuMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMenuMapper.xml
new file mode 100644
index 0000000..122c5ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemRoleMenuMapper.xml
@@ -0,0 +1,7 @@
+<?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.SystemRoleMenuMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemUserMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemUserMapper.xml
new file mode 100644
index 0000000..7f015d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemUserMapper.xml
@@ -0,0 +1,49 @@
+<?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.SystemUserMapper">
+
+	
+	<select id="list" resultType="com.panzhihua.sangeshenbian.warpper.SystemUserListVo">
+		select
+			a.id,
+			a.name,
+			a.phone,
+			IF(a.four_department_id is not null, e.`name`, IF(a.three_department_id is not null, d.`name`, IF(a.two_department_id is not null, c.`name`, b.`name`))) as departmentName,
+			f.`name` as systemPostName,
+			g.`name` as systemRoleName,
+			a.account_level as accountLevel,
+			a.`status`
+		from sgsb_system_user a
+		left join sgsb_department b on (a.one_department_id = b.id)
+		left join sgsb_department c on (a.two_department_id = c.id)
+		left join sgsb_department d on (a.three_department_id = d.id)
+		left join sgsb_department e on (a.four_department_id = e.id)
+		left join sgsb_system_post f on (a.system_post_id = f.id)
+		left join sgsb_system_role g on (a.system_role_id = g.id)
+		where a.`status` != 3
+		<if test="1 != accountLevel or 5 != accountLevel">
+			and a.account_level &lt;= #{accountLevel}
+		</if>
+		<if test="5 == accountLevel">
+			and a.id = 0
+		</if>
+		<if test="null != query.name and '' != query.name">
+			and a.name like CONCAT('%', #{query.name}, '%')
+		</if>
+		<if test="null != query.phone and '' != query.phone">
+			and a.phone like CONCAT('%', #{query.phone}, '%')
+		</if>
+		<if test="null != query.departmentId">
+			and (a.one_department_id = #{query.departmentId} or a.two_department_id = #{query.departmentId} or a.three_department_id = #{query.departmentId} or a.four_department_id = #{query.departmentId})
+		</if>
+		<if test="null != query.systemRoleId">
+			and a.system_role_id = #{query.systemRoleId}
+		</if>
+		<if test="null != query.accountLevel">
+			and a.account_level = #{query.accountLevel}
+		</if>
+		order by a.create_time desc
+	</select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/WorkOrderItemConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/WorkOrderItemConfigMapper.xml
new file mode 100644
index 0000000..3540183
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/WorkOrderItemConfigMapper.xml
@@ -0,0 +1,7 @@
+<?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.WorkOrderItemConfigMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/test/java/com/panzhihua/ServiceSangeshenbianApplicationTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/test/java/com/panzhihua/ServiceSangeshenbianApplicationTest.java
new file mode 100644
index 0000000..0d2fbfd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/test/java/com/panzhihua/ServiceSangeshenbianApplicationTest.java
@@ -0,0 +1,38 @@
+package com.panzhihua;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class ServiceSangeshenbianApplicationTest
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public ServiceSangeshenbianApplicationTest(String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( ServiceSangeshenbianApplicationTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
index a0197ba..2e421c5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -9,6 +9,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo;
 import com.panzhihua.common.model.vos.user.SysAppConfigVO;
 import com.panzhihua.common.utlis.*;
 import org.springframework.context.ApplicationContext;
@@ -187,7 +188,69 @@
                         }
                         valueOperations.set(roleAppletKey, JSONArray.toJSONString(authorities), 24, TimeUnit.HOURS);
                     }
-                } else {
+                    // 登录用户的所有信息
+                    String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                    Boolean hasKeyLoginUserInfo = stringRedisTemplate.hasKey(userKey);
+                    if (hasKeyLoginUserInfo) {
+                        String userInfo = valueOperations.get(userKey);
+                        byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                        String hexStr = AES.parseByte2HexStr(encrypt);
+                        safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                    } else {
+                        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId);
+                        if (!R.isOk(r)) {
+                            ResultUtil.responseJson(response, R.fail(HttpStatus.ERROR, "登录用户信息查询失败"));
+                            return;
+                        }
+                        LoginUserInfoVO data = r.getData();
+                        String userInfo = JSONObject.toJSONString(data);
+                        valueOperations.set(userKey, userInfo, 24, TimeUnit.HOURS);
+                        byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                        String hexStr = AES.parseByte2HexStr(encrypt);
+                        safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                    }
+                } else if(21 == type){
+                    //三个身边
+                    String key = SecurityConstants.ROLE_USER + "sangeshenbian:" + userId;
+                    Boolean aBoolean = stringRedisTemplate.hasKey(key);
+                    R<SystemUserVo> r = systemUserService.getUserById(userId);
+                    if (aBoolean) {
+                        String roles = valueOperations.get(key);
+                        authorities = JSONArray.parseArray(roles, SimpleGrantedAuthority.class);
+                    } else {
+                        SystemUserVo data = r.getData();
+                        if (!ObjectUtils.isEmpty(data)) {
+                            authorities.add(new SimpleGrantedAuthority(data.getSystemRoleId().toString()));
+                            valueOperations.set(key, JSONArray.toJSONString(authorities), 24, TimeUnit.HOURS);
+                        }
+                    }
+
+                    UsernamePasswordAuthenticationToken authentication =
+                            new UsernamePasswordAuthenticationToken(userId, userId, authorities);// 主要使用权限 账户 密码 不重要
+                    SecurityContextHolder.getContext().setAuthentication(authentication);
+                    safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_LOGOUT, tokenHeader);
+                    // 登录用户的所有信息
+                    String userKey = UserConstants.LOGIN_USER_INFO + "sangeshenbian:" + userId;
+                    Boolean hasKeyLoginUserInfo = stringRedisTemplate.hasKey(userKey);
+                    if (hasKeyLoginUserInfo) {
+                        String userInfo = valueOperations.get(userKey);
+                        byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                        String hexStr = AES.parseByte2HexStr(encrypt);
+                        safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                    } else {
+                        if (!R.isOk(r)) {
+                            ResultUtil.responseJson(response, R.fail(HttpStatus.ERROR, "登录用户信息查询失败"));
+                            return;
+                        }
+                        SystemUserVo data = r.getData();
+                        String userInfo = JSONObject.toJSONString(data);
+                        valueOperations.set(userKey, userInfo, 24, TimeUnit.HOURS);
+                        byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                        String hexStr = AES.parseByte2HexStr(encrypt);
+                        safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                    }
+
+                }else {
                     String key = SecurityConstants.ROLE_USER + userId;
                     Boolean aBoolean = stringRedisTemplate.hasKey(key);
                     if (aBoolean) {

--
Gitblit v1.7.1