# 租赁业务台账 · 产品需求说明（PRD）

> 对齐《租赁业务运营明细台账模版》；业务服务组维护各自台账，收款关联与状态自动计算为原型演示。

---

## 1. 模块定位

| 项 | 说明 |
|---|---|
| 模块名称 | 台账数据 — 租赁业务台账 |
| 目标用户 | 租赁业务客服、业务服务组主管 |
| 核心任务 | 维护租赁运营明细、汇总应收实收与盈亏、关联收款记录 |
| 页面结构 | 筛选区 + KPI 统计 + 工具栏 + 宽表 + 底部分页 |

---

## 2. 筛选区

默认展示 4 项（一行），点击「更多筛选」展开全部 8 项。

| 筛选项 | 说明 |
|---|---|
| 年份 / 月份 | 账单所属年月 |
| 业务部门 / 业务员 | 精确匹配 |
| 车牌号码 | 精确匹配 |
| 客户名称 | 模糊包含 |
| 明细状态 | 未收款 / 部分收款 / 已收款 |
| 应付款日 | 单输入框双日历区间，精确至日 |

---

## 3. KPI 统计卡片（6 张）

台账条数、应收总计、实收总计、未收总计、成本总计、盈亏总计。

- **台账条数**：员工仅统计本人录入；主管统计全组。点击切换列表为显示全部。
- **未收总计**：点击筛选下方列表为未收款数据。

### 台账条数 KPI

业务服务组员工只能看到自己录入的数据条数以及金额；业务服务组主管可以查看所有业务服务组人员录入的数据总和。点击可切换列表显示全部数据。

### 未收总计 KPI

点击未收总计卡片，下方列表仅展示未收款数据（状态不等于已收款）。

---

## 4. 列表工具栏

左侧「仅显示未收款数据」勾选后，列表仅显示状态不等于已收款的记录。

| 按钮 | 行为 |
|---|---|
| 批量导入 | 下载模板并上传 Excel（原型 Toast） |
| 导出 | 导出当前筛选结果 |
| 保存 | 勾选记录后设为未归档，保存后不可编辑 |
| 设置为归档 | 勾选记录后锁定为已归档 |

表格底部提供分页，可切换页码与每页条数。

### 保存

勾选台账记录后点击，将账单状态设为**未归档**。未归档数据不可编辑，仅草稿可编辑。

### 设置为归档

勾选台账记录后点击，将账单状态设为**已归档**并锁定编辑。

---

## 5. 列表字段

对齐 Excel「租赁车辆收入明细表」全量字段：年份、月份、业务部门（含业务员）、付款日期、车牌（含车型）、客户（含项目）、增值服务、享免政策、提车/合同/起止日期、平均天数、押金、合同标的租金、应收与收入拆分、减免、实收/未收、开票与付款信息、成本拆分、盈亏、GPS里程、减免明细、资产归属、签约公司、备注。

宽表支持横向滚动；序号与操作列固定。

---

## 6. 收款状态

## 状态

**数据来源**：收款记录模块中关联到本账单的分配金额、账单应收合计。
**计算方式**：分配金额 ≥ 应收合计且应收 > 0 → 已收款；0 < 分配金额 < 应收 → 部分收款；未关联收款 → 未收款。
**录入方式**：系统自动计算，只读。

**业务说明**：当收款记录中分配金额完全覆盖账单的应收金额时，显示已收款。当收款记录中分配金额≤账单的应收金额时，显示部分收款。未分配收款记录时，显示为未收款。其他状态去除

---

## 7. 字段说明

### 应付款日

**数据来源**：账单起始日期（优先）或提车日期作为开始计费日；账单所属年月。
**计算方式**：首期账单应付款日 = 开始计费日；后续每期 = 账单所属自然月 5 日。
**录入方式**：系统自动计算，只读。

**业务说明**：交车后按「开始计费日期」生成首期账单应付款日；后续每期账单在所属自然月 5 日生成下一期应付款日。

### 车牌号码

**数据来源**：车辆档案（按车牌匹配品牌、型号）。
**计算方式**：导入/新增台账时按车牌号反写车辆信息。
**录入方式**：只读展示（车牌 + 车型两行）。

**业务说明**：车牌与车型合并为一列：上方车牌号码，下方品牌与型号；导入/新增时按车牌在系统中自动匹配。

### 客户名称

