Commit Graph
3 Commits
Author SHA1 Message Date
lianlonggangandClaude 545fa38789 fix: 修复 GET 接口返回 toString 而非 JSON 的关键缺陷 + 测试库联调修复 + 日志实时推送
关键修复:
- 引入 solon-serialization-snack3 渲染插件:无 Accept 头的 GET 请求
  之前返回对象 toString(非法响应),现统一输出标准 JSON
- saveOrder/addUnit:Solon @Body Map 泛型反序列化为空,改收原始
  String + snack3 手动解析
- Oracle CLOB 直接进 Map 显示为对象句柄:bsm XML 包 DBMS_LOB.SUBSTR
- SqlServer 中文丢失:去掉 cast(NVARCHAR as varchar(8000)) 有损转换;
  XML 中文字面量加 N 前缀(状态字典/完成标记)
- /api/admin/log/tail 解码异常:历史日志混 GBK 内容,改容错解码

新增:
- LogStreamManager:日志实时推送(LOG_TAIL_CTRL 控制 + LOG_BATCH
  增量上报,多文件并行、游标推进、滚动重置检测)
- mock_b_server.py:最小 WS 模拟 B 端(联调工具)

实测(真实 Oracle/SqlServer 测试库):
- 三方言(bsm/nx/ya)20 个业务接口全部通过
- saveOrder 存储过程:PE00100008 / NX00000003 / YA00000002
- 中文入库/查询/汇总全链路正常
- 日志流端到端:B 下发命令 → Agent 增量推送 → B 收到 LOG_BATCH

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-21 13:59:54 +08:00
lianlonggangandClaude 535162e63a feat: Kotlin+Solon 重构医院前置机(业务+被控端+Agent+升级流程)
主程序(com.hospital.front):
- Kotlin 2.0.21 + Solon 3.10.7 + MyBatis-Plus + HikariCP + Logback
- HospitalAdapter 策略模式:5 家医院(xinglongyuan/qingyang/ningxia/yanan/jinghe)+ dev Mock
- 三方言 Mapper:bsm(Oracle)/ nx / ya(SqlServer),存储过程参数原样迁移
- 20 个业务接口(/order/*)+ 11 个被控端接口(/api/admin/*,Token 鉴权+脱敏+防穿越)
- 全局异常处理、Result 统一响应、业务开关热更新

Agent(com.hospital.agent,独立进程,单 jar 双 main):
- WebSocket 主动出站连 B 端(指数退避重连),心跳转发主程序健康
- ProcessGuard 看门狗:3 次探测失败自动拉起主程序
- UpgradeCommand:下载→SHA256 校验→备份→替换→拉起→健康检查→失败自动回滚
- 命令分发:PING/日志/配置/重启等 10 类命令

部署(pac/):
- Windows Server 脚本(start.bat/agent.bat/WinSW 服务),纯 ASCII 注释防 GBK 错乱
- 5 家医院配置模板 + agent.properties

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-21 12:35:05 +08:00
lianlonggang b6c6b436c3 Initial commit 2026-08-21 01:29:37 +00:00