# TBOSS OA — 数据库表字段详细设计 **日期:** 2026-05-29 **后端:** .NET Framework 4.8 · SQL Server(推荐) --- ## 约定 - 主键统一使用 `VARCHAR(36)` 存储 GUID - 金额字段使用 `DECIMAL(18,2)` - 所有表含 `CreateTime DATETIME NOT NULL DEFAULT GETDATE()` 和 `UpdateTime DATETIME` - 状态字段用 `VARCHAR(20)` 存英文标识,前端映射中文 - `IsDeleted BIT NOT NULL DEFAULT 0` 软删除 --- ## 1. 基础数据表 ### 1.1 SysUser(用户表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | UserName | NVARCHAR(50) | ✅ | 登录名 | | RealName | NVARCHAR(50) | ✅ | 真实姓名 | | PasswordHash | VARCHAR(128) | ✅ | 密码哈希 | | Role | VARCHAR(20) | ✅ | employee / approver / finance / admin | | DeptId | VARCHAR(36) | FK | 所属部门 | | Position | NVARCHAR(50) | | 岗位名称 | | Phone | VARCHAR(20) | | 手机号 | | Email | VARCHAR(100) | | 邮箱 | | AvatarUrl | VARCHAR(500) | | 头像URL | | IsActive | BIT | ✅ | 启用/停用,默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.2 SysDepartment(部门表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | DeptName | NVARCHAR(100) | ✅ | 部门名称 | | ParentId | VARCHAR(36) | | 上级部门ID | | ManagerId | VARCHAR(36) | FK→SysUser | 部门负责人 | | SortOrder | INT | | 排序,默认0 | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.3 SysProject(项目表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ProjectName | NVARCHAR(200) | ✅ | 项目名称 | | ProjectCode | VARCHAR(50) | | 项目编号 | | DeptId | VARCHAR(36) | FK→SysDepartment | 归属部门 | | BudgetAmount | DECIMAL(18,2) | | 项目预算总额 | | StartDate | DATE | | 项目开始日期 | | EndDate | DATE | | 项目结束日期 | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.4 SysBudgetSubject(预算科目表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | SubjectName | NVARCHAR(100) | ✅ | 科目名称 | | SubjectCode | VARCHAR(50) | | 科目编码 | | ParentId | VARCHAR(36) | | 上级科目ID | | SortOrder | INT | | 排序 | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.5 SysCostCenter(成本中心表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | CenterName | NVARCHAR(100) | ✅ | 成本中心名称 | | CenterCode | VARCHAR(50) | | 编码 | | DeptId | VARCHAR(36) | FK→SysDepartment | 归属部门 | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.6 SysVehicle(车辆信息表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | LicensePlate | VARCHAR(20) | ✅ | 车牌号 | | VehicleType | VARCHAR(20) | ✅ | 轿车/SUV/商务车/面包车 | | Brand | NVARCHAR(50) | | 品牌型号 | | Seats | INT | | 座位数 | | DriverName | NVARCHAR(50) | | 默认司机 | | Status | VARCHAR(20) | ✅ | idle/in_use/maintenance,默认idle | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.7 SysCustomer(客户表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | CustomerName | NVARCHAR(200) | ✅ | 客户名称 | | ShortName | NVARCHAR(100) | | 简称 | | Address | NVARCHAR(500) | | 地址 | | Longitude | DECIMAL(10,6) | | 经度 | | Latitude | DECIMAL(10,6) | | 纬度 | | SalespersonId | VARCHAR(36) | FK→SysUser | 负责业务员 | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 1.8 SysCustomerContact(客户联系人表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | CustomerId | VARCHAR(36) | FK→SysCustomer | ✅ | | ContactName | NVARCHAR(50) | ✅ | 姓名 | | Position | NVARCHAR(50) | | 职务 | | Phone | VARCHAR(20) | | 电话 | | Email | VARCHAR(100) | | 邮箱 | | SortOrder | INT | | 排序 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | --- ## 2. 业务主表 ### 2.1 Expense(报销单表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ReportNo | VARCHAR(30) | ✅ | 报销单号,如 BX-20260529-001 | | ApplicantId | VARCHAR(36) | FK→SysUser | ✅ 申请人 | | ApplicantName | NVARCHAR(50) | ✅ | 冗余,申请人姓名 | | DeptId | VARCHAR(36) | FK→SysDepartment | ✅ 申请部门 | | DeptName | NVARCHAR(100) | ✅ | 冗余,部门名称 | | ExpenseType | VARCHAR(20) | ✅ | 差旅费/办公用品/招待费/交通费/通讯费/其他 | | TotalAmount | DECIMAL(18,2) | ✅ | 报销总金额 | | InvoiceCount | INT | | 发票张数,默认0 | | CostCenterId | VARCHAR(36) | FK→SysCostCenter | 成本中心 | | ProjectId | VARCHAR(36) | FK→SysProject | 关联项目 | | ProjectName | NVARCHAR(200) | | 冗余,项目名称 | | BudgetSubjectId | VARCHAR(36) | FK→SysBudgetSubject | 预算科目 | | LoanWriteoffAmount | DECIMAL(18,2) | | 冲销借款金额,默认0 | | PaymentMethod | VARCHAR(20) | | 银行转账/现金/支票 | | PaymentStatus | VARCHAR(20) | | unpaid/paid/paying,默认unpaid | | AccountId | VARCHAR(36) | | 收款账户ID | | AccountName | NVARCHAR(50) | | 收款账户名 | | VoucherNo | VARCHAR(50) | | 财务凭证号 | | Remark | NVARCHAR(500) | | 备注说明 | | Status | VARCHAR(20) | ✅ | draft/pending/approved/rejected/withdrawn | | CurrentApproverId | VARCHAR(36) | FK→SysUser | 当前审批人 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.2 ExpenseDetail(报销明细表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ExpenseId | VARCHAR(36) | FK→Expense | ✅ 关联报销单 | | ExpenseDate | DATE | ✅ | 费用发生日期 | | ExpenseType | VARCHAR(20) | ✅ | 费用类别 | | ExpenseDesc | NVARCHAR(200) | ✅ | 费用描述 | | Amount | DECIMAL(18,2) | ✅ | 金额(不含税) | | TaxAmount | DECIMAL(18,2) | | 税额,默认0 | | TotalAmount | DECIMAL(18,2) | ✅ | 价税合计 | | InvoiceNo | VARCHAR(50) | | 发票号码 | | InvoiceCode | VARCHAR(50) | | 发票代码 | | InvoiceType | VARCHAR(20) | | 增值税专用发票/普通发票/无发票 | | IsDeductible | BIT | | 是否抵扣,默认0 | | TaxRate | DECIMAL(5,4) | | 税率,如 0.09 | | Remark | NVARCHAR(200) | | 备注 | | SortOrder | INT | | 排序,默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 2.3 ExpenseAttachment(报销附件表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ExpenseId | VARCHAR(36) | FK→Expense | ✅ 关联报销单 | | DetailId | VARCHAR(36) | | 关联明细,为空表示整单附件 | | FileName | NVARCHAR(200) | ✅ | 原始文件名 | | FileUrl | VARCHAR(500) | ✅ | 存储URL | | FileSize | BIGINT | | 文件大小(字节) | | FileType | VARCHAR(20) | | image/pdf/doc | | SortOrder | INT | | 排序 | | CreateTime | DATETIME | ✅ | | ### 2.4 ExpenseApplication(报销申请单表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ApplicationNo | VARCHAR(30) | ✅ | 申请单号,如 BXSQ-20260529-001 | | ApplicantId | VARCHAR(36) | FK→SysUser | ✅ 申请人 | | ApplicantName | NVARCHAR(50) | ✅ | | | DeptId | VARCHAR(36) | FK→SysDepartment | ✅ | | DeptName | NVARCHAR(100) | ✅ | | | ExpenseType | VARCHAR(20) | ✅ | 差旅费/办公用品/招待费/交通费/通讯费/其他 | | EstimatedAmount | DECIMAL(18,2) | ✅ | 预估总金额 | | EstimatedStartDate | DATE | | 预计费用开始日期 | | EstimatedEndDate | DATE | | 预计费用结束日期 | | Urgency | VARCHAR(10) | | normal/urgent/critical,默认normal | | Purpose | NVARCHAR(500) | ✅ | 申请事由 | | ProjectId | VARCHAR(36) | FK→SysProject | 关联项目 | | ProjectName | NVARCHAR(200) | | 冗余 | | BudgetSubjectId | VARCHAR(36) | FK→SysBudgetSubject | 预算科目 | | Remark | NVARCHAR(500) | | 备注 | | Status | VARCHAR(20) | ✅ | draft/pending/approved/rejected/withdrawn | | CurrentApproverId | VARCHAR(36) | FK→SysUser | 当前审批人 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.5 ExpenseAppDetail(报销申请明细表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ApplicationId | VARCHAR(36) | FK→ExpenseApplication | ✅ | | ItemName | NVARCHAR(200) | ✅ | 费用项目名称 | | EstimatedAmount | DECIMAL(18,2) | ✅ | 预估金额 | | Remark | NVARCHAR(200) | | 备注 | | SortOrder | INT | | 排序,默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | ### 2.6 Overtime(加班申请单表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ApplicationNo | VARCHAR(30) | ✅ | 申请单号,如 JB-20260529-001 | | ApplicantId | VARCHAR(36) | FK→SysUser | ✅ 申请人 | | ApplicantName | NVARCHAR(50) | ✅ | | | DeptId | VARCHAR(36) | FK→SysDepartment | ✅ | | DeptName | NVARCHAR(100) | ✅ | | | Position | NVARCHAR(50) | | 岗位 | | OtDate | DATE | ✅ | 加班日期 | | StartTime | DATETIME | ✅ | 开始时间 | | EndTime | DATETIME | ✅ | 结束时间 | | OtHours | DECIMAL(4,1) | ✅ | 申请加班时长 | | ActualOtHours | DECIMAL(4,1) | | 实际加班时长(审批后填写) | | ClockInTime | DATETIME | | 关联打卡-上班 | | ClockOutTime | DATETIME | | 关联打卡-下班 | | MealDeductHours | DECIMAL(3,1) | | 用餐扣除时长,默认0.5 | | OtType | VARCHAR(10) | ✅ | workday/weekend/holiday | | CompensationType | VARCHAR(10) | ✅ | overtime_pay/comp_leave | | Reason | NVARCHAR(500) | ✅ | 加班原因 | | Remark | NVARCHAR(500) | | 备注 | | Status | VARCHAR(20) | ✅ | draft/pending/approved/rejected/withdrawn | | CurrentApproverId | VARCHAR(36) | FK→SysUser | 当前审批人 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.7 Vehicle(用车申请单表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ApplicationNo | VARCHAR(30) | ✅ | 申请单号,如 YC-20260529-001 | | ApplicantId | VARCHAR(36) | FK→SysUser | ✅ 申请人 | | ApplicantName | NVARCHAR(50) | ✅ | | | DeptId | VARCHAR(36) | FK→SysDepartment | ✅ | | DeptName | NVARCHAR(100) | ✅ | | | VehicleType | VARCHAR(20) | ✅ | 轿车/SUV/商务车/面包车 | | VehicleId | VARCHAR(36) | FK→SysVehicle | 指定车辆(审批后分配) | | LicensePlate | VARCHAR(20) | | 车牌号(冗余) | | Purpose | VARCHAR(20) | ✅ | 客户接待/商务出行/内部公务/其他 | | StartTime | DATETIME | ✅ | 预计开始时间 | | EndTime | DATETIME | ✅ | 预计结束时间 | | ReturnTime | DATETIME | | 实际还车时间 | | Origin | NVARCHAR(200) | ✅ | 出发地点 | | Destination | NVARCHAR(200) | ✅ | 目的地 | | PassengerCount | INT | | 乘车人数,默认1 | | Driver | VARCHAR(20) | ✅ | 自驾/配驾 | | DriverName | NVARCHAR(50) | | 驾驶员姓名 | | EstimatedMileage | DECIMAL(10,2) | | 预估里程(公里) | | ActualMileage | DECIMAL(10,2) | | 实际里程 | | StartOdometer | DECIMAL(10,2) | | 起始里程表读数 | | EndOdometer | DECIMAL(10,2) | | 结束里程表读数 | | EstimatedCost | DECIMAL(18,2) | | 预估费用 | | ActualCost | DECIMAL(18,2) | | 实际费用 | | Reason | NVARCHAR(500) | ✅ | 用车事由 | | Status | VARCHAR(20) | ✅ | draft/pending/approved/rejected/withdrawn | | CurrentApproverId | VARCHAR(36) | FK→SysUser | 当前审批人 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.8 VehiclePassenger(用车同行人员表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | ApplicationId | VARCHAR(36) | FK→Vehicle | ✅ | | UserId | VARCHAR(36) | FK→SysUser | 关联系统用户 | | PassengerName | NVARCHAR(50) | ✅ | 姓名(冗余/外部人员) | | CreateTime | DATETIME | ✅ | | ### 2.9 OutingLog(业务员外出日志表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | VisitNo | VARCHAR(30) | ✅ | 拜访编号,如 VST-20260529-001 | | SalespersonId | VARCHAR(36) | FK→SysUser | ✅ 业务员 | | SalespersonName | NVARCHAR(50) | ✅ | | | DeptId | VARCHAR(36) | FK→SysDepartment | ✅ | | DeptName | NVARCHAR(100) | ✅ | | | CustomerId | VARCHAR(36) | FK→SysCustomer | 客户 | | CustomerName | NVARCHAR(200) | ✅ | | | ContactId | VARCHAR(36) | FK→SysCustomerContact | 联系人 | | ContactName | NVARCHAR(50) | | | | ContactPhone | VARCHAR(20) | | | | ContactPosition | NVARCHAR(50) | | | | VisitDate | DATE | ✅ | 拜访日期 | | VisitStartTime | DATETIME | ✅ | 签到时间 | | VisitEndTime | DATETIME | ✅ | 签退时间 | | VisitType | VARCHAR(20) | ✅ | 商务沟通/产品演示/售后服务/合同签约/催款/其他 | | VisitPurpose | NVARCHAR(500) | ✅ | 拜访目的 | | VisitLocation | NVARCHAR(200) | ✅ | 拜访地点 | | VisitAddressDetail | NVARCHAR(200) | | 详细地址 | | Longitude | DECIMAL(10,6) | | 签到时经度 | | Latitude | DECIMAL(10,6) | | 签到时纬度 | | CheckInStatus | VARCHAR(20) | | normal/deviation,默认normal | | DistanceDeviation | INT | | 定位偏差距离(米),默认0 | | Participants | NVARCHAR(200) | | 参与人员(我方) | | VisitSummary | NVARCHAR(2000) | ✅ | 拜访总结 | | VisitResult | VARCHAR(20) | | 待跟进/已成交/需再次拜访/无意愿 | | CustomerFeedback | NVARCHAR(1000) | | 客户反馈 | | CompetitorInfo | NVARCHAR(1000) | | 竞品信息 | | NextVisitTime | DATETIME | | 下次拜访时间 | | NextVisitContent | NVARCHAR(500) | | 下次拜访内容 | | Materials | NVARCHAR(500) | | 携带资料 | | Status | VARCHAR(20) | ✅ | completed/draft | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.10 OutingLogAttachment(外出日志附件表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | LogId | VARCHAR(36) | FK→OutingLog | ✅ | | FileName | NVARCHAR(200) | ✅ | | | FileUrl | VARCHAR(500) | ✅ | | | FileType | VARCHAR(20) | | sign_in_photo/sign_out_photo/visit_photo/other | | SortOrder | INT | | 排序 | | CreateTime | DATETIME | ✅ | | ### 2.11 Announcement(公告表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | Title | NVARCHAR(200) | ✅ | 公告标题 | | Content | NVARCHAR(MAX) | ✅ | 公告正文 | | ContentType | VARCHAR(10) | | text/html,默认text | | Type | VARCHAR(20) | ✅ | 通知公告/制度文件/活动通知/其他 | | PublisherId | VARCHAR(36) | FK→SysUser | ✅ 发布人 | | PublisherName | NVARCHAR(50) | ✅ | | | PublishTime | DATETIME | ✅ | 发布时间 | | IsTop | BIT | | 是否置顶,默认0 | | PrivateLevel | INT | | 可见级别:0=全员 1=指定部门 2=指定用户 | | RequireConfirm | BIT | | 需确认已读,默认0 | | ExpiryDate | DATETIME | ✅ | 过期时间 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | | IsDeleted | BIT | ✅ | 默认0 | ### 2.12 AnnouncementTarget(公告可见范围表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | AnnouncementId | VARCHAR(36) | FK→Announcement | ✅ | | TargetType | VARCHAR(10) | ✅ | dept/user | | TargetId | VARCHAR(36) | ✅ | 部门ID或用户ID | | CreateTime | DATETIME | ✅ | | ### 2.13 AnnouncementAttachment(公告附件表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | AnnouncementId | VARCHAR(36) | FK→Announcement | ✅ | | FileName | NVARCHAR(200) | ✅ | | | FileUrl | VARCHAR(500) | ✅ | | | FileSize | BIGINT | | | | CreateTime | DATETIME | ✅ | | ### 2.14 AnnouncementReadLog(公告已读记录表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | AnnouncementId | VARCHAR(36) | FK→Announcement | ✅ | | UserId | VARCHAR(36) | FK→SysUser | ✅ | | ReadTime | DATETIME | ✅ | 阅读时间 | | IsConfirmed | BIT | | 是否确认(需确认时),默认0 | | ConfirmTime | DATETIME | | 确认时间 | --- ## 3. 审批与工作流表 ### 3.1 ApprovalRecord(审批记录表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | BizId | VARCHAR(36) | ✅ | 业务单据ID | | BizType | VARCHAR(30) | ✅ | expense/expense_application/overtime/vehicle | | ApproverId | VARCHAR(36) | FK→SysUser | ✅ 审批人 | | ApproverName | NVARCHAR(50) | ✅ | | | ApprovalLevel | INT | ✅ | 审批层级(1,2,3...) | | Action | VARCHAR(20) | ✅ | pending/approve/reject/withdraw | | Opinion | NVARCHAR(500) | | 审批意见 | | ApprovalTime | DATETIME | ✅ | 审批时间 | | CreateTime | DATETIME | ✅ | | ### 3.2 ApprovalChain(审批链配置表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | BizType | VARCHAR(30) | ✅ | 业务类型 | | DeptId | VARCHAR(36) | | 适用部门(空=全局) | | LevelNo | INT | ✅ | 审批层级 | | ApproverId | VARCHAR(36) | FK→SysUser | 指定审批人 | | ApproverRole | VARCHAR(20) | | 按角色:dept_manager/finance/admin | | IsActive | BIT | ✅ | 默认1 | | CreateTime | DATETIME | ✅ | | | UpdateTime | DATETIME | | | --- ## 4. 消息通知表 ### 4.1 Message(消息通知表) | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | Id | VARCHAR(36) | PK | GUID | | UserId | VARCHAR(36) | FK→SysUser | ✅ 接收人 | | Title | NVARCHAR(200) | ✅ | 消息标题 | | Content | NVARCHAR(500) | | 消息摘要 | | MsgType | VARCHAR(20) | ✅ | approval_notice/approval_result/announcement/system | | BizType | VARCHAR(30) | | 关联业务类型 | | BizId | VARCHAR(36) | | 关联业务ID | | IsRead | BIT | ✅ | 已读,默认0 | | ReadTime | DATETIME | | 阅读时间 | | CreateTime | DATETIME | ✅ | | --- ## 5. 枚举值汇总 ### 5.1 业务状态 | 值 | 中文 | 适用表 | |------|------|--------| | draft | 草稿 | 所有申请表 | | pending | 待审批 | 所有申请表 | | approved | 已通过 | 所有申请表 | | rejected | 已拒绝 | 所有申请表 | | withdrawn | 已撤回 | 所有申请表 | | completed | 已完成 | OutingLog | ### 5.2 报销类型 `差旅费 / 办公用品 / 招待费 / 交通费 / 通讯费 / 其他` ### 5.3 加班类型 `workday(工作日加班)/ weekend(休息日加班)/ holiday(节假日加班)` ### 5.4 补偿方式 `overtime_pay(加班费)/ comp_leave(调休)` ### 5.5 用车目的 `客户接待 / 商务出行 / 内部公务 / 其他` ### 5.6 发票类型 `增值税专用发票 / 增值税普通发票 / 无发票` ### 5.7 付款状态 `unpaid(未付款)/ paying(付款中)/ paid(已付款)` ### 5.8 紧急程度 `normal(普通)/ urgent(紧急)/ critical(特急)` ### 5.9 拜访类型 `商务沟通 / 产品演示 / 售后服务 / 合同签约 / 催款 / 其他` ### 5.10 拜访结果 `待跟进 / 已成交 / 需再次拜访 / 无意愿` ### 5.11 公告类型 `通知公告 / 制度文件 / 活动通知 / 其他` ### 5.12 消息类型 `approval_notice(审批通知)/ approval_result(审批结果)/ announcement(公告提醒)/ system(系统消息)` ### 5.13 用户角色 `employee / approver / finance / admin` ### 5.14 车辆类型 `轿车 / SUV / 商务车 / 面包车` ### 5.15 车辆状态 `idle(空闲)/ in_use(使用中)/ maintenance(维修中)` --- ## 6. 表关系图(关键外键) ``` SysUser ──┬── Expense (ApplicantId, CurrentApproverId) ├── ExpenseApplication ├── Overtime ├── Vehicle ├── OutingLog (SalespersonId) ├── Announcement (PublisherId) ├── ApprovalRecord (ApproverId) ├── Message (UserId) └── SysDepartment (ManagerId) SysDepartment ──┬── SysUser (DeptId) ├── Expense (DeptId) ├── ExpenseApplication (DeptId) ├── Overtime (DeptId) ├── Vehicle (DeptId) ├── OutingLog (DeptId) └── ApprovalChain (DeptId) SysProject ──┬── Expense (ProjectId) └── ExpenseApplication (ProjectId) SysCustomer ──┬── OutingLog (CustomerId) └── SysCustomerContact (CustomerId) SysVehicle ──── Vehicle (VehicleId) ApprovalRecord ──┬── Expense (BizId, BizType='expense') ├── ExpenseApplication (BizId, BizType='expense_application') ├── Overtime (BizId, BizType='overtime') └── Vehicle (BizId, BizType='vehicle') ``` --- ## 7. 索引建议 | 表 | 索引字段 | 类型 | 说明 | |------|------|------|------| | Expense | Status, ApplicantId, DeptId, CreateTime DESC | 复合 | 列表查询主路径 | | Expense | ReportNo | 唯一 | 单号唯一约束 | | ExpenseDetail | ExpenseId | 普通 | 关联查询 | | ExpenseApplication | Status, ApplicantId, DeptId | 复合 | | | Overtime | Status, ApplicantId, OtDate DESC | 复合 | | | Vehicle | Status, ApplicantId, DeptId | 复合 | | | OutingLog | SalespersonId, VisitDate DESC | 复合 | | | Announcement | IsTop DESC, PublishTime DESC | 复合 | 列表排序 | | AnnouncementReadLog | AnnouncementId, UserId | 唯一 | 防重复记录 | | ApprovalRecord | BizId, BizType | 复合 | 关联查询 | | Message | UserId, IsRead, CreateTime DESC | 复合 | 消息列表 |