comclib 01e1034cc1 feat: 全系统优化 — 并发控制 + 冗余清理 + 数据流修复 + 全面测试
核心修复:
- 状态机加 SELECT FOR UPDATE 行锁,消除并发竞态
- hss_md_staff 加 role 列,登录从数据库读取真实角色
- 申请重复校验排除自身,全流程 20 步闭环通过
- 派单 SQL 修复 + 支付状态机过渡 + 完成服务 plan_item_id 修复

并发控制新增:
- RedisLockService (SET NX PX + Lua 安全解锁)
- RateLimiterService (Redis 滑动窗口 + API 拦截器)
- TransactionIsolationConfig (SERIALIZABLE for 支付回调)
- MqttPublisher (异步队列 + JDK TCP 探测)
- ObjectStorageService (AWS SigV4 预签名, 纯 JDK)

冗余清理:
- 删除 6 个死代码文件 (~620 行)
- hutool-all → JDK MessageDigest, 去 MapStruct, 去 jsr310
- haversine 提取到 GeoUtil, count/round 提取到 JdbcUtil
- 创建 platform layout 组件

前端修复:
- 登录页移除角色选择器, 由后端 JWT 返回
- 移除 ClientOnly 包裹, 页面正常渲染
- SPA fallback Nginx 配置修复

Docker: 运行时镜像 eclipse-temurin:17-jre-jammy (缩小 ~300MB)

文档: 新增系统实现与修复报告.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 11:48:07 +08:00

智慧医养居家上门服务平台

面向政府、医院、养老机构和社区服务中心的居家上门服务闭环管理平台。覆盖申请受理 → 能力评估 → 方案制定 → 智能派单 → 上门执行 → 过程监管 → 验收评价 → 结算归档全流程。


项目结构

hss-home-service/
├── src/                          # Spring Boot 后端
│   ├── main/java/.../common/     # 公共模块(响应体、异常、幂等、审计)
│   ├── main/java/.../config/     # Security/Redis/MyBatis/OpenAPI 配置
│   ├── main/java/.../statemachine/ # 四层状态机(申请/方案/工单/结算)
│   ├── main/java/.../module/     # 16个业务模块
│   │   ├── application/          # 服务申请
│   │   ├── assessment/           # 能力评估
│   │   ├── plan/                 # 方案制定
│   │   ├── schedule/             # 服务计划 + 调度算法
│   │   ├── workorder/            # 工单管理 + Delivery + 管理端
│   │   ├── execution/            # 执行记录 + 证据文件
│   │   ├── acceptance/           # 验收评价 + 投诉反馈
│   │   ├── settlement/           # 结算 + 支付 + 绩效
│   │   ├── supervision/          # 过程监管(抽查/违规/整改)
│   │   ├── compliance/           # 合规管理(授权/脱敏/审计)
│   │   ├── notification/         # 通知 Outbox并发锁+重试+死信)
│   │   ├── masterdata/           # 主数据(机构/人员/资质/服务项目/价格)
│   │   ├── capacity/             # 运力运营(网格/容量/预测)
│   │   ├── lead/                 # 官网线索
│   │   └── audit/                # 审计日志
│   └── resources/db/migration/   # Flyway 迁移V1~V6
│
├── website/                      # Nuxt3 产品官网
│   ├── pages/                    # 11个页面含 /demo /platform/*
│   ├── components/               # 20+ 公共组件
│   ├── composables/              # useLeadForm / useApi / usePlatformAuth
│   ├── data/                     # 站点内容数据
│   └── tests/                    # Playwright E2E 测试
│
├── delivery-miniapp/             # uni-app 服务人员移动端
├── docker-compose.yml            # 一键启动全栈
└── Dockerfile                    # 后端构建镜像

技术栈

技术
后端 Spring Boot 3.3 + Java 17 + MyBatis-Plus + PostgreSQL + Redis
前端官网 Nuxt3 + Vue3 + Tailwind CSS 3.4
移动端 uni-app (Vue)
部署 Docker Compose (Nginx + Spring Boot + PostgreSQL + Redis)
测试 Playwright (E2E) + JUnit (状态机)
API 文档 OpenAPI 3.1 (Swagger)

快速启动

全栈启动Docker

