BorrowRequestCreate: parameters: - {name: id, in: path, required: true, schema: {$ref: '../components/schemas.yaml#/StringId'}} post: operationId: createBorrowRequest summary: 提交调阅申请(一批用户共用一张必传PDF/图片审批单) description: 契约1.37调阅申请审批流;契约1.66起不再要求二次认证、审批单必传;契约1.72起审批单支持PDF与图片(jpg/jpeg/png/gif/bmp/webp,魔数校验)。multipart/form-data两个part——request(JSON对象字符串{entries,expiresAt},必须)+file(PDF或图片审批单,必传——缺失或空文件返回400 INVALID_ARGUMENT「调阅申请必须上传审批单(PDF 或图片)」);仅主案可申请,申请人须既无查看又无下载权限且密级足够;提交即向所有CONFIG_PERMISSION用户发APPROVAL+PENDING待办通知,响应{requestId,notified};任一条目用户已有待审批申请返回409 BORROW_REQUEST_DUPLICATE;审计BORROW_REQUEST_CREATE。 parameters: - $ref: '../components/parameters.yaml#/XRequestId' requestBody: required: true content: multipart/form-data: schema: type: object additionalProperties: false required: [request, file] properties: request: type: string description: 申请载荷JSON字符串(BorrowRequestCreateRequest)。 file: {type: string, format: binary, description: PDF或图片审批单(契约1.66必传、契约1.72扩图,一批用户共用一张)} responses: '200': {description: 申请受理结果(requestId与通知审批人数), content: {application/json: {schema: {$ref: '../components/schemas.yaml#/BorrowRequestCreateResultResponse'}}}} '400': {$ref: '../components/responses.yaml#/InvalidArgument'} '401': {$ref: '../components/responses.yaml#/AuthenticationError'} '403': {$ref: '../components/responses.yaml#/Forbidden'} '404': {$ref: '../components/responses.yaml#/NotFound'} '409': {$ref: '../components/responses.yaml#/Conflict'} '413': {$ref: '../components/responses.yaml#/PayloadTooLarge'} '415': {$ref: '../components/responses.yaml#/UnsupportedMedia'} '500': {$ref: '../components/responses.yaml#/InternalError'} BorrowRequestDetail: parameters: - {name: id, in: path, required: true, schema: {$ref: '../components/schemas.yaml#/StringId'}} get: operationId: getBorrowRequestDetail summary: 查询调阅申请单详情 description: 申请人本人或对该文档有授权权限的用户可见(审批人「查看审批单」);status为PENDING/APPROVED/REJECTED,任一审批人处理即定。 parameters: - $ref: '../components/parameters.yaml#/XRequestId' responses: '200': {description: 申请单详情(含条目列表), content: {application/json: {schema: {$ref: '../components/schemas.yaml#/BorrowRequestDetailResponse'}}}} '401': {$ref: '../components/responses.yaml#/AuthenticationError'} '403': {$ref: '../components/responses.yaml#/Forbidden'} '404': {$ref: '../components/responses.yaml#/NotFound'} '500': {$ref: '../components/responses.yaml#/InternalError'} BorrowRequestVoucher: parameters: - {name: id, in: path, required: true, schema: {$ref: '../components/schemas.yaml#/StringId'}} get: operationId: downloadBorrowRequestVoucher summary: 下载调阅申请审批单 description: 成功返回附件二进制(含nosniff;Content-Type按扩展名映射——PDF为application/pdf、图片为对应image/*);可见性同申请详情;未上传审批单或文件缺失返回404。 parameters: - $ref: '../components/parameters.yaml#/XRequestId' responses: '200': {description: 审批单二进制(PDF或图片), content: {application/pdf: {schema: {type: string, format: binary}}, image/jpeg: {schema: {type: string, format: binary}}, image/png: {schema: {type: string, format: binary}}, image/gif: {schema: {type: string, format: binary}}, image/bmp: {schema: {type: string, format: binary}}, image/webp: {schema: {type: string, format: binary}}}} '401': {$ref: '../components/responses.yaml#/AuthenticationError'} '403': {$ref: '../components/responses.yaml#/Forbidden'} '404': {$ref: '../components/responses.yaml#/NotFound'} '500': {$ref: '../components/responses.yaml#/InternalError'}