SNAPSHOT W7 已部署稳定态 — 凯迪ERP+OA一体化平台 (MET 73.3%)
恢复点(restore point)。别人改崩后可 git reset --hard 回到此提交。 == 此快照内容 == - 后端 oa-backend: 734 控制器 / 711 实体 (Spring Boot 3.2.5 + SQLite, 端口8091) - 前端 modern-ui/app: Vue3+Vite, 约700页 (构建产物已在 oa-backend/src/main/resources/static) - 数据库 oa-backend/data/oa.db: 含全部演示数据 (强制入库, 6.6MB) - 交接文档 go.md + go-code-reference/endpoints/entities/database.md - 多代理建设脚本 .claude/wf-*.js == 状态 == - 对 凯迪科技ERP_20260507.xlsx 合规 MET ~73.3% (PARTIAL 75: 34可建+6种子/bug+35外部硬天花板) - 安全: 5轮红队+5轮复检, default-deny分级鉴权, 连续零可利用 - W3~W7 累计补完436缺口; W8末轮(40缺口)为半成品(源码树可编译但未集成) - 运行: cd oa-backend; java -jar build/libs/oa-backend-0.1.0.jar --server.port=8091; admin/123456 == 排除(gitignore, 可再生) == node_modules / oa-backend/build / .jdks / *.log / Backup-ERP-* / 弃用的OFBiz核心(只保留modern-ui) 完整文件夹备份见同目录 Backup-ERP-20260615-191517/ (含上述全部, 仅缺 node_modules) 时间戳: 20260615-191517 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
/**
|
||||
* OA backend API client — single import surface.
|
||||
*
|
||||
* import { oaApi } from '@/oa/api'
|
||||
* const todo = await oaApi.listInstances('todo')
|
||||
*
|
||||
* All calls target the Java (Spring Boot) backend under /api/oa/* and return
|
||||
* unwrapped payloads (the `{code,message,data}` envelope is handled in http.ts).
|
||||
*/
|
||||
export * from './http'
|
||||
export * from './files'
|
||||
export * as auth from './auth'
|
||||
import * as authApi from './auth'
|
||||
import * as templateApi from './templates'
|
||||
import * as instanceApi from './instances'
|
||||
import * as meetingApi from './meetings'
|
||||
import * as scheduleApi from './schedule'
|
||||
import * as announcementApi from './announcements'
|
||||
import * as docApi from './docs'
|
||||
import * as orgApi from './org'
|
||||
import * as projectApi from './projects'
|
||||
import * as collabDocApi from './collabdocs'
|
||||
import * as communityApi from './community'
|
||||
import * as blogApi from './blogs'
|
||||
import * as settingApi from './settings'
|
||||
import * as feedApi from './feeds'
|
||||
import * as favoriteApi from './favorites'
|
||||
import * as messageApi from './messages'
|
||||
import * as tripApi from './trips'
|
||||
import * as reportApi from './reports'
|
||||
import * as reportDefApi from './reportdefs'
|
||||
import * as masterApi from './masterdata'
|
||||
import * as paymentApi from './payments'
|
||||
import * as sealUseApi from './sealuses'
|
||||
import * as archiveApi from './archives'
|
||||
import * as crmApi from './crm'
|
||||
import * as ehsApi from './ehs'
|
||||
import * as budgetApi from './budget'
|
||||
import * as bidApi from './bids'
|
||||
import * as intelApi from './intel'
|
||||
import * as rdApi from './rd'
|
||||
import * as contractCenterApi from './contractcenter'
|
||||
import * as costingApi from './costing'
|
||||
import * as crawlApi from './crawl'
|
||||
import * as searchApi from './search'
|
||||
import * as fundPoolApi from './fundpool'
|
||||
import * as rdExtraApi from './rdextra'
|
||||
import * as qhseApi from './qhse'
|
||||
import * as opsApi from './ops'
|
||||
import * as mfgApi from './mfg'
|
||||
import * as financeApi from './finance'
|
||||
import * as labApi from './lab'
|
||||
import * as designApi from './design'
|
||||
import * as engExtApi from './engext'
|
||||
import * as governanceApi from './governance'
|
||||
import * as alertsApi from './alerts'
|
||||
|
||||
export {
|
||||
authApi, templateApi, instanceApi, meetingApi, scheduleApi, announcementApi, docApi, orgApi,
|
||||
projectApi, collabDocApi, communityApi, tripApi, reportApi, reportDefApi, masterApi, paymentApi, sealUseApi,
|
||||
archiveApi, crmApi, ehsApi, budgetApi, bidApi, intelApi, rdApi, contractCenterApi, costingApi, crawlApi,
|
||||
searchApi, fundPoolApi, rdExtraApi, qhseApi, opsApi, mfgApi, financeApi, labApi, designApi, engExtApi,
|
||||
governanceApi, alertsApi
|
||||
}
|
||||
|
||||
export const oaApi = {
|
||||
// auth
|
||||
login: authApi.login,
|
||||
fetchSession: authApi.fetchSession,
|
||||
logout: authApi.logout,
|
||||
// templates
|
||||
listTemplates: templateApi.listTemplates,
|
||||
getTemplate: templateApi.getTemplate,
|
||||
createTemplate: templateApi.createTemplate,
|
||||
setTemplateEnabled: templateApi.setTemplateEnabled,
|
||||
// instances / workflow
|
||||
submitInstance: instanceApi.submitInstance,
|
||||
getInstance: instanceApi.getInstance,
|
||||
advanceInstance: instanceApi.advanceInstance,
|
||||
listInstances: instanceApi.listInstances,
|
||||
createDraft: instanceApi.createDraft,
|
||||
sendDraftInstance: instanceApi.sendDraftInstance,
|
||||
// meetings
|
||||
listMeetings: meetingApi.listMeetings,
|
||||
getMeeting: meetingApi.getMeeting,
|
||||
createMeeting: meetingApi.createMeeting,
|
||||
listRooms: meetingApi.listRooms,
|
||||
listMinutes: meetingApi.listMinutes,
|
||||
createMinute: meetingApi.createMinute,
|
||||
updateMinute: meetingApi.updateMinute,
|
||||
deleteMinute: meetingApi.deleteMinute,
|
||||
updateMeeting: meetingApi.updateMeeting,
|
||||
cancelMeeting: meetingApi.cancelMeeting,
|
||||
deleteMeeting: meetingApi.deleteMeeting,
|
||||
listBlogs: blogApi.listBlogs,
|
||||
getBlog: blogApi.getBlog,
|
||||
createBlog: blogApi.createBlog,
|
||||
updateBlog: blogApi.updateBlog,
|
||||
getSetting: settingApi.getSetting,
|
||||
putSetting: settingApi.putSetting,
|
||||
listFeeds: feedApi.listFeeds,
|
||||
createFeed: feedApi.createFeed,
|
||||
likeFeed: feedApi.likeFeed,
|
||||
myLikedFeeds: feedApi.myLikedFeeds,
|
||||
commentFeed: feedApi.commentFeed,
|
||||
listHotTopics: feedApi.listHotTopics,
|
||||
listActiveUsers: feedApi.listActiveUsers,
|
||||
listFavorites: favoriteApi.listFavorites,
|
||||
createFavorite: favoriteApi.createFavorite,
|
||||
updateFavorite: favoriteApi.updateFavorite,
|
||||
deleteFavorite: favoriteApi.deleteFavorite,
|
||||
listMessages: messageApi.listMessages,
|
||||
getUnreadCount: messageApi.getUnreadCount,
|
||||
markMessageRead: messageApi.markMessageRead,
|
||||
markAllMessagesRead: messageApi.markAllMessagesRead,
|
||||
// schedule
|
||||
listEvents: scheduleApi.listEvents,
|
||||
createEvent: scheduleApi.createEvent,
|
||||
deleteEvent: scheduleApi.deleteEvent,
|
||||
// announcements
|
||||
listAnnouncements: announcementApi.listAnnouncements,
|
||||
getAnnouncement: announcementApi.getAnnouncement,
|
||||
createAnnouncement: announcementApi.createAnnouncement,
|
||||
updateAnnouncement: announcementApi.updateAnnouncement,
|
||||
deleteAnnouncement: announcementApi.deleteAnnouncement,
|
||||
// docs
|
||||
getFolderTree: docApi.getFolderTree,
|
||||
listDocuments: docApi.listDocuments,
|
||||
uploadMeta: docApi.uploadMeta,
|
||||
// org / hr
|
||||
listUsers: orgApi.listUsers,
|
||||
getUser: orgApi.getUser,
|
||||
createUser: orgApi.createUser,
|
||||
updateUser: orgApi.updateUser,
|
||||
getDeptTree: orgApi.getDeptTree,
|
||||
createDept: orgApi.createDept,
|
||||
updateDept: orgApi.updateDept,
|
||||
deleteDept: orgApi.deleteDept,
|
||||
listRoles: orgApi.listRoles,
|
||||
// 目标管理: projects / tasks / plans
|
||||
listProjects: projectApi.listProjects,
|
||||
getProject: projectApi.getProject,
|
||||
createProject: projectApi.createProject,
|
||||
listTasks: projectApi.listTasks,
|
||||
createTask: projectApi.createTask,
|
||||
updateTask: projectApi.updateTask,
|
||||
listPlans: projectApi.listPlans,
|
||||
getPlan: projectApi.getPlan,
|
||||
createPlan: projectApi.createPlan,
|
||||
patchPlan: projectApi.patchPlan,
|
||||
// 文档协作
|
||||
listCollabDocs: collabDocApi.listCollabDocs,
|
||||
getCollabDoc: collabDocApi.getCollabDoc,
|
||||
createCollabDoc: collabDocApi.createCollabDoc,
|
||||
updateCollabDoc: collabDocApi.updateCollabDoc,
|
||||
deleteCollabDoc: collabDocApi.deleteCollabDoc,
|
||||
listCollabDocVersions: collabDocApi.listCollabDocVersions,
|
||||
listCollabDocComments: collabDocApi.listCollabDocComments,
|
||||
addCollabDocComment: collabDocApi.addCollabDocComment,
|
||||
// 文化建设: discussions / surveys
|
||||
listDiscussions: communityApi.listDiscussions,
|
||||
getDiscussion: communityApi.getDiscussion,
|
||||
createDiscussion: communityApi.createDiscussion,
|
||||
updateDiscussion: communityApi.updateDiscussion,
|
||||
deleteDiscussion: communityApi.deleteDiscussion,
|
||||
listSurveys: communityApi.listSurveys,
|
||||
getSurvey: communityApi.getSurvey,
|
||||
createSurvey: communityApi.createSurvey,
|
||||
voteSurvey: communityApi.voteSurvey,
|
||||
updateSurvey: communityApi.updateSurvey,
|
||||
deleteSurvey: communityApi.deleteSurvey,
|
||||
listDiscussionReplies: communityApi.listDiscussionReplies,
|
||||
addDiscussionReply: communityApi.addDiscussionReply,
|
||||
// 领导行程
|
||||
listTrips: tripApi.listTrips,
|
||||
createTrip: tripApi.createTrip,
|
||||
// 报表中心
|
||||
getOverview: reportApi.getOverview,
|
||||
// 报表中心 · 可配置报表定义
|
||||
getReportSchema: reportDefApi.getReportSchema,
|
||||
listReportDefinitions: reportDefApi.listReportDefinitions,
|
||||
createReportDefinition: reportDefApi.createReportDefinition,
|
||||
updateReportDefinition: reportDefApi.updateReportDefinition,
|
||||
deleteReportDefinition: reportDefApi.deleteReportDefinition,
|
||||
runReportDefinition: reportDefApi.runReportDefinition,
|
||||
// 监测中心(应用定制平台运行聚合)
|
||||
getAppMonitoring: reportApi.getAppMonitoring,
|
||||
// 统一预警(全平台期限/异常聚合)
|
||||
listAlerts: alertsApi.listAlerts
|
||||
}
|
||||
|
||||
export type { OaSession } from './auth'
|
||||
export type { ApiTemplate } from './templates'
|
||||
export type { ApiInstance, InstanceBox } from './instances'
|
||||
export type { Meeting, MeetingRoom, MeetingMinute } from './meetings'
|
||||
export type { ScheduleEvent } from './schedule'
|
||||
export type { Announcement } from './announcements'
|
||||
export type { DocFolder, DocFile } from './docs'
|
||||
export type { OaUser, OaDept, OaRole } from './org'
|
||||
export type { Project, ProjectTask, WorkPlan } from './projects'
|
||||
export type { CollabDoc, CollabDocVersion, CollabDocComment } from './collabdocs'
|
||||
export type { Blog } from './blogs'
|
||||
export type { Feed, FeedComment, FeedHotTopic, FeedActiveUser, FeedLikeResult } from './feeds'
|
||||
export type { Favorite } from './favorites'
|
||||
export type { OaMessage } from './messages'
|
||||
export type { Discussion, Survey, SurveyOption, DiscussionReply } from './community'
|
||||
export type { LeaderTrip } from './trips'
|
||||
export type { ReportOverview, AppMonitoring } from './reports'
|
||||
export type {
|
||||
ReportFieldMeta, ReportSourceMeta, ReportDefinition, ReportDefinitionInput,
|
||||
ReportRunRow, ReportRunResult
|
||||
} from './reportdefs'
|
||||
export type { Alert } from './alerts'
|
||||
export type {
|
||||
CompanySubject, Contract, Supplier, Customer, BankAccount, Seal, Invoice, ContractMilestone
|
||||
} from './masterdata'
|
||||
export type { Payment } from './payments'
|
||||
export type { SealUse } from './sealuses'
|
||||
export type { Archive } from './archives'
|
||||
export type { Opportunity, OpportunityFollowup } from './crm'
|
||||
export type { SafetyCheck, Certification } from './ehs'
|
||||
export type { Budget } from './budget'
|
||||
export type { Bid } from './bids'
|
||||
export type { Intel } from './intel'
|
||||
export type { RdProject, Patent, Declaration } from './rd'
|
||||
export type { ContractTemplate, ContractChange } from './contractcenter'
|
||||
export type { CostCenter, PriceItem, PersonnelCert } from './costing'
|
||||
export type { CrawlSource, CrawlJob } from './crawl'
|
||||
export type { SearchHit, ArchiveComment } from './search'
|
||||
export type { FundPool, FundPoolRow } from './fundpool'
|
||||
export type { DeclarationTemplate, RdExpense } from './rdextra'
|
||||
export type { BomItem, HealthRecord, QmsRecord } from './qhse'
|
||||
export type { WastewaterClient, WaterQualityRecord } from './ops'
|
||||
export type { WorkOrder, InventoryItem } from './mfg'
|
||||
export type { Account, Voucher } from './finance'
|
||||
export type { LabSample, LabInstrument } from './lab'
|
||||
export type { DesignDoc, DesignChange } from './design'
|
||||
export type { SupervisionLog, AuditProject, ItAsset } from './engext'
|
||||
Reference in New Issue
Block a user