**数据来源**：租赁合同（按账单日期 + 车牌匹配客户、项目）。
**计算方式**：匹配当前车辆在账期内的有效合同，带出客户名称与项目名称。
**录入方式**：只读展示（客户 + 项目两行）。

**业务说明**：客户名称与项目名称合并为一列：上方客户名称，下方项目名称；按账单日期与车牌号自动匹配。

### 增值服务

**数据来源**：租赁合同签订时勾选的增值服务项目。
**计算方式**：按车牌匹配合同增值服务配置，多项服务分行展示。
**录入方式**：只读。

**业务说明**：签订合同时勾选的增值服务项目，按车牌自动匹配合同数据；多项服务各占一行展示。

### 提车日期

**数据来源**：交车管理 / 运维 E 签宝签字完成时间。
**计算方式**：取该车辆实际交车办结时间。
**录入方式**：只读。

**业务说明**：运维实际交车日期。

### 合同生效日期

**数据来源**：提车日期（交车办结时间）。
**计算方式**：合同生效日期 = 提车日期（YYYY-MM-DD），系统自动反写。
**录入方式**：系统自动反写，只读。

**业务说明**：等于提车日期，即租赁合同生效日期，系统自动反写，只读。

### 合同到期日期

**数据来源**：合同租期月数 + 提车日期，或合同约定的到期日。
**计算方式**：日期模式：取合同存储的 contractEndDate；租期模式：提车日 + leaseTermMonths 个月。
**录入方式**：系统自动计算，只读。

**业务说明**：合同到期日：租期模式按提车日期 + 租期月数计算；日期模式取合同中约定的到期日。

### 起始日期

**数据来源**：账单年月、提车日期。
**计算方式**：月前已提车 → 当月 1 日；月内提车 → 提车日；月后提车 → 空（calcPeriodStartDate）。
**录入方式**：系统自动计算，只读。

**业务说明**：账单所属月内的租赁起始日：月前已提车取当月 1 日，月内提车取提车日；系统自动计算，只读。

### 退车日期

**数据来源**：退车管理登记的退车日期。
**计算方式**：取该车牌退车办结日期；未退车为空。
**录入方式**：只读。

**业务说明**：退车管理中登记的退车日期；未退车时为空。

### 平均天数

**数据来源**：账单月内租赁天数、当月自然日天数。
**计算方式**：平均天数 = 账单月内租赁天数 ÷ 当月自然日天数，保留两位小数（calcAvgDays）。
**录入方式**：系统自动计算，只读。

**业务说明**：平均天数 = 账单月内租赁天数 ÷ 当月自然日天数，保留两位小数；用于成本分摊口径。

### 保证金

**数据来源**：提车应收款 / 合同保证金。
**计算方式**：与创建合同时保证金、提车应收款中该车辆保证金一致。
**录入方式**：只读。

**业务说明**：显示该车辆实付保证金金额，与提车应收款时该车辆收取的提车应收款相同。

### 合同标的租金

**数据来源**：租赁合同月租金标准。
**计算方式**：签订合同时该车辆的月租金（合同标的租金）。
**录入方式**：合同带入，只读。

**业务说明**：等于该车辆在签订该合同时合同中的租金（月租金标准）。

### 应收合计

**数据来源**：应收租金、保险上浮费、运维费（收入侧）、其他收入、里程/其他减免。
**计算方式**：应收合计 = 应收租金 + 保险上浮费 + 运维费（收入侧）+ 其他收入 − 里程减免 − 其他减免（calcReceivableTotal）。
**录入方式**：系统自动汇总，只读。

**业务说明**：应收合计 = 应收租金 + 保险上浮费 + 运维费（收入侧）+ 其他收入 − 里程减免金额 − 其他减免金额。

### 应收租金

**数据来源**：合同标的租金、合同付款周期月数。
**计算方式**：应收租金 = 合同标的租金 × 付款周期月数（1/3/6/12）（calcReceivableRent）。
**录入方式**：系统自动计算，只读。

**业务说明**：按合同付款周期（1/3/6/12 个月）计算的单期账单租金总金额 = 合同标的租金 × 付款周期月数。

### 月度收入

**数据来源**：月度租金、维保包干、保险上浮费、运维费（收入侧）、其他收入、减免项。
**计算方式**：月度收入 = 月度租金 + 维保包干收入 + 保险上浮费 + 运维费（收入侧）+ 其他收入 − 里程减免 − 其他减免（calcMonthlyIncome）。
**录入方式**：系统自动计算，只读。

