-- 财务管理模块建表脚本(固定资产/无形资产/凭证/科目账)
|
-- 说明:
|
-- 1) 总账科目继续复用已有表 account_subject,不重复创建 fin_account_subject。
|
-- 2) 金额字段统一 decimal(18,2)。
|
|
CREATE TABLE IF NOT EXISTS `fin_fixed_asset` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`asset_code` varchar(64) NOT NULL COMMENT '资产编号',
|
`asset_name` varchar(128) NOT NULL COMMENT '资产名称',
|
`category` varchar(64) NOT NULL COMMENT '资产类别',
|
`specification` varchar(255) DEFAULT NULL COMMENT '规格型号',
|
`purchase_date` date NOT NULL COMMENT '购置日期',
|
`original_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '资产原值',
|
`useful_life` int NOT NULL DEFAULT '1' COMMENT '使用年限(年)',
|
`residual_rate` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '残值率(%)',
|
`accumulated_depreciation` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '累计折旧',
|
`net_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '净值',
|
`location` varchar(255) DEFAULT NULL COMMENT '存放地点',
|
`department` varchar(128) DEFAULT NULL COMMENT '使用部门',
|
`keeper` varchar(64) DEFAULT NULL COMMENT '保管人',
|
`status` varchar(32) NOT NULL DEFAULT 'in_use' COMMENT '状态: in_use/idle/repair/scrapped',
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
`create_user` varchar(64) DEFAULT NULL COMMENT '创建人',
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`update_user` varchar(64) DEFAULT NULL COMMENT '修改人',
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_fin_fixed_asset_code` (`asset_code`),
|
KEY `idx_fin_fixed_asset_status` (`status`),
|
KEY `idx_fin_fixed_asset_category` (`category`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='固定资产';
|
|
CREATE TABLE IF NOT EXISTS `fin_intangible_asset` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`asset_code` varchar(64) NOT NULL COMMENT '资产编号',
|
`asset_name` varchar(128) NOT NULL COMMENT '资产名称',
|
`category` varchar(64) NOT NULL COMMENT '资产类别',
|
`certificate_no` varchar(128) DEFAULT NULL COMMENT '证书编号',
|
`acquisition_date` date NOT NULL COMMENT '取得日期',
|
`original_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '资产原值',
|
`amortization_period` int NOT NULL DEFAULT '1' COMMENT '摊销年限(年)',
|
`residual_rate` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '残值率(%)',
|
`accumulated_amortization` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '累计摊销',
|
`net_value` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '净值',
|
`validity_date` date DEFAULT NULL COMMENT '有效期至',
|
`status` varchar(32) NOT NULL DEFAULT 'in_use' COMMENT '状态: in_use/expired/amortized',
|
`description` varchar(1000) DEFAULT NULL COMMENT '资产描述',
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
`create_user` varchar(64) DEFAULT NULL COMMENT '创建人',
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`update_user` varchar(64) DEFAULT NULL COMMENT '修改人',
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_fin_intangible_asset_code` (`asset_code`),
|
KEY `idx_fin_intangible_asset_status` (`status`),
|
KEY `idx_fin_intangible_asset_category` (`category`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='无形资产';
|
|
CREATE TABLE IF NOT EXISTS `fin_voucher` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`voucher_no` varchar(64) NOT NULL COMMENT '凭证字号',
|
`voucher_date` date NOT NULL COMMENT '凭证日期',
|
`summary` varchar(500) DEFAULT NULL COMMENT '摘要',
|
`debit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '借方合计',
|
`credit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '贷方合计',
|
`creator` varchar(64) DEFAULT NULL COMMENT '制单人',
|
`status` varchar(32) NOT NULL DEFAULT 'unposted' COMMENT '状态: unposted/posted/cancelled',
|
`attachment_count` int NOT NULL DEFAULT '0' COMMENT '附件张数',
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
`create_user` varchar(64) DEFAULT NULL COMMENT '创建人',
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`update_user` varchar(64) DEFAULT NULL COMMENT '修改人',
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
|
PRIMARY KEY (`id`),
|
UNIQUE KEY `uk_fin_voucher_no` (`voucher_no`),
|
KEY `idx_fin_voucher_date` (`voucher_date`),
|
KEY `idx_fin_voucher_status` (`status`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='凭证主表';
|
|
CREATE TABLE IF NOT EXISTS `fin_voucher_entry` (
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
`voucher_id` bigint NOT NULL COMMENT '凭证ID',
|
`row_no` int NOT NULL DEFAULT '1' COMMENT '行号',
|
`subject_code` varchar(64) NOT NULL COMMENT '科目编码',
|
`subject_name` varchar(128) DEFAULT NULL COMMENT '科目名称',
|
`summary` varchar(500) DEFAULT NULL COMMENT '摘要',
|
`debit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '借方金额',
|
`credit` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '贷方金额',
|
`auxiliary_type` varchar(32) DEFAULT NULL COMMENT '辅助核算类型',
|
`auxiliary_id` varchar(64) DEFAULT NULL COMMENT '辅助核算对象ID',
|
`auxiliary_name` varchar(128) DEFAULT NULL COMMENT '辅助核算对象名称',
|
`create_user` varchar(64) DEFAULT NULL COMMENT '创建人',
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`update_user` varchar(64) DEFAULT NULL COMMENT '修改人',
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
`dept_id` bigint DEFAULT NULL COMMENT '部门ID',
|
PRIMARY KEY (`id`),
|
KEY `idx_fin_voucher_entry_voucher` (`voucher_id`),
|
KEY `idx_fin_voucher_entry_subject` (`subject_code`),
|
KEY `idx_fin_voucher_entry_aux` (`auxiliary_type`, `auxiliary_id`)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='凭证分录';
|