账务微服务包括科目管理、账单管理。
1. 科目管理
科目是指账单中一笔账款的商品,可以理解为是在项目和商户进行交易的一个东西。
1.1 业务功能
(1)科目资料包括名称和代码,其中代码全局唯一。录入之后就不允许再进行修改。
(2)两种业务状态:使用中、已停用。
(3)两种业务操作:启用、停用。
(4)科目有税额的概念,比如价内税、价外税等等,该属性是用于计算税额的。
1.2 数据结构
CREATE TABLE `acc_subject` (
`uuid` varchar(38) NOT NULL COMMENT '唯一标识',
`code` varchar(32) NOT NULL COMMENT '代码',
`name` varchar(64) NOT NULL COMMENT '名称',
`state` varchar(16) NOT NULL COMMENT '状态',
`tax_rate` numeric(6, 4) NOT NULL COMMENT '税率',
`remark` varchar(1024) NULL COMMENT '说明',
PRIMARY KEY (`uuid`),
INDEX `idx_subject_1`(`code`)
) COMMENT = '科目表';
2. 账单管理
账单的数据由招商微服务的结算周期明细出账而来。
2.1 业务功能
(1)一个账单包括项目(甲方)、商户(乙方)、合同、销售提成率、记账日期、账单总金额等数据。
(2)两种业务状态:未生效、已生效。当对结算周期明细进行出账生成账单,此时账单为未生效状态,允许重复编辑和删除。若删除账单,需要对相应的结算周期明细恢复出账。
(3)一个账单中包含若干账款明细数据,一条账款明细包括本次结算起止日期,本次结算金额,本次销售提成总额,以及科目等数据。
2.2 数据结构
- 主表
CREATE TABLE `acc_statement` (
`uuid` varchar(38) NOT NULL COMMENT '唯一标识',
`bill_number` varchar(38) NOT NULL COMMENT '单号',
`state` varchar(16) NOT NULL COMMENT '业务状态',
`pay_state` varchar(16) NOT NULL COMMENT '付款状态',
`store_uuid` varchar(38) NOT NULL COMMENT '项目uuid',
`tenant_uuid` varchar(38) NOT NULL COMMENT '商户uuid',
`contract_uuid` varchar(38) NOT NULL COMMENT '合同uuid',
`account_date` date NOT NULL COMMENT '记账日期',
`sales_rate` numeric(19, 4) NOT NULL COMMENT '销售提成率',
`total` numeric(19, 2) NOT NULL COMMENT '账单总金额',
`tax` numeric(19, 2) NOT NULL COMMENT '账单总税额',
PRIMARY KEY (`uuid`),
INDEX `idx_statement_1`(`contract_uuid`),
INDEX `idx_statement_2`(`store_uuid`, `tenant_uuid`)
) COMMENT = '账单主表';
- 账款明细表
CREATE TABLE `acc_statement_detail` (
`uuid` varchar(38) NOT NULL COMMENT '唯一标识',
`statement_uuid` varchar(38) NOT NULL COMMENT '账单主表uuid',
`line_number` int(8) NOT NULL COMMENT '行号',
`begin_date` date NOT NULL COMMENT '结算起始日期',
`end_date` date NOT NULL COMMENT '结算结束日期',
`total` numeric(19, 2) NOT NULL COMMENT '本次结算金额',
`tax` numeric(19, 2) NOT NULL COMMENT '本次结算税额',
`sales_total` numeric(19, 2) NOT NULL COMMENT '本次销售提成总额',
`sales_tax` numeric(19, 2) NOT NULL COMMENT '本次销售提成税额',
`subject_uuid` varchar(38) NOT NULL COMMENT '科目uuid',
`tax_rate` numeric(19, 4) NOT NULL COMMENT '税率',
PRIMARY KEY (`uuid`),
INDEX `idx_smdetail_1`(`statement_uuid`, `line_number`)
) COMMENT = '账单明细表';

网友评论