**业务说明**：月度收入 = 月度租金 + 维保包干收入 + 保险上浮费 + 运维费（收入侧）+ 其他收入 − 里程减免金额 − 其他减免金额。

### 月度租金

**数据来源**：合同标的租金。
**计算方式**：月度租金 = 合同标的租金（calcMonthlyRent）。
**录入方式**：只读。

**业务说明**：根据客户付款周期间隔，计算每个月需收取的租金，等于合同标的租金。

### 维保包干收入

**数据来源**：合同维保包干配置、账单里程。
**计算方式**：勾选维保包干时：单价（元/km）× 里程数；未勾选为 0（calcMaintenanceIncome）。
**录入方式**：包干未勾选时不可编辑。

**业务说明**：合同勾选维保包干时：单价（元/km）× 里程数，必填；未勾选时默认 0 且不可编辑。

### 保险上浮费

**数据来源**：事故台账关联的保险上浮费。
**计算方式**：关联事故单后汇总 linkedAccidentIds 对应上浮费；最新账单未关联时显示警示。
**录入方式**：关联后自动汇总，支持多选事故单。

**业务说明**：事故中有保险上浮费时，最新账单显示警示标志；关联事故单后自动汇总上浮费，支持多选。

### 运维费

**数据来源**：维修/保养台账（客户承担）、账单月内该车牌完工记录。
**计算方式**：汇总 bearBy=客户承担 的维保金额；可关联 linkedMaintenanceIds（sumMaintenanceForBill）。
**录入方式**：关联后自动汇总；最新账单可关联记录。

**业务说明**：收入侧运维费：自动汇总该账单月内、该车牌维修/保养台账中「客户承担」的金额；最新一期账单可关联记录。

### 其他收入

**数据来源**：行内其他收入明细（事由、金额、备注）。
**计算方式**：多条明细金额合计计入应收与月度收入（sumLineItems）。
**录入方式**：草稿状态可编辑明细。

**业务说明**：支持多条明细录入（事由、金额、备注）；合计自动计入应收与月度收入。

### 里程减免金额

**数据来源**：BI 里程（GPS）、里程减免单价。
**计算方式**：里程减免 = GPS 里程 × 单价；有 GPS 时默认 0.5 元/km，无 GPS 为 0（calcMileageDeduction）。
**录入方式**：系统自动计算，只读。

**业务说明**：里程减免金额 = GPS 里程 × 里程减免单价；有 GPS 里程时默认单价 0.5 元/km，无 GPS 时为 0。

### 其他减免金额

**数据来源**：行内其他减免明细。
**计算方式**：多条明细金额合计，从应收与月度收入扣减（sumLineItems）。
**录入方式**：草稿状态可编辑明细。

**业务说明**：支持多条明细录入（事由、金额、备注）；合计自动从应收与月度收入中扣减。

### 实收金额

**数据来源**：收款记录模块关联分配金额。
**计算方式**：关联收款单后按分配计入金额汇总，不超过应收合计（calcReceivedAmountFromReceipts）。
**录入方式**：通过「关联收款」操作维护。

**业务说明**：从「收款记录」功能关联该账单后分配的实收金额；点击可查看收款明细列表。

### 未收金额

**数据来源**：应收合计、实收金额。
**计算方式**：未收金额 = 应收合计 − 实收金额（calcUnreceived）。
**录入方式**：系统自动计算，不可手工录入。

**业务说明**：未收金额 = 应收合计 − 实收金额，系统自动计算，不可手工录入。

### 开票日期

**数据来源**：关联收款记录中的开票信息。
**计算方式**：resolveInvoiceDateFromReceipts 取关联收款单开票日期。
**录入方式**：只读。

**业务说明**：从「收款记录」功能关联开票记录，显示开票日期。

### 实际付款日期

**数据来源**：关联收款记录的到账日期。
**计算方式**：有关联收款时取到账记录付款日期；未关联为空。
**录入方式**：只读。

**业务说明**：关联收款记录时取对应到账记录的付款日期；未关联时为空。

### 付款方式

**数据来源**：合同付款周期月数。
**计算方式**：1→月度预付，3→季度预付，6→半年预付，12→年度预付（resolvePaymentMethod）。
**录入方式**：只读。

