Files
ERP/go-endpoints.md
T
QiufengandClaude Opus 4.8 5e51dc3f56 SNAPSHOT W7 已部署稳定态 — 凯迪ERP+OA一体化平台 (MET 73.3%)
恢复点(restore point)。别人改崩后可 git reset --hard 回到此提交。

== 此快照内容 ==
- 后端 oa-backend: 734 控制器 / 711 实体 (Spring Boot 3.2.5 + SQLite, 端口8091)
- 前端 modern-ui/app: Vue3+Vite, 约700页 (构建产物已在 oa-backend/src/main/resources/static)
- 数据库 oa-backend/data/oa.db: 含全部演示数据 (强制入库, 6.6MB)
- 交接文档 go.md + go-code-reference/endpoints/entities/database.md
- 多代理建设脚本 .claude/wf-*.js

== 状态 ==
- 对 凯迪科技ERP_20260507.xlsx 合规 MET ~73.3% (PARTIAL 75: 34可建+6种子/bug+35外部硬天花板)
- 安全: 5轮红队+5轮复检, default-deny分级鉴权, 连续零可利用
- W3~W7 累计补完436缺口; W8末轮(40缺口)为半成品(源码树可编译但未集成)
- 运行: cd oa-backend; java -jar build/libs/oa-backend-0.1.0.jar --server.port=8091; admin/123456

== 排除(gitignore, 可再生) ==
node_modules / oa-backend/build / .jdks / *.log / Backup-ERP-* / 弃用的OFBiz核心(只保留modern-ui)
完整文件夹备份见同目录 Backup-ERP-20260615-191517/ (含上述全部, 仅缺 node_modules)

时间戳: 20260615-191517

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 19:19:15 +08:00

