• 可配置商城结算合同模型


    1. 背景

    笔者曾经负责过一个线下结算ERP系统.
    该系统需求难点之一是:
    业务人员能灵活将线下商城签署的合同录入系统,并按合同生成账单,及财务账务.

    2. 难点分析

    2.1 合同条款规则灵活多变

    每个商务合同都是在艰难的商业谈判之下签署的纸质合同.
    每个线商家条款都商务规则都各不相同.
    合同条款例子如下:

    • 每季度一结,租金单价为: 100元/天/平米 (也可能为3000元/月/平米)
    • 每月一结, 每月固定月租为: 2万块. 每年递增5%.
    • 电费每月一结, 电费单价为 0.7元/度(也有可能是按广场动态单价来结算)
    • 每季度一结, 租借广场收银机3台, 每台按 15.00元/台/天收费
    • 商户每月需付广场1000块管理费,广场根据店铺含税销售总额5%扣率抽成作为广场收益, 每年前三个月广场可减免店铺销售额1%的扣率.
    • 广场根据店铺每月不同商品分类含税销售总额按不同扣率抽成作为广场收益
    • 店铺承诺每年度销售额不低于180万元,实际销售额少于保底销售额时,店铺应按照当期约定保底销售额乘以5%扣率向广场缴纳保底抽成额.
    • 广场根据每月销售额在不同阶梯范围设置不同扣率抽成, 开业前3个月免扣点抽成

    3. 解决思路

    对于规则复杂多变的合同条款, 最简单粗暴的办法就是:
    针对水电条款创建一张水电条款表,
    针对收银机,刷卡费,创建相应的表
    针对销售额相关的逻辑创建销售额扣点表.

    但这种办法会有如下的问题:

    1. 每来一种新的条款,就要创建多一套新的表
    2. 需要为每一套表的配置页面写个性化页面
    3. 需要为每一套表写个性化的后端代码

    从系统设计角度, 我们需要将所有条款归纳,再拆解成一个个不同类型的组件,每个合同条款的配置,就是将这些合适组件组合起来的过程.这些条款组件如下:
    在这里插入图片描述

    3.1 条款基本规则引擎组件

    基本规则在后端实现会对应一个业务逻辑类.
    是结算的核心。
    如电费结算规则引擎,销售额结算规则引擎,水费结算规则引擎,收银机结算费用规则引擎, 刷卡费用结算规则引擎

    3.2 结算周期配置组件

    决定账单结算的计算周期,如每十天,每个月,每三个月

    3.3 处理方法组件

    与条款基本规则引擎组件 配搭使用.
    如水费或电费结算规则引擎组件一般是使用:单价的处理方法组件

    可选的处理方法组件有:
    单价,纯扣点,进阶扣点,分段扣点,分类扣点.

    3.4 减免组件

    用于指定期间减免相应的扣点或金额.

    3.5 统筹保底组件

    主要用于指定相应期间统筹的扣点及保底金额
    可设定: 某期间(一年)销售额不低于180万元,实际销售额少于保底销售额时,店铺应按照当期约定保底销售额乘以5%扣率向广场缴纳保底抽成额

    3.6 结算单位组件

    主要是配合电费,水费, 收银机等结算规则引擎

    每个合同条款可以由上面几个组件随意组合,其中条款基本规则引擎组件与结算周期配置组件,处理方法组件是必选的.

    4. 模型

    在这里插入图片描述

  • 相关阅读:
    HttpUtils工具类
    深入浅出计算机组成原理12-理解电路:从电报机到门电路,我们如何做到“千里传信”?
    StackExchange.Redis 高并发下timeout超时问题如何解决?
    ClickHouse Senior Course Ⅱ
    字节、字、双字 关系
    Vue进阶(幺陆玖)信创适配改造
    c语言字符串&结构体考试总结
    java8中“::”双冒号的功能简介说明
    Docker容器数据卷入门教程(超详细)
    Android驱动框架整理之device框架
  • 原文地址:https://blog.csdn.net/vipshop_fin_dev/article/details/126824598