cd hss-home-service
docker compose up -d
服务 地址 说明
官网首页 http://localhost:3080 产品官网
平台演示 http://localhost:3080/demo 4 Tab 平台功能展示
平台登录 http://localhost:3080/platform/login 9角色免密登录
全流程测试 http://localhost:3080/platform/workflow 一键执行14步数据流
后端 API http://localhost:18080 86个 REST 接口
Swagger http://localhost:18080/swagger-ui/index.html OpenAPI 文档

官网开发

cd hss-home-service/website
npm install
npm run dev          # 开发服务器 (hot reload)
npm run generate     # 生产构建 → .output/public/

运行测试

cd hss-home-service/website
npx playwright test        # E2E 测试 (89用例)

核心特性

  • 四层状态机申请→方案→工单→结算49条转换规则前端只传动作不传状态
  • 写幂等Idempotency-Key + hss_idempotency_records 落库
  • 通知 OutboxFOR UPDATE SKIP LOCKED 并发抢占 + 指数退避重试 + 死信
  • 审计追溯@Auditable 切面自动记录 + hss_state_transitions 全状态流转
  • 数据脱敏:姓名/手机/地址按角色分级展示
  • 调度算法:硬约束过滤 + 软约束评分(距离/技能/负载/评价/熟悉度)+ Top5 推荐
  • 支付幂等ON CONFLICT (transaction_id, settlement_id) DO NOTHING
  • E2E 测试Playwright 覆盖全部页面 + API 连通性 + 幂等去重

数据流

hss_service_applications (申请)
  → hss_assessment_tasks (评估) → hss_assessment_reports
  → hss_objections (异议)
  → hss_service_plans (方案) → hss_plan_versions → hss_service_plan_items
  → hss_service_schedules (服务计划)
  → hss_work_orders (工单) → hss_work_order_items
  → hss_checkins (签到) + hss_execution_records (执行) + hss_evidence_files (证据)
  → hss_exceptions (异常) → hss_exception_actions
  → hss_spot_checks (抽查) → hss_violations (违规) → hss_corrections (整改)
  → hss_acceptances (验收) → hss_complaints (投诉)
  → hss_settlements (结算) → hss_settlement_items → hss_payments → hss_refunds
  → hss_ledgers (归档) → hss_archive_files
hss_notification_outbox + hss_notification_receipts (贯穿全程)
hss_state_transitions + hss_audit_logs (贯穿全程)
hss_consent_records + hss_data_access_logs (合规)

数据库

45 张表,以 hss_ 为前缀。Flyway 管理迁移:

版本 内容
V1 30+ 核心业务表
V2 主数据种子(区域/服务项目/价格/机构)
V3 性能索引补充
V4 TIMESTAMPTZ→TIMESTAMP 兼容修复
V5 状态流转唯一约束扩展
V6 官网线索表
V7 服务地址经纬度GPS 签到)
V8 GPS 轨迹表
V9 认证字段(密码哈希 + 登录时间)
V10 外键约束补充
V11 消息表 + 系统配置表 + 离线同步日志
V12 剩余外键 + 性能索引phone/settlement_id 等)

项目状态

已完成

  • 后端 93 个 REST API + 四层状态机49 条规则)
  • 数据库 49 张表 + 12 个 Flyway 迁移
  • 官网 11 个页面Nuxt3 + Tailwind CSS
  • 平台管理:注册/登录/申请管理/工单管理/全流程测试
  • delivery-miniapp 12 个页面uni-app含 GPS 签到/执行/异常/离线补传)
  • 微信支付 SDKJSAPI 下单 + 回调验签 + 退款)
  • 调度算法(硬约束过滤 + Haversine 距离 + 资质匹配 + Top5 推荐)
  • JWT 认证 + 角色权限 + 数据脱敏
  • Playwright E2E 测试89 用例)+ CI/CD 管道

需外部服务接入

服务 用途 优先级
MQTT Broker delivery 端实时通知 P0
微信订阅消息 API 用户通知推送 P0
短信 SDK 紧急通知兜底 P0
对象存储MinIO/S3 证据文件存储 P1
地图 API高德/百度) 调度距离 + ETA P1
域名 + SSL + ICP 备案 生产上线 P1

相关文档

Description
居家服务基础网站
Readme 1 MiB
Languages
Java 60.9%
Vue 25.6%
TypeScript 6.1%
Shell 4.6%
JavaScript 2.3%
Other 0.5%