feat(osi): 实现 JKDA 档案 Create/Update 与创建请求契约(T-206)

- contract/jkda.go 补创建请求结构体(healthRecord + manageInfo + 既往史节点)
- osi/jkda.go 新增 CreateHealthRecord/UpdateHealthRecord
- osi/codes.go 登记 JKDA00001 create / JKDA00003 update serviceId 与路径
- mapping 映射创建路径(真实字典快照反查主数据)
- 代码与单测完成;真实 create 待安全测试档案与写入授权(见 tasks.md T-206 BLOCKED)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-07 23:11:17 +08:00
co-authored by Claude Opus 4.8
parent 12346c9923
commit f95a779daa
8 changed files with 253 additions and 9 deletions
+20
View File
@@ -23,6 +23,19 @@ type PersonSignResult struct {
PersonSign string `json:"personSign"`
}
func (c *Client) CreateHealthRecord(ctx context.Context, req contract.HealthRecordCreate) (contract.HealthRecordSaveResult, Result, error) {
req.ManageInfo = c.manageInfo()
var out contract.HealthRecordSaveResult
result, err := c.callUploadInfo(ctx, ServiceIDJKDACreate, req, &out)
return out, result, err
}
func (c *Client) UpdateHealthRecord(ctx context.Context, req contract.HealthRecordCreate) (contract.HealthRecordSaveResult, Result, error) {
req.ManageInfo = c.manageInfo()
var out contract.HealthRecordSaveResult
result, err := c.callUploadInfo(ctx, ServiceIDJKDAUpdate, req, &out)
return out, result, err
}
func (c *Client) FindHealthRecord(ctx context.Context, query FindHealthRecordQuery) ([]contract.FindHealthRecord, Result, error) {
baseInfo, err := query.baseInfo()
if err != nil {
@@ -43,6 +56,13 @@ func (c *Client) FindRqbj(ctx context.Context, query FindRqbjQuery) (PersonSignR
return personSign, result, err
}
func (c *Client) manageInfo() contract.ManageInfo {
return contract.ManageInfo{
DSFMC: c.config.UserName,
OperateUser: c.config.OperateUser,
OperateUnit: c.operateUnit(),
}
}
func (q FindHealthRecordQuery) baseInfo() (map[string]string, error) {
fields := []queryField{
{name: "idCard", value: q.IDCard},