7744 lines
167 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 完整端点目录(go-endpoints.md
> 自动从 `oa-backend/src/main/java/com/kaidi/oa/web/*.java` 抽取。共 734 个控制器。
> 格式:控制器类名 → `@RequestMapping` 基路径 → 各 HTTP 方法+子路径(实际访问 = 基路径+子路径)。
### AccountController
- base: `/api/oa/accounts`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AdminAiActionController
- base: `/api/oa/admin-ai-actions`
- `POST /minutes/{minuteId}/organize`
- `POST /dept-report/summarize`
- `POST /minutes/{minuteId}/sync-todos`
- `GET /logs`
### AdminCctvController
- base: `/api/oa/admin-cctv`
- `GET /devices`
- `GET /devices/{id}`
- `POST /devices`
- `PATCH /devices/{id}`
- `DELETE /devices/{id}`
- `POST /devices/{id}/inspect`
- `GET /devices/stats`
- `GET /footage-requests`
- `GET /footage-requests/{id}`
- `POST /footage-requests`
- `POST /footage-requests/{id}/approve`
- `POST /footage-requests/{id}/reject`
- `POST /footage-requests/{id}/mark-viewed`
- `GET /access-records`
- `POST /access-records`
- `DELETE /access-records/{id}`
- `GET /access-records/stats`
### AdminCleaningController
- base: `/api/oa/admin-cleaning-schedules`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/checkin`
- `POST /{id}/complete`
- `POST /{id}/absent`
- `DELETE /{id}`
- `GET /summary`
- `GET /hygiene-inspections`
- `GET /hygiene-inspections/{id}`
- `POST /hygiene-inspections`
- `POST /hygiene-inspections/{id}/rectify`
- `DELETE /hygiene-inspections/{id}`
- `GET (base)`
- `POST (base)`
### AdminCleaningSupplyController
- base: `/api/oa/admin-cleaning-supplies`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/moves`
- `POST /{id}/inbound`
- `POST /{id}/requisition`
- `POST /{id}/requisition-from-schedule`
- `GET /alerts/low-stock`
- `GET (base)`
- `POST (base)`
### AdminConferenceServiceController
- base: `(无@RequestMapping)`
- `POST /api/oa/meeting-rooms`
- `PATCH /api/oa/meeting-rooms/{id}`
- `DELETE /api/oa/meeting-rooms/{id}`
- `GET /api/oa/admin-conference-materials`
- `GET /api/oa/admin-conference-materials/{id}`
- `POST /api/oa/admin-conference-materials`
- `PATCH /api/oa/admin-conference-materials/{id}`
- `DELETE /api/oa/admin-conference-materials/{id}`
- `GET /api/oa/admin-equip-setups`
- `GET /api/oa/admin-equip-setups/{id}`
- `POST /api/oa/admin-equip-setups`
- `PATCH /api/oa/admin-equip-setups/{id}`
- `DELETE /api/oa/admin-equip-setups/{id}`
- `GET /api/oa/admin-conference-staff`
- `GET /api/oa/admin-conference-staff/{id}`
- `POST /api/oa/admin-conference-staff`
- `PATCH /api/oa/admin-conference-staff/{id}`
- `DELETE /api/oa/admin-conference-staff/{id}`
- `GET /api/oa/admin-recurring-bookings`
- `GET /api/oa/admin-recurring-bookings/{id}`
- `POST /api/oa/admin-recurring-bookings`
- `PATCH /api/oa/admin-recurring-bookings/{id}`
- `POST /api/oa/admin-recurring-bookings/{id}/status`
- `DELETE /api/oa/admin-recurring-bookings/{id}`
- `POST /api/oa/admin-recurring-bookings/expand-now`
### AdminDocTemplateController
- base: `/api/oa/admin-doc-templates`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/submit-review`
- `POST /{id}/review`
- `POST /{id}/archive`
- `POST /ai-draft`
- `POST /{id}/ai-draft-from-template`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AdminDormController
- base: `/api/oa/admin-dorms`
- `GET /rooms`
- `GET /rooms/{id}`
- `POST /rooms`
- `PATCH /rooms/{id}`
- `DELETE /rooms/{id}`
- `GET /checkins`
- `POST /checkins`
- `POST /checkins/{id}/assign`
- `POST /checkins/{id}/reject`
- `POST /checkins/{id}/checkout`
- `GET /utilities`
- `POST /utilities`
- `POST /utilities/{id}/settle`
- `DELETE /utilities/{id}`
- `GET /occupancy`
### AdminDormRepairController
- base: `/api/oa/admin-dorm-repairs`
- `GET /{id}`
- `POST /{id}/assign`
- `POST /{id}/complete`
- `POST /{id}/rate`
- `POST /{id}/cancel`
- `DELETE /{id}`
- `GET /kpi`
- `GET /inspections`
- `GET /inspections/{id}`
- `POST /inspections`
- `POST /inspections/{id}/submit`
- `POST /inspections/{id}/rectify`
- `POST /inspections/{id}/close`
- `DELETE /inspections/{id}`
- `GET (base)`
- `POST (base)`
### AdminExpressController
- base: `/api/oa/admin-express`
- `GET /{id}`
- `POST /inbound`
- `POST /{id}/pickup`
- `POST /{id}/return-parcel`
- `POST /outbound`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/ship`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /cost/by-dept`
- `GET (base)`
### AdminGreeneryController
- base: `/api/oa/admin-greenery`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/water`
- `POST /{id}/fertilize`
- `POST /{id}/prune`
- `POST /{id}/report-pest`
- `POST /{id}/resolve-pest`
- `GET /alerts/overdue`
- `GET (base)`
- `POST (base)`
### AdminOfficialDocTemplateController
- base: `/api/oa/admin-official-doc-tpls`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/publish`
- `POST /{id}/archive`
- `POST /{id}/obsolete`
- `DELETE /{id}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### AdminPatrolController
- base: `/api/oa/admin-patrols`
- `GET /points`
- `GET /points/{id}`
- `POST /points`
- `PATCH /points/{id}`
- `POST /points/{id}/disable`
- `DELETE /points/{id}`
- `GET /logs`
- `GET /logs/{id}`
- `POST /logs/checkin`
- `POST /logs/{id}/handle-anomaly`
### AdminProcurementController
- base: `/api/oa/admin-procurement-requests`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/start-procurement`
- `POST /{id}/inbound`
- `GET /plan/summary`
- `GET (base)`
- `POST (base)`
### AdminReceptionController
- base: `/api/oa/admin-receptions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/start`
- `POST /{id}/complete`
- `GET /cost/by-dept`
- `GET (base)`
- `POST (base)`
### AdminRequisitionController
- base: `/api/oa/admin-requisitions`
- `GET /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/issue`
- `DELETE /{id}`
- `GET /quotas`
- `POST /quotas`
- `DELETE /quotas/{id}`
- `GET (base)`
- `POST (base)`
### AdminSecurityEventController
- base: `/api/oa/admin-security-events`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start-handle`
- `POST /{id}/close`
- `GET (base)`
- `POST (base)`
### AdminShuttleBusController
- base: `/api/oa/admin-shuttle-buses`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/suspend`
- `POST /{id}/resume`
- `DELETE /{id}`
- `GET /{id}/passengers`
- `POST /{id}/book`
- `POST /passengers/{pid}/cancel`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### AdminShuttleController
- base: `/api/oa/admin-shuttles`
- `GET /buses`
- `GET /buses/{id}`
- `POST /buses`
- `PATCH /buses/{id}`
- `DELETE /buses/{id}`
- `GET /passengers`
- `POST /passengers`
- `POST /passengers/{id}/cancel`
- `POST /passengers/{id}/checkin`
- `GET /stats`
### AdminSupplyController
- base: `/api/oa/admin-supplies`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/moves`
- `GET /moves`
- `POST /{id}/inbound`
- `POST /{id}/outbound`
- `GET /alerts/low-stock`
- `GET /alerts/expiry`
- `GET /cost/allocation`
- `GET (base)`
- `POST (base)`
### AdminTrainingController
- base: `/api/oa/admin-trainings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/open-enroll`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/cancel`
- `GET /{courseId}/enrollments`
- `POST /{courseId}/enrollments`
- `POST /{courseId}/enrollments/{enrollId}/sign-in`
- `POST /{courseId}/enrollments/{enrollId}/score`
- `DELETE /{courseId}/enrollments/{enrollId}`
- `GET /stats`
- `GET /my-records`
- `GET (base)`
- `POST (base)`
### AdminTrainingQuizController
- base: `/api/oa/admin-quiz`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/disable`
- `POST /{id}/enable`
- `POST /generate`
- `GET /learning-path`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### AdminVehicleController
- base: `/api/oa/admin-vehicles`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /dispatches`
- `GET /dispatches/{id}`
- `POST /dispatches`
- `POST /dispatches/{id}/assign`
- `POST /dispatches/{id}/depart`
- `POST /dispatches/{id}/return`
- `POST /dispatches/{id}/cancel`
- `GET /alerts/expiry`
- `GET /cost/allocation`
- `GET (base)`
- `POST (base)`
### AdminVehicleReportController
- base: `/api/oa/admin-vehicle-reports`
- `GET /usage-trend`
- `GET /fuel-trend`
- `GET /repair-ranking`
- `GET /summary`
### AdminVehicleViolationController
- base: `/api/oa/admin-vehicle-violations`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/process`
- `POST /{id}/pay-fine`
- `POST /{id}/close`
- `DELETE /{id}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### AdminVisitorController
- base: `/api/oa/admin-visitors`
- `GET /{id}`
- `POST /{id}/confirm`
- `POST /{id}/reject`
- `POST /{id}/checkin`
- `POST /{id}/checkout`
- `GET /verify`
- `GET /onsite`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AiController
- base: `/api/oa/ai`
- `POST /complete`
- `POST /draft`
- `POST /classify`
- `POST /summarize`
- `POST /risk`
### AlertController
- base: `/api/oa/alerts`
- `GET (base)`
### AnnouncementController
- base: `/api/oa/announcements`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AnnualReportController
- base: `/api/oa/annual-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/auto-fill`
- `POST /{id}/validate`
- `POST /{id}/advance`
- `GET /trend`
- `GET (base)`
- `POST (base)`
### AppMonitoringController
- base: `/api/oa/appdev`
- `GET /monitoring`
### ArApController
- base: `/api/oa/ar-ap-items`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/writeoff`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### ArchiveAccessLogController
- base: `/api/oa/archive-access-logs`
- `GET /by-archive/{archiveId}`
- `GET /by-action`
- `GET /report`
- `GET (base)`
- `POST (base)`
### ArchiveAclAwareListController
- base: `/api/oa/archive-acl-aware`
- `GET /list`
- `GET /{id}`
- `GET /{id}/perm-bits`
- `GET /my-accessible`
### ArchiveAclController
- base: `/api/oa/archive-acls`
- `GET /by-target`
- `GET /by-grantee`
- `GET /check`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/revoke`
- `GET (base)`
- `POST (base)`
### ArchiveAclEnforceController
- base: `/api/oa/archive-acl-enforce`
- `GET /check`
- `GET /{id}/masked`
- `GET /my-permissions`
### ArchiveBatchController
- base: `/api/oa/archive-batch`
- `POST /transfer`
- `POST /meta-update`
- `POST /download-list`
### ArchiveBoardController
- base: `/api/oa/archive-board`
- `GET /retention-alerts`
- `GET /overdue-borrows`
- `GET /stats`
### ArchiveBorrowController
- base: `/api/oa/archive-borrows`
- `GET /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/lend`
- `POST /{id}/return`
- `POST /{id}/renew`
- `GET /stats/hot-archives`
- `GET /stats/by-dept`
- `GET (base)`
- `POST (base)`
### ArchiveCategoryController
- base: `/api/oa/archive-categories`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### ArchiveCommentController
- base: `/api/oa/archive-comments`
- `GET (base)`
- `POST (base)`
### ArchiveComplianceController
- base: `/api/oa/archive-compliance`
- `GET /report/export`
- `GET /backup-config`
- `GET /conversion-check`
- `GET /summary`
### ArchiveController
- base: `/api/oa/archives`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### ArchiveCrossModuleController
- base: `/api/oa/archive-cross`
- `GET /declaration/{declId}/archive-status`
- `POST /contract/{contractId}/archive`
- `POST /litigation/{caseId}/archive`
- `GET /supervision/drawing-versions`
- `POST /supervision/drawing/{archiveId}/new-version`
- `POST /finance/{year}/accounting-archive`
- `POST /hr/employee/{employeeNo}/archive`
- `POST /ip/cert/archive`
- `POST /quality/record/archive`
- `GET /integration-dashboard`
### ArchiveDestructionController
- base: `/api/oa/archive-destructions`
- `GET /{id}`
- `POST /{id}/appraise`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/execute`
- `GET (base)`
- `POST (base)`
### ArchiveDrillController
- base: `/api/oa/archive-drill`
- `GET /drills`
- `GET /drills/{id}`
- `POST /drills`
- `PATCH /drills/{id}`
- `POST /drills/{id}/start`
- `POST /drills/{id}/complete`
- `POST /drills/{id}/fail`
- `GET /backup-logs`
- `POST /backup-logs/trigger`
### ArchiveHashRecordController
- base: `/api/oa/archive-hash-records`
- `GET /{id}`
- `GET /alerts`
- `POST /stamp/{archiveId}`
- `POST /stamp-batch`
- `POST /{id}/verify`
- `GET (base)`
### ArchivePhysicalItemController
- base: `/api/oa/archive-physical-items`
- `GET /{id}`
- `GET /scan/{barcode}`
- `POST /{id}/shelve`
- `POST /{id}/check-out`
- `POST /{id}/check-in`
- `POST /{id}/contents`
- `POST /batch-inventory`
- `GET (base)`
- `POST (base)`
### ArchiveRepairRecordController
- base: `/api/oa/archive-repair-records`
- `GET /{id}`
- `GET /alerts`
- `POST /{id}/start`
- `POST /{id}/finish`
- `POST /{id}/scrap`
- `GET (base)`
- `POST (base)`
### ArchiveReservationController
- base: `/api/oa/archive-reservations`
- `GET /by-archive/{archiveId}`
- `GET /{id}`
- `POST /{id}/notify`
- `POST /{id}/convert`
- `POST /{id}/cancel`
- `GET (base)`
- `POST (base)`
### ArchiveSubmissionController
- base: `/api/oa/archive-submissions`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /batch-import`
- `POST /{id}/resubmit`
- `GET (base)`
- `POST (base)`
### ArchiveVaultController
- base: `/api/oa/archive-vaults`
- `GET /{id}`
- `GET /{id}/usage`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### ArchiveVersionController
- base: `/api/oa/archive-versions`
- `GET /by-archive/{archiveId}`
- `GET /current/{archiveId}`
- `GET /{id}`
- `POST /publish`
- `POST /{id}/deprecate`
### AuditAnnualPlanController
- base: `/api/oa/audit-annual-plans`
- `GET /{id}`
- `GET /conflict-check`
- `PUT /{id}`
- `PATCH /{id}/submit`
- `PATCH /{id}/approve`
- `PATCH /{id}/reject`
- `PATCH /{id}/start`
- `PATCH /{id}/complete`
- `POST /{id}/link-project`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditArchiveController
- base: `/api/oa/audit-archives`
- `GET /{id}`
- `GET /search`
- `GET /findings-library`
- `GET /summary`
- `PUT /{id}`
- `PATCH /{id}/archive`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditAutoArchiveController
- base: `/api/oa/audit-auto-archive`
- `GET /pending`
- `POST /trigger`
### AuditCaatController
- base: `/api/oa/caats`
- `GET /payment-trend`
- `GET /duplicate-payment`
- `GET /large-payment`
- `GET /contract-ratio`
- `GET /payee-concentration`
- `GET /benford`
### AuditCaatsController
- base: `/api/oa/audit-caats`
- `GET /payment-trend`
- `GET /duplicate-payment`
- `GET /expense-ratio`
- `GET /large-payment`
- `GET /contract-amount-range`
- `GET /payee-concentration`
- `GET /expense-limit-approach`
- `GET /continuous-report`
- `PATCH /continuous-report/{id}/handle`
- `GET /inventory-anomaly`
- `GET /hr-contract-sample`
- `GET /contract-sample`
- `GET /summary`
### AuditCrossModuleController
- base: `/api/oa/audit-cross-module`
- `GET /hr-summary`
- `GET /hr-payroll`
- `GET /hr-labor-contracts`
- `GET /production-summary`
- `GET /production-orders`
- `GET /decl-summary`
- `GET /decl-list`
- `GET /decl-subsidies`
### AuditDashboardController
- base: `/api/oa/audit-dashboard`
- `GET /committee-report`
- `GET (base)`
### AuditDataAggregateController
- base: `/api/oa/audit-data-aggregate`
- `GET /finance-overview`
- `GET /contract-list`
- `GET /payment-list`
- `GET /expense-list`
- `GET /bank-statement`
- `GET /fixed-asset-risk`
- `GET /legal-exposure`
- `GET /compliance-checklist`
- `GET /vendor-concentration`
- `GET /payee-anomaly`
- `GET /sales-order-view`
- `GET /bill-ledger`
- `GET /self-check-task-detail`
### AuditEvidenceController
- base: `/api/oa/audit-evidence`
- `GET /{id}`
- `GET /search`
- `GET /categories`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditFindingController
- base: `/api/oa/audit-findings`
- `GET /{id}`
- `PATCH /{id}/feedback`
- `PATCH /{id}/confirm`
- `PATCH /{id}/reject`
- `PATCH /{id}/rootcause`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditMaterialRequestController
- base: `/api/oa/audit-material-requests`
- `GET /{id}`
- `GET /progress`
- `PUT /{id}`
- `PATCH /{id}/submit`
- `PATCH /{id}/verify`
- `PATCH /{id}/reject-file`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditNoticeController
- base: `/api/oa/audit-notices`
- `GET /{id}`
- `PATCH /{id}/sign`
- `PATCH /{id}/recall`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditProcedureController
- base: `/api/oa/audit-procedures`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/use`
- `POST /{id}/copy`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditProjectController
- base: `/api/oa/audit-projects`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditQualityReviewController
- base: `/api/oa/audit-quality-reviews`
- `GET /{id}`
- `GET /stats`
- `PATCH /{id}/start-review`
- `PATCH /{id}/complete`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditRegLibController
- base: `/api/oa/audit-reg-lib`
- `GET /search`
- `GET /overview`
- `GET /internal`
- `GET /external`
### AuditReportController
- base: `/api/oa/audit-reports`
- `GET /{id}`
- `POST /{id}/auto-generate`
- `PUT /{id}`
- `PATCH /{id}/submit`
- `PATCH /{id}/approve`
- `PATCH /{id}/reject`
- `PATCH /{id}/send`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditRiskAuditController
- base: `/api/oa/audit-risk-assessments`
- `GET /{id}`
- `GET /summary`
- `POST /import-from-risk-library`
- `PUT /{id}`
- `PATCH /{id}/assess`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditSettlementAggController
- base: `/api/oa/audit-settlement-agg`
- `GET /internal-trans-ledger`
- `GET /litigation-penalty`
- `GET /economic-audit-autofill`
- `GET /vendor-price-spike`
- `GET /expense-near-limit`
### AuditWorkPaperController
- base: `/api/oa/audit-work-papers`
- `GET /{id}`
- `PUT /{id}`
- `PATCH /{id}/revise`
- `PATCH /{id}/submit-review`
- `PATCH /{id}/review`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuditorProfileController
- base: `/api/oa/auditor-profiles`
- `GET /{id}`
- `GET /available`
- `GET /conflict-check`
- `PUT /{id}`
- `PATCH /{id}/disable`
- `POST /{id}/assign-project`
- `POST /{id}/release-project`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### AuthController
- base: `/api/oa/auth`
- `POST /login`
- `GET /session`
- `POST /logout`
### AutomationController
- base: `/api/oa/automation-logs`
- `GET /by-instance/{instanceId}`
- `GET (base)`
### BankAccountController
- base: `/api/oa/bank-accounts`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `PATCH /{id}/sync-balance`
- `GET /balance-alerts`
- `GET (base)`
- `POST (base)`
### BankReconciliationController
- base: `/api/oa/reconciliations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### BidBondController
- base: `/api/oa/bid-bonds`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/pay`
- `POST /{id}/request-refund`
- `POST /{id}/refund`
- `POST /{id}/forfeit`
- `DELETE /{id}`
- `GET /board`
- `GET (base)`
- `POST (base)`
### BidController
- base: `/api/oa/bids`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### BidDecisionController
- base: `/api/oa/bid-decisions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/decide`
- `GET /{id}/tasks`
- `PATCH /tasks/{taskId}`
- `GET /{id}/progress`
- `POST /{id}/seal-trigger`
- `POST /{id}/lock-materials`
- `POST /{id}/unlock-materials`
- `GET (base)`
- `POST (base)`
### BidDepositController
- base: `/api/oa/bid-deposits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/pay`
- `POST /{id}/refund`
- `GET /alerts/overdue`
- `GET (base)`
- `POST (base)`
### BidDocVersionController
- base: `/api/oa/bid-doc-versions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/annotate`
- `POST /{id}/collaborators`
- `POST /{id}/status`
- `GET /{id}/chain`
- `GET /pending`
- `GET (base)`
- `POST (base)`
### BidKnowledgeController
- base: `/api/oa/bid-knowledge`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /stats`
- `GET /top-viewed`
- `POST /csl-bid-links`
- `GET /csl-bid-links`
- `DELETE /csl-bid-links/{id}`
- `GET /csl-bid-links/accurate-view`
- `GET /repurchase-alerts`
- `POST (base)`
- `GET (base)`
### BidLossCaseController
- base: `/api/oa/bid-loss-cases`
- `GET /{id}`
- `GET /stats`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /stats/by-industry`
- `GET /stats/bid-analytics`
- `GET (base)`
- `POST (base)`
### BidTenderCollabController
- base: `/api/oa/bid-tender-collabs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### BidTenderDocController
- base: `/api/oa/bid-tender-docs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/bond-return`
- `GET /alerts/deadline`
- `GET /alerts/bond-overdue`
- `GET /fee-summary`
- `GET (base)`
- `POST (base)`
### BizBudgetController
- base: `/api/oa/biz-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/occupy`
- `POST /{id}/release`
- `GET /board`
- `GET (base)`
- `POST (base)`
### BizPlanController
- base: `/api/oa/biz-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/issue`
- `GET /{id}/targets`
- `POST /{id}/targets`
- `PATCH /targets/{targetId}`
- `DELETE /targets/{targetId}`
- `POST /{id}/sync`
- `GET /{id}/completion`
- `GET (base)`
- `POST (base)`
### BizRecordController
- base: `/api/oa/biz`
- `GET /{type}`
- `POST /{type}`
- `PUT /{type}/{id}`
- `DELETE /{type}/{id}`
### BlogController
- base: `/api/oa/blogs`
- `GET /{id}`
- `PATCH /{id}`
- `GET (base)`
- `POST (base)`
### BomAnalysisController
- base: `/api/oa/bom-items`
- `GET /cost-compare`
- `GET /backfill/preview`
- `POST /backfill/apply`
- `POST /{id}/backfill`
### BomItemController
- base: `/api/oa/bom-items`
- `GET /tree`
- `GET /mrp`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /{id}/signoffs`
- `POST /{id}/sign`
- `GET (base)`
- `POST (base)`
### BomVarianceDetailController
- base: `/api/oa/bom-variance-details`
- `GET /{id}`
- `PATCH /{id}/tag`
- `DELETE /{id}`
- `GET /{id}/drill`
- `GET /dashboard`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### BranchAssetController
- base: `/api/oa/branch-assets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/depreciate`
- `GET /depreciation-summary`
- `GET (base)`
- `POST (base)`
### BranchBudgetLineController
- base: `/api/oa/branch-budget-lines`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/promote-to-hq`
- `POST /{id}/hq-approve`
- `GET (base)`
- `POST (base)`
### BranchCostEntryController
- base: `/api/oa/branch-cost-entries`
- `GET /{id}`
- `GET /summary`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### BranchFinStatementController
- base: `/api/oa/branch-fin-statements`
- `GET /branches`
- `GET /balance-sheet`
- `GET /income-statement`
- `GET /cash-flow`
- `GET /three-statements`
- `GET /ar-ap-detail`
### BranchLicenseController
- base: `/api/oa/branch-licenses`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /alerts/annual-inspect`
- `GET /alerts/expiry`
- `GET (base)`
- `POST (base)`
### BranchMonthlyPnlController
- base: `/api/oa/branch-monthly-pnl`
- `GET /monthly`
- `GET /monthly-all`
- `GET /period`
### BranchPnlController
- base: `/api/oa/branch-pnl`
- `GET /board`
- `GET /statement/{branchId}`
### BrandAssetController
- base: `/api/oa/brand-assets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-review`
- `POST /{id}/review`
- `POST /{id}/consume`
- `GET /stock-alerts`
- `GET /honors`
- `GET /honors/{id}`
- `POST /honors`
- `PATCH /honors/{id}`
- `DELETE /honors/{id}`
- `GET /honors/expiry-alerts`
- `GET (base)`
- `POST (base)`
### BrandChronicleController
- base: `/api/oa/brand-chronicle`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /timeline`
- `GET /stats/yearly`
- `GET /categories`
- `GET (base)`
- `POST (base)`
### BrandCollabController
- base: `/api/oa/brand-collab`
- `GET /{id}`
- `POST /push-honor`
- `POST /push-event`
- `POST /push-product`
- `POST /push-hr`
- `POST /push-ops`
- `POST /push-legal`
- `POST /push-finance`
- `PATCH /{id}/receive`
- `PATCH /{id}/reject`
- `GET /inbox`
- `GET (base)`
### BrandDashboardController
- base: `/api/oa/brand-dashboard`
- `GET /calendar`
- `GET (base)`
### BrandEventController
- base: `/api/oa/brand-events`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/tasks`
- `POST /{id}/tasks`
- `PATCH /tasks/{taskId}`
- `DELETE /tasks/{taskId}`
- `POST /{id}/execute`
- `POST /{id}/close`
- `POST /{id}/cancel`
- `POST /{id}/summarize`
- `GET /{id}/board`
- `GET (base)`
- `POST (base)`
### BrandEventMaterialController
- base: `(无@RequestMapping)`
- `GET /api/oa/brand-events/{eventId}/materials`
- `POST /api/oa/brand-events/{eventId}/materials`
- `GET /api/oa/event-materials`
- `GET /api/oa/event-materials/{id}`
- `PATCH /api/oa/event-materials/{id}`
- `DELETE /api/oa/event-materials/{id}`
- `POST /api/oa/event-materials/{id}/start`
- `POST /api/oa/event-materials/{id}/ready`
- `POST /api/oa/event-materials/{id}/issue`
- `GET /api/oa/event-materials/stat`
### BrandPlanController
- base: `/api/oa/brand-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/start`
- `POST /{id}/complete`
- `GET /{id}/budget`
- `GET (base)`
- `POST (base)`
### BrandProjectController
- base: `/api/oa/brand-projects`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/execute`
- `POST /{id}/finish`
- `POST /{id}/cancel`
- `GET /{id}/expenses`
- `POST /{id}/expenses`
- `POST /expenses/{expenseId}/approve`
- `POST /expenses/{expenseId}/reject`
- `GET (base)`
- `POST (base)`
### BrandSupplierController
- base: `/api/oa/brand-suppliers`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/approve`
- `POST /{id}/disable`
- `GET /compare`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### BudgetController
- base: `/api/oa/budgets`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### BusinessBiController
- base: `/api/oa/reports`
- `GET /business-overview`
### CanteenMenuController
- base: `/api/oa/canteen-menus`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /publish`
- `GET /{id}/reviews`
- `POST /{id}/reviews`
- `GET /popular`
- `GET (base)`
- `POST (base)`
### CanteenProcurementController
- base: `/api/oa/canteen-procurement`
- `GET /suggestion`
- `POST /convert-to-requests`
- `GET /history`
### CanteenSanitationController
- base: `/api/oa/canteen-sanitations`
- `GET /{id}`
- `POST /{id}/rectify`
- `DELETE /{id}`
- `GET /stats`
- `GET /meal-costs`
- `GET /meal-costs/{id}`
- `POST /meal-costs`
- `DELETE /meal-costs/{id}`
- `GET /meal-costs/report`
- `GET (base)`
- `POST (base)`
### CertificationController
- base: `/api/oa/certifications`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### ChronicleEventController
- base: `/api/oa/chronicle-events`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /timeline`
- `GET (base)`
- `POST (base)`
### ClauseCompareController
- base: `/api/oa/clause-compare`
- `POST /raw`
- `POST (base)`
### CollabDocController
- base: `/api/oa/collab-docs`
- `GET /{id}`
- `PUT /{id}`
- `GET /{id}/versions`
- `GET /{id}/comments`
- `POST /{id}/comments`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CompanySubjectController
- base: `/api/oa/company-subjects`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CompetitorIpController
- base: `/api/oa/competitor-ips`
- `GET /{id}`
- `POST /batch-import`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /compute`
- `GET /compare`
- `GET (base)`
- `POST (base)`
### CompletionAcceptanceController
- base: `/api/oa/completion-acceptances`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/pass`
- `GET (base)`
- `POST (base)`
### ComplianceAlertRuleController
- base: `/api/oa/compliance-alert-rules`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle`
- `POST /simulate`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### ComplianceAnonReportController
- base: `/api/oa/compliance-anon-reports`
- `GET /query`
- `GET /{id}`
- `PATCH /{id}/handle`
- `GET /stats/overview`
- `POST (base)`
- `GET (base)`
### ComplianceChecklistController
- base: `/api/oa/compliance-checklists`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish`
- `POST /{id}/deprecate`
- `POST /{id}/dispatch`
- `GET /tasks`
- `GET /tasks/{taskId}`
- `POST /tasks/{taskId}/submit`
- `POST /tasks/{taskId}/review`
- `DELETE /tasks/{taskId}`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### ComplianceObligationController
- base: `/api/oa/compliance-obligations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /alerts/due`
- `GET (base)`
- `POST (base)`
### ComplianceRiskReportController
- base: `/api/oa/compliance-risk-reports`
- `GET /{id}`
- `POST /scan`
- `POST /{id}/submit`
- `POST /{id}/review`
- `POST /{id}/archive`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### ComplianceViolationController
- base: `/api/oa/compliance-violations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/close`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### ContentController
- base: `/api/oa/content-pieces`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/reviews`
- `POST /{id}/submit`
- `POST /{id}/review/approve`
- `POST /{id}/review/reject`
- `POST /{id}/publish`
- `GET /{id}/versions`
- `POST /{id}/versions`
- `GET /{id}/versions/{vid}/diff`
- `GET (base)`
- `POST (base)`
### ContentTaskController
- base: `/api/oa/content-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/restart`
- `GET (base)`
- `POST (base)`
### ContractBudgetReviewController
- base: `/api/oa/contract-budget-reviews`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/reopen`
- `GET /over-budget`
- `GET (base)`
- `POST (base)`
### ContractChangeController
- base: `/api/oa/contract-changes`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### ContractController
- base: `/api/oa/contracts`
- `GET /search`
- `GET /overdue-alert`
- `GET /{id}`
- `POST /draft-from-template`
- `POST /{id}/create-sub`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/print`
- `POST /prereview`
- `GET (base)`
- `POST (base)`
### ContractCostExtController
- base: `/api/oa/contract-cost-ext`
- `POST /tax-calc`
- `POST /amount-check`
- `GET /{id}/supplement-summary`
- `GET /{id}/cost-summary`
- `GET /supplier-check`
### ContractMilestoneController
- base: `/api/oa/contract-milestones`
- `GET (base)`
- `POST (base)`
### ContractTemplateController
- base: `/api/oa/contract-templates`
- `GET /{id}`
- `GET /{id}/body`
- `GET (base)`
- `POST (base)`
### CostAdjustLogController
- base: `/api/oa/cost-adjust-logs`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### CostAuditTraceController
- base: `/api/oa/cost-audit`
- `GET /by-supplier`
- `GET /by-subject`
- `GET /by-project`
- `GET /drill`
### CostCenterController
- base: `/api/oa/cost-centers`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /tree`
- `GET (base)`
- `POST (base)`
### CostCrossDeptController
- base: `/api/oa/cost-cross-dept`
- `POST /sync-labor-rate`
- `POST /ebom-to-bom-signoff`
- `GET /audit-package`
- `POST /bom-variance-allocate`
- `GET /payment-gate-check`
### CostCtrlDeepController
- base: `/api/oa/cost-ctrl-deep`
- `POST /mbom-to-standard-cost`
- `POST /sync-purchase-avg-price`
- `POST /batch-complete-trigger`
- `POST /contract-settlement-lock`
- `GET /variance-by-dept`
- `POST /valuation-engine/calc`
- `GET /supplier-cost-trend`
### CostCtrlExtController
- base: `/api/oa/cost-ctrl-ext`
- `POST /standard-costs/{id}/transition`
- `GET /standard-costs/versions`
- `POST /price-items/sync-from-procurement`
- `POST /bid-list/import`
- `GET /bid-list/compare`
- `GET /payment-gate/check`
- `GET /bid-vs-contract/compare`
- `GET /audit/by-subject-project`
### CostHrLaborRateController
- base: `/api/oa/cost-hr-labor-rates`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /lookup`
- `POST /derive-from-hr`
- `POST /backfill-production-reports`
- `GET (base)`
- `POST (base)`
### CostIntegrationController
- base: `/api/oa/cost-integration`
- `POST /sales-order-wbs-sync`
- `POST /sales-order-wbs-sync/batch`
- `GET /cost-inv-links`
- `GET /cost-inv-links/{id}`
- `POST /cost-inv-links`
- `PUT /cost-inv-links/{id}`
- `DELETE /cost-inv-links/{id}`
- `GET /cost-inv-links/realtime-balance`
- `POST /cost-inv-links/auto-link`
### CostProcurementBiddingController
- base: `/api/oa/cost-procurement-bids`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /sessions`
- `POST /sessions/{sessionCode}/close`
- `POST /sessions/{sessionCode}/cancel`
- `POST /sessions/{sessionCode}/recommend`
- `POST /sessions/{sessionCode}/select/{id}`
- `GET /sessions`
- `GET /bid-vs-budget-price`
- `GET (base)`
- `POST (base)`
### CostPurchaseOrderController
- base: `/api/oa/cost-purchase-orders`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `PATCH /{id}/submit`
- `PATCH /{id}/review`
- `PATCH /{id}/start`
- `PATCH /{id}/arrive`
- `PATCH /{id}/cancel`
- `GET /price-alerts`
- `GET /saving-summary`
- `GET /price-trend`
- `GET (base)`
- `POST (base)`
### CostReductionController
- base: `/api/oa/cost-reductions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `PATCH /{id}/start`
- `PATCH /{id}/complete`
- `PATCH /{id}/cancel`
- `GET /summary`
- `GET /trend`
- `GET (base)`
- `POST (base)`
### CrawlJobController
- base: `/api/oa/crawl-jobs`
- `GET /{id}`
- `GET (base)`
### CrawlSourceController
- base: `/api/oa/crawl-sources`
- `GET /{id}`
- `POST /{id}/run`
- `GET (base)`
- `POST (base)`
### CrisisPlanController
- base: `/api/oa/crisis-plans`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/publish`
- `DELETE /{id}`
- `GET /match`
- `POST /{id}/activate`
- `GET (base)`
- `POST (base)`
### CrmAnalysisController
- base: `/api/oa/crm-analysis`
- `GET /customer-analysis`
- `GET /contract-analysis`
- `GET /branch-forecast`
### CrmBidAnalysisController
- base: `/api/oa/crm-bid-analysis`
- `GET /summary`
- `GET /win-rate-by-industry`
- `GET /roi`
- `GET /discount-distribution`
### CrmBidAnalyticsController
- base: `/api/oa/crm-bid-analytics`
- `GET /loss-cases`
- `GET /loss-cases/{id}`
- `POST /loss-cases`
- `POST /loss-cases/from-bid/{bidId}`
- `PATCH /loss-cases/{id}`
- `DELETE /loss-cases/{id}`
- `GET /stats`
- `GET /by-industry`
- `GET /by-region`
- `GET /loss-reasons`
- `GET /roi`
- `GET /special-items`
### CrmBidQuoteDetailController
- base: `/api/oa/crm-bid-quote-details`
- `GET /by-bid/{bidId}`
- `GET /summary/{bidId}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST (base)`
### CrmBizAchievLinkController
- base: `/api/oa/crm-biz-achiev-link`
- `GET /summary`
- `GET /for-decl`
- `GET /decl-context`
- `GET /usage-report`
### CrmBranchLeaseController
- base: `/api/oa/crm-branch-leases`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /alerts`
- `GET /rent-alerts`
- `GET (base)`
- `POST (base)`
### CrmBranchPetitionController
- base: `/api/oa/crm-branch-petitions`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/withdraw`
- `DELETE /{id}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### CrmBusinessAnalyticsController
- base: `/api/oa/crm-biz-analytics`
- `GET /customer-contribution`
- `GET /customer-churn-rate`
- `GET /overdue-contracts`
- `GET /warranty-expiring`
- `GET /contract-summary`
- `GET /satisfaction-trend`
### CrmCompetitorController
- base: `/api/oa/crm-competitors`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /compare`
- `GET /industry-stats`
- `GET (base)`
- `POST (base)`
### CrmContractApprovalController
- base: `/api/oa/crm-contract-approvals`
- `GET /status/{contractId}`
- `GET /milestone-reminders`
- `POST /launch/{contractId}`
- `POST /approve/{contractId}`
- `GET (base)`
### CrmCostEstimateController
- base: `/api/oa/cost-estimates`
- `GET /by-project`
- `GET /quote-fill`
- `GET (base)`
### CrmCustomerAlertController
- base: `/api/oa/crm-customer-alerts`
- `GET /churn-risk`
- `GET /satisfaction-queue`
- `GET /contribution`
- `GET /tier-distribution`
### CrmCustomerContactController
- base: `/api/oa/crm-customer-contacts`
- `GET /by-customer/{customerId}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /360/{customerId}`
- `POST (base)`
### CrmDailyReportController
- base: `/api/oa/crm-daily-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `GET /period-stats`
- `GET (base)`
- `POST (base)`
### CrmDocReceiptController
- base: `/api/oa/crm-doc-receipts`
- `GET /{id}`
- `GET /progress`
- `POST /dispatch`
- `POST /{id}/ack`
- `POST /{id}/read`
- `PATCH /{id}/exempt`
- `GET (base)`
### CrmFollowScriptController
- base: `/api/oa/crm-follow-scripts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /ai-script`
- `POST /ai-summarize`
- `GET /match`
- `GET (base)`
- `POST (base)`
### CrmGpsTrackController
- base: `/api/oa/crm-gps-tracks`
- `GET /daily`
- `GET /summary`
### CrmMarketingDashboardController
- base: `/api/oa/crm-marketing-dashboard`
- `POST /promo-copy`
- `POST /campaign-review`
- `GET /funnel`
- `GET /summary`
### CrmMobileBizController
- base: `/api/oa/crm-mobile-biz`
- `GET /kpi`
- `GET /recent-contracts`
- `GET /recent-bids`
- `GET /trend`
### CrmOpportunityStageController
- base: `/api/oa/crm-opp-stages`
- `GET /all`
- `PUT /{id}`
- `PATCH /{id}/disable`
- `DELETE /{id}`
- `GET /conversion-rate`
- `GET (base)`
- `POST (base)`
### CrmPerformanceScoreController
- base: `/api/oa/crm-performance`
- `GET /by-person`
- `GET /by-dept`
- `GET /dashboard`
### CrmPettyCashController
- base: `/api/oa/crm-petty-cash`
- `GET /{id}`
- `GET /summary`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/disburse`
- `POST /{id}/verify`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CrmPnlMonthlyController
- base: `/api/oa/crm-pnl-monthly`
- `GET /trend`
- `GET (base)`
### CrmProjectWbsController
- base: `/api/oa/crm-project-wbs`
- `GET /gantt`
- `GET /progress`
- `POST /init`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /sync`
- `GET (base)`
- `POST (base)`
### CrmSatisfactionController
- base: `/api/oa/crm-satisfaction`
- `GET /{id}`
- `POST /auto-trigger`
- `PATCH /{id}/submit`
- `PATCH /{id}/archive`
- `GET /trend`
- `GET /churn-alerts`
- `GET (base)`
- `POST (base)`
### CslAnalyticsDrillController
- base: `/api/oa/csl-analytics`
- `GET /by-client`
- `GET /by-person`
- `GET /by-field`
### CslArchiveController
- base: `/api/oa/csl-archives`
- `GET /{id}`
- `DELETE /{id}`
- `POST /projects/{projectId}/archive`
- `GET /projects/{projectId}/declaration-feed`
- `GET (base)`
- `POST (base)`
### CslChapterCommentController
- base: `/api/oa/csl-chapter-comments`
- `GET /chapters/{chapterId}`
- `GET /reports/{reportId}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /reports/{reportId}/init-collab-rooms`
- `GET /reports/{reportId}/stats`
- `POST (base)`
### CslContractController
- base: `/api/oa/csl-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-review`
- `POST /{id}/legal-review`
- `POST /{id}/sign`
- `POST /{id}/complete`
- `POST /{id}/start-settlement`
- `POST /{id}/settle`
- `POST /{id}/terminate`
- `POST /{id}/record-payment`
- `POST /{id}/record-invoice`
- `POST /{id}/change`
- `GET /chain`
- `GET /alerts/overdue`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### CslCrossDeptController
- base: `/api/oa/csl-cross-dept`
- `GET /projects/{id}/declaration`
- `GET /projects/{id}/ip-bridge`
- `GET /projects/{id}/lab-requests`
- `GET /projects/{id}/finance-summary`
- `GET /projects/{id}/hr-summary`
- `GET /summary`
### CslCustomerController
- base: `/api/oa/csl-customers`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/satisfaction`
- `POST /{id}/complaint`
- `POST /{id}/link-project`
- `GET /funnel`
- `GET /portrait`
- `GET (base)`
- `POST (base)`
### CslDashboardController
- base: `/api/oa/csl-dashboard`
- `GET (base)`
### CslEntityHistoryController
- base: `/api/oa/csl-entity-history`
- `GET /{entityType}/{entityId}`
- `GET /projects/{projectId}`
- `GET (base)`
- `POST (base)`
### CslExpertController
- base: `/api/oa/csl-experts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /recommend`
- `POST /draw`
- `GET /assignments`
- `POST /assignments/{id}/invite`
- `POST /assignments/{id}/recuse`
- `POST /assignments/{id}/score`
- `GET /panels/{batchNo}/summary`
- `GET (base)`
- `POST (base)`
### CslExpertScoreController
- base: `/api/oa/csl-expert-scores`
- `GET /{id}`
- `GET /ledger`
- `GET /schedules`
- `GET /schedules/{id}`
- `POST /schedules`
- `PATCH /schedules/{id}`
- `DELETE /schedules/{id}`
- `GET /schedules/calendar`
- `GET (base)`
- `POST (base)`
### CslIntegralController
- base: `/api/oa/csl-integral`
- `GET /ledger`
- `GET /scores`
- `POST /ledger/adjust`
- `POST /ledger/settle-project/{projectId}`
- `GET /schedules`
- `POST /schedules`
- `PATCH /schedules/{id}`
- `DELETE /schedules/{id}`
- `GET /schedules/calendar`
### CslMarketAnalyticsController
- base: `/api/oa/csl-market-analytics`
- `GET /client-contributions`
- `GET /repurchase-opportunities`
- `GET /person-output`
- `GET /type-field-drilldown`
- `GET /bid-links`
### CslOperationLogController
- base: `/api/oa/csl-audit-log`
- `POST /append`
- `POST /compliance-rules/check`
- `GET (base)`
### CslProjectController
- base: `/api/oa/csl-projects`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/submit-acceptance`
- `POST /{id}/accept`
- `GET /alerts/overdue`
- `GET (base)`
- `POST (base)`
### CslProjectFinanceController
- base: `/api/oa/csl-finance`
- `GET /projects/{projectId}/budget-lines`
- `POST /projects/{projectId}/budget-lines`
- `PATCH /budget-lines/{id}`
- `DELETE /budget-lines/{id}`
- `GET /projects/{projectId}/costs`
- `POST /projects/{projectId}/costs`
- `POST /costs/{id}/collect`
- `DELETE /costs/{id}`
- `GET /projects/{projectId}/cost-summary`
- `GET /projects/{projectId}/revenue`
- `GET /projects/{projectId}/output`
### CslReportChapterController
- base: `/api/oa/csl-report-chapters`
- `GET /templates/{reportType}`
- `GET /templates`
- `POST /reports/{reportId}/apply-template`
- `GET /reports/{reportId}`
- `POST /reports/{reportId}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /reports/{reportId}/compliance-check`
### CslReportController
- base: `/api/oa/csl-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/reject`
- `POST /{id}/sign`
- `GET /{id}/reviews`
- `GET /{id}/estimates`
- `POST /{id}/estimates`
- `DELETE /estimates/{itemId}`
- `GET (base)`
- `POST (base)`
### CslRiskController
- base: `/api/oa/csl-risks`
- `GET /projects/{projectId}`
- `POST /projects/{projectId}`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `GET /projects/{projectId}/overview`
- `GET /reports/{reportId}/precheck`
### CslTaskController
- base: `/api/oa/csl-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/progress`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CslTimesheetController
- base: `/api/oa/csl-timesheets`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/confirm`
- `DELETE /{id}`
- `GET /project/{projectId}/summary`
- `GET (base)`
- `POST (base)`
### CultureArchiveController
- base: `/api/oa/culture-archives`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /pack/{projectCode}`
- `POST /{id}/confirm`
- `POST /{id}/revoke`
- `GET /yearbook`
- `GET /showcase`
- `GET (base)`
- `POST (base)`
### CultureAssessmentController
- base: `/api/oa/culture-assessment`
- `GET /score`
- `GET /overview`
- `GET /hr-satisfaction`
- `GET /hr-satisfaction/cross-link`
- `GET /kpi-writeback-preview`
- `POST /kpi-writeback-confirm`
- `POST /kpi-writeback-confirm/{id}/revoke`
- `GET /kpi-writeback-history`
### CultureAwardController
- base: `/api/oa/culture-awards`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/review`
- `POST /{id}/reject`
- `POST /{id}/publicize`
- `POST /{id}/commend`
- `GET /{id}/reviews`
- `GET /honor-wall`
- `GET (base)`
- `POST (base)`
### CultureCaseController
- base: `/api/oa/culture-cases`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/archive`
- `POST /{id}/return`
- `POST /{id}/select`
- `POST /{id}/cite`
- `GET (base)`
- `POST (base)`
### CultureMaterialController
- base: `/api/oa/culture-materials`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/review`
- `POST /{id}/cite`
- `POST /snap`
- `GET (base)`
- `POST (base)`
### CultureMaterialDownloadController
- base: `/api/oa/culture-material-downloads`
- `GET /{id}`
- `POST /{id}/authorize`
- `POST /{id}/confirm-download`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### CultureMonthlyBriefingController
- base: `/api/oa/culture-monthly-briefings`
- `GET /{id}`
- `POST /auto-generate`
- `PATCH /{id}`
- `POST /{id}/publish`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CultureSchemeController
- base: `/api/oa/culture-schemes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/start`
- `POST /{id}/complete`
- `GET /{id}/goals`
- `POST /{id}/goals`
- `DELETE /goals/{goalId}`
- `GET (base)`
- `POST (base)`
### CultureStoryController
- base: `/api/oa/culture-stories`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/return`
- `POST /{id}/publish`
- `POST /{id}/reward`
- `GET (base)`
- `POST (base)`
### CultureSurveyController
- base: `/api/oa/culture-surveys`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/open`
- `POST /{id}/close`
- `POST /{id}/responses`
- `GET /{id}/responses`
- `GET /improves`
- `POST /improves`
- `POST /improves/{improveId}/advance`
- `POST /improves/{improveId}/close`
- `GET (base)`
- `POST (base)`
### CurrentUserResolver
- base: `(无@RequestMapping)`
- (无显式 mapping 注解,可能继承/动态)
### CustomerComplaintController
- base: `/api/oa/customer-complaints`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/resolve`
- `POST /{id}/close`
- `POST /{id}/escalate`
- `GET /satisfaction/summary`
- `GET (base)`
- `POST (base)`
### CustomerController
- base: `/api/oa/customers`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### CustomerCreditController
- base: `/api/oa/customer-credits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/freeze`
- `POST /{id}/unfreeze`
- `GET /utilization`
- `GET /alerts/expiry`
- `GET (base)`
- `POST (base)`
### CustomerVisitController
- base: `/api/oa/customer-visits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/mark-followed`
- `GET /reminders`
- `GET (base)`
- `POST (base)`
### DataCenterController
- base: `/api/oa/datacenter`
- `GET /overview`
- `GET /governance`
### DataSyncLogController
- base: `/api/oa/data-sync-logs`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DeclAcceptanceController
- base: `/api/oa/decl-acceptances`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/materials`
- `POST /{id}/submit-review`
- `POST /{id}/review`
- `POST /{id}/accept`
- `GET /alerts/due`
- `GET (base)`
- `POST (base)`
### DeclAchievementController
- base: `/api/oa/decl-achievements`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/archive`
- `POST /{id}/clone`
- `GET (base)`
- `POST (base)`
### DeclAuditReportController
- base: `/api/oa/decl-audit-reports`
- `GET /recent3`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `GET (base)`
- `POST (base)`
### DeclCalendarController
- base: `/api/oa/decl-calendar`
- `GET /events`
- `GET /policy-conversion`
### DeclCrossDeptPushController
- base: `/api/oa/decl-cross-dept`
- `GET /hitech-revenue`
- `GET /social-insurance-summary`
- `GET /quality-safety-certs`
- `GET /ip-compliance-status`
- `GET /general-dept-certs`
- `GET /project-acceptance-push`
- `GET /archive-receipt-status`
- `POST /archive-submissions/{id}/receipt-confirm`
### DeclEvidenceController
- base: `/api/oa/decl-evidence-items`
- `GET /{id}`
- `POST /collect/{declarationId}`
- `DELETE /{id}`
- `GET (base)`
### DeclFailureCaseController
- base: `/api/oa/decl-failure-cases`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DeclFinanceDataController
- base: `/api/oa/decl-finance-data`
- `GET /by-declaration/{declarationId}`
- `GET /hitech-revenue-summary`
- `GET /tax-return-summary`
### DeclGrantLedgerController
- base: `/api/oa/decl-grant-ledger`
- `GET /{grantId}/status`
- `POST /{grantId}/post-voucher`
- `POST /{grantId}/extract-budget`
### DeclMaterialCollabController
- base: `/api/oa/decl-material-collab`
- `GET /coverage`
- `POST /create-and-bind`
- `POST /bind`
- `DELETE /{linkId}`
- `GET (base)`
### DeclMobileQueueController
- base: `/api/oa/decl-mobile-queue`
- `GET /summary`
- `GET (base)`
### DeclPolicySubscriptionController
- base: `/api/oa/decl-policy-subscriptions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/push-now`
- `GET (base)`
- `POST (base)`
### DeclProjectAssignmentController
- base: `/api/oa/decl-project-assignments`
- `GET /by-application/{policyApplicationId}`
- `GET /by-participant`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DeclPushDeviceController
- base: `/api/oa/decl-push-devices`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/toggle`
- `POST /{id}/test-push`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DeclSubmissionController
- base: `/api/oa/decl-submissions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/esign`
- `POST /{id}/submit`
- `POST /{id}/reveal-credential`
- `GET (base)`
- `POST (base)`
### DeclarationController
- base: `/api/oa/declarations`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DeclarationDashboardController
- base: `/api/oa/declaration-dashboard`
- `GET (base)`
### DeclarationStepController
- base: `/api/oa/declaration-steps`
- `GET /{id}`
- `POST /auto-collect/{declarationId}`
- `POST /generate-template/{declarationId}`
- `GET (base)`
- `POST (base)`
### DeclarationTemplateController
- base: `/api/oa/declaration-templates`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### DelegationController
- base: `/api/oa/delegations`
- `POST /{id}/revoke`
- `GET (base)`
- `POST (base)`
### DeptController
- base: `/api/oa/depts`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /tree`
- `POST (base)`
### DesignAuditController
- base: `/api/oa/design-audit`
- `GET /trails`
- `POST /log`
- `POST /esign`
- `GET /report`
### DesignCapabilityController
- base: `/api/oa/designer-capabilities`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /match`
- `GET /dashboard`
- `GET /department`
- `GET /output-shares`
- `POST /output-shares/allocate`
- `DELETE /output-shares/{sid}`
- `GET (base)`
- `POST (base)`
### DesignChangeController
- base: `/api/oa/design-changes`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DesignChangeOrderController
- base: `/api/oa/design-change-orders`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/implement`
- `DELETE /{id}`
- `GET /ledger`
- `GET /estimate-cost-impact`
- `GET (base)`
- `POST (base)`
### DesignClashController
- base: `/api/oa/design-clashes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/start`
- `POST /{id}/resolve`
- `POST /{id}/close`
- `POST /{id}/reopen`
- `GET /report`
- `GET /metrics`
- `POST /metrics`
- `PATCH /metrics/{mid}`
- `DELETE /metrics/{mid}`
- `GET /metrics/alerts`
- `GET (base)`
- `POST (base)`
### DesignDocController
- base: `/api/oa/design-docs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DesignDrawingController
- base: `/api/oa/design-drawings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-check`
- `POST /{id}/pass-check`
- `POST /{id}/pass-review`
- `POST /{id}/reject`
- `POST /{id}/publish`
- `POST /{id}/revise`
- `POST /{id}/void`
- `GET /{id}/versions`
- `GET /{id}/annotations`
- `POST /{id}/annotations`
- `POST /annotations/{aid}/resolve`
- `GET /{id}/distributions`
- `POST /{id}/distributions`
- `POST /distributions/{did}/sign`
- `GET /search`
- `GET /{id}/trace`
- `GET (base)`
- `POST (base)`
### DesignExternalPortalController
- base: `/api/oa/design-external-portal`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/start`
- `POST /{id}/submit`
- `POST /{id}/evaluate`
- `POST /{id}/cancel`
- `POST /{id}/revoke-token`
- `DELETE /{id}`
- `POST /{id}/log-access`
- `GET /{id}/access-logs`
- `GET /access-logs`
- `GET /org-rating`
- `GET (base)`
- `POST (base)`
### DesignGanttController
- base: `/api/oa/design-gantt`
- `GET /{projectId}`
- `GET /calendar`
- `GET /reservations`
- `POST /reservations`
- `PUT /reservations/{id}`
- `DELETE /reservations/{id}`
- `GET (base)`
### DesignHandoffController
- base: `/api/oa/design-handoffs`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/notify`
- `POST /{id}/receive`
- `POST /{id}/feedback`
- `DELETE /{id}`
- `GET /board`
- `POST /push-to-procurement`
- `POST /push-to-ip`
- `POST /{id}/feedback-with-lab`
- `GET (base)`
- `POST (base)`
### DesignInterfaceController
- base: `/api/oa/design-interfaces`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/confirm`
- `DELETE /{id}`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### DesignKnowledgeController
- base: `/api/oa/design-knowledge`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle`
- `POST /{id}/reference`
- `GET /search`
- `GET /push`
- `GET /cases`
- `GET (base)`
- `POST (base)`
### DesignProjectController
- base: `/api/oa/design-projects`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/pause`
- `POST /{id}/resume`
- `GET /{id}/board`
- `GET /board`
- `GET /alerts`
- `GET /{id}/contract-amount`
- `GET (base)`
- `POST (base)`
### DesignReviewController
- base: `/api/oa/design-reviews`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/open`
- `GET /{id}/votes`
- `POST /{id}/vote`
- `POST /{id}/conclude`
- `GET (base)`
- `POST (base)`
### DesignTaskController
- base: `/api/oa/design-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/progress`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### DevDashboardController
- base: `/api/oa/dev-dashboard`
- `GET (base)`
### DevLaunchStatController
- base: `/api/oa/dev-launch-stats`
- `GET /launch-metrics`
- `GET /by-dept`
- `GET /cycle-detail`
### DevProjectBudgetController
- base: `/api/oa/dev-project-budgets`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{devProjectId}/aggregate`
- `GET /{devProjectId}/summary`
- `GET (base)`
- `POST (base)`
### DevProjectController
- base: `/api/oa/dev-projects`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/start`
- `POST /{id}/close`
- `GET /{id}/wbs`
- `POST /{id}/wbs/generate`
- `POST /{id}/wbs`
- `PATCH /wbs/{taskId}/progress`
- `DELETE /wbs/{taskId}`
- `GET /wbs/alerts/overdue`
- `GET (base)`
- `POST (base)`
### DischargeBillController
- base: `/api/oa/discharge-bills`
- `GET /{id}`
- `POST /generate`
- `POST /{id}/transition`
- `DELETE /{id}`
- `GET /alerts/overdue`
- `GET (base)`
### DischargeContractController
- base: `/api/oa/discharge-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/transition`
- `GET /alerts/expiry`
- `GET /compare`
- `GET (base)`
- `POST (base)`
### DiscussionController
- base: `/api/oa/discussions`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /{id}/replies`
- `POST /{id}/replies`
- `GET (base)`
- `POST (base)`
### DocReceiptController
- base: `/api/oa/doc-receipts`
- `GET /{id}`
- `GET /by-announcement/{announcementId}`
- `GET /summary/{announcementId}`
- `POST /batch-create`
- `POST /{id}/sign`
- `POST /{id}/mark-read`
- `PATCH /{id}`
- `GET (base)`
### DocumentController
- base: `/api/oa/documents`
- `POST /upload-meta`
- `GET (base)`
### EconomicAuditController
- base: `/api/oa/economic-audits`
- `GET /hr-appointment-orders`
- `POST /hr-appointment-orders`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/collect-data`
- `GET /{id}/kpi-snapshot`
- `GET /{id}/generate-report`
- `PATCH /{id}/evaluate`
- `PATCH /{id}/approve`
- `POST /{id}/archive`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### EhsBoardController
- base: `/api/oa/ehs-board`
- `GET /trend`
- `GET /emergency-resources`
- `GET /kpi-summary`
- `GET (base)`
### EhsCapaController
- base: `/api/oa/ehs-capas`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/analyze`
- `POST /{id}/done`
- `POST /{id}/verify`
- `GET /stat`
- `GET (base)`
- `POST (base)`
### EhsContractorEduController
- base: `/api/oa/ehs-contractor-edu`
- `GET /{id}`
- `GET /check-gate`
- `GET /expired-alert`
- `PUT /{id}`
- `POST /{id}/score`
- `POST /{id}/issue-card`
- `POST /{id}/start`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### EhsEnvTaxController
- base: `/api/oa/ehs-env-tax`
- `GET /{id}`
- `GET /summary`
- `GET /calc`
- `PUT /{id}`
- `POST /{id}/confirm`
- `POST /{id}/submit-finance`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### EhsHazardController
- base: `/api/oa/ehs-hazards`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/rectify`
- `POST /{id}/verify`
- `POST /{id}/escalate-capa`
- `POST /scan-overdue`
- `GET (base)`
- `POST (base)`
### EhsIncidentController
- base: `/api/oa/ehs-incidents`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/investigate`
- `POST /{id}/rectify`
- `POST /{id}/close`
- `POST /{id}/generate-capa`
- `GET /alerts/report`
- `GET (base)`
- `POST (base)`
### EhsObjectiveController
- base: `/api/oa/ehs-objectives`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/collect`
- `GET /board`
- `GET (base)`
- `POST (base)`
### EhsSpecialEquipController
- base: `/api/oa/ehs-special-equip`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/inspect`
- `POST /{id}/retire`
- `GET /due-alert`
- `GET /by-dept-summary`
- `GET (base)`
- `POST (base)`
### EhsSupplyController
- base: `(无@RequestMapping)`
- `GET /api/oa/ehs-supplies`
- `GET /api/oa/ehs-supplies/{id}`
- `POST /api/oa/ehs-supplies`
- `PUT /api/oa/ehs-supplies/{id}`
- `DELETE /api/oa/ehs-supplies/{id}`
- `GET /api/oa/ehs-supplies/snapshot`
- `GET /api/oa/ehs-check-plans`
- `GET /api/oa/ehs-check-plans/{id}`
- `POST /api/oa/ehs-check-plans`
- `PUT /api/oa/ehs-check-plans/{id}`
- `DELETE /api/oa/ehs-check-plans/{id}`
- `POST /api/oa/ehs-check-plans/{id}/trigger`
- `GET /api/oa/ehs-check-plans/auto-generate-preview`
### EhsWorkPermitController
- base: `/api/oa/ehs-work-permits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/gas-test`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/start`
- `POST /{id}/close`
- `GET /alerts/expiry`
- `GET (base)`
- `POST (base)`
### EligibilityCheckController
- base: `/api/oa/eligibility-checks`
- `GET /types`
- `GET (base)`
### EmergencyDrillController
- base: `/api/oa/emergency-drills`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/record`
- `POST /{id}/evaluate`
- `GET (base)`
- `POST (base)`
### EmployeeShareMaterialController
- base: `/api/oa/employee-share-materials`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish`
- `POST /{id}/unpublish`
- `POST /{id}/use`
- `GET (base)`
- `POST (base)`
### EngineeringChangeController
- base: `/api/oa/engineering-changes`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /{id}/impact`
- `POST /{id}/assess`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET /{id}/change-history`
- `GET (base)`
- `POST (base)`
### EnvCompliController
- base: `(无@RequestMapping)`
- `GET /api/oa/env-compli-obligations`
- `GET /api/oa/env-compli-obligations/{id}`
- `POST /api/oa/env-compli-obligations`
- `PUT /api/oa/env-compli-obligations/{id}`
- `DELETE /api/oa/env-compli-obligations/{id}`
- `GET /api/oa/env-compli-obligations/gap-summary`
- `GET /api/oa/env-risk-sources`
- `GET /api/oa/env-risk-sources/{id}`
- `POST /api/oa/env-risk-sources`
- `PUT /api/oa/env-risk-sources/{id}`
- `DELETE /api/oa/env-risk-sources/{id}`
- `GET /api/oa/env-waste-records`
- `GET /api/oa/env-waste-records/{id}`
- `POST /api/oa/env-waste-records`
- `PUT /api/oa/env-waste-records/{id}`
- `DELETE /api/oa/env-waste-records/{id}`
- `GET /api/oa/env-waste-records/exceed`
- `GET /api/oa/env-waste-records/stats`
### EnvDischargePermitController
- base: `/api/oa/env-discharge-permits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/monitors`
- `POST /{id}/monitor`
- `DELETE /monitors/{rid}`
- `GET /exceed-alerts`
- `POST /scan-expiry`
- `GET (base)`
- `POST (base)`
### EsignController
- base: `/api/oa/contracts`
- `GET /{id}/esigns`
- `POST /{id}/esign`
- `POST /esigns/{eid}/sign`
- `POST /esigns/{eid}/seal`
- `POST /esigns/{eid}/cancel`
### EventCheckinController
- base: `/api/oa/event-checkins`
- `POST /check-in`
- `DELETE /{id}`
- `GET /stats/{eventId}`
- `GET (base)`
### EventGuestController
- base: `/api/oa/event-guests`
- `GET /by-event/{eventId}`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/update-status`
- `POST /{id}/checkin`
- `POST /{id}/absent`
- `GET /stats/{eventId}`
- `POST (base)`
### EvidenceController
- base: `/api/oa/rd-projects`
- `GET /{id}/evidence-chain`
### ExpenseClaimController
- base: `/api/oa/expense-claims`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/reimburse`
- `POST /{id}/reject`
- `PATCH /{id}/invoice`
- `GET /{id}/budget-check`
- `GET (base)`
- `POST (base)`
### ExpertController
- base: `/api/oa/experts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /match`
- `GET (base)`
- `POST (base)`
### ExtAuditController
- base: `(无@RequestMapping)`
- `GET /api/oa/ext-audit-plans`
- `GET /api/oa/ext-audit-plans/{id}`
- `POST /api/oa/ext-audit-plans`
- `PUT /api/oa/ext-audit-plans/{id}`
- `DELETE /api/oa/ext-audit-plans/{id}`
- `POST /api/oa/ext-audit-plans/{id}/start`
- `POST /api/oa/ext-audit-plans/{id}/complete`
- `POST /api/oa/ext-audit-plans/{id}/archive`
- `GET /api/oa/compliance-evaluations`
- `GET /api/oa/compliance-evaluations/{id}`
- `POST /api/oa/compliance-evaluations`
- `PUT /api/oa/compliance-evaluations/{id}`
- `DELETE /api/oa/compliance-evaluations/{id}`
- `POST /api/oa/compliance-evaluations/{id}/complete`
- `GET /api/oa/ext-audit-plans/{id}/prep-tasks`
- `POST /api/oa/ext-audit-plans/{id}/prep-tasks`
- `PUT /api/oa/ext-audit-plan-tasks/{taskId}`
- `POST /api/oa/ext-audit-plan-tasks/{taskId}/done`
- `DELETE /api/oa/ext-audit-plan-tasks/{taskId}`
### ExternalRegulationController
- base: `/api/oa/external-regulations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish-notify`
- `POST /{id}/invalidate`
- `GET (base)`
- `POST (base)`
### ExternalSystemConfigController
- base: `/api/oa/external-systems`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FavoriteController
- base: `/api/oa/favorites`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FeedController
- base: `/api/oa/feeds`
- `POST /{id}/like`
- `GET /my-likes`
- `POST /{id}/comment`
- `GET /hot-topics`
- `GET /active-users`
- `GET (base)`
- `POST (base)`
### FeedstockBatchController
- base: `/api/oa/feedstock-batches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/inspect`
- `POST /{id}/inbound-to-stock`
- `GET /supplier-eval`
- `GET (base)`
- `POST (base)`
### FermentBatchController
- base: `/api/oa/ferment-batches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/charge`
- `GET /{id}/logs`
- `POST /{id}/logs`
- `POST /{id}/clear-alert`
- `POST /{id}/to-maturity`
- `POST /{id}/maturity`
- `GET /{id}/trace`
- `POST /{id}/gen-sub-orders`
- `POST /mobile-report`
- `GET (base)`
- `POST (base)`
### FertAccountingVoucherController
- base: `/api/oa/fert-accounting`
- `GET /vouchers`
- `GET /vouchers/{id}`
- `POST /vouchers/from-batch/{batchCostId}`
- `POST /vouchers/batch-period`
- `POST /vouchers/{id}/post`
- `POST /vouchers/{id}/reverse`
- `DELETE /vouchers/{id}`
- `GET /invoices`
- `GET /invoices/{id}`
- `POST /invoices`
- `PUT /invoices/{id}`
- `POST /invoices/{id}/certify`
- `POST /invoices/{id}/write-off`
- `POST /invoices/{id}/void`
- `DELETE /invoices/{id}`
- `GET /invoices/summary`
### FertBatchCostController
- base: `/api/oa/fert-batch-costs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/calc`
- `POST /alloc`
- `GET /summary/period`
- `GET /variance-detail/{id}`
- `GET /std-cost-suggest`
- `GET (base)`
- `POST (base)`
### FertCustomerProfileController
- base: `/api/oa/fert-customer-profiles`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/deactivate`
- `POST /{id}/activate`
- `DELETE /{id}`
- `GET /{id}/orders`
- `POST /{id}/trigger-mps`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### FertEnergyLogController
- base: `/api/oa/fert-energy-logs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /by-batch`
- `GET /benchmark`
- `GET (base)`
- `POST (base)`
### FertFinanceIntegrationController
- base: `/api/oa/fert-finance-integration`
- `POST /vouchers/from-batch/{batchCostId}`
- `POST /vouchers/batch-period`
- `GET /vouchers`
- `GET /dept-interfaces`
### FertGasEmissionController
- base: `/api/oa/fert-gas-emissions`
- `GET /alerts`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/rectify`
- `GET /trend`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FertMpsController
- base: `/api/oa/fert-mps`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/release`
- `POST /{id}/progress`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FertOccHealthController
- base: `/api/oa/fert-occ-health`
- `GET /dust-alerts`
- `GET /by-employee`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FertPackOrderController
- base: `/api/oa/fert-pack-orders`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/finish`
- `POST /{id}/stock`
- `GET /labels`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### FertPkgMaterialLedgerController
- base: `/api/oa/fert-pkg-material-ledger`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/inbound`
- `POST /{id}/issue`
- `POST /{id}/return`
- `GET /low-stock`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FertProcessQcController
- base: `/api/oa/fert-process-qc`
- `GET /by-batch`
- `GET /{id}`
- `GET /trend`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FertProcurePlanController
- base: `/api/oa/fert-procure-plans`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/approve`
- `POST /{id}/start`
- `POST /{id}/receive`
- `POST /{id}/cancel`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FertQcStandardController
- base: `/api/oa/fert-qc-standards`
- `GET /codes`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /inspections`
- `GET /inspections/{qid}`
- `POST /inspections`
- `POST /inspections/{qid}/judge`
- `POST /inspections/{qid}/disposition`
- `DELETE /inspections/{qid}`
- `GET (base)`
- `POST (base)`
### FertRawMaterialCatalogController
- base: `/api/oa/fert-raw-material-catalog`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/disable`
- `POST /{id}/enable`
- `DELETE /{id}`
- `GET /{id}/on-hand`
- `GET /on-hand-all`
- `GET /low-stock`
- `POST /from-mps/{mpsId}`
- `GET (base)`
- `POST (base)`
### FertRawMaterialQcController
- base: `/api/oa/fert-raw-material-qc`
- `GET /by-batch`
- `GET /{id}`
- `GET /heavy-metal-trend`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FertRecipeController
- base: `/api/oa/fert-recipes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/ingredients`
- `POST /{id}/ingredients`
- `DELETE /ingredients/{ingredientId}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/retire`
- `GET /{id}/charge-order`
- `GET (base)`
- `POST (base)`
### FertSafetyPatrolController
- base: `/api/oa/fert-safety-patrol`
- `GET /plans`
- `GET /plans/{id}`
- `POST /plans`
- `PUT /plans/{id}`
- `POST /plans/{id}/activate`
- `POST /plans/{id}/deactivate`
- `DELETE /plans/{id}`
- `GET /logs`
- `GET /logs/{id}`
- `GET /logs/pending-hazards`
- `POST /logs`
- `PUT /logs/{id}`
- `POST /logs/{id}/assign-rectify`
- `POST /logs/{id}/close-rectify`
- `DELETE /logs/{id}`
- `GET /stats`
### FertSalesOrderController
- base: `/api/oa/fert-sales-orders`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/confirm`
- `POST /{id}/cancel`
- `DELETE /{id}`
- `POST /{id}/deliveries`
- `POST /{id}/complete`
- `POST /{id}/sync-mps`
- `GET /agri-services`
- `POST /agri-services`
- `PUT /agri-services/{sid}`
- `DELETE /agri-services/{sid}`
- `GET /analysis`
- `GET (base)`
- `POST (base)`
### FertSolidWasteController
- base: `/api/oa/fert-solid-waste`
- `GET /non-compliant`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FertStockLotController
- base: `/api/oa/fert-stock-lots`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/inbound`
- `POST /{id}/outbound`
- `POST /scan-issue`
- `POST /{id}/scrap`
- `POST /{id}/freeze`
- `POST /{id}/unfreeze`
- `GET /{id}/moves`
- `GET /moves`
- `GET /expiry-alerts`
- `GET (base)`
- `POST (base)`
### FertSupplierProfileController
- base: `/api/oa/fert-supplier-profiles`
- `GET /admit-list`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/admit`
- `POST /{id}/reject`
- `POST /{id}/suspend`
- `POST /{id}/restore`
- `POST /{id}/eval`
- `GET (base)`
- `POST (base)`
### FertWastewaterController
- base: `/api/oa/fert-wastewater`
- `GET /alerts`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/rectify`
- `GET /trend`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FertWipStockController
- base: `/api/oa/fert-wip-stocks`
- `GET /{id}`
- `GET /alerts`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/moisture-check`
- `POST /{id}/issue`
- `POST /{id}/scrap`
- `GET (base)`
- `POST (base)`
### FertWorkSubOrderController
- base: `/api/oa/fert-work-sub-orders`
- `GET /by-batch`
- `GET /wip`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/issue`
- `POST /{id}/start`
- `POST /{id}/report`
- `POST /{id}/qc-pass`
- `POST /{id}/qc-fail`
- `POST /{id}/transfer`
- `POST /{id}/equip-params`
- `GET (base)`
- `POST (base)`
### FileController
- base: `/api/oa/files`
- `GET /{id}/stream`
- `DELETE /{id}`
- `POST (base)`
- `GET (base)`
### FinAccountAuxController
- base: `/api/oa/fin-account-aux`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/disable-request`
- `GET /balance-sheet`
- `POST /recalc-balance`
- `GET (base)`
- `POST (base)`
### FinAccountPermController
- base: `/api/oa/fin-account-perms`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /matrix`
- `POST /check`
- `POST /seed-defaults`
- `GET (base)`
- `POST (base)`
### FinAccountStandardController
- base: `/api/oa/fin-account-standards`
- `GET /{id}`
- `GET /primary`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/set-primary`
- `POST /{id}/activate`
- `GET /diff`
- `GET (base)`
- `POST (base)`
### FinAdvanceController
- base: `/api/oa/fin-advances`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/settle`
- `POST /{id}/voucher`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FinApReminderController
- base: `/api/oa/fin-ap-reminder`
- `GET /due-reminders`
- `GET /supplier-statement`
- `GET /invoice-cert-status`
### FinArApAutoController
- base: `/api/oa/fin-ar-ap-auto`
- `POST /auto-create-ar`
- `POST /auto-create-ap`
- `POST /advance`
- `POST /{id}/collect-and-writeoff`
- `POST /{id}/pay-and-writeoff`
- `GET /aging-analysis`
- `GET /pending-collection`
### FinArOverageController
- base: `/api/oa/fin-ar-overage`
- `POST /{id}/overage-collect`
- `GET /overage-credits`
- `POST /batch-bad-debt`
- `POST /batch-bad-debt/{workflowId}/approve`
- `POST /batch-bad-debt/{workflowId}/reject`
- `GET /batch-bad-debt/{workflowId}`
- `GET /revenue-recognition-rules`
### FinAssetInventoryController
- base: `/api/oa/fin-asset-inventories`
- `GET /{id}`
- `POST /{id}/start`
- `POST /{id}/items/{itemId}/scan`
- `POST /{id}/complete`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET /{id}/items`
- `GET /{id}/report`
- `POST /depreciate-ddb/{assetId}`
- `POST /depreciate-all`
- `GET (base)`
- `POST (base)`
### FinAuditExportController
- base: `/api/oa/fin-audit-export`
- `POST /log-diff`
- `GET /diff-trail`
- `GET /diff-trail/all`
- `GET /audit-workpaper`
- `GET /audit-stats`
- `GET /voucher-trail/{voucherId}`
### FinAuditorAccessController
- base: `/api/oa/fin-auditor-access`
- `GET /summary-for-audit`
- `GET /voucher-trail`
- `GET /asset-trail`
- `GET /ar-ap-trail`
- `POST /auto-log-diff`
- `GET /diff-trail/{objectType}/{objectId}`
- `GET /key-operation-alerts`
### FinBadDebtController
- base: `/api/oa/fin-bad-debts`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /batch-by-aging`
- `POST /{id}/generate-voucher`
- `POST /{id}/reverse`
- `GET /aging-summary`
- `GET (base)`
- `POST (base)`
### FinBomCostIntegrationController
- base: `/api/oa/fin-bom-cost`
- `GET /bom-cost-expand/{projectId}`
- `POST /generate-cost-calc/{projectId}`
- `GET /standard-cost-from-bom/{projectId}`
- `GET /cost-center-agg`
- `POST /sync-period`
### FinBudgetAdjController
- base: `/api/oa/fin-budget-adjs`
- `GET /{id}`
- `GET /history`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET (base)`
- `POST (base)`
### FinBudgetExecutionController
- base: `/api/oa/fin-budget-executions`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `PUT /{id}/actual`
- `GET /execution-report`
- `GET /alerts`
- `POST /rolling-budget`
- `GET (base)`
- `POST (base)`
### FinBudgetPlanController
- base: `/api/oa/fin-budget-plans`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/gather`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET /consolidated-view`
- `GET /budget-gap`
- `GET (base)`
- `POST (base)`
### FinBudgetVersionController
- base: `/api/oa/fin-budget-version`
- `POST /create-version`
- `GET /versions`
- `GET /version-compare`
- `POST /rolling-fill`
- `GET /rolling-view`
- `GET /capital-source-rules`
### FinCashFlowIndirectController
- base: `/api/oa/fin-cash-flow-indirect`
- `GET /cash-flow-indirect`
- `GET /consolidated`
- `GET /annual-comparison`
### FinCashJournalController
- base: `/api/oa/fin-cash-journals`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /daily-summary`
- `GET /balance-by-account`
- `POST /cash-check`
- `POST /fund-transfer`
- `GET (base)`
- `POST (base)`
### FinConstructionInProgressController
- base: `/api/oa/fin-cip`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/add-cost`
- `POST /{id}/ready-transfer`
- `POST /{id}/transfer-asset`
- `POST /{id}/abort`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FinCostAutoCalcJob
- base: `(无@RequestMapping)`
- (无显式 mapping 注解,可能继承/动态)
### FinCostAutoLinkController
- base: `/api/oa/fin-cost-auto-link`
- `POST /collect-from-procurement`
- `POST /collect-from-payroll`
- `POST /collect-rd-labor-by-hours`
- `GET /collection-status`
- `GET /pipeline-summary`
### FinCostCalcController
- base: `/api/oa/fin-cost-calcs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/calculate`
- `POST /{id}/post`
- `GET /cost-report`
- `GET /variance-analysis`
- `GET (base)`
- `POST (base)`
### FinCostTriggerController
- base: `/api/oa/fin-cost-trigger`
- `POST /trigger-month-end`
- `POST /trigger-post`
- `GET /job-status`
### FinDepreciationAllocController
- base: `/api/oa/fin-depreciation-alloc`
- `POST /depreciate-main/{assetId}`
- `POST /allocate`
- `POST /batch-depreciate-month`
- `GET /alloc-report`
- `GET /asset-depreciation-schedule/{assetId}`
### FinElecArchiveController
- base: `/api/oa/fin-elec-archives`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/archive`
- `POST /{id}/backup`
- `POST /{id}/verify-hash`
- `GET /export-list`
- `GET /retention-alert`
- `POST /batch-archive`
- `GET (base)`
- `POST (base)`
### FinEmpLoanController
- base: `/api/oa/fin-emp-loans`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/repay`
- `POST /{id}/deduct-salary`
- `GET /overdue-check`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FinImpairmentTestController
- base: `/api/oa/fin-impairment-tests`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/post`
- `GET (base)`
- `POST (base)`
### FinLeaseRightController
- base: `/api/oa/fin-lease-rights`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/amortize`
- `POST /{id}/terminate`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FinLedgerController
- base: `/api/oa/fin-ledger`
- `GET /general-ledger`
- `GET /detail-ledger`
- `GET /trial-balance`
- `GET /account-balance`
### FinMultiDriverAllocController
- base: `/api/oa/fin-multi-driver-alloc`
- `POST /rules`
- `GET /rules`
- `DELETE /rules/{id}`
- `POST /execute`
- `GET /summary`
### FinPayrollController
- base: `/api/oa/payroll`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/confirm`
- `POST /{id}/post-voucher`
- `GET /summary`
- `GET /rd-labor-cost`
- `GET (base)`
- `POST (base)`
### FinPeriodCloseController
- base: `/api/oa/fin-period-close`
- `POST /carry-forward-profit`
- `GET /equity-statement`
- `GET /consolidated`
- `GET /notes`
- `GET /period-check`
### FinPeriodExtController
- base: `/api/oa/fin-period-ext`
- `GET /fx-items`
- `POST /fx-adjust`
- `POST /transfer-profit`
- `POST /accrue-income-tax`
- `GET /period-ext-check`
### FinPostLoanCheckController
- base: `/api/oa/fin-post-loan-checks`
- `GET /{id}`
- `GET /by-financing/{financingId}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /dashboard`
- `GET (base)`
- `POST (base)`
### FinProcurProdVoucherController
- base: `/api/oa/fin-procur-prod-voucher`
- `POST /procure-receipt-voucher`
- `POST /procure-payment-voucher`
- `POST /mfg-wip-voucher`
- `POST /mfg-completion-voucher`
- `POST /sales-delivery-voucher`
- `GET /auto-voucher-status`
### FinProcureBudgetCheckController
- base: `/api/oa/fin-procure-budget-check`
- `POST /check`
- `POST /pre-commit-check`
- `GET /available-budget`
- `GET /budget-utilization`
### FinRdCloseoutController
- base: `/api/oa/fin-rd-closeout`
- `POST /projects/{projectCode}/close`
- `GET /projects/{projectCode}/summary`
- `POST /projects/{projectCode}/check-other-cap`
- `GET /labor-cross-check`
### FinRdExpenseController
- base: `/api/oa/fin-rd-expenses`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/review`
- `GET /project-summary`
- `GET /deduction-report`
- `GET (base)`
- `POST (base)`
### FinRdPersonnelController
- base: `/api/oa/fin-rd-personnels`
- `GET /{id}`
- `GET /by-project`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/activate`
- `POST /{id}/suspend`
- `GET (base)`
- `POST (base)`
### FinRdTimesheetController
- base: `/api/oa/fin-rd-timesheets`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET /project-hours-summary`
- `GET /employee-hours-check`
- `GET (base)`
- `POST (base)`
### FinRevenueRecognitionController
- base: `/api/oa/fin-rev-recognitions`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/confirm`
- `POST /{id}/post-voucher`
- `GET /contract-progress`
- `GET /period-summary`
- `GET (base)`
- `POST (base)`
### FinStatementController
- base: `/api/oa/fin-statements`
- `GET /balance-sheet`
- `GET /income-statement`
- `GET /cash-flow`
- `GET /ratios`
- `GET /equity-changes`
- `GET /management`
### FinThreewayMatchController
- base: `/api/oa/fin-threeway-matches`
- `GET /{id}`
- `GET /exceptions`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/match`
- `POST /{id}/create-ap`
- `GET (base)`
- `POST (base)`
### FinVoucherTemplateController
- base: `/api/oa/fin-voucher-templates`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/apply`
- `POST /period-close`
- `GET /template-types`
- `GET (base)`
- `POST (base)`
### FinanceDashboardController
- base: `/api/oa/finance-dashboard`
- `GET (base)`
### FinancialGuaranteeController
- base: `/api/oa/financial-guarantees`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/settle`
- `POST /expire-scan`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### FinancingController
- base: `/api/oa/financings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/repayments`
- `POST /{id}/schedule`
- `POST /repayments/{planId}/pay`
- `GET /alerts/maturity`
- `GET /cost/summary`
- `GET /cost/interest-summary`
- `GET /debt-ledger`
- `POST /{id}/submit-approval`
- `GET /{id}/credit-check`
- `GET /{id}/approval-status`
- `GET /cost/structure-analysis`
- `GET /{id}/irr`
- `GET /{id}/legal-reviews`
- `POST /{id}/legal-reviews/link`
- `POST /{id}/push-cost-alloc`
- `GET (base)`
- `POST (base)`
### FinancingPolicyController
- base: `/api/oa/financing-policies`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{financingId}/compliance-check`
- `GET /credit-by-type`
- `GET (base)`
- `POST (base)`
### FixedAssetController
- base: `/api/oa/fixed-assets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/depreciate`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### FolderController
- base: `/api/oa/folders`
- `GET /tree`
### FoodBatchController
- base: `/api/oa/food-batches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/issue`
- `POST /{id}/scrap`
- `GET /alerts/expiry`
- `GET /waste-rate`
- `GET (base)`
- `POST (base)`
### FormInstanceController
- base: `/api/oa/form-instances`
- `GET /{id}`
- `POST /draft`
- `POST /{id}/send`
- `POST /{id}/advance`
- `DELETE /{id}`
- `POST /{id}/archive`
- `POST (base)`
### FormTemplateController
- base: `/api/oa/form-templates`
- `GET /{id}`
- `PUT /{id}/enabled`
- `GET (base)`
- `POST (base)`
### FraudAlertController
- base: `/api/oa/fraud-alert-rules`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/run`
- `POST /run-all`
- `GET /data-anomaly`
- `GET (base)`
- `POST (base)`
### FraudInvestigationNoteController
- base: `/api/oa/fraud-investigation-notes`
- `GET /{reportId}/notes`
- `POST /{reportId}/notes`
- `PUT /{reportId}/notes/{noteId}`
- `DELETE /{reportId}/notes/{noteId}`
### FraudReportController
- base: `/api/oa/fraud-reports`
- `GET /{id}`
- `PATCH /{id}/assign`
- `PATCH /{id}/investigate`
- `PATCH /{id}/close`
- `PATCH /{id}/dismiss`
- `GET (base)`
- `POST (base)`
### FundPlanController
- base: `/api/oa/fund-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### FundPoolController
- base: `/api/oa/fund-pool`
- `GET (base)`
### HandoverController
- base: `/api/oa/handovers`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/generate-checklist`
- `GET (base)`
- `POST (base)`
### HazWasteManifestController
- base: `/api/oa/hazwaste-manifests`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/store`
- `POST /{id}/transfer`
- `POST /{id}/dispose`
- `POST /{id}/sync-epb`
- `GET /fee/summary`
- `GET (base)`
- `POST (base)`
### HazardSourceController
- base: `/api/oa/hazard-sources`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /stat`
- `GET (base)`
- `POST (base)`
### HealthController
- base: `/api/oa`
- `GET /health`
### HealthRecordController
- base: `/api/oa/health-records`
- `GET /{id}`
- `PATCH /{id}`
- `POST /scan-due`
- `GET /contraindication-alerts`
- `GET (base)`
- `POST (base)`
### HrAiDocController
- base: `/api/oa/hr-ai-doc`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/review`
- `POST /{id}/publish`
- `POST /ai-generate`
- `GET (base)`
- `POST (base)`
### HrCrossDeptController
- base: `/api/oa/hr-cross-dept`
- `GET /legal-alerts`
- `GET /decl-credentials`
- `GET /finance-archive-check`
- `GET /summary`
### HrDossierSearchController
- base: `/api/oa/hr-dossier-search`
- `GET /search`
- `POST /borrow-apply`
- `POST /certificates/generate`
- `GET /export`
### HrEmpSatisfactionSurveyController
- base: `/api/oa/hr-emp-satisfaction`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/start`
- `POST /{id}/close`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### HrEventArchiveController
- base: `/api/oa/hr-event-archive`
- `POST /trigger`
- `GET /logs`
- `GET /logs/{id}`
- `POST /retry/{id}`
- `GET /stats`
### HrInterviewQuestionController
- base: `/api/oa/hr-interview-questions`
- `GET /{id}`
- `GET /by-job/{jobId}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /ai-generate`
- `GET (base)`
- `POST (base)`
### HrLaborContractController
- base: `/api/oa/hr-labor-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/sign`
- `POST /{id}/archive`
- `POST /{id}/renew`
- `POST /batch-issue`
- `GET /expiring`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### HrLaborTemplateController
- base: `/api/oa/hr-labor-templates`
- `GET /{id}`
- `GET /{id}/body`
- `PUT /{id}`
- `POST /{id}/review`
- `POST /{id}/submit-review`
- `POST /{id}/disable`
- `POST /{id}/reactivate`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### HrNonCompeteController
- base: `/api/oa/hr-non-compete`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/trigger`
- `POST /{id}/violate`
- `POST /{id}/expire`
- `GET /expiring-soon`
- `GET (base)`
- `POST (base)`
### HrRecruitController
- base: `/api/oa/hr-recruit`
- `GET /jobs`
- `GET /jobs/{id}`
- `POST /jobs`
- `PATCH /jobs/{id}`
- `POST /jobs/{id}/close`
- `DELETE /jobs/{id}`
- `GET /jobs/{jobId}/candidates`
- `POST /jobs/{jobId}/candidates`
- `PATCH /candidates/{id}`
- `DELETE /candidates/{id}`
- `POST /candidates/{id}/advance`
- `POST /jobs/{jobId}/ai-screen`
- `GET /stats`
### ImprestFundController
- base: `/api/oa/imprest-funds`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/disburse`
- `POST /{id}/settle`
- `POST /{id}/confirm-return`
- `GET (base)`
- `POST (base)`
### IntegrationController
- base: `/api/oa/integrations`
- `GET /pending`
- `POST /sync/{dataSyncLogId}`
- `POST /run-pending`
- `POST /enqueue`
### IntelController
- base: `/api/oa/intel`
- `GET /{id}`
- `POST /{id}/convert-opportunity`
- `GET (base)`
- `POST (base)`
### InternalControlMatrixController
- base: `/api/oa/control-matrices`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/test`
- `GET /stats/effectiveness`
- `GET (base)`
- `POST (base)`
### InternalNewsletterController
- base: `/api/oa/internal-newsletters`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/publish`
- `POST /{id}/bind-issue`
- `POST /{id}/view`
- `GET /issues`
- `GET /stats/type-dist`
- `GET (base)`
- `POST (base)`
### InventoryItemController
- base: `/api/oa/inventory`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### InventoryValuationConfigController
- base: `/api/oa/inventory-valuation-configs`
- `GET /{id}`
- `POST /{id}/transition`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### InvoiceController
- base: `/api/oa/invoices`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### IpArchiveSearchController
- base: `/api/oa/ip-archive-search`
- `GET /dir-tree`
- `GET (base)`
### IpAssetController
- base: `/api/oa/ip-assets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/legal`
- `POST /{id}/review`
- `GET /{id}/events`
- `GET /{id}/fees`
- `POST /{id}/fees`
- `POST /{id}/fees/schedule`
- `POST /fees/{feeId}/pay`
- `DELETE /fees/{feeId}`
- `GET /alerts/fees`
- `GET /{id}/fees/summary`
- `GET (base)`
- `POST (base)`
### IpBudgetController
- base: `/api/oa/ip-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `POST /occupy`
- `POST /release`
- `GET /summary`
- `GET /compare`
- `GET /roi`
- `GET (base)`
- `POST (base)`
### IpFreeTagController
- base: `/api/oa/ip-free-tags`
- `GET /{id}`
- `GET /by-resource`
- `GET /search`
- `GET /dict`
- `GET /stats`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### IpInfringementController
- base: `/api/oa/ip-infringement-cases`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/decide`
- `POST /{id}/close`
- `POST /{id}/assign-firm`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### IpInsightController
- base: `/api/oa/ip-insights`
- `GET /bi`
- `GET /inventory`
- `GET /project-matrix`
- `GET /project-matrix/{rdProjectId}`
### IpKnowledgeController
- base: `/api/oa/ip-knowledge`
- `GET /{id}`
- `GET /search`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### IpLicenseTransferController
- base: `/api/oa/ip-license-transfers`
- `GET /{id}`
- `GET /ipc-stats`
- `GET /expiry-alerts`
- `PATCH /{id}`
- `POST /{id}/advance`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### IpRegulationController
- base: `/api/oa/ip-regulations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/revise`
- `POST /{id}/abolish`
- `GET /{id}/versions`
- `GET (base)`
- `POST (base)`
### IpSciCredArchiveController
- base: `/api/oa/ip-sci-cred-archive`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `GET /filter`
- `POST /pack`
- `GET /directory`
- `GET (base)`
- `POST (base)`
### ItAccountAuditController
- base: `/api/oa/it-account-audit`
- `POST /hr-trigger`
- `POST /manual-audit`
- `GET /logs`
- `GET /report`
### ItAssetController
- base: `/api/oa/it-assets`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /barcode/{code}`
- `GET /mobile/summary`
- `GET (base)`
- `POST (base)`
### ItAssetLifecycleController
- base: `/api/oa/it-asset-events`
- `GET /by-asset/{assetId}`
- `DELETE /{id}`
- `POST /{assetId}/transfer`
- `POST /{assetId}/repair`
- `POST /{assetId}/repair-done`
- `POST /{assetId}/scrap`
- `POST /scan-stocktake`
- `GET /{assetId}/depreciation`
- `GET /warranty-alerts`
- `POST /{assetId}/depreciation-voucher`
- `GET (base)`
### ItBackupController
- base: `/api/oa/it-backups`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/complete`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### ItBudgetController
- base: `/api/oa/it-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/spend`
- `GET /alerts`
- `GET /cost-report`
- `GET (base)`
- `POST (base)`
### ItDataExportController
- base: `/api/oa/it-data-exports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/execute`
- `GET /dashboard`
- `GET (base)`
- `POST (base)`
### ItDemandRequestController
- base: `/api/oa/it-cross-dept`
- `POST /hr-offboard`
- `POST /finance-payment-hook`
- `GET /demands`
- `GET /demands/{id}`
- `POST /demands`
- `PATCH /demands/{id}`
- `DELETE /demands/{id}`
- `POST /demands/{id}/evaluate`
- `POST /demands/{id}/schedule`
- `POST /demands/{id}/start-dev`
- `POST /demands/{id}/go-live`
- `POST /demands/{id}/reject`
- `GET /summary`
### ItDisasterDrillController
- base: `/api/oa/it-disaster-drills`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/fail`
- `GET /overview`
- `GET (base)`
- `POST (base)`
### ItDlpPolicyController
- base: `/api/oa/it-dlp-policies`
- `GET /active`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/enable`
- `POST /{id}/disable`
- `POST /{id}/hit`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### ItInspectionReportController
- base: `/api/oa/it-inspection-reports`
- `GET /latest`
- `GET /{id}`
- `DELETE /{id}`
- `POST /generate`
- `GET (base)`
### ItKnowledgeController
- base: `/api/oa/it-knowledge`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/publish`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### ItMonitorController
- base: `/api/oa/it-monitors`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/inspect`
- `GET /{id}/inspections`
- `GET /overview`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### ItNetworkDeviceController
- base: `/api/oa/it-network-devices`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/backup-config`
- `POST /{id}/set-status`
- `GET /topology`
- `GET /config-backup-alerts`
- `GET (base)`
- `POST (base)`
### ItProcurementController
- base: `/api/oa/it-procurement`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/place-order`
- `POST /{id}/receive`
- `POST /{id}/cancel`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### ItRemoteAssistController
- base: `/api/oa/it-remote-assist`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/authorize`
- `POST /{id}/start`
- `POST /{id}/end`
- `POST /{id}/reject`
- `POST /{id}/cancel`
- `POST /{id}/rate`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### ItSecEventController
- base: `/api/oa/it-sec-events`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/respond`
- `POST /{id}/append-action`
- `POST /{id}/resolve`
- `POST /{id}/close`
- `GET /dashboard`
- `GET (base)`
- `POST (base)`
### ItSecPolicyConfigController
- base: `/api/oa/it-sec-policy`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### ItSecTrainingController
- base: `/api/oa/it-sec-training`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/cancel`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### ItServiceTicketController
- base: `/api/oa/it-tickets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/hold`
- `POST /{id}/resume`
- `POST /{id}/resolve`
- `POST /{id}/close`
- `POST /{id}/escalate`
- `POST /sweep`
- `GET /sla/summary`
- `GET (base)`
- `POST (base)`
### ItSysLogController
- base: `/api/oa/it-sys-logs`
- `GET /{id}`
- `POST /{id}/handle`
- `POST /archive-expired`
- `GET /retention-alerts`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### ItTicketAttachmentController
- base: `/api/oa/it-tickets/{ticketId}/attachments`
- `GET /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### ItVulnPatchController
- base: `/api/oa/it-vuln-patches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/install-patch`
- `POST /{id}/verify`
- `POST /{id}/accept-risk`
- `GET /overdue-alerts`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### LabCostController
- base: `/api/oa/lab-costs`
- `GET /entries`
- `POST /record-consumable`
- `POST /record-equipment`
- `POST /record-labor`
- `POST /record-outsource`
- `GET /analysis`
- `GET /budgets`
- `POST /budgets`
- `POST /budgets/{id}/recompute`
- `POST /budgets/{id}/freeze`
### LabCrossDeptController
- base: `/api/oa/lab-cross-dept`
- `POST /link-patent`
- `GET /archive-patent-links`
- `POST /push-to-qc`
- `GET /qc-from-lab`
- `POST /push-purchase-req`
- `GET /purchase-reqs-from-lab`
- `GET /summary`
### LabDeviationController
- base: `/api/oa/lab-deviations`
- `GET /{id}`
- `POST /{id}/investigate`
- `POST /{id}/decide`
- `GET (base)`
- `POST (base)`
### LabEhsController
- base: `/api/oa/lab-ehs`
- `GET /wastes`
- `POST /wastes`
- `POST /wastes/{id}/transfer`
- `POST /wastes/{id}/dispose`
- `POST /wastes/{id}/sync-epb`
- `GET /safety-checks`
- `GET /safety-check-items`
- `POST /safety-checks/plan`
- `POST /safety-checks/{id}/submit`
- `GET /incidents`
- `POST /incidents`
- `POST /incidents/{id}/handle`
- `POST /incidents/{id}/close`
### LabElnAccessLogController
- base: `/api/oa/lab-eln-access-logs`
- `GET /by-eln/{elnId}`
- `GET /by-action`
- `GET /report`
- `GET (base)`
- `POST (base)`
### LabElnController
- base: `/api/oa/lab-elns`
- `GET /{id}`
- `GET /{id}/versions`
- `PATCH /{id}`
- `POST /{id}/sign`
- `POST /{id}/unsign`
- `GET /{id}/verify`
- `GET (base)`
- `POST (base)`
### LabHazControlController
- base: `/api/oa/lab-haz-requests`
- `GET /{id}`
- `POST /{id}/approve`
- `POST /{id}/issue`
- `POST /{id}/settle`
- `GET (base)`
- `POST (base)`
### LabInstrumentController
- base: `/api/oa/lab-instruments`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### LabInstrumentMaintController
- base: `/api/oa/lab-instrument-maints`
- `GET /{id}`
- `POST /{id}/assign`
- `POST /{id}/repair`
- `POST /{id}/accept`
- `POST /{id}/complete`
- `POST /scan-overdue`
- `GET (base)`
- `POST (base)`
### LabInternalAuditController
- base: `/api/oa/lab-internal-audits`
- `GET /{id}`
- `POST /generate`
- `POST /{id}/report`
- `GET (base)`
### LabReportArchiveController
- base: `/api/oa/lab-report-archives`
- `GET /{id}`
- `GET /search`
- `GET /retention-alerts`
- `GET /export`
- `GET (base)`
- `POST (base)`
### LabReservationController
- base: `/api/oa/lab-reservations`
- `GET /{id}`
- `POST /{id}/check-in`
- `POST /{id}/check-out`
- `POST /{id}/cancel`
- `GET /utilization`
- `GET (base)`
- `POST (base)`
### LabSampleController
- base: `/api/oa/lab-samples`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### LabSampleLifecycleController
- base: `/api/oa/lab-sample-flow`
- `POST /{id}/barcode`
- `GET /scan`
- `POST /{id}/flow`
- `POST /batch-flow`
- `POST /{id}/dispose`
- `POST /{id}/retain`
- `GET /retention-alerts`
- `GET /{id}/trace`
- `GET /events`
### LabStocktakeController
- base: `/api/oa/lab-stocktakes`
- `GET /{id}`
- `GET /{id}/lines`
- `POST /{id}/count`
- `POST /{id}/finish`
- `GET (base)`
- `POST (base)`
### LeaderTripController
- base: `/api/oa/leader-trips`
- `GET (base)`
- `POST (base)`
### LegalAuthLimitController
- base: `/api/oa/legal-auth-limits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/revoke`
- `POST /expire-check`
- `GET /check`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### LegalComplianceCertController
- base: `/api/oa/legal-compliance-certs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/issue`
- `POST /{id}/revoke`
- `POST /expire-check`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### LegalConsultController
- base: `/api/oa/legal-consults`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/reply`
- `GET /auto-answer`
- `GET (base)`
- `POST (base)`
### LegalContractFlowController
- base: `/api/oa/legal-contract-flow`
- `POST /{contractId}/submit`
- `POST /{contractId}/advance`
- `GET /{contractId}/status`
- `GET /pending`
- `GET /stats`
### LegalCreditInvestController
- base: `/api/oa/legal-credit-invest`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/conclude`
- `GET /aggregate`
- `GET (base)`
- `POST (base)`
### LegalCrossDeptController
- base: `/api/oa/legal-cross-dept`
- `GET /sales-customer-check`
- `POST /hr-labor-dispute-register`
- `GET /ip-status-sync`
- `GET /dashboard`
### LegalEntityController
- base: `/api/oa/legal-entities`
- `GET /{id}`
- `GET /by-name`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### LegalKnowledgeController
- base: `/api/oa/legal-knowledge`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /hot`
- `GET (base)`
- `POST (base)`
### LegalOpinionController
- base: `/api/oa/legal-opinions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/archive`
- `GET (base)`
- `POST (base)`
### LegalPolicyRevisionController
- base: `/api/oa/legal-policy-revisions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-approval`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/activate`
- `POST /{id}/deprecate`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### LegalRegulationController
- base: `/api/oa/legal-regulations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/publish`
- `POST /{id}/expire`
- `POST /{id}/revise`
- `POST /{id}/read`
- `GET /{id}/history`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### LegalRiskAssessTaskController
- base: `/api/oa/legal-risk-assess-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `POST /launch-batch`
- `POST /{id}/submit`
- `GET /overdue`
- `GET (base)`
- `POST (base)`
### LegalRiskEventController
- base: `/api/oa/legal-risk-events`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/close`
- `GET /by-financing/{financingId}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### LegalRiskMeasureController
- base: `/api/oa/legal-risk-measures`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/cancel`
- `GET /overdue`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### LegalSupplierBlacklistController
- base: `/api/oa/legal-supplier-blacklist`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/remove`
- `GET /check`
- `GET (base)`
- `POST (base)`
### LegalTrainingController
- base: `/api/oa/legal-trainings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/complete`
- `POST /{id}/cancel`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### LitigationCaseController
- base: `/api/oa/litigation-cases`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/close`
- `GET /stats/overview`
- `GET /opponent-alert`
- `GET (base)`
- `POST (base)`
### LitigationDocumentController
- base: `/api/oa/litigation-documents`
- `GET /{id}`
- `GET /by-case/{caseId}`
- `GET /search`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### LitigationFirmController
- base: `/api/oa/litigation-firms`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/stats`
- `GET /expenses`
- `GET /expenses/{expId}`
- `POST /expenses`
- `PATCH /expenses/{expId}`
- `DELETE /expenses/{expId}`
- `GET /expenses/summary`
- `GET (base)`
- `POST (base)`
### LocalResourceController
- base: `/api/oa/local-resources`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/evaluate`
- `POST /{id}/warn`
- `POST /{id}/eliminate`
- `DELETE /{id}`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### LogisticsBudgetController
- base: `/api/oa/logistics-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /expenses`
- `POST /expenses`
- `PATCH /expenses/{id}`
- `DELETE /expenses/{id}`
- `POST /expenses/{id}/post`
- `GET /execution`
- `GET /allocation`
- `GET (base)`
- `POST (base)`
### LogisticsDashboardController
- base: `/api/oa/logistics-dashboard`
- `GET (base)`
### LogisticsSupplierController
- base: `/api/oa/logistics-suppliers`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/contracts`
- `GET /contracts`
- `POST /{id}/contracts`
- `PATCH /contracts/{contractId}`
- `GET /{id}/payments`
- `GET /payments`
- `POST /{id}/payments`
- `GET /{id}/evals`
- `GET /evals`
- `POST /{id}/evals`
- `GET /{id}/overview`
- `GET /contracts/expiry-alerts`
- `GET (base)`
- `POST (base)`
### LogisticsSurveyController
- base: `/api/oa/logistics-surveys`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish`
- `POST /{id}/close`
- `GET /{id}/responses`
- `POST /{id}/responses`
- `GET /{id}/stats`
- `GET /trends`
- `GET /ticket-trends`
- `GET (base)`
- `POST (base)`
### LogisticsTicketController
- base: `/api/oa/logistics-tickets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/finish`
- `POST /{id}/evaluate`
- `POST /{id}/close`
- `GET /kpi`
- `GET (base)`
- `POST (base)`
### MaintOrderController
- base: `/api/oa/maint-orders`
- `GET /equipment`
- `GET /equipment/{id}`
- `POST /equipment`
- `PATCH /equipment/{id}`
- `DELETE /equipment/{id}`
- `GET /equipment/due`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/start`
- `POST /{id}/finish`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MarketBudgetController
- base: `/api/oa/market-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/recompute`
- `DELETE /{id}`
- `GET /board`
- `GET (base)`
- `POST (base)`
### MarketCampaignController
- base: `/api/oa/market-campaigns`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MarketExpenseController
- base: `/api/oa/market-expenses`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/invoice`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reimburse`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MarketIntelController
- base: `/api/oa/market-intels`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/to-opportunity`
- `GET /analysis/region`
- `GET (base)`
- `POST (base)`
### MarketQualificationController
- base: `/api/oa/qualifications`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/lock`
- `POST /{id}/unlock`
- `GET /alerts/expiry`
- `GET /match`
- `GET (base)`
- `POST (base)`
### MaterialIssueController
- base: `/api/oa/material-issues`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MealOrderController
- base: `/api/oa/meal-orders`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/cancel`
- `POST /serve`
- `GET /stats`
- `GET /purchase-suggestion`
- `GET (base)`
- `POST (base)`
### MeasurementPaymentController
- base: `/api/oa/measurement-payments`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/issue`
- `GET (base)`
- `POST (base)`
### MediaBriefReportController
- base: `/api/oa/media-brief-reports`
- `GET /{id}`
- `POST /generate`
- `PATCH /{id}/confirm`
- `PATCH /records/{recordId}/sentiment`
- `GET /sentiment-stats`
- `GET /negative-records`
- `GET (base)`
### MediaContactController
- base: `/api/oa/media-contacts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/records`
- `POST /{id}/records`
- `POST /records/{recordId}/effect`
- `DELETE /records/{recordId}`
- `GET /reminders`
- `GET /brief`
- `GET (base)`
- `POST (base)`
### MeetingActionItemController
- base: `/api/oa/meeting-action-items`
- `POST /generate-from-minute`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `GET /overdue`
- `GET /board`
- `GET (base)`
- `POST (base)`
### MeetingController
- base: `/api/oa/meetings`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/cancel`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MeetingMinuteController
- base: `/api/oa/minutes`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MeetingRoomController
- base: `/api/oa/meeting-rooms`
- `GET /{id}`
- `GET (base)`
### MessageController
- base: `/api/oa/messages`
- `GET /unread-count`
- `POST /{id}/read`
- `POST /read-all`
- `GET (base)`
### MfgApsReorderController
- base: `/api/oa/mfg-aps-reorder`
- `POST /reorder`
- `POST /urgent-insert-simulation`
- `GET /workshop-timeline`
### MfgContractDesignTriggerController
- base: `/api/oa/mfg-contract-design-trigger`
- `POST /{contractId}/trigger`
- `GET /tasks`
- `POST /param-select`
### MfgCostEntryController
- base: `/api/oa/mfg-cost-entries`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /from-outsource/{outsourceId}`
- `POST /from-delivery/{deliveryId}`
- `POST /{id}/approve`
- `GET /project-summary/{projectCode}`
- `GET (base)`
- `POST (base)`
### MfgCrossDeptAggController
- base: `/api/oa/mfg-cross-dept`
- `GET /project-dashboard`
- `POST /bom-change-notify`
### MfgDeliveryController
- base: `/api/oa/mfg-deliveries`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/pick`
- `POST /{id}/ship`
- `POST /{id}/receive`
- `POST /{id}/dispatch-install`
- `POST /{id}/commission`
- `POST /{id}/accept`
- `POST /{id}/handover`
- `GET /board`
- `GET (base)`
- `POST (base)`
### MfgDrawingController
- base: `/api/oa/mfg-drawings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/release`
- `POST /{id}/obsolete`
- `GET /workshop-current`
- `GET (base)`
- `POST (base)`
### MfgEngBomController
- base: `/api/oa/mfg-eng-boms`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/items`
- `POST /{id}/items`
- `DELETE /items/{itemId}`
- `POST /{id}/release`
- `POST /{id}/obsolete`
- `POST /{id}/derive-mbom`
- `GET /diff`
- `GET (base)`
- `POST (base)`
### MfgEngBomMrpController
- base: `/api/oa/mrp-from-engbom`
- `GET /boms`
- `GET /{bomId}/items`
- `POST /run`
- `POST /run-and-generate-po`
- `GET /shortage-summary`
### MfgEnvContractController
- base: `/api/oa/mfg-env-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/change`
- `POST /{id}/pay`
- `GET (base)`
- `POST (base)`
### MfgEnvSupplierProfileController
- base: `/api/oa/mfg-env-supplier-profiles`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/evaluate`
- `GET /key-parts-list`
- `GET /expiry-warning`
- `POST /{id}/status/{action}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### MfgFinIntegrationController
- base: `/api/oa/mfg-fin-integration`
- `GET /wip-completion/{workOrderId}`
- `POST /delivery-voucher/{deliveryId}`
- `POST /po-voucher/{poId}`
- `GET /wip-completion/monthly-accurate`
### MfgFqcReportController
- base: `/api/oa/mfg-fqc-reports`
- `GET /{id}`
- `GET /by-serial/{serialNo}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /from-inspection/{inspectionId}`
- `POST /{id}/review`
- `POST /{id}/publish`
- `POST /{id}/reject`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### MfgInventoryLotController
- base: `/api/oa/mfg-inventory-lots`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/move`
- `GET /stale`
- `GET /hazardous`
- `GET /by-serial`
- `GET /warehouse-summary`
- `GET (base)`
- `POST (base)`
### MfgMpsController
- base: `/api/oa/mfg-mps`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/progress`
- `GET /gantt`
- `GET /capacity-load`
- `POST /auto-init`
- `GET (base)`
- `POST (base)`
### MfgProductionAnomalyController
- base: `/api/oa/mfg-production-anomalies`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start-handle`
- `POST /{id}/resolve`
- `POST /{id}/close`
- `GET /dashboard`
- `GET /overdue`
- `GET (base)`
- `POST (base)`
### MfgProjectCostController
- base: `/api/oa/mfg-project-costs`
- `GET /summary`
### MfgPurchaseOrderController
- base: `/api/oa/mfg-purchase-orders`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/place`
- `POST /{id}/arrive`
- `POST /{id}/cancel`
- `GET /board`
- `GET /outsources`
- `GET /outsources/{id}`
- `POST /outsources`
- `PATCH /outsources/{id}`
- `DELETE /outsources/{id}`
- `POST /outsources/{id}/send`
- `POST /outsources/{id}/process`
- `POST /outsources/{id}/return`
- `GET (base)`
- `POST (base)`
### MfgQuoteController
- base: `/api/oa/mfg-quotes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /cost-reference`
- `POST /{id}/adopt-reference`
- `POST /{id}/convert`
- `GET (base)`
- `POST (base)`
### MfgSalesOrderController
- base: `/api/oa/mfg-sales-orders`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /board`
- `GET (base)`
- `POST (base)`
### MfgSelfServiceController
- base: `/api/oa/mfg-self-service`
- `GET /device-archive`
- `POST /report`
- `GET /lookup`
- `POST /tickets/{id}/rate`
### MfgStocktakeController
- base: `/api/oa/mfg-stocktakes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /lines/{stocktakeId}`
- `POST /lines/{lineId}/fill`
- `POST /{id}/start`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/adjust`
- `POST /{id}/cancel`
- `GET /report`
- `GET (base)`
- `POST (base)`
### MfgWarrantyContractController
- base: `/api/oa/mfg-warranty-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/renew`
- `POST /{id}/terminate`
- `POST /{id}/schedule-inspect`
- `GET /expiring-soon`
- `GET /check-warranty`
- `GET (base)`
- `POST (base)`
### MfgWipCostController
- base: `/api/oa/mfg-wip-costs`
- `GET /monthly`
- `GET /cogs-transfer`
- `GET /project-profit`
- `GET /trend`
### MfgWipPositionController
- base: `/api/oa/mfg-wip-positions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/move`
- `GET /by-project`
- `POST /issue-quota-check`
- `POST /issue-over-quota`
- `GET (base)`
- `POST (base)`
### MobileApprovalController
- base: `/api/oa/mobile-approvals`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET (base)`
### MobileCheckinController
- base: `/api/oa/mobile-checkins`
- `GET /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### MobileController
- base: `/api/oa/mobile`
- `GET /summary`
### MonitorExceptionController
- base: `/api/oa/monitor-exceptions`
- `GET /{id}`
- `PATCH /{id}/review`
- `PATCH /{id}/to-finding`
- `GET (base)`
### MonitorRuleController
- base: `/api/oa/monitor-rules`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/run`
- `POST /run-all`
- `GET (base)`
- `POST (base)`
### MrpController
- base: `/api/oa/mrp`
- `GET /products`
- `POST /run`
### MultiPaymentBatchController
- base: `/api/oa/multi-payment-batches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{batchId}/items`
- `DELETE /{batchId}/items/{itemId}`
- `GET /{batchId}/detail`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/pay`
- `GET /payable-unpaid`
- `GET (base)`
- `POST (base)`
### NetScanTaskController
- base: `/api/oa/net-scan-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `GET /due`
- `POST /{id}/scan`
- `GET /logs`
- `DELETE /logs/{logId}`
- `GET (base)`
- `POST (base)`
### OccHazardController
- base: `/api/oa/occ-hazard-factors`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/monitor`
- `POST /{id}/escalate-capa`
- `GET /scan-overdue`
- `GET (base)`
- `POST (base)`
### OccWorkplaceMonitorController
- base: `/api/oa/occ-workplace-monitors`
- `GET /{id}`
- `DELETE /{id}`
- `GET /report`
- `POST /{id}/escalate-capa`
- `GET (base)`
- `POST (base)`
### OperationAuditLogController
- base: `/api/oa/operation-audit-logs`
- `GET /{id}`
- `GET /by-operator/{operator}`
- `GET /by-resource/{resourceType}`
- `GET /chain/verify`
- `GET (base)`
### OpportunityController
- base: `/api/oa/opportunities`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/convert-bid`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### OpportunityDedupController
- base: `/api/oa/opportunities/dedup`
- `GET /check`
### OpportunityFollowupController
- base: `/api/oa/opportunity-followups`
- `GET (base)`
- `POST (base)`
### OpsCostAllocationController
- base: `/api/oa/ops-cost-allocation`
- `GET (base)`
### OpsEmergencySupplyController
- base: `/api/oa/ops-emergency-supplies`
- `GET /{id}`
- `POST /in`
- `POST /out`
- `DELETE /{id}`
- `GET /snapshot`
- `GET /low-stock`
- `GET /expiry-alert`
- `GET (base)`
### OpsHazChemRequestController
- base: `/api/oa/ops-haz-chem-requests`
- `GET /{id}`
- `POST /{id}/approve`
- `POST /{id}/approve2`
- `POST /{id}/issue`
- `POST /{id}/settle`
- `DELETE /{id}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### OpsKpiController
- base: `/api/oa/ops-kpi`
- `GET (base)`
### OpsMaintController
- base: `/api/oa/ops-maint`
- `GET /plans`
- `POST /plans`
- `PATCH /plans/{id}`
- `DELETE /plans/{id}`
- `POST /plans/generate-due`
- `GET /orders`
- `POST /orders/report`
- `POST /orders/{id}/dispatch`
- `POST /orders/{id}/finish`
- `POST /orders/{id}/cancel`
- `GET /reliability`
### OpsMobileMonitorController
- base: `/api/oa/ops-mobile-monitor`
- `GET /dashboard`
- `GET /water-quality`
- `GET /equipment-status`
- `GET /alerts`
- `GET /process-latest`
### OpsReagentCostAllocController
- base: `/api/oa/ops-reagent-cost-alloc`
- `GET /trend`
- `GET /reagent-price-history`
- `GET (base)`
### OpsXdeptDataController
- base: `/api/oa/ops-xdept-data`
- `GET /{id}`
- `POST /push`
- `POST /auto-push/{period}`
- `POST /{id}/confirm`
- `POST /{id}/retry`
- `DELETE /{id}`
- `GET /aggregated/{period}`
- `GET (base)`
### OrgBranchController
- base: `/api/oa/org-branches`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /board`
- `GET (base)`
- `POST (base)`
### PatentController
- base: `/api/oa/patents`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /{id}/mid-files`
- `POST /{id}/mid-files`
- `POST /{id}/mid-files/{fid}/handle`
- `DELETE /{id}/mid-files/{fid}`
- `GET (base)`
- `POST (base)`
### PatentDisclosureController
- base: `/api/oa/patent-disclosures`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/submit`
- `POST /{id}/start-assess`
- `POST /{id}/decide`
- `POST /{id}/file`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### PatentFeeController
- base: `/api/oa/patent-fees`
- `GET /{id}`
- `GET /summary/{patentId}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/pay`
- `GET (base)`
- `POST (base)`
### PatentKnowledgePortalController
- base: `/api/oa/patent-portal`
- `GET /search`
- `GET /benefit`
### PatentKpiController
- base: `/api/oa/patent-kpi`
- `GET /dept-stat`
- `GET /person-stat`
- `GET /summary`
### PaymentController
- base: `/api/oa/payments`
- `GET /{id}`
- `POST /{id}/pay`
- `POST /{id}/reject`
- `GET (base)`
- `POST (base)`
### PersonnelCertController
- base: `/api/oa/personnel-certs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /expire-alert`
- `POST /{id}/push-training`
- `GET (base)`
- `POST (base)`
### PmtBankEvalController
- base: `/api/oa/pmt-bank-evals`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### PmtBankRelationController
- base: `/api/oa/pmt-bank-relations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /credit-usage`
- `GET (base)`
- `POST (base)`
### PmtCollectionController
- base: `/api/oa/pmt-collection`
- `POST /gen-from-invoice/{invoiceId}`
- `GET /overdue`
- `GET /logs`
- `GET /logs/{id}`
- `POST /logs`
- `PATCH /logs/{id}`
- `DELETE /logs/{id}`
- `POST /logs/{id}/send-dunning`
- `GET /summary`
### PmtContractAttachmentController
- base: `/api/oa/pmt-contract-attachments`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### PmtContractFeeItemController
- base: `/api/oa/pmt-contract-fee-items`
- `GET /{id}`
- `GET /summary`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### PmtCostAllocController
- base: `/api/oa/pmt-cost-alloc`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/compute`
- `GET /compute-preview`
- `GET (base)`
- `POST (base)`
### PmtFinancingContractController
- base: `/api/oa/pmt-financing-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/sign`
- `POST /{id}/drawdown`
- `POST /{id}/settle`
- `POST /{id}/terminate`
- `GET (base)`
- `POST (base)`
### PmtInboundReceiptController
- base: `/api/oa/pmt-inbound-receipts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/claim`
- `POST /{id}/unclaim`
- `GET /match-suggest`
- `GET (base)`
- `POST (base)`
### PmtInternalTransController
- base: `/api/oa/pmt-internal-trans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/confirm`
- `POST /{id}/resolve-diff`
- `POST /{id}/settle`
- `GET /recon-summary`
- `POST /calc-interest`
- `POST /{id}/to-voucher`
- `GET (base)`
- `POST (base)`
### PmtLoanSchemeController
- base: `/api/oa/pmt-loan-schemes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /rank`
- `POST /{id}/recommend`
- `POST /{id}/select`
- `GET /compare`
- `GET (base)`
- `POST (base)`
### PmtPayeeBlacklistController
- base: `/api/oa/pmt-payee-blacklist`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle`
- `GET /check`
- `GET (base)`
- `POST (base)`
### PolicyApplicationController
- base: `/api/oa/policy-applications`
- `GET /{id}`
- `POST /{id}/advance`
- `POST /{id}/reject`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### PolicyController
- base: `/api/oa/policies`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /match`
- `GET /profile`
- `GET /score`
- `GET (base)`
- `POST (base)`
### PpeItemController
- base: `/api/oa/ppe-items`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `PATCH /{id}/inspect`
- `POST /{id}/replace`
- `POST /scan-expired`
- `GET (base)`
- `POST (base)`
### PriceItemController
- base: `/api/oa/price-items`
- `GET /{id}`
- `GET (base)`
- `POST (base)`
### ProductCertController
- base: `/api/oa/product-certs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-test`
- `POST /{id}/issue`
- `POST /{id}/fail`
- `POST /{id}/renew`
- `GET /alerts/expiry`
- `GET (base)`
- `POST (base)`
### ProductRequirementController
- base: `/api/oa/product-requirements`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/adopt`
- `POST /{id}/reject`
- `POST /{id}/convert`
- `GET (base)`
- `POST (base)`
### ProductRoadmapController
- base: `/api/oa/product-roadmaps`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/items`
- `POST /{id}/items`
- `PATCH /items/{itemId}`
- `DELETE /items/{itemId}`
- `POST /{id}/publish`
- `POST /{id}/revise`
- `GET (base)`
- `POST (base)`
### ProductionReportController
- base: `/api/oa/production-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{workOrderId}/kitting`
- `GET (base)`
- `POST (base)`
### ProjectController
- base: `/api/oa/projects`
- `GET /{id}`
- `POST /{id}/advance`
- `GET (base)`
- `POST (base)`
### ProjectCostControlController
- base: `/api/oa/project-budget-lines`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/transition`
- `POST /rollup`
- `GET /alerts`
- `GET /evm`
- `GET /project-summary`
- `GET /in-flight`
- `GET (base)`
- `POST (base)`
### ProjectTaskController
- base: `/api/oa/project-tasks`
- `PATCH /{id}`
- `GET (base)`
- `POST (base)`
### PrototypeOrderController
- base: `/api/oa/prototype-orders`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/issue-material`
- `POST /{id}/start`
- `POST /{id}/finish`
- `POST /{id}/scrap`
- `POST /{id}/record-defect`
- `GET (base)`
- `POST (base)`
### PrototypeStockController
- base: `/api/oa/prototype-stocks`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/loans`
- `POST /{id}/borrow`
- `POST /{id}/return`
- `POST /{id}/scrap`
- `GET (base)`
- `POST (base)`
### PublicityTaskController
- base: `/api/oa/publicity-tasks`
- `GET /{id}`
- `GET /overdue`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `GET /briefing`
- `GET (base)`
- `POST (base)`
### PublishChannelController
- base: `/api/oa/publish-channels`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/enable`
- `POST /{id}/disable`
- `GET /{channelId}/histories`
- `POST /{channelId}/histories`
- `PATCH /histories/{historyId}`
- `DELETE /histories/{historyId}`
- `GET /calendar`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### QcInspectionController
- base: `/api/oa/qc-inspections`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/judge`
- `GET /trace`
- `GET /supplier-quality`
- `GET (base)`
- `POST (base)`
### QhseCrossDeptSyncController
- base: `/api/oa/qhse-cross-dept-sync`
- `GET /production-quality-preview`
- `POST /push-production-quality`
- `GET /lab-quality-preview`
- `POST /push-lab-quality`
- `GET /compli-obligations-shared`
- `GET /compli-gap-summary`
- `POST /compli-obligation-capa-ref/{id}`
- `GET /cert-push-preview`
- `POST /push-cert-to-declaration`
- `GET /cert-push-history`
- `GET /sync-status`
### QhseDashboardController
- base: `/api/oa/qhse-dashboard`
- `GET (base)`
### QhseInterfaceController
- base: `/api/oa/qhse-interface`
- `GET /objective-sync`
- `GET /health-alert`
- `GET /training-coverage`
- `GET /hazard-by-dept`
- `GET /cross-dept-summary`
### QhseReportController
- base: `/api/oa/qhse-reports`
- `GET /accident-stat`
- `GET /env-discharge-report`
- `GET /monthly`
- `GET /quarterly`
- `GET /annual`
- `GET /hazard-trend`
- `GET /objective-attainment`
### QmsAuditController
- base: `/api/oa/qms-audits`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start`
- `POST /{id}/conclude`
- `GET /{auditId}/findings`
- `POST /{auditId}/findings`
- `POST /findings/{fid}/assign`
- `POST /findings/{fid}/rectify`
- `POST /findings/{fid}/verify`
- `POST /findings/{fid}/escalate-capa`
- `GET /{id}/report`
- `GET (base)`
- `POST (base)`
### QmsDocumentController
- base: `/api/oa/qms-documents`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish`
- `POST /{id}/revise`
- `POST /{id}/obsolete`
- `POST /scan-retention`
- `GET (base)`
- `POST (base)`
### QmsManagementReviewController
- base: `/api/oa/qms-management-reviews`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{id}/aggregate-inputs`
- `POST /{id}/fill-inputs`
- `GET (base)`
- `POST (base)`
### QmsRecordController
- base: `/api/oa/qms-records`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### QualAchievementController
- base: `/api/oa/qual-achievements`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /extract-metrics`
- `POST /dedup`
- `POST /{id}/lock`
- `POST /{id}/release`
- `GET /search`
- `GET /stats`
- `POST /{id}/field-evidence`
- `GET (base)`
- `POST (base)`
### QualAnalyticsController
- base: `/api/oa/qual-analytics`
- `GET /panorama`
- `GET /calendar`
- `GET /cert-gap`
- `GET /roi`
### QualCertChangeController
- base: `/api/oa/qual-cert-changes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /by-cert/{qualCertId}`
- `GET (base)`
- `POST (base)`
### QualCertController
- base: `/api/oa/qual-certs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{id}/usages`
- `POST /{id}/usages`
- `POST /usages/{usageId}/end`
- `GET /alerts/expiry`
- `GET (base)`
- `POST (base)`
### QualDeclarationController
- base: `/api/oa/qual-declarations`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{id}/tasks`
- `POST /{id}/tasks`
- `PATCH /tasks/{taskId}`
- `DELETE /tasks/{taskId}`
- `GET /{id}/fees`
- `POST /{id}/fees`
- `DELETE /fees/{feeId}`
- `GET /{id}/gap`
- `GET (base)`
- `POST (base)`
### QualElecLicenseController
- base: `/api/oa/qual-elec-licenses`
- `GET /{id}`
- `GET /by-cert/{certId}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### QualExportController
- base: `/api/oa/qual-exports`
- `POST /package`
- `GET /match`
- `GET /verify/{certNo}`
- `GET /qr-list`
- `POST /qr-register`
### QualRiskAlertController
- base: `/api/oa/qual-risk-alerts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/dispose`
- `POST /{id}/close`
- `POST /scan`
- `GET /dashboard`
- `GET (base)`
- `POST (base)`
### QualSafetyAccidentController
- base: `/api/oa/qual-safety-accidents`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### QualYearCheckController
- base: `/api/oa/qual-year-checks`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/advance`
- `POST /generate`
- `GET /report/{certId}`
- `GET /upgrade-gap`
- `GET (base)`
- `POST (base)`
### RdAfterSalesFeedbackController
- base: `/api/oa/rd-after-sales-feedback`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/reject`
- `POST /{id}/convert-to-req`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### RdAnnualBudgetController
- base: `/api/oa/rd-annual-budgets`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/status`
- `DELETE /{id}`
- `POST /occupy`
- `GET /summary`
- `GET /compare`
- `GET /export-project-list`
- `GET (base)`
- `POST (base)`
### RdCostHubController
- base: `/api/oa/rd-timesheets`
- `GET /{id}`
- `POST /batch`
- `PATCH /{id}`
- `POST /submit`
- `DELETE /{id}`
- `GET /projects/{projectId}/summary`
- `POST /projects/{projectId}/aggregate-materials`
- `POST /projects/{projectId}/aggregate-labor`
- `GET /projects/{projectId}/evidence-pack`
- `GET (base)`
- `POST (base)`
### RdDeclPlanController
- base: `/api/oa/rd-decl-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit-approval`
- `GET /{id}/approval-status`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/cancel`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/sync-progress`
- `GET /progress`
- `GET (base)`
- `POST (base)`
### RdDevCrossDeptController
- base: `/api/oa/rd-dev-cross-dept`
- `GET /{devProjectId}/launch-push`
- `GET /{devProjectId}/improvement-summary`
- `GET /launched-products`
- `GET /aftermarket-pending`
### RdDocSignoffController
- base: `/api/oa/rd-doc-versions`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/signoff/{step}`
- `POST /{id}/start-review`
- `GET /{id}/signoffs`
- `GET /{id}/history`
- `POST /{id}/new-version`
- `GET (base)`
- `POST (base)`
### RdEbomController
- base: `/api/oa/rd-eboms`
- `GET /tree`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{rootId}/publish`
- `POST /{rootId}/start-change`
- `POST /{rootId}/obsolete`
- `POST /{rootId}/publish-to-mfg`
- `GET (base)`
- `POST (base)`
### RdEbomCostCalcController
- base: `/api/oa/rd-ebom-cost-calc`
- `POST /{devProjectId}/calculate`
- `POST /{devProjectId}/target-cost`
- `GET /{devProjectId}/bom-summary`
### RdExpenseController
- base: `/api/oa/rd-expenses`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### RdExpenseTraceController
- base: `/api/oa/rd-expense-traces`
- `GET /{rdProjectId}`
- `GET (base)`
### RdGrantDisbursementController
- base: `/api/oa/rd-grant-disbursements`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/receive`
- `POST /{id}/settle-agency`
- `GET /alerts/pending`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### RdInnovationPointController
- base: `/api/oa/rd-innovation-points`
- `GET /{id}`
- `GET /triggered`
- `PATCH /{id}`
- `POST /{id}/trigger-patent`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### RdIssueController
- base: `/api/oa/rd-issues`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign`
- `POST /{id}/resolve`
- `POST /{id}/verify`
- `POST /{id}/reopen`
- `POST /{id}/hold`
- `GET /stats`
- `GET /alerts/overdue`
- `GET (base)`
- `POST (base)`
### RdKnowledgeController
- base: `/api/oa/rd-knowledge`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle`
- `POST /{id}/reference`
- `GET /search`
- `GET /competitors`
- `GET /modules`
- `GET /lessons/push`
- `GET (base)`
- `POST (base)`
### RdMaintenanceTaskController
- base: `/api/oa/rd-maintenance-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/complete`
- `GET /alerts/due`
- `GET (base)`
- `POST (base)`
### RdMaterialController
- base: `/api/oa/rd-materials`
- `GET /{id}`
- `GET /dedup`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/mark-transfer`
- `POST /{id}/to-mass`
- `GET (base)`
- `POST (base)`
### RdMobileController
- base: `/api/oa/rd-mobile`
- `POST /photos`
- `GET /photos`
- `DELETE /photos/{id}`
- `GET /docs/{docId}/preview-url`
- `GET /progress`
### RdProjectController
- base: `/api/oa/rd-projects`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### RdPurchaseRequestController
- base: `/api/oa/rd-purchase-requests`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/to-procurement`
- `GET (base)`
- `POST (base)`
### RdReuseModuleController
- base: `/api/oa/rd-reuse-modules`
- `GET /{id}`
- `GET /search`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/review`
- `POST /{id}/publish`
- `POST /{id}/obsolete`
- `POST /{id}/reference`
- `GET (base)`
- `POST (base)`
### RdSciTechPersonnelController
- base: `/api/oa/rd-sci-tech-personnel`
- `GET /{id}`
- `GET /summary`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### RdServiceAgencyController
- base: `/api/oa/rd-service-agencies`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/evaluate`
- `GET (base)`
- `POST (base)`
### RdTestPlanController
- base: `/api/oa/rd-test-plans`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/start`
- `POST /{id}/complete`
- `POST /{id}/fail`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### RdWeeklyReportController
- base: `/api/oa/rd-weekly-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /auto-generate`
- `GET /period-stats`
- `GET (base)`
- `POST (base)`
### ReagentController
- base: `/api/oa/reagents`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/inbound`
- `POST /{id}/outbound`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### RectificationController
- base: `/api/oa/rectifications`
- `GET /{id}`
- `PATCH /{id}/plan`
- `PATCH /{id}/progress`
- `PATCH /{id}/verify`
- `PATCH /{id}/reject`
- `POST /scan-overdue`
- `GET /ledger`
- `GET (base)`
### RegulatorySubmissionController
- base: `/api/oa/regulatory-submissions`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /overdue-check`
- `GET /stats/overview`
- `GET (base)`
- `POST (base)`
### ReportController
- base: `/api/oa/reports`
- `GET /overview`
### ReportDefinitionController
- base: `/api/oa/report-definitions`
- `GET /schema`
- `GET /{id}`
- `POST /{id}`
- `DELETE /{id}`
- `GET /{id}/run`
- `GET (base)`
- `POST (base)`
### RiskAssessmentController
- base: `/api/oa/risk-assessments`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /heatmap`
- `GET (base)`
- `POST (base)`
### RoleController
- base: `/api/oa/roles`
- `GET (base)`
### RuleConfigController
- base: `/api/oa/rule-configs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SafetyCheckController
- base: `/api/oa/safety-checks`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SafetyFacilityController
- base: `/api/oa/safety-facilities`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/check`
- `POST /{id}/maintain`
- `POST /scan-due`
- `GET (base)`
- `POST (base)`
### SafetyInvestmentController
- base: `/api/oa/safety-investments`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /summary`
- `GET /finance-check`
- `GET (base)`
- `POST (base)`
### SafetyResponsibilityController
- base: `/api/oa/safety-responsibilities`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/sign`
- `POST /{id}/renew`
- `POST /scan-expiry`
- `GET (base)`
- `POST (base)`
### SafetyTrainingController
- base: `/api/oa/safety-trainings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{trainingId}/enrollments`
- `POST /{trainingId}/enroll`
- `POST /enrollments/{eid}/sign-in`
- `POST /enrollments/{eid}/score`
- `POST /enrollments/{eid}/archive`
- `GET /{id}/stat`
- `GET (base)`
- `POST (base)`
### ScheduleEventController
- base: `/api/oa/schedule-events`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SealController
- base: `/api/oa/seals`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SealUseController
- base: `/api/oa/seal-uses`
- `GET /{id}`
- `POST /{id}/advance`
- `GET (base)`
- `POST (base)`
### SearchController
- base: `/api/oa/search`
- `POST /reindex`
- `GET (base)`
### SecretAccessLogController
- base: `/api/oa/secret-access-logs`
- `POST /record`
- `GET /summary`
- `GET (base)`
### SentimentController
- base: `/api/oa/sentiment-records`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/handle`
- `POST /{id}/resolve`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### ServiceTicketController
- base: `/api/oa/service-tickets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/dispatch`
- `POST /{id}/start`
- `POST /{id}/consume-part`
- `POST /{id}/complete`
- `POST /{id}/close`
- `GET /sla/summary`
- `GET (base)`
- `POST (base)`
### SettingController
- base: `/api/oa/settings`
- `GET /{key}`
- `PUT /{key}`
### SettlementController
- base: `/api/oa/settlements`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/review`
- `POST /{id}/reset-review`
- `POST /{id}/generate-voucher`
- `POST /risk-check`
- `GET (base)`
- `POST (base)`
### SewageCostMonthController
- base: `/api/oa/sewage-cost-months`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /trend`
- `GET /budget-comparison`
- `GET (base)`
- `POST (base)`
### SewageCostSavingProjectController
- base: `/api/oa/sewage-cost-saving-projects`
- `GET /{id}`
- `PUT /{id}`
- `PATCH /{id}/status`
- `DELETE /{id}`
- `GET /summary`
- `POST /{id}/recalc`
- `GET (base)`
- `POST (base)`
### SewageCrossDeptLinkageController
- base: `/api/oa/sewage-cross-dept-linkages`
- `GET /{id}`
- `POST /trigger`
- `POST /{id}/retry`
- `DELETE /{id}`
- `GET /stats`
- `GET /equip-tech-docs`
- `GET (base)`
### SewageDetectionReportController
- base: `/api/oa/sewage-detection-reports`
- `GET /{id}`
- `POST /generate`
- `POST /{id}/sign`
- `POST /{id}/submit`
- `GET /pending-sign`
- `GET /trend`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
### SewageEmergencyPlanController
- base: `/api/oa/sewage-emergency-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/publish`
- `POST /{id}/archive`
- `POST /{id}/record-drill`
- `POST /{id}/activate-event`
- `POST /{id}/close-event`
- `GET /drill-due-alerts`
- `GET /drill-compliance`
- `GET (base)`
- `POST (base)`
### SewageEnergyLogController
- base: `/api/oa/sewage-energy-logs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /cost/summary`
- `GET /alerts/energy`
- `GET (base)`
- `POST (base)`
### SewageEnvRecordController
- base: `/api/oa/sewage-env-records`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/dispose`
- `GET /pending`
- `GET /compliance-stats`
- `GET (base)`
- `POST (base)`
### SewageEquipmentController
- base: `/api/oa/sewage-equipments`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /work-orders`
- `GET /{id}/work-orders`
- `POST /work-orders/report`
- `POST /work-orders/{orderId}/dispatch`
- `POST /work-orders/{orderId}/start`
- `POST /work-orders/{orderId}/finish`
- `POST /work-orders/{orderId}/cancel`
- `POST /work-orders/pm-scan`
- `GET /performance`
- `GET (base)`
- `POST (base)`
### SewageExtLabCommissionController
- base: `/api/oa/sewage-ext-lab-commissions`
- `GET /{id}`
- `PUT /{id}`
- `POST /{id}/send-sample`
- `POST /{id}/start-testing`
- `POST /{id}/report`
- `POST /{id}/archive`
- `POST /{id}/push-to-legal`
- `GET /stats`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SewageGovReportController
- base: `/api/oa/sewage-gov-reports`
- `GET /{id}`
- `POST /generate`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/report`
- `POST /{id}/archive`
- `GET /export/{id}`
- `GET /summary`
- `DELETE /{id}`
- `GET (base)`
### SewageInflowForecastController
- base: `/api/oa/sewage-inflow-forecasts`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/confirm`
- `POST /{id}/execute`
- `POST /generate`
- `GET /accuracy`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SewageKpiController
- base: `/api/oa/sewage-kpi`
- `GET /energy-saving`
- `GET (base)`
### SewageMobileQueueController
- base: `/api/oa/sewage-mobile-queues`
- `GET /{id}`
- `POST /enqueue`
- `POST /push`
- `POST /replay`
- `GET /stats`
- `GET (base)`
### SewageOccHealthController
- base: `/api/oa/sewage-occ-health`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/status`
- `GET /overdue`
- `GET /hazard-factors`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### SewagePatrolController
- base: `/api/oa/sewage-patrol`
- `GET /routes`
- `GET /routes/{id}`
- `POST /routes`
- `PATCH /routes/{id}`
- `POST /routes/{id}/status`
- `DELETE /routes/{id}`
- `GET /records`
- `GET /records/{id}`
- `POST /records/start`
- `POST /records/{id}/finish`
- `DELETE /records/{id}`
- `GET /records/hazards`
- `GET /records/stats`
### SewagePlantBenchmarkController
- base: `/api/oa/sewage-plant-benchmarks`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET /ranking`
- `GET /cross-benchmark`
- `GET (base)`
- `POST (base)`
### SewagePowerSectionController
- base: `/api/oa/sewage-power-sections`
- `GET /{id}`
- `DELETE /{id}`
- `GET /by-date`
- `GET /peak-valley-stats`
- `GET (base)`
- `POST (base)`
### SewageProcessFlowController
- base: `/api/oa/sewage-process-flow`
- `GET /snapshot`
- `GET /alert-summary`
- `GET /daily-summary`
### SewageProcessRunController
- base: `/api/oa/sewage-process-runs`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /alerts`
- `GET /daily-report`
- `GET (base)`
- `POST (base)`
### SewageProcessSchemeController
- base: `/api/oa/sewage-process-schemes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/toggle-active`
- `POST /match`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### SewageReagentStockController
- base: `/api/oa/sewage-reagent-stocks`
- `GET /{id}`
- `POST /in`
- `POST /out`
- `DELETE /{id}`
- `GET /snapshot`
- `GET /dosing-deviation`
- `GET (base)`
### SewageReportTemplateController
- base: `/api/oa/sewage-report-templates`
- `GET /{id}`
- `GET /report-types`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /generate-by-template`
- `GET /compliance-matrix`
- `GET (base)`
- `POST (base)`
### SewageSamplingPlanController
- base: `/api/oa/sewage-sampling-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /generate`
- `POST /{id}/sample`
- `POST /{id}/record-result`
- `GET /exceed-alerts`
- `GET /compliance-summary`
- `POST /{id}/qc`
- `POST /batch-import`
- `GET (base)`
- `POST (base)`
### SewageShiftHandoverController
- base: `/api/oa/sewage-shift-handovers`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `GET /pending`
- `GET (base)`
- `POST (base)`
### SewageSludgeController
- base: `/api/oa/sewage-sludge-records`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/transport`
- `POST /{id}/sign`
- `POST /{id}/settle`
- `POST /{id}/reject`
- `GET /cost/summary`
- `GET (base)`
- `POST (base)`
### SewageSparePartController
- base: `/api/oa/sewage-spare-parts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/inbound`
- `POST /{id}/consume`
- `GET /scan-low-stock`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### SoftwareLicenseController
- base: `/api/oa/software-licenses`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/assign-seat`
- `POST /{id}/release-seat`
- `GET /alerts/expiry`
- `GET /cost/summary`
- `GET (base)`
- `POST (base)`
### StaffCredentialController
- base: `/api/oa/staff-credentials`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/lock`
- `POST /{id}/release`
- `POST /{id}/borrow`
- `POST /{id}/return`
- `POST /{id}/renew`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### StaffDossierController
- base: `/api/oa/staff-dossiers`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/archive`
- `GET /{id}/items`
- `POST /{id}/items`
- `DELETE /items/{itemId}`
- `GET /{id}/completeness`
- `GET /alerts/expiry`
- `POST /{id}/onboard-upload`
- `GET (base)`
- `POST (base)`
### StaffSelfServiceController
- base: `/api/oa/staff-self`
- `GET /my-dossier`
- `GET /my-items`
- `POST /cert-upload`
- `POST /error-correct`
- `POST /info-update`
- `GET /my-requests`
- `GET /requests`
- `POST /requests/{id}/review`
### StandardCostController
- base: `/api/oa/standard-costs`
- `GET /{id}`
- `PUT /{id}`
- `GET /rollup`
- `GET /rollup-tree`
- `DELETE /{id}`
- `GET /trend-analysis`
- `GET (base)`
- `POST (base)`
### StdApplicationController
- base: `/api/oa/std-applications`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{id}/progress`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### StlDebtLedgerController
- base: `/api/oa/stl-debt-ledger`
- `POST /repayments/{planId}/pay-and-voucher`
- `GET /overdue-alerts`
- `GET (base)`
### StlForexRiskController
- base: `/api/oa/stl-forex-risks`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/hedge`
- `POST /{id}/expire`
- `POST /{id}/close-position`
- `GET /summary`
- `POST /forex-rate-calc`
- `GET (base)`
- `POST (base)`
### StlFundPlanSubmissionController
- base: `/api/oa/stl-fund-plan-submissions`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/gather`
- `POST /{id}/balance`
- `POST /{id}/reject`
- `GET /period-summary`
- `GET (base)`
- `POST (base)`
### StlFundReportController
- base: `/api/oa/stl-fund-report`
- `GET /daily`
- `GET /monthly`
- `GET /cash-flow-indirect`
- `GET /cash-flow-direct`
- `GET /interest-analysis`
- `GET /idle-accounts`
- `GET /bill-analysis`
- `GET /concentration`
### StlInternalSettleRuleController
- base: `/api/oa/stl-internal-settle-rules`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /match`
- `POST /{id}/toggle`
- `GET (base)`
- `POST (base)`
### StlPaymentRefundController
- base: `/api/oa/stl-payment-refunds`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/pay`
- `GET (base)`
- `POST (base)`
### StlRollingForecastController
- base: `/api/oa/stl-rolling-forecast`
- `GET /rolling`
- `GET /out-of-plan-check`
- `GET /variance`
### SupervisionInspectionController
- base: `/api/oa/supervision-inspections`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/close`
- `GET (base)`
- `POST (base)`
### SupervisionLogController
- base: `/api/oa/supervision-logs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SupervisionProjectController
- base: `/api/oa/supervision-projects`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /{id}/overview`
- `GET (base)`
- `POST (base)`
### SupplierContractPrereqController
- base: `/api/oa/supplier-contract-prereq`
- `GET /check`
- `POST /declare-prereq`
- `GET /prereq-status`
- `GET /by-contract`
### SupplierController
- base: `/api/oa/suppliers`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SupplierQualityController
- base: `/api/oa/supplier-quality-lots`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /evaluation`
- `GET (base)`
- `POST (base)`
### SupplierSampleController
- base: `/api/oa/supplier-samples`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/start-test`
- `POST /{id}/judge`
- `POST /{id}/to-mass`
- `GET (base)`
- `POST (base)`
### SurveyController
- base: `/api/oa/surveys`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/vote`
- `GET (base)`
- `POST (base)`
### SvAccidentController
- base: `/api/oa/sv-accidents`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/activate-emergency`
- `POST /{id}/investigate`
- `POST /{id}/archive`
- `POST /{id}/close`
- `GET (base)`
- `POST (base)`
### SvArchiveTransferController
- base: `/api/oa/sv-archive-transfers`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/assemble`
- `POST /{id}/send`
- `POST /{id}/sign`
- `GET (base)`
- `POST (base)`
### SvAuditQueryController
- base: `/api/oa/sv-audit-query`
- `GET /projects/{svProjectId}/quality-records`
- `GET /projects/{svProjectId}/payment-records`
- `GET /projects/{svProjectId}/rectify-records`
- `GET /projects/{svProjectId}/image-index`
- `GET /projects/{svProjectId}/full-export`
### SvChangeClaimController
- base: `/api/oa/sv-change-claims`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `GET (base)`
- `POST (base)`
### SvCrossLinkController
- base: `/api/oa/sv-cross-link`
- `POST /test-task-callback/{testTaskId}`
- `GET /material-inspect-summary`
- `POST /engineering-change-push/{changeId}`
### SvDrawingIssueController
- base: `/api/oa/sv-drawing-issues`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/action`
- `DELETE /{id}`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### SvEquipmentLedgerController
- base: `/api/oa/sv-equipment-ledger`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/borrow`
- `POST /{id}/return`
- `POST /{id}/calibrate`
- `POST /{id}/calibrate-done`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### SvHiddenWorkController
- base: `/api/oa/sv-hidden-works`
- `GET /{id}`
- `GET /open-count`
- `PATCH /{id}`
- `POST /{id}/add-image`
- `POST /{id}/conclude`
- `POST /{id}/recheck`
- `POST /{id}/close`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SvIndepClaimController
- base: `/api/oa/sv-indep-claims`
- `GET /{id}`
- `POST /{id}/incident`
- `POST /{id}/assessment`
- `POST /{id}/opinion`
- `POST /{id}/close`
- `POST /{id}/reject`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /critical-path-summary`
- `GET (base)`
- `POST (base)`
### SvLogAutoAggController
- base: `/api/oa/sv-log-auto-agg`
- `GET /projects/{svProjectId}/daily-events`
- `POST /projects/{svProjectId}/auto-log`
- `GET /projects/{svProjectId}/quality-eval`
- `GET /projects/{svProjectId}/themed-report`
### SvMaterialInspectController
- base: `/api/oa/sv-material-inspects`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/conclude`
- `GET (base)`
- `POST (base)`
### SvMonthlyReportController
- base: `/api/oa/sv-monthly-reports`
- `GET /{id}`
- `POST /generate`
- `POST /{id}/refresh`
- `PATCH /{id}`
- `POST /{id}/publish`
- `DELETE /{id}`
- `GET (base)`
### SvNoticeController
- base: `/api/oa/sv-notices`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/sign`
- `POST /{id}/acknowledge`
- `POST /{id}/reply`
- `POST /{id}/close`
- `GET (base)`
- `POST (base)`
### SvOpenWorkOrderController
- base: `/api/oa/sv-open-work-orders`
- `GET /{id}`
- `GET /current`
- `POST /{id}/check-item`
- `POST /{id}/issue`
- `POST /{id}/defer`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SvPatrolController
- base: `/api/oa`
- `GET /sv-patrol-schemes`
- `GET /sv-patrol-schemes/{id}`
- `POST /sv-patrol-schemes`
- `PATCH /sv-patrol-schemes/{id}`
- `POST /sv-patrol-schemes/{id}/publish`
- `POST /sv-patrol-schemes/{id}/generate-plans`
- `DELETE /sv-patrol-schemes/{id}`
- `GET /sv-patrol-plans`
- `GET /sv-patrol-plans/{id}`
- `POST /sv-patrol-plans`
- `PATCH /sv-patrol-plans/{id}`
- `POST /sv-patrol-plans/{id}/start`
- `POST /sv-patrol-plans/{id}/finish`
- `DELETE /sv-patrol-plans/{id}`
- `GET /sv-patrol-checkpoints`
- `GET /sv-patrol-checkpoints/{id}`
- `POST /sv-patrol-checkpoints`
- `PATCH /sv-patrol-checkpoints/{id}`
- `POST /sv-patrol-checkpoints/{id}/check-in`
- `POST /sv-patrol-checkpoints/{id}/reset`
- `DELETE /sv-patrol-checkpoints/{id}`
### SvPersonalCertController
- base: `/api/oa/sv-personal-certs`
- `GET /{id}`
- `GET /expiring`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SvPlanController
- base: `/api/oa/sv-plans`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/submit`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/owner-confirm`
- `POST /{id}/revise`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SvProgressController
- base: `/api/oa/sv-progress-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/review`
- `GET /{id}/tasks`
- `POST /{id}/tasks`
- `PATCH /tasks/{taskId}/report`
- `DELETE /tasks/{taskId}`
- `GET /{id}/s-curve`
- `GET /alerts`
- `GET (base)`
- `POST (base)`
### SvQualificationController
- base: `/api/oa/sv-qualifications`
- `GET /{id}`
- `GET /alerts`
- `PATCH /{id}`
- `POST /{id}/review`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### SvSafetyAggController
- base: `/api/oa/sv-safety-agg`
- `GET /projects/{svProjectId}/checks`
- `GET /projects/{svProjectId}/stats`
- `GET /overview`
### SvSafetyTrainLinkController
- base: `/api/oa/sv-safety-train-link`
- `GET /projects/{svProjectId}/dashboard`
- `GET /projects/{svProjectId}/cert-train-warning`
- `GET /trainings`
- `GET /global-cert-warning`
### SvSchemeController
- base: `/api/oa/sv-schemes`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/spec-review`
- `POST /{id}/chief-sign`
- `GET (base)`
- `POST (base)`
### SvSequenceInspectController
- base: `/api/oa/sv-sequence-inspects`
- `GET /{id}`
- `GET /compare-analysis`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/accept`
- `POST /{id}/conclude`
- `GET (base)`
- `POST (base)`
### SvSurveyVerifyController
- base: `/api/oa/sv-survey-verify`
- `GET /{id}`
- `PUT /{id}`
- `PATCH /{id}/close`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### TaskController
- base: `/api/oa/tasks`
- `POST /{instanceId}/urge`
- `GET (base)`
### TaxFilingController
- base: `/api/oa/tax-filings`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/file`
- `POST /{id}/pay`
- `GET /summary`
- `GET (base)`
- `POST (base)`
### TechAchievementController
- base: `/api/oa/tech-achievements`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/transition`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### TechContractController
- base: `/api/oa/tech-contracts`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `POST /{id}/invalidate`
- `POST /{id}/generate-materials`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### TestMethodController
- base: `/api/oa/test-methods`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### TestReportController
- base: `/api/oa/test-reports`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/submit`
- `POST /{id}/review`
- `POST /{id}/approve`
- `POST /{id}/sign`
- `POST /{id}/void`
- `GET (base)`
- `POST (base)`
### TestTaskController
- base: `/api/oa/test-tasks`
- `GET /kanban`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/record`
- `POST /{id}/collect`
- `POST /{id}/review`
- `POST /{id}/report`
- `GET (base)`
- `POST (base)`
### TradeSecretAssetController
- base: `/api/oa/trade-secret-assets`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/leak`
- `POST /{id}/destroy`
- `GET /{id}/check-access`
- `POST /{id}/access-record`
- `GET /stats/overview`
- `GET /review-upcoming`
- `POST /departure-trigger`
- `GET (base)`
- `POST (base)`
### UserController
- base: `/api/oa/users`
- `GET /{id}`
- `PATCH /{id}`
- `GET (base)`
- `POST (base)`
### VoucherController
- base: `/api/oa/vouchers`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `POST /{id}/audit`
- `POST /{id}/unaudit`
- `POST /{id}/post`
- `POST /{id}/reverse`
- `GET (base)`
- `POST (base)`
### WastewaterClientController
- base: `/api/oa/wastewater-clients`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WaterAlertRuleController
- base: `/api/oa/water-alert-rules`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /ingest`
- `GET (base)`
- `POST (base)`
### WaterExceedEventController
- base: `/api/oa/water-exceed-events`
- `GET /{id}`
- `POST /{id}/transition`
- `GET /dashboard`
- `GET (base)`
### WaterQualityRecordController
- base: `/api/oa/water-quality`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WaterTraceController
- base: `/api/oa/water-quality`
- `GET /trace`
### WmCrossLinkController
- base: `/api/oa/wm-cross-link`
- `GET /work-method/{id}/ip-risk`
- `GET /patent/{id}/ip-risk`
- `GET /work-method/{id}/contributors`
- `GET /patent/{id}/contributors`
- `POST /work-method/{id}/trigger-archive`
- `POST /patent/{id}/trigger-archive`
- `GET /work-method/{id}/rd-context`
- `GET /work-method/{id}/cross-dept-summary`
- `POST /work-method/{id}/push-cert-to-declaration`
- `POST /patent/{id}/push-cert-to-declaration`
- `GET /cert-push-preview`
### WmDeclPackController
- base: `/api/oa/wm-decl-packs`
- `GET /application/{appId}`
- `GET /application/{appId}/version-check`
- `GET /application/{appId}/preflight`
- `GET /application/{appId}/recommended-templates`
- `POST /application/{appId}/export-manifest`
### WmDeclPlanController
- base: `/api/oa/wm-decl-plans`
- `GET /{id}`
- `POST /legal-deadlines`
- `GET /progress`
- `PATCH /{id}`
- `POST /{id}/publish`
- `POST /{id}/archive`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WmDeclTemplateController
- base: `/api/oa/wm-decl-templates`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/disable`
- `POST /{id}/enable`
- `DELETE /{id}`
- `POST /{id}/render`
- `GET /stats`
- `GET (base)`
- `POST (base)`
### WmDocVersionController
- base: `/api/oa/wm-doc-versions`
- `GET /{id}`
- `POST /{id}/lock`
- `GET (base)`
- `POST (base)`
### WmFeeController
- base: `/api/oa/wm-fees`
- `GET /{id}`
- `GET /roi/{methodId}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/approve`
- `POST /{id}/pay`
- `GET (base)`
- `POST (base)`
### WmGovSubsidyController
- base: `/api/oa/wm-gov-subsidies`
- `GET /{id}`
- `GET /window-alerts`
- `PATCH /{id}`
- `POST /{id}/apply`
- `POST /{id}/receive`
- `POST /{id}/reject`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WmPromotionController
- base: `/api/oa/wm-promotions`
- `GET /{id}`
- `PATCH /{id}`
- `POST /{id}/complete`
- `POST /{id}/cancel`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WmRewardConfigController
- base: `/api/oa/wm-reward-configs`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WmSubsidyFinanceController
- base: `/api/oa/wm-subsidy-finance`
- `GET /{subsidyId}/status`
- `POST /{subsidyId}/post-voucher`
### WorkMethodController
- base: `/api/oa/work-methods`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/advance`
- `GET /{id}/reviews`
- `POST /{id}/reviews/start`
- `POST /reviews/{reviewId}/submit`
- `GET /{id}/applications`
- `POST /{id}/applications`
- `PATCH /applications/{appId}`
- `POST /applications/{appId}/advance`
- `GET /{id}/usages`
- `POST /{id}/usages`
- `DELETE /usages/{usageId}`
- `POST /{id}/upgrade`
- `GET /{id}/events`
- `GET (base)`
- `POST (base)`
### WorkMethodDashboardController
- base: `/api/oa/work-method-dashboard`
- `GET /overview`
- `GET /progress`
- `GET /cert-alerts`
- `GET /deadline-alerts`
- `GET /roi`
### WorkMethodRewardController
- base: `/api/oa/work-method-rewards`
- `GET /{id}`
- `POST /generate`
- `POST /{id}/approve`
- `POST /{id}/reject`
- `POST /{id}/paid`
- `GET (base)`
### WorkOrderController
- base: `/api/oa/work-orders`
- `GET /{id}`
- `PUT /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WorkPlanController
- base: `/api/oa/work-plans`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WwClientAttachmentController
- base: `/api/oa/ww-client-attachments`
- `GET /by-client/{clientId}`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `GET /expiring`
- `GET /summary`
- `GET /attach-types`
- `GET (base)`
- `POST (base)`
### WwCrossDeptBridgeController
- base: `/api/oa/ww-xdept-bridge`
- `POST /procurement-link/{wwTaskId}`
- `POST /lab-sync/{wwTaskId}`
- `POST /lab-sync-batch`
- `POST /finance-cost-link`
- `POST /archive-link`
- `GET /status`
### WwMsdsFileController
- base: `/api/oa/ww-msds-files`
- `GET /{id}`
- `GET /by-chem`
- `GET /review-due`
- `PATCH /{id}`
- `POST /{id}/confirm-review`
- `DELETE /{id}`
- `GET (base)`
- `POST (base)`
### WwProcessUnitController
- base: `/api/oa/ww-process-units`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /{id}/record`
- `GET /anomaly-cases`
- `GET /anomaly-cases/{cid}`
- `POST /anomaly-cases`
- `PATCH /anomaly-cases/{cid}`
- `POST /anomaly-cases/{cid}/close`
- `GET /anomaly-recommend`
- `GET (base)`
- `POST (base)`
### WwSamplingTaskController
- base: `/api/oa/ww-sampling-tasks`
- `GET /{id}`
- `PATCH /{id}`
- `DELETE /{id}`
- `POST /generate`
- `POST /{id}/analyze`
- `POST /{id}/qc`
- `GET /exceed-summary`
- `GET (base)`
- `POST (base)`
### WwServiceReportController
- base: `/api/oa/ww-service-reports`
- `GET /{id}`
- `POST /generate`
- `POST /generate-batch`
- `POST /{id}/push`
- `POST /{id}/archive`
- `PATCH /{id}`
- `GET (base)`