# 完整端点目录(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)`