Skip to content

财务表结构

alt text

结算账户

结算账户 erp_account

CREATE TABLE `erp_account` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '结算账户编号',
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账户名称',
  `no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账户编码',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
  `status` tinyint NOT NULL COMMENT '开启状态',
  `sort` int NOT NULL COMMENT '排序',
  `default_status` bit(1) DEFAULT b'0' COMMENT '是否默认',
  PRIMARY KEY (`id` DESC)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='ERP 结算账户';

都是一些信息字段,仅仅用于展示,没有什么特殊逻辑。

采购付款

erp_finance_payment 表和 erp_finance_payment_item 表,分别对应录付款单和付款单明细。

CREATE TABLE `erp_finance_payment` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  
  `no` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '付款单号',
  
  `status` tinyint NOT NULL COMMENT '状态',
  `payment_time` datetime NOT NULL COMMENT '付款时间',
  
  `supplier_id` bigint NOT NULL COMMENT '供应商编号',
  `finance_user_id` bigint DEFAULT NULL COMMENT '财务人员编号',
  `account_id` bigint NOT NULL COMMENT '付款账户编号',
  
  `total_price` decimal(24,6) NOT NULL COMMENT '合计价格,单位:元',
  `discount_price` decimal(24,6) NOT NULL COMMENT '优惠金额,单位:元',
  `payment_price` decimal(24,6) NOT NULL COMMENT '实付金额,单位:分',
  
  `remark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='ERP 付款单表';

① no:付款单号,一般是系统自动生成的,目前格式是 {prefix}{yyyyMMdd}{6 位自增}。具体可见 ErpNoRedisDAO 类。

② status:审核状态,统一使用 ErpAuditStatus 枚举类,只有“未审批”、“已审批”两个状态。

③ supplier_id:供应商编号,关联 erp_supplier 表。

account_id:结算账户编号,关联上面的 erp_account 表。

④ total_price、discount_price、payment_price:合计价格、优惠金额、实付金额。 payment_price 等于 total_price - discount_price。

CREATE TABLE `erp_finance_payment_item` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  
  `payment_id` bigint NOT NULL COMMENT '付款单编号',
  
  `biz_type` tinyint NOT NULL COMMENT '业务类型',
  `biz_id` bigint NOT NULL COMMENT '业务编号',
  `biz_no` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务单号',
  
  `total_price` decimal(24,6) NOT NULL COMMENT '应付欠款,单位:分',
  `paid_price` decimal(24,6) NOT NULL COMMENT '已付欠款,单位:分',
  `payment_price` decimal(24,6) NOT NULL COMMENT '本次付款,单位:分',
  
  `remark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='ERP 付款项表';

① payment_id:付款单编号,关联 erp_finance_payment 表。

② biz_type、biz_id、biz_no:业务类型、业务编号、业务单号。

其中 biz_type 由 ErpBizTypeEnum 枚举,目前使用“采购入库”、“采购退货”两种类型。

③ total_price、paid_price、payment_price:应付欠款、已付欠款、本次付款。

其中,payment_price 等于 total_price - paid_price。

不过也要注意,这 total_price、paid_price 字段更多是冗余,核心还是 payment_price 表示本次付款。

销售收款

销售收款 erp_finance_receipt 表和 erp_finance_receipt_item 表,分别对应录收款单和收款单明细。

CREATE TABLE `erp_finance_receipt` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  
  `no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收款单号',
  
  `status` tinyint NOT NULL COMMENT '状态',
  `receipt_time` datetime NOT NULL COMMENT '收款时间',
  
  `customer_id` bigint NOT NULL COMMENT '客户编号',
  `account_id` bigint NOT NULL COMMENT '收款账户编号',
  `finance_user_id` bigint DEFAULT NULL COMMENT '财务人员编号',
  
  `total_price` decimal(24,6) NOT NULL COMMENT '合计价格,单位:元',
  `discount_price` decimal(24,6) NOT NULL COMMENT '优惠金额,单位:元',
  `receipt_price` decimal(24,6) NOT NULL COMMENT '实收金额,单位:分',
  
  `remark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='ERP 收款单表';

① no:收款单号,一般是系统自动生成的,目前格式是 {prefix}{yyyyMMdd}{6 位自增}。具体可见 ErpNoRedisDAO 类。

② status:审核状态,统一使用 ErpAuditStatus 枚举类,只有“未审批”、“已审批”两个状态。

③ customer_id:客户编号,关联 erp_customer 表。

account_id:结算账户编号,关联上面的 erp_account 表。

④ total_price、discount_price、receipt_price:合计价格、优惠金额、实收金额。

其中,receipt_price 等于 total_price - discount_price。

CREATE TABLE `erp_finance_receipt_item` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  
  `receipt_id` bigint NOT NULL COMMENT '收款单编号',
  
  `biz_type` tinyint NOT NULL COMMENT '业务类型',
  `biz_id` bigint NOT NULL COMMENT '业务编号',
  `biz_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务单号',
  
  `total_price` decimal(24,6) NOT NULL COMMENT '应收金额,单位:分',
  `receipted_price` decimal(24,6) NOT NULL COMMENT '已收金额,单位:分',
  `receipt_price` decimal(24,6) NOT NULL COMMENT '本次收款,单位:分',
  
  `remark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='ERP 收款项表';

① receipt_id:收款单编号,关联 erp_finance_receipt 表。

② biz_type、biz_id、biz_no:业务类型、业务编号、业务单号。

其中 biz_type 由 ErpBizTypeEnum 枚举,目前使用“销售出库”、“销售退货”两种类型。

③ total_price、receipted_price、receipt_price:应收金额、已收金额、本次收款。

其中,receipt_price 等于 total_price - receipted_price。

不过也要注意,这 total_price、receipted_price 字段更多是冗余,核心还是 receipt_price 表示本次收款。