feat(osi): 某人全部体检查询 JKTJ00002(T-306)

- osi.QueryHealthChecks(/auto/jktj/query,返回全部体检数组)
- contract.HealthCheckRecordSummary:驼峰 idCard(≠最近一次小写 idcard)、checkId 可空
- HTTP 端点 GET /api/health-check/all
- 单测含 null checkId 场景;实测端点已部署

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-08 22:14:39 +08:00
co-authored by Claude Opus 4.8
parent 00b02b76f6
commit f3c5e1bf8d
7 changed files with 117 additions and 4 deletions
+10
View File
@@ -18,6 +18,16 @@ type HealthCheckSummary struct {
CheckDate string `json:"checkDate"`
}
// HealthCheckRecordSummary 是 JKTJ00002(某人全部体检)数组里一条体检的定位字段。
// 完整体检内容(结构同 §11.3)由 osi.Result.Raw 保留,本结构只取定位/列举字段。
// ⚠ 身份证字段是驼峰 idCard(≠ 最近一次 HealthCheckSummary 的小写 idcard)。
type HealthCheckRecordSummary struct {
CheckID string `json:"checkId"` // 体检编号;历史记录为 null(→""),仅近年有值
CheckDate string `json:"checkDate"` // 体检日期,历史记录用它定位(checkId 可能缺)
IDCard string `json:"idCard"` // 注意驼峰
PersonName string `json:"personName"`
}
// HealthCheckPerson 是 JKTJLIST00002 已检/未检名单里的一行(人员 + 体检状态,非体检明细)。
// 字段名以实测样本为准(docx 多处有误,见 docs/04 §11.4)。字段稳定且均为字符串,故全部建模。
type HealthCheckPerson struct {