# 绘管家1.0增量账单生成需求说明

## 需求场景

为了能够提前收费，部分小区的账单收费项目生成的时间不同，例如：物业服务费这类每月固定的费用可以在月初生成，生成后审核无误即可向业主收费；而水电抄表这类费用需要等待抄表数据才可以生成相关费用，需要在月中甚至月末才生成账单。目前的绘管家1.0只支持全部收费项目的账单，这会导致物业客户无法提前收费而降低收费率。

因此，需要更改目前绘管家1.0的账单生成方式，支持一个账单可以分多次，按收费项目生成。

## 需求变更清单

1. 数据表结构：账单明细表t_charge_bill_item增加一个字段标识该明细项是否`已审核`。该字段作用如下：

   * `未审核`账单__审核__后，需要将该账单对应的`未审核`的明细项标识为`已审核`。

   * 如果账单明细项已有`实收金额`（如业主缴费，预付款抵扣，预缴活动自动抵扣），即便是进行账单__反审核__，该字段不随账单状态改变，仍保留为`已审核`状态。已审核的账单明细项不允许进行编辑或生成时覆盖。

   * 如果账单明细项`实收金额`为0，则进行账单__反审核__时，需要将该字段变更为`未审核`状态，此时可以对此项账单明细项进行编辑。

   * 处于`未审核`状态的账单明细项在账单生成时允许覆盖，处于`已审核`状态的账单明细项不允许覆盖。

2. 操作界面：__账单生成__页面增加__收费项目__选择，需要由操作人员指定本次生成哪些收费项目的费用，支持__多选__。

3. 操作界面：__账单编辑__界面，如果账单明细项`已审核`，则此项明细项__不允许编辑__；

4. 账单生成业务逻辑：

   * __生成账单__时，是否更新房屋本期的账单的依据为本期房屋账单处于`未审核`或`已审核`状态（`已结账`状态__不允许__更新）。

   * 如果本期房屋账单对应选择的收费标准的明细项已存在，如果__存在且该明细项处于已审核__状态，则跳过此项；否则生成此项费用用作新增或覆盖。

## 业务流程图

![增量账单流程图](image/bill_add.jpg)



各种情况的示例图：

![示例](image/bill_add_examples.png)


