| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488 |
- StringId:
- type: string
- pattern: '^[0-9]+$'
- description: 数据库BIGINT在JSON中的安全十进制字符串表达。
- UtcDateTime:
- type: string
- format: date-time
- pattern: 'Z$'
- example: '2026-07-23T03:00:00.000Z'
- RoleCode:
- type: string
- enum: [USER, ADMIN, AUDITOR]
- AllowedModule:
- type: string
- enum: [DOCUMENT_BROWSER, BACKEND_MANAGEMENT, AUDIT_LOG]
- DocumentType:
- type: string
- enum: [MAIN, SUB_PLAN, ATTACHMENT]
- DocumentStatus:
- type: string
- enum: [DRAFT, PUBLISHED, ARCHIVED]
- SecurityLevel:
- type: string
- enum: [PUBLIC, INTERNAL, SECRET, CONFIDENTIAL, TOP_SECRET]
- x-comparison-values:
- PUBLIC: 10
- INTERNAL: 20
- SECRET: 30
- CONFIDENTIAL: 40
- TOP_SECRET: 50
- VisibilityType:
- type: string
- enum: [ALL_AUTHENTICATED, ORGANIZATION, CUSTOM]
- AttachmentType:
- type: string
- enum: [POLICY, WORK_STANDARD, TABLE, DIAGRAM, OTHER]
- SubjectType:
- type: string
- enum: [ORG, USER]
- AllowedAction:
- type: string
- enum:
- - VIEW
- - DOWNLOAD
- - EDIT
- - CONFIG_PERMISSION
- - DELETE
- - BIND_ATTACHMENT
- - UNBIND_ATTACHMENT
- CategoryType:
- type: string
- enum: [SCENE, STYLE, SITUATION, VERSION, OTHER]
- EnabledStatus:
- type: string
- enum: [ENABLED, DISABLED]
- AuditResult:
- type: string
- enum: [SUCCESS, FAILURE]
- AuditAction:
- type: string
- enum:
- - LOGIN
- - LOGOUT
- - VIEW_DOCUMENT
- - DOWNLOAD_DOCUMENT
- - UPLOAD_DOCUMENT
- - BATCH_IMPORT
- - EDIT_DOCUMENT
- - DELETE_DOCUMENT
- - CREATE_CATEGORY
- - EDIT_CATEGORY
- - DELETE_CATEGORY
- - CHANGE_PERMISSION
- - BIND_ATTACHMENT
- - UNBIND_ATTACHMENT
- - RESTORE_DOCUMENT
- AuditTarget:
- type: string
- enum:
- - AUTH
- - CATEGORY
- - DOCUMENT
- - ATTACHMENT
- - PERMISSION
- - ATTACHMENT_BINDING
- PageResult:
- type: object
- required: [items, page, pageSize, total, totalPages]
- properties:
- items:
- type: array
- items: {}
- page:
- type: integer
- minimum: 1
- default: 1
- pageSize:
- type: integer
- minimum: 1
- maximum: 100
- default: 20
- total:
- type: integer
- minimum: 0
- totalPages:
- type: integer
- minimum: 0
- HealthData:
- type: object
- additionalProperties: false
- required: [service, status]
- properties:
- service:
- type: string
- enum: [dms]
- status:
- type: string
- enum: [UP]
- HealthResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/HealthData'
- requestId:
- type: string
- format: uuid
- ErrorResponse:
- type: object
- additionalProperties: false
- required: [code, message, details, requestId]
- properties:
- code:
- type: string
- enum:
- - INVALID_ARGUMENT
- - INVALID_CREDENTIALS
- - TOKEN_INVALID
- - TOKEN_EXPIRED
- - USER_DISABLED
- - AUTH_VERSION_MISMATCH
- - FORBIDDEN
- - SECURITY_LEVEL_FORBIDDEN
- - DOCUMENT_VIEW_FORBIDDEN
- - DOCUMENT_DOWNLOAD_FORBIDDEN
- - RESOURCE_NOT_FOUND
- - FILE_NOT_FOUND
- - UNSUPPORTED_FILE_TYPE
- - PREVIEW_UNAVAILABLE
- - PAYLOAD_TOO_LARGE
- - BATCH_MANIFEST_MISMATCH
- - DATA_VERSION_CONFLICT
- - CATEGORY_IN_USE
- - MAIN_PLAN_HAS_CHILDREN
- - ATTACHMENT_IN_USE
- - ATTACHMENT_HAS_NO_ACL
- - SUB_PLAN_PERMISSION_INHERITED
- - DUPLICATE_PERMISSION_SUBJECT
- - MAIN_PLAN_NOT_FOUND
- - INTERNAL_ERROR
- - DOCUMENT_NOT_DELETED
- - FILE_INTEGRITY_MISMATCH
- - FILE_PATH_INVALID
- - RESTORE_FILE_CHANGED
- - RESTORE_CATEGORY_INVALID
- - RESTORE_PARENT_INVALID
- - RESTORE_PERMISSION_INVALID
- - RESTORE_RELATION_CONFLICT
- message:
- type: string
- details:
- type: object
- nullable: true
- additionalProperties: true
- requestId:
- type: string
- format: uuid
- UserSummary:
- type: object
- additionalProperties: false
- required:
- - id
- - username
- - realName
- - organizationId
- - organizationName
- - roleCode
- - securityLevel
- - status
- - allowedModules
- properties:
- id:
- $ref: '#/StringId'
- username:
- type: string
- realName:
- type: string
- organizationId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- organizationName:
- type: string
- nullable: true
- roleCode:
- $ref: '#/RoleCode'
- securityLevel:
- $ref: '#/SecurityLevel'
- status:
- $ref: '#/EnabledStatus'
- allowedModules:
- type: array
- uniqueItems: true
- items:
- $ref: '#/AllowedModule'
- LoginRequest:
- type: object
- additionalProperties: false
- required: [username, password, keepSignedIn]
- properties:
- username:
- type: string
- minLength: 1
- password:
- type: string
- format: password
- minLength: 1
- writeOnly: true
- keepSignedIn:
- type: boolean
- LoginData:
- type: object
- additionalProperties: false
- required: [accessToken, tokenType, expiresIn, user]
- properties:
- accessToken:
- type: string
- tokenType:
- type: string
- enum: [Bearer]
- expiresIn:
- type: integer
- enum: [7200, 604800]
- user:
- $ref: '#/UserSummary'
- LoginResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/LoginData'
- requestId:
- type: string
- format: uuid
- UserResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/UserSummary'
- requestId:
- type: string
- format: uuid
- OrganizationNode:
- type: object
- additionalProperties: false
- required: [id, parentId, orgCode, orgName, orgPath, sortNo, status, children]
- properties:
- id:
- $ref: '#/StringId'
- parentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- orgCode:
- type: string
- orgName:
- type: string
- orgPath:
- type: string
- sortNo:
- type: integer
- status:
- $ref: '#/EnabledStatus'
- children:
- type: array
- items:
- $ref: '#/OrganizationNode'
- OrganizationTreeResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- type: array
- items:
- $ref: '#/OrganizationNode'
- requestId:
- type: string
- format: uuid
- UserPage:
- type: object
- additionalProperties: false
- required: [items, page, pageSize, total, totalPages]
- properties:
- items:
- type: array
- items:
- $ref: '#/UserSummary'
- page:
- type: integer
- minimum: 1
- pageSize:
- type: integer
- minimum: 1
- maximum: 100
- total:
- type: integer
- minimum: 0
- totalPages:
- type: integer
- minimum: 0
- UserPageResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/UserPage'
- requestId:
- type: string
- format: uuid
- EmptySuccessResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- type: object
- additionalProperties: false
- requestId:
- type: string
- format: uuid
- CategoryNode:
- type: object
- additionalProperties: false
- required:
- - id
- - categoryCode
- - categoryName
- - categoryType
- - parentId
- - categoryPath
- - sortNo
- - documentCount
- - rowVersion
- - children
- properties:
- id:
- $ref: '#/StringId'
- categoryCode:
- type: string
- maxLength: 64
- categoryName:
- type: string
- maxLength: 128
- categoryType:
- $ref: '#/CategoryType'
- parentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- categoryPath:
- type: string
- maxLength: 1000
- sortNo:
- type: integer
- documentCount:
- type: integer
- minimum: 0
- rowVersion:
- type: integer
- minimum: 0
- children:
- type: array
- items:
- $ref: '#/CategoryNode'
- CreateCategoryRequest:
- type: object
- additionalProperties: false
- required: [categoryCode, categoryName, categoryType, parentId, sortNo]
- properties:
- categoryCode:
- type: string
- minLength: 1
- maxLength: 64
- categoryName:
- type: string
- minLength: 1
- maxLength: 128
- categoryType:
- $ref: '#/CategoryType'
- parentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- sortNo:
- type: integer
- UpdateCategoryRequest:
- type: object
- additionalProperties: false
- required: [categoryName, categoryType, parentId, sortNo, rowVersion]
- properties:
- categoryName:
- type: string
- minLength: 1
- maxLength: 128
- categoryType:
- $ref: '#/CategoryType'
- parentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- sortNo:
- type: integer
- rowVersion:
- type: integer
- minimum: 0
- CategoryTreeResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- type: array
- items:
- $ref: '#/CategoryNode'
- requestId:
- type: string
- format: uuid
- CategoryResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/CategoryNode'
- requestId:
- type: string
- format: uuid
- DeleteCategoryData:
- type: object
- additionalProperties: false
- required: [id, deleted]
- properties:
- id:
- $ref: '#/StringId'
- deleted:
- type: boolean
- enum: [true]
- DeleteCategoryResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/DeleteCategoryData'
- requestId:
- type: string
- format: uuid
- PermissionSummary:
- type: object
- additionalProperties: false
- required: [organizationCount, userCount, inheritedFromMainPlan]
- properties:
- organizationCount:
- type: integer
- minimum: 0
- userCount:
- type: integer
- minimum: 0
- inheritedFromMainPlan:
- type: boolean
- DocumentSummary:
- type: object
- required:
- - id
- - documentName
- - summary
- - documentType
- - status
- - securityLevel
- - visibilityType
- - visibilitySummary
- - categoryId
- - categoryName
- - categoryPath
- - parentDocumentId
- - rootDocumentId
- - attachmentType
- - fileExtension
- - tags
- - childCount
- - attachmentCount
- - viewCount
- - downloadCount
- - createdByName
- - createdAt
- - updatedAt
- - rowVersion
- - allowedActions
- properties:
- id:
- $ref: '#/StringId'
- documentName:
- type: string
- summary:
- type: string
- nullable: true
- documentType:
- $ref: '#/DocumentType'
- status:
- $ref: '#/DocumentStatus'
- securityLevel:
- $ref: '#/SecurityLevel'
- visibilityType:
- $ref: '#/VisibilityType'
- visibilitySummary:
- type: string
- categoryId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- categoryName:
- type: string
- nullable: true
- categoryPath:
- type: string
- nullable: true
- parentDocumentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- rootDocumentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- attachmentType:
- allOf:
- - $ref: '#/AttachmentType'
- nullable: true
- fileExtension:
- type: string
- tags:
- type: array
- items:
- type: string
- childCount:
- type: integer
- minimum: 0
- attachmentCount:
- type: integer
- minimum: 0
- viewCount:
- type: integer
- minimum: 0
- downloadCount:
- type: integer
- minimum: 0
- createdByName:
- type: string
- nullable: true
- createdAt:
- $ref: '#/UtcDateTime'
- updatedAt:
- $ref: '#/UtcDateTime'
- rowVersion:
- type: integer
- minimum: 0
- allowedActions:
- type: array
- uniqueItems: true
- items:
- $ref: '#/AllowedAction'
- mountedPlanCount:
- type: integer
- minimum: 0
- description: 仅共享附件响应返回。
- DocumentDetail:
- allOf:
- - $ref: '#/DocumentSummary'
- - type: object
- required:
- - originalFileName
- - mimeType
- - fileSize
- - fileHash
- - permissionSummary
- properties:
- originalFileName:
- type: string
- mimeType:
- type: string
- nullable: true
- fileSize:
- type: integer
- minimum: 0
- fileHash:
- type: string
- pattern: '^[0-9a-fA-F]{64}$'
- permissionSummary:
- $ref: '#/PermissionSummary'
- AttachmentBindingSummary:
- allOf:
- - $ref: '#/DocumentSummary'
- - type: object
- required: [bindingId, bindingSortNo, mountedPlanCount]
- properties:
- bindingId:
- $ref: '#/StringId'
- bindingSortNo:
- type: integer
- mountedPlanCount:
- type: integer
- minimum: 0
- DocumentPage:
- type: object
- additionalProperties: false
- required: [items, page, pageSize, total, totalPages]
- properties:
- items:
- type: array
- items:
- $ref: '#/DocumentSummary'
- page:
- type: integer
- minimum: 1
- pageSize:
- type: integer
- minimum: 1
- maximum: 100
- total:
- type: integer
- minimum: 0
- totalPages:
- type: integer
- minimum: 0
- AttachmentBindingPage:
- type: object
- additionalProperties: false
- required: [items, page, pageSize, total, totalPages]
- properties:
- items:
- type: array
- items:
- $ref: '#/AttachmentBindingSummary'
- page:
- type: integer
- minimum: 1
- pageSize:
- type: integer
- minimum: 1
- maximum: 100
- total:
- type: integer
- minimum: 0
- totalPages:
- type: integer
- minimum: 0
- MainPlanBrief:
- type: object
- additionalProperties: false
- required: [id, documentName, categoryName, securityLevel]
- properties:
- id:
- $ref: '#/StringId'
- documentName:
- type: string
- categoryName:
- type: string
- nullable: true
- securityLevel:
- $ref: '#/SecurityLevel'
- MainPlanBriefCollection:
- type: object
- additionalProperties: false
- required: [items, total]
- properties:
- items:
- type: array
- items:
- $ref: '#/MainPlanBrief'
- total:
- type: integer
- minimum: 0
- DocumentPageResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/DocumentPage'
- requestId:
- type: string
- format: uuid
- DocumentDetailResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/DocumentDetail'
- requestId:
- type: string
- format: uuid
- AttachmentBindingPageResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/AttachmentBindingPage'
- requestId:
- type: string
- format: uuid
- MainPlanBriefCollectionResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code:
- type: string
- enum: [OK]
- message:
- type: string
- enum: [success]
- data:
- $ref: '#/MainPlanBriefCollection'
- requestId:
- type: string
- format: uuid
- DocumentCreateMetadata:
- type: object
- additionalProperties: false
- required: [documentName, documentType, summary, categoryId, securityLevel, visibilityType, status, tags]
- properties:
- documentName: {type: string, minLength: 1, maxLength: 255}
- documentType: {type: string, enum: [MAIN, SUB_PLAN]}
- summary: {type: string, nullable: true}
- categoryId: {$ref: '#/StringId'}
- parentDocumentId:
- allOf: [{$ref: '#/StringId'}]
- description: SUB_PLAN必填,MAIN禁止提交。
- securityLevel: {$ref: '#/SecurityLevel'}
- visibilityType: {$ref: '#/VisibilityType'}
- status: {$ref: '#/DocumentStatus'}
- tags:
- type: array
- maxItems: 50
- items: {type: string, minLength: 1, maxLength: 64}
- AttachmentCreateMetadata:
- type: object
- additionalProperties: false
- required: [documentName, attachmentType, summary, tags]
- properties:
- documentName: {type: string, minLength: 1, maxLength: 255}
- attachmentType: {$ref: '#/AttachmentType'}
- summary: {type: string, nullable: true}
- tags:
- type: array
- maxItems: 50
- items: {type: string, minLength: 1, maxLength: 64}
- UpdateDocumentRequest:
- type: object
- additionalProperties: false
- required: [documentName, summary, categoryId, securityLevel, visibilityType, status, tags, rowVersion]
- properties:
- documentName: {type: string, minLength: 1, maxLength: 255}
- summary: {type: string, nullable: true}
- categoryId: {$ref: '#/StringId'}
- securityLevel: {$ref: '#/SecurityLevel'}
- visibilityType: {$ref: '#/VisibilityType'}
- status: {$ref: '#/DocumentStatus'}
- tags:
- type: array
- maxItems: 50
- items: {type: string, minLength: 1, maxLength: 64}
- rowVersion: {type: integer, minimum: 0}
- UpdateAttachmentRequest:
- type: object
- additionalProperties: false
- required: [documentName, attachmentType, summary, tags, rowVersion]
- properties:
- documentName: {type: string, minLength: 1, maxLength: 255}
- attachmentType: {$ref: '#/AttachmentType'}
- summary: {type: string, nullable: true}
- tags:
- type: array
- maxItems: 50
- items: {type: string, minLength: 1, maxLength: 64}
- rowVersion: {type: integer, minimum: 0}
- DeleteDocumentData:
- type: object
- additionalProperties: false
- required: [id, deleted]
- properties:
- id: {$ref: '#/StringId'}
- deleted: {type: boolean, enum: [true]}
- DeleteDocumentResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/DeleteDocumentData'}
- requestId: {type: string, format: uuid}
- BatchImportMultipart:
- type: object
- additionalProperties: false
- required: [files, items]
- properties:
- files:
- type: array
- minItems: 1
- items: {type: string, format: binary}
- description: 重复files字段,顺序与items数组严格对应。
- items:
- type: string
- description: 文档或附件metadata对象数组的JSON字符串。
- BatchImportItem:
- type: object
- additionalProperties: false
- required: [index, originalFileName, success]
- properties:
- index: {type: integer, minimum: 0}
- originalFileName: {type: string}
- success: {type: boolean}
- document: {$ref: '#/DocumentDetail'}
- errorCode: {type: string}
- errorMessage: {type: string}
- BatchImportData:
- type: object
- additionalProperties: false
- required: [total, successCount, failureCount, items]
- properties:
- total: {type: integer, minimum: 0}
- successCount: {type: integer, minimum: 0}
- failureCount: {type: integer, minimum: 0}
- items:
- type: array
- items: {$ref: '#/BatchImportItem'}
- BatchImportResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/BatchImportData'}
- requestId: {type: string, format: uuid}
- BindAttachmentsRequest:
- type: object
- additionalProperties: false
- required: [attachmentIds, mainPlanRowVersion]
- properties:
- attachmentIds:
- type: array
- minItems: 1
- items: {$ref: '#/StringId'}
- mainPlanRowVersion:
- type: integer
- minimum: 0
- BindAttachmentsData:
- type: object
- additionalProperties: false
- required: [createdCount, existingCount, attachmentCount, mainPlanRowVersion]
- properties:
- createdCount: {type: integer, minimum: 0}
- existingCount: {type: integer, minimum: 0}
- attachmentCount: {type: integer, minimum: 0}
- mainPlanRowVersion: {type: integer, minimum: 0}
- BindAttachmentsResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/BindAttachmentsData'}
- requestId: {type: string, format: uuid}
- UnbindAttachmentData:
- type: object
- additionalProperties: false
- required: [attachmentCount, mainPlanRowVersion]
- properties:
- attachmentCount: {type: integer, minimum: 0}
- mainPlanRowVersion: {type: integer, minimum: 0}
- UnbindAttachmentResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/UnbindAttachmentData'}
- requestId: {type: string, format: uuid}
- PermissionEntry:
- type: object
- additionalProperties: false
- required:
- - id
- - subjectType
- - subjectId
- - subjectName
- - canView
- - canDownload
- - canEdit
- - canManagePermission
- - canDelete
- properties:
- id: {$ref: '#/StringId'}
- subjectType: {$ref: '#/SubjectType'}
- subjectId: {$ref: '#/StringId'}
- subjectName: {type: string}
- canView: {type: boolean}
- canDownload: {type: boolean}
- canEdit: {type: boolean}
- canManagePermission: {type: boolean}
- canDelete: {type: boolean}
- SavePermissionEntry:
- type: object
- additionalProperties: false
- required:
- - subjectType
- - subjectId
- - canView
- - canDownload
- - canEdit
- - canManagePermission
- - canDelete
- properties:
- subjectType: {$ref: '#/SubjectType'}
- subjectId: {$ref: '#/StringId'}
- canView: {type: boolean}
- canDownload: {type: boolean}
- canEdit: {type: boolean}
- canManagePermission: {type: boolean}
- canDelete: {type: boolean}
- SavePermissionsRequest:
- type: object
- additionalProperties: false
- required: [visibilityType, documentRowVersion, entries]
- properties:
- visibilityType: {$ref: '#/VisibilityType'}
- documentRowVersion: {type: integer, minimum: 0}
- entries:
- type: array
- items: {$ref: '#/SavePermissionEntry'}
- description: ALL_AUTHENTICATED必须为空;ORGANIZATION至少一个ORG;CUSTOM可为空。
- PermissionDetail:
- type: object
- additionalProperties: false
- required:
- - documentId
- - sourceDocumentId
- - inherited
- - visibilityType
- - documentRowVersion
- - entries
- properties:
- documentId: {$ref: '#/StringId'}
- sourceDocumentId: {$ref: '#/StringId'}
- inherited: {type: boolean}
- visibilityType: {$ref: '#/VisibilityType'}
- documentRowVersion: {type: integer, minimum: 0}
- entries:
- type: array
- items: {$ref: '#/PermissionEntry'}
- PermissionDetailResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/PermissionDetail'}
- requestId: {type: string, format: uuid}
- AuditGranularity:
- type: string
- enum: [DAY, WEEK, MONTH]
- AuditLogSummary:
- type: object
- additionalProperties: false
- required:
- - id
- - username
- - realName
- - organizationName
- - actionType
- - targetType
- - targetId
- - targetName
- - operationResult
- - failureReason
- - clientIp
- - requestId
- - createdAt
- properties:
- id: {$ref: '#/StringId'}
- username: {type: string, nullable: true}
- realName: {type: string, nullable: true}
- organizationName: {type: string, nullable: true}
- actionType: {$ref: '#/AuditAction'}
- targetType:
- allOf: [{$ref: '#/AuditTarget'}]
- nullable: true
- targetId:
- allOf: [{$ref: '#/StringId'}]
- nullable: true
- targetName: {type: string, nullable: true}
- operationResult: {$ref: '#/AuditResult'}
- failureReason: {type: string, nullable: true}
- clientIp: {type: string, nullable: true}
- requestId: {type: string, nullable: true}
- createdAt: {$ref: '#/UtcDateTime'}
- AuditLogPage:
- type: object
- additionalProperties: false
- required: [items, page, pageSize, total, totalPages]
- properties:
- items: {type: array, items: {$ref: '#/AuditLogSummary'}}
- page: {type: integer, minimum: 1}
- pageSize: {type: integer, minimum: 1, maximum: 100}
- total: {type: integer, minimum: 0}
- totalPages: {type: integer, minimum: 0}
- AuditLogPageResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/AuditLogPage'}
- requestId: {type: string, format: uuid}
- DocumentStatistics:
- type: object
- additionalProperties: false
- required: [planDocumentCount, mainPlanCount, subPlanCount, attachmentCount, todayViewerCount]
- properties:
- planDocumentCount: {type: integer, minimum: 0}
- mainPlanCount: {type: integer, minimum: 0}
- subPlanCount: {type: integer, minimum: 0}
- attachmentCount: {type: integer, minimum: 0}
- todayViewerCount: {type: integer, minimum: 0}
- DocumentStatisticsResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/DocumentStatistics'}
- requestId: {type: string, format: uuid}
- AuditTrendItem:
- type: object
- additionalProperties: false
- required: [period, operationCount]
- properties:
- period: {type: string}
- operationCount: {type: integer, minimum: 0}
- AuditTrendData:
- type: object
- additionalProperties: false
- required: [items]
- properties:
- items: {type: array, items: {$ref: '#/AuditTrendItem'}}
- AuditTrendResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/AuditTrendData'}
- requestId: {type: string, format: uuid}
- AuditActionStatisticsItem:
- type: object
- additionalProperties: false
- required: [actionType, count]
- properties:
- actionType: {$ref: '#/AuditAction'}
- count: {type: integer, minimum: 0}
- AuditActionStatisticsData:
- type: object
- additionalProperties: false
- required: [items]
- properties:
- items: {type: array, items: {$ref: '#/AuditActionStatisticsItem'}}
- AuditActionStatisticsResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/AuditActionStatisticsData'}
- requestId: {type: string, format: uuid}
- AuditUserStatisticsItem:
- type: object
- additionalProperties: false
- required: [userId, realName, organizationName, operationCount]
- properties:
- userId: {$ref: '#/StringId'}
- realName: {type: string, nullable: true}
- organizationName: {type: string, nullable: true}
- operationCount: {type: integer, minimum: 0}
- AuditUserStatisticsData:
- type: object
- additionalProperties: false
- required: [items]
- properties:
- items: {type: array, items: {$ref: '#/AuditUserStatisticsItem'}}
- AuditUserStatisticsResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/AuditUserStatisticsData'}
- requestId: {type: string, format: uuid}
- DeletedBySnapshot:
- type: object
- additionalProperties: false
- required: [userId, username, realName, organizationName]
- properties:
- userId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- username: {type: string, nullable: true}
- realName: {type: string, nullable: true}
- organizationName: {type: string, nullable: true}
- RecycleBinDocumentSummary:
- type: object
- additionalProperties: false
- required:
- - id
- - documentName
- - documentType
- - originalFileName
- - categoryId
- - categoryName
- - parentDocumentId
- - securityLevel
- - documentStatus
- - deletedAt
- - updatedBy
- - updatedByName
- - deletedBy
- - rowVersion
- properties:
- id: {$ref: '#/StringId'}
- documentName: {type: string}
- documentType: {$ref: '#/DocumentType'}
- originalFileName: {type: string}
- categoryId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- categoryName: {type: string, nullable: true}
- parentDocumentId:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- securityLevel: {$ref: '#/SecurityLevel'}
- documentStatus: {$ref: '#/DocumentStatus'}
- deletedAt: {$ref: '#/UtcDateTime'}
- updatedBy:
- allOf:
- - $ref: '#/StringId'
- nullable: true
- updatedByName: {type: string, nullable: true}
- deletedBy:
- allOf:
- - $ref: '#/DeletedBySnapshot'
- nullable: true
- rowVersion: {type: integer, minimum: 0}
- RecycleBinDocumentPage:
- type: object
- additionalProperties: false
- required: [items, page, pageSize, total, totalPages]
- properties:
- items:
- type: array
- items: {$ref: '#/RecycleBinDocumentSummary'}
- page: {type: integer, minimum: 1}
- pageSize: {type: integer, minimum: 1, maximum: 100}
- total: {type: integer, minimum: 0}
- totalPages: {type: integer, minimum: 0}
- RecycleBinDocumentPageResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/RecycleBinDocumentPage'}
- requestId: {type: string, format: uuid}
- RestoreDocumentRequest:
- type: object
- additionalProperties: false
- required: [rowVersion]
- properties:
- rowVersion: {type: integer, minimum: 0}
- RestoredDocument:
- allOf:
- - $ref: '#/DocumentSummary'
- - type: object
- required: [originalFileName, mimeType, fileSize, permissionSummary]
- properties:
- originalFileName: {type: string}
- mimeType: {type: string, nullable: true}
- fileSize: {type: integer, minimum: 0}
- permissionSummary: {$ref: '#/PermissionSummary'}
- mountedPlanCount: {type: integer, minimum: 0}
- RestoreDocumentResult:
- type: object
- additionalProperties: false
- required:
- - document
- - restoredPermissionCount
- - skippedPermissionCount
- - restoredBindingCount
- - skippedBindingCount
- properties:
- document: {$ref: '#/RestoredDocument'}
- restoredPermissionCount: {type: integer, minimum: 0}
- skippedPermissionCount: {type: integer, minimum: 0}
- restoredBindingCount: {type: integer, minimum: 0}
- skippedBindingCount: {type: integer, minimum: 0}
- RestoreDocumentResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/RestoreDocumentResult'}
- requestId: {type: string, format: uuid}
- DictionaryOption:
- type: object
- additionalProperties: false
- required: [code, label, sortNo]
- properties:
- code: {type: string, minLength: 1}
- label: {type: string, minLength: 1}
- sortNo: {type: integer, minimum: 0}
- DictionaryOptionList:
- type: array
- items: {$ref: '#/DictionaryOption'}
- UiDictionaryGroups:
- type: object
- additionalProperties: false
- required:
- - roleCodes
- - allowedModules
- - documentTypes
- - documentStatuses
- - securityLevels
- - visibilityTypes
- - attachmentTypes
- - subjectTypes
- - allowedActions
- - categoryTypes
- - enabledStatuses
- - auditResults
- - auditActions
- - auditTargets
- properties:
- roleCodes: {$ref: '#/DictionaryOptionList'}
- allowedModules: {$ref: '#/DictionaryOptionList'}
- documentTypes: {$ref: '#/DictionaryOptionList'}
- documentStatuses: {$ref: '#/DictionaryOptionList'}
- securityLevels: {$ref: '#/DictionaryOptionList'}
- visibilityTypes: {$ref: '#/DictionaryOptionList'}
- attachmentTypes: {$ref: '#/DictionaryOptionList'}
- subjectTypes: {$ref: '#/DictionaryOptionList'}
- allowedActions: {$ref: '#/DictionaryOptionList'}
- categoryTypes: {$ref: '#/DictionaryOptionList'}
- enabledStatuses: {$ref: '#/DictionaryOptionList'}
- auditResults: {$ref: '#/DictionaryOptionList'}
- auditActions: {$ref: '#/DictionaryOptionList'}
- auditTargets: {$ref: '#/DictionaryOptionList'}
- UiDictionaries:
- type: object
- additionalProperties: false
- required: [version, locale, dictionaries]
- properties:
- version:
- type: string
- pattern: '^[0-9]{4}\.[0-9]+$'
- example: '2026.1'
- locale:
- type: string
- example: zh-CN
- dictionaries: {$ref: '#/UiDictionaryGroups'}
- UiDictionariesResponse:
- type: object
- additionalProperties: false
- required: [code, message, data, requestId]
- properties:
- code: {type: string, enum: [OK]}
- message: {type: string, enum: [success]}
- data: {$ref: '#/UiDictionaries'}
- requestId: {type: string, format: uuid}
|