|
@@ -1,583 +0,0 @@
|
|
|
-# 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 | 复合 | 消息列表 |
|
|
|