# HC项目管理系统 - 总体设计图 ## 一、系统概览 HC项目管理系统(MicroCommunity)是一套面向物业企业的SaaS平台,覆盖物业管理全场景: **房产 → 业主 → 缴费 → 报修 → 巡检 → 停车 → 门禁 → 道闸 → 监控 → 工作流 → 问卷 → 公告** --- ## 二、系统模块全景图 ``` ┌───────────────────────────────────────────────────────────────────────────────────────┐ │ HC项目管理系统 │ │ MicroCommunity v1.0 │ ├───────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────┐ ┌─────────────────────────────────┐ │ │ │ 前端应用层 │ │ 网关接入层 │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ ┌───────────────────────────┐ │ │ │ │ │ PC管理后台│ │ 业主手机端│ │ │ │ service-api (网关) │ │ │ │ │ │ Vue/React│ │ 微信小程序│ │ │ │ • 统一入口 • 认证鉴权 │ │ │ │ │ └──────────┘ └──────────┘ │ │ │ • 路由分发 • API文档 │ │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ • WebSocket • 文件上传 │ │ │ │ │ │ 物业手机端│ │ 第三方对接│ │ │ └───────────────────────────┘ │ │ │ │ │ App │ │ API/Web │ │ │ │ │ │ │ └──────────┘ └──────────┘ │ │ 服务注册: service-eureka │ │ │ └─────────────────────────────────┘ └─────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ 核心业务服务层 (12个微服务) │ │ │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ │ │ │ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ │ │ service-user │ │service- │ │ service-fee │ │service-order │ │ │ │ │ │ 用户服务 │ │community │ │ 费用服务 │ │ 订单服务 │ │ │ │ │ │ │ │ 社区服务 │ │ │ │ │ │ │ │ │ │ • 登录认证 │ │ • 项目管理 │ │ • 费用配置 │ │ • 订单受理 │ │ │ │ │ │ • 业主管理 │ │ • 楼栋/单元 │ │ • 收费管理 │ │ • 事务协调 │ │ │ │ │ │ • 组织架构 │ │ • 房间管理 │ │ • 抄表管理 │ │ • 数据总线 │ │ │ │ │ │ • 权限角色 │ │ • 停车位 │ │ • 收据管理 │ │ • 异步处理 │ │ │ │ │ │ • 菜单管理 │ │ • 访客管理 │ │ • 月租车 │ │ • 事件监听 │ │ │ │ │ │ • 员工管理 │ │ • 巡检管理 │ │ • 退费管理 │ │ │ │ │ │ │ │ • 车辆管理 │ │ • 报修管理 │ │ • 临时停车费 │ │ 所有写操作 │ │ │ │ │ │ │ │ • 活动管理 │ │ │ │ 的事务协调 │ │ │ │ │ │ 26个命令模块 │ │ 10+功能模块 │ │ 23个命令模块 │ │ │ │ │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ │ │ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ │ │ service-acct │ │ service-store │ │service-common │ │ service-oa │ │ │ │ │ │ 账户服务 │ │ 商户服务 │ │ 通用服务 │ │ OA服务 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ • 账户管理 │ │ • 店铺管理 │ │ • 广告管理 │ │ • 工作池管理 │ │ │ │ │ │ • 支付处理 │ │ • 资源库存 │ │ • 门禁密钥 │ │ • 任务分配 │ │ │ │ │ │ • 积分系统 │ │ • 采购管理 │ │ • 充电设备 │ │ • 工作类型 │ │ │ │ │ │ • 优惠券 │ │ • 排班管理 │ │ • 工作流引擎 │ │ • 周期任务 │ │ │ │ │ │ • 发票管理 │ │ • 预约管理 │ │ • 文件管理 │ │ • 事件处理 │ │ │ │ │ │ • 在线支付 │ │ • 投诉处理 │ │ • 消息推送 │ │ │ │ │ │ │ │ │ │ • 合同管理 │ │ • 打印机管理 │ │ │ │ │ │ │ │ 20个命令模块 │ │ 29个业务领域 │ │ 35个命令接口 │ │ │ │ │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ │ │ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ │ │service-report │ │ service-job │ │ service-dev │ │ service-scm │ │ │ │ │ │ 报表服务 │ │ 任务服务 │ │ 开发服务 │ │ 供应链服务 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ • 费用统计 │ │ • 数据导出 │ │ • 缓存管理 │ │ • 供应商管理 │ │ │ │ │ │ • 欠费统计 │ │ • 物联网设备 │ │ • 系统监控 │ │ • 采购订单 │ │ │ │ │ │ • 自定义报表 │ │ • 商城服务 │ │ • 代码生成 │ │ • 库存管理 │ │ │ │ │ │ • 费用月度统计 │ │ • 打印服务 │ │ │ │ │ │ │ │ │ │ • 社区数据统计 │ │ • 任务调度 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 86个命令接口 │ │ 34个命令接口 │ │ │ │ │ │ │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ 基础框架层 (5个核心模块) │ │ │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ │ │ │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ java110-core │ │ java110-bean │ │ java110- │ │ │ │ │ │ 核心框架模块 │ │ 数据实体模块 │ │ interface │ │ │ │ │ │ │ │ │ │ Feign接口模块 │ │ │ │ │ │ • @Java110Cmd │ │ • DTO (数据传输) │ │ │ │ │ │ │ • @Java110Trans │ │ • PO (持久化) │ │ • 584个Feign │ │ │ │ │ │ actional │ │ • VO (视图) │ │ 客户端接口 │ │ │ │ │ │ • AOP切面 │ │ • ResultVo统一 │ │ • 服务间RPC调用 │ │ │ │ │ │ • Redis缓存 │ │ 响应封装 │ │ • Feign配置 │ │ │ │ │ │ • 事件机制 │ │ │ │ • 错误解码器 │ │ │ │ │ │ • 代理工厂 │ │ 100+ DTO子包 │ │ │ │ │ │ │ │ • 链路追踪 │ │ 86+ PO子包 │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ java110-db │ │ java110-utils │ │ │ │ │ │ 数据库模块 │ │ 工具类库 │ │ │ │ │ │ │ │ │ │ │ │ │ │ • MyBatis映射 │ │ • 通用工具函数 │ │ │ │ │ │ • 数据源配置 │ │ • 日期/字符串处理 │ │ │ │ │ │ │ │ • 加密/解密 │ │ │ │ │ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────┐ │ │ │ │ │ java110-doc │ │ │ │ │ │ API文档模块 │ │ │ │ │ │ │ │ │ │ │ │ • 11个自定义注解 │ │ │ │ │ │ • 文档自动生成 │ │ │ │ │ │ • 可视化UI界面 │ │ │ │ │ └─────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ 基础设施层 │ │ │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ │ │ MySQL 8.0 │ Redis 缓存 │ FTP/OSS文件存储 │ Eureka注册 │ Quartz调度 │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ └───────────────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 三、核心业务流程设计 ### 3.1 用户请求处理流程 ``` 客户端 (PC/手机/第三方) │ │ POST /app/{serviceCode} │ Header: JWT Token │ Body: {reqData: {...}} │ ▼ ┌──────────────────────┐ │ service-api 网关 │ │ AppController │──── JwtFilter: Token校验(白名单免检) │ 解析 serviceCode │──── 白名单: 登录、注册、支付回调、文件下载、微信接口 │ 提取 reqData │ └──────┬───────────────┘ │ ▼ ┌──────────────────────┐ │ 权限验证 │ │ IPrivilegeSMO │──── 校验用户是否有该 serviceCode 的调用权限 └──────┬───────────────┘ │ 通过 ▼ ┌──────────────────────┐ │ 服务路由 │ │ IApiSMO │──── serviceCode 格式: "模块.操作" │ 解析 serviceCode │ 例: "fee.payFee" → service-fee │ Feign 远程调用 │ "user.saveUser" → service-user └──────┬───────────────┘ │ ▼ ┌──────────────────────┐ │ 命令匹配与执行 │ │ @Java110Cmd 注解 │ │ serviceCode 映射 │──── PayFeeCmd.validate() → 参数校验 │ 到具体命令类 │──── PayFeeCmd.doCmd() → 执行业务逻辑 │ │ @Java110Transactional → 事务控制 └──────┬───────────────┘ │ ▼ ┌──────────────────────┐ │ 统一响应返回 │ │ ResultVo │──── {code: 0, msg: "成功", data: {...}} │ JSON格式 │ └──────────────────────┘ ``` ### 3.2 费用收缴流程 ``` ┌─────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 管理员/系统│────►│ 创建费用项 │────►│ 生成费用账单 │────►│ 推送缴费通知 │ │ │ │ feeConfig │ │ fee.saveRoom │ │ 短信/微信推送 │ │ │ │ 设置收费标准 │ │ CreateFee │ │ │ └─────────┘ └──────────────┘ └──────────────┘ └──────┬───────┘ │ ▼ ┌─────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 完成缴费 │◄────│ 记录缴费记录 │◄────│ 支付平台回调 │◄────│ 业主选择支付 │ │ 更新账单 │ │ payFeeDetail │ │ 微信/支付宝 │ │ • 微信支付 │ │ 状态 │ │ │ │ 支付成功通知 │ │ • 预存账户 │ └─────────┘ └──────────────┘ └──────────────┘ │ • 优惠券 │ └──────────────┘ ``` ### 3.3 报修处理流程 ``` 业主提交报修 物业派单 维修处理 业主评价 │ │ │ │ ▼ ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ 填写报修│────►│ 审核派单│────►│ 上门维修│────►│ 评价反馈│ │ 拍照上传│ │ 指派员工│ │ 更新进度│ │ 星级评分│ │ saveRepair│ │ 工单流转│ │ 维修完成│ │ replyApp│ │ │ │ │ │ │ │ raise │ └────────┘ └────────┘ └────────┘ └────────┘ ``` --- ## 四、数据库设计概要 ``` ┌────────────────┐ │ community (项目) │ │ 项目基本信息 │ └───────┬────────┘ │ ┌───────────────────────────┼───────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ floor (楼栋) │ │parking_area │ │ activities │ │ │ │ (停车场区域) │ │ (社区活动) │ └──────┬───────┘ └──────┬────────┘ └──────────────┘ │ │ ▼ ▼ ┌──────────────┐ ┌──────────────┐ │ unit (单元) │ │parking_space │ │ │ │ (停车位) │ └──────┬───────┘ └──────┬────────┘ │ │ ▼ │ ┌──────────────┐ │ │ room (房屋) │ │ └──────┬───────┘ │ │ │ ▼ ▼ ┌──────────────────────────────────────────┐ │ owner (业主) - 关联房屋或车位 │ │ 业主信息、车辆信息、家庭成员 │ └──────────────┬───────────────────────────┘ │ ┌────────────┼────────────┬─────────────┐ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ │fee (费用)│ │repair │ │complaint│ │car (车辆) │ │ 费用记录 │ │ (报修) │ │ (投诉) │ │ 车辆信息 │ └─────────┘ └─────────┘ └─────────┘ └──────────┘ 用户体系: ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ user (用户) │────►│ role (角色) │────►│privilege │ │ 员工/管理员 │ │ 角色-权限关联│ │ (权限) │ └──────┬──────┘ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ ┌─────────────┐ │ org (组织) │ │ store (店铺)│ │ 组织架构 │ │ 物业公司 │ └─────────────┘ └─────────────┘ ``` --- ## 五、命令驱动架构设计 ### 5.1 设计理念 ``` 传统MVC架构: 命令驱动架构: ┌──────────┐ ┌──────────────────────────────┐ │Controller│ │ 统一入口: POST /app/{serviceCode} │ ↓ │ │ {reqData: ...} │ │ Service │ ← 业务膨胀 │ ↓ │ │ ↓ │ │ @Java110Cmd 命令自动发现 │ │ DAO │ │ ↓ │ └──────────┘ │ serviceCode → 命令类映射 │ │ ↓ │ 核心优势: │ validate() → 参数校验 │ ✓ 统一入口 (一个API处理所有请求) │ doCmd() → 业务处理 │ ✓ 自动发现 (注解扫描命令类) │ @Java110Transactional │ ✓ 高内聚 (每个命令类单一职责) │ ↓ │ ✓ 易扩展 (新增业务只需加命令类) │ ResultVo 统一返回 │ └──────────────────────────────┘ ``` ### 5.2 服务编码规范 ``` serviceCode 格式: {模块名}.{操作名} 示例: user.saveUser → 用户模块.保存用户 fee.payFee → 费用模块.缴费 community.saveCommunity → 社区模块.创建项目 payment.unifiedPayment → 支付模块.统一支付 visit.saveVisit → 访客模块.创建访客 repair.listRepairEvent → 报修模块.查询报修事件 所有 serviceCode 通过 @Java110Cmd(serviceCode = "xxx") 注解声明 ``` ### 5.3 命令类标准结构 ```java @Java110Cmd(serviceCode = "fee.payFee") // 服务编码注解 public class PayFeeCmd extends Cmd { // 继承命令基类 @Override public void validate(CmdEvent event, // 参数校验 ICmdDataFlowContext ctx, JSONObject reqJson) { // 校验必填字段、参数格式 Assert.hasKey(reqJson, "feeId", "费用ID不能为空"); Assert.hasKey(reqJson, "communityId", "项目ID不能为空"); } @Override @Java110Transactional // 事务管理 public void doCmd(CmdEvent event, // 业务处理 ICmdDataFlowContext ctx, JSONObject reqJson) { // 执行业务逻辑 // 1. 查询费用信息 // 2. 创建支付订单 // 3. 调用支付接口 // 4. 更新费用状态 } } ``` --- ## 六、外部集成设计 ``` ┌───────────────────────────────────────────────────────────┐ │ HC项目管理系统 │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │微信支付 │ │支付宝 │ │银联支付 │ │短信服务 │ │ │ │支付/小程序│ │支付 │ │支付 │ │通知/营销 │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ │ │ └────────────┴────────────┴────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────┐ │ │ │ 支付适配器工厂 │ │ │ │ PaymentFactory │ │ │ │ • 微信支付适配器 │ │ │ │ • 支付宝适配器 │ │ │ │ • 银联支付适配器 │ │ │ └─────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ 物联网设备集成 (IoT) │ │ │ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ │ │门禁设备│ │道闸设备│ │充电桩 │ │计量表 │ │ │ │ │ │(海康/大华│ │(车牌识别│ │(充电管理│ │(水/电/气│ │ │ │ │ │ 等) │ │ 等) │ │ 等) │ │ 等) │ │ │ │ │ └────────┘ └────────┘ └────────┘ └────────┘ │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ 文件存储服务 │ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ FTP服务器 │ │ 阿里云OSS │ │ │ │ │ │ 本地存储 │ │ 云端存储 │ │ │ │ │ └──────────────┘ └──────────────┘ │ │ │ └──────────────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────┘ ``` --- ## 七、部署架构设计 ``` ┌───────────────────────────────────────────────────────────────────┐ │ 生产环境部署 │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Nginx 反向代理 │ │ │ │ (SSL终端 / 负载均衡 / 静态资源) │ │ │ └────────────┬────────────────────────────────┬───────────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌────────────────────────┐ ┌────────────────────────┐ │ │ │ service-api (网关) │ │ service-api (网关) │ │ │ │ Port: 8008 │ │ Port: 8009 │ │ │ └───────────┬────────────┘ └───────────┬────────────┘ │ │ │ │ │ │ └─────────────┬───────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ service-eureka (服务注册中心) │ │ │ │ 支持集群部署 / 心跳检测 / 服务列表 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌────────────────────┼────────────────────┐ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │ │service- │ │service- │ │service- │ │ │ │user:xxxx │ │fee:xxxx │ │community:xxxx │ │ │ │ (集群2节点)│ │ (集群2节点)│ │ (集群2节点) │ │ │ └──────────┘ └──────────┘ └──────────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │ │ MySQL │ │ Redis │ │ FTP/OSS │ │ │ │ (主从) │ │ (集群) │ │ 文件存储 │ │ │ └──────────┘ └──────────┘ └──────────────┘ │ └───────────────────────────────────────────────────────────────────┘ ``` --- ## 八、系统设计原则与亮点 | 设计原则 | 实现方式 | |--------------|-------------------------------------------------| | **统一入口** | service-api 网关作为所有请求的唯一入口 | | **命令驱动** | @Java110Cmd 注解实现 serviceCode → 命令类的自动映射 | | **高内聚低耦合** | 每个命令类负责单一业务,模块间通过 Feign 接口通信 | | **事务一致性** | @Java110Transactional 注解支持分布式事务管理 | | **数据安全** | DTO/PO/VO 三层对象分离,VO过滤敏感字段(如密码),防止数据泄露 | | **双模式部署** | 支持 Spring Boot 单体(开发/小型)和 Spring Cloud 微服务(生产/大型) | | **接口文档自动化** | 11个自定义注解自动生成 API 文档,可视化界面可在线测试 | | **支付可扩展** | 支付适配器工厂模式,新增支付渠道只需加适配器,无需修改业务代码 | | **物联网集成** | 统一IoT设备协议,支持门禁、道闸、充电桩、计量表等多种设备 | | **灵活配置** | 支持多环境配置 (dev/test/prod),通过 profile 切换 | --- > **文档版本**: v1.0 > **生成日期**: 2026年 > **项目地址**: https://gitee.com/wuxw7/MicroCommunity