**业务说明**：由合同付款周期决定：1 个月→月度预付，3 个月→季度预付，6 个月→半年预付，12 个月→年度预付。

### 车辆标准成本

**数据来源**：车型成本明细 / 车牌标准成本配置（PLATE_STANDARD_COST）。
**计算方式**：按车型维护的固定月标准成本。
**录入方式**：只读。

**业务说明**：固定成本，按车型明细维护，只读。

### 车辆实际成本

**数据来源**：车辆标准成本、账单月内租赁天数。
**计算方式**：车辆实际成本 = 标准成本 × 租赁天数 / 30（calcVehicleActualCost）。
**录入方式**：系统自动计算，只读。

**业务说明**：车辆实际成本 = 车辆标准成本 × 账单月内租赁天数 / 30，自动计算。

### 保险费

**数据来源**：保险采购金额、保险有效天数、账单月租赁天数。
**计算方式**：保险费 =（采购金额 / 有效天数）× 租赁天数，四舍五入两位（calcInsuranceFee）。
**录入方式**：只读。

**业务说明**：保险费 =（保险采购金额 / 保险有效天数）× 账单月内租赁天数，四舍五入保留两位小数。

### 氢费

**数据来源**：氢费明细台账、合同氢费承担方式。
**计算方式**：合同为「我司承担」时，汇总账单月内该车牌氢费（sumHydrogenFeeForBill）；客户承担不计入。
**录入方式**：只读。

**业务说明**：仅汇总该账单月内、氢费明细中「我司承担」的氢费（含未对账/已对账）；合同为客户承担时不计入。

### 运维费

**数据来源**：维修/保养台账（我司承担）、账单月内该车牌。
**计算方式**：汇总 bearBy=我司承担 的维保金额（sumMaintenanceForBill）。
**录入方式**：只读。

**业务说明**：成本侧运维费：自动汇总该账单月内、该车牌维修/保养台账中「我司承担」的金额。

### 居间费

**数据来源**：行内手工录入。
**计算方式**：直接存储 brokerageFee 字段。
**录入方式**：草稿可编辑。

**业务说明**：手动输入。

### 其他

**数据来源**：行内手工录入。
**计算方式**：直接存储 otherCost；前方有其他收入时本项必填。
**录入方式**：草稿可编辑。

**业务说明**：前方其他收入有填写时，此处为必填项；与收入侧其他费用区分。

### GPS里程

**数据来源**：BI 里程数据（bi-mileage.json / 车机 GPS）。
**计算方式**：lookupBiMileage(车牌, 年, 月) 取账单期里程。
**录入方式**：只读。

**业务说明**：从 BI 里程取账单时间段的数据，自动展示。

### 其他减免金额明细内容

**数据来源**：行内手工录入。
**计算方式**：存储 otherDeductionDetail 文本。
**录入方式**：草稿可编辑。

**业务说明**：手动输入，备注明细内容。

### 资产归属

**数据来源**：车辆档案资产归属。
**计算方式**：按车牌从 PLATE_ASSET_OWNER / 车辆档案反写。
**录入方式**：只读。

**业务说明**：显示车辆实际归属公司名称，按车辆档案自动获取。

### 签约公司

**数据来源**：租赁合同甲方。
**计算方式**：按车牌匹配签订合同时甲方名称（PLATE_SIGNING_COMPANY）。
**录入方式**：只读。

**业务说明**：显示租赁合同签订时甲方名称。

### 备注

**数据来源**：行内手工录入。
**计算方式**：存储 remark 文本。
**录入方式**：草稿可编辑。

**业务说明**：本列为人工手动填写。

### 账单状态

**数据来源**：账单归档状态字段 archiveStatus。
**计算方式**：草稿 / 未归档 / 已归档；工具栏「保存」「设置为归档」批量变更。
**录入方式**：仅草稿可编辑业务字段。

**业务说明**：状态分为已归档、未归档、草稿。仅草稿可编辑；工具栏「保存」将勾选记录设为未归档（不可编辑）；「设置为归档」将勾选记录锁定为已归档。

### 维护时间

**数据来源**：台账行维护记录。
**计算方式**：展示最近一次保存/维护时间（maintainerTime）。
**录入方式**：系统记录，只读。

**业务说明**：展示最近一次维护时间（YYYY-MM-DD HH:MM）；维护人显示最后一次维护用户姓名。
