feat(osi): 体检已检/未检名单查询打通(T-305)
- osi.ListHealthCheckPeople(JKTJLIST00002 /auto/jktjlist/query) - ListHealthCheckQuery:checkYear 必填、page/rows 默认、idCard/checkType 可选 - contract.HealthCheckPerson 名单行 20 字段,字段名按实测校正(birthday/phrId/manaDoctorId/manaDocterName/empiId) - 单测:名单解码/路径/baseInfo 分页/checkYear 校验(脱敏假数据) - 实测端点已部署,code=01 返回分页人员名单 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+42
@@ -2,6 +2,7 @@ package osi
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"chis_osi/contract"
|
||||
)
|
||||
@@ -32,3 +33,44 @@ func (q FindHealthCheckQuery) baseInfo() (map[string]string, error) {
|
||||
}
|
||||
return singleBaseInfo("last health check", fields)
|
||||
}
|
||||
|
||||
type ListHealthCheckQuery struct {
|
||||
CheckYear string // 必填:检查年度,如 "2025"
|
||||
IDCard string // 可选:过滤到某人
|
||||
CheckType string // 可选:0 已检 / 1 未检 / 2 全部
|
||||
Page string // 默认 "1"
|
||||
Rows string // 默认 "10"
|
||||
}
|
||||
|
||||
// ListHealthCheckPeople 查询某年度已检/未检人员名单(JKTJLIST00002 /auto/jktjlist/query)。
|
||||
// 返回人员名单 + checkType 状态,非体检明细;分页参数在 baseInfo 内,见 docs/04 §11.4。
|
||||
func (c *Client) ListHealthCheckPeople(ctx context.Context, query ListHealthCheckQuery) ([]contract.HealthCheckPerson, Result, error) {
|
||||
baseInfo, err := query.baseInfo()
|
||||
if err != nil {
|
||||
return nil, Result{}, err
|
||||
}
|
||||
var people []contract.HealthCheckPerson
|
||||
result, err := c.Call(ctx, ServiceIDJKTJList, baseInfo, &people)
|
||||
return people, result, err
|
||||
}
|
||||
|
||||
func (q ListHealthCheckQuery) baseInfo() (map[string]string, error) {
|
||||
if q.CheckYear == "" {
|
||||
return nil, fmt.Errorf("list health check requires checkYear")
|
||||
}
|
||||
page, rows := q.Page, q.Rows
|
||||
if page == "" {
|
||||
page = "1"
|
||||
}
|
||||
if rows == "" {
|
||||
rows = "10"
|
||||
}
|
||||
base := map[string]string{"checkYear": q.CheckYear, "page": page, "rows": rows}
|
||||
if q.CheckType != "" {
|
||||
base["checkType"] = q.CheckType
|
||||
}
|
||||
if q.IDCard != "" {
|
||||
base["idCard"] = q.IDCard
|
||||
}
|
||||
return base, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user