[关闭]
@Wahson 2019-11-26T09:44:28.000000Z 字数 1449 阅读 586

付款指令设计

Wanbo


业务描述:

  1. 采购员向供应商采购牌号
  2. 首先在系统录入对应的采购单(同一个供应商,多个牌号应建成同一个采购单,这样可以一起付款),可能是资源单,也可能是背靠背采购
  3. 采购单审批通过后,可申请付款
  4. 申请付款时,采购员自行决定付款金额(不超过货物总金额),每个牌号分配付款情况(如 广州7042 7800 * 10 付款 0.1 作为定金)
  5. 付款申请创建后,需要管理员审核(确认付款),付款指令通过公众号模板消息发送给管理员,管理员点开模板链接,进行确认
  6. 付款指令确认后,对应财务人员进行制单,制单会根据具体付款情况,自行选择付款银行,可能会有多个付款银行的情况(余额不足或其他特殊情况)
  7. 制单后,由财务经理最终确认付款
  8. 付款指令撤销,付款前,都可以进行撤销
  9. 财务专员会在制单完成后,修改付款指令状态,如果此时指令被撤销了,财务转移需要撤销银行系统制单
  10. 财务支付前,先修改状态为支付中,此时采购员不能撤销指令,如果特殊情况需要撤销,线下通知财务停止支付,有财务撤销支付
    付款确认页面设计:
    此处输入图片的描述

状态流:
此处输入图片的描述

  1. payment_application = (id, purchase_id, payment_id, status, amount,...)
  2. 流程:
  3. 1. 新建付款指令 一个付款指令会有对应多个payment的情况,如一次付款分多笔或分多个银行

数据模型:

  1. use purchase_db;
  2. create table payment_application(
  3. id bigint auto_increment primary key not null,
  4. purchase_id bigint not null comment '采购单id',
  5. status smallint(2) not null comment '指令状态,10:待确认(to_be_confirmed);20:已确认(confirmed);30:已制单(voucher_made);40:已支付(paid);50:已撤销(revoked)',
  6. supplier_company_id int not null default 0 comment '供应商id',
  7. supplier_company_name varchar(64) not null default '' comment '供应商名称',
  8. bank_name varchar(64) not null default '' comment '收款银行',
  9. bank_no varchar(32) not null comment '收款银行账号',
  10. platform_bank_name varchar(64) default null comment '平台付款银行',
  11. platform_bank_no varchar(64) default null comment '平台付款帐号',
  12. amount decimal(13, 2) default 0.00 not null comment '付款金额',
  13. created_at timestamp default current_timestamp() not null,
  14. created_by int default 0 not null,
  15. updated_at timestamp default current_timestamp() not null,
  16. updated_by int default 0 not null,
  17. remark varchar(255) null comment '备注',
  18. rmk varchar(255) null comment '系统备注'
  19. ) engine = innoDb charset = utf8mb4 comment '付款申请';
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注