-- 结算管理 / 正式结算单 CREATE TABLE IF NOT EXISTS `blade_formal_settlement` ( `id` bigint(20) NOT NULL COMMENT '主键', `tenant_id` varchar(12) NOT NULL DEFAULT '000000' COMMENT '租户ID', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_no` varchar(100) NOT NULL COMMENT '正式结算单号', `source_type` varchar(30) NOT NULL DEFAULT '预结算合并', `settlement_type` varchar(30) NOT NULL, `project_id` bigint(20) DEFAULT NULL, `project_name` varchar(100) DEFAULT NULL, `dept_id` bigint(20) DEFAULT NULL, `dept_name` varchar(100) DEFAULT NULL, `contract_id` bigint(20) NOT NULL, `contract_no` varchar(100) DEFAULT NULL, `contract_name` varchar(100) NOT NULL, `payer_name` varchar(200) DEFAULT NULL, `payee_name` varchar(200) DEFAULT NULL, `currency` varchar(20) NOT NULL DEFAULT 'RMB', `settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `local_currency` varchar(20) NOT NULL DEFAULT 'RMB', `local_settlement_amount` decimal(18,2) DEFAULT NULL, `applied_payment_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '申请付款金额含预付', `paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '已收已付合计含预付', `remaining_payable_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '剩余可付金额', `invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '发票金额', `exchange_rate_date` date DEFAULT NULL, `exchange_rate` decimal(18,6) DEFAULT NULL, `invoice_status` varchar(30) NOT NULL DEFAULT 'unreceived', `payment_status` varchar(30) NOT NULL DEFAULT 'unpaid', `approval_status` varchar(30) NOT NULL DEFAULT 'draft', `current_node` varchar(100) DEFAULT NULL, `current_processor` varchar(200) DEFAULT NULL, `kingdee_bill_no` varchar(100) DEFAULT NULL, `kingdee_sync_status` varchar(30) NOT NULL DEFAULT 'unsynced', `attachments_json` longtext, `remark` varchar(200) DEFAULT NULL, `approved_time` datetime DEFAULT NULL, `synced_time` datetime DEFAULT NULL, `void_reason` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_formal_settlement_no` (`tenant_id`,`formal_settlement_no`), KEY `idx_formal_contract` (`contract_id`), KEY `idx_formal_approval` (`approval_status`), KEY `idx_formal_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算单'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_invoice` ( `id` bigint(20) NOT NULL COMMENT '主键', `tenant_id` varchar(12) NOT NULL DEFAULT '000000' COMMENT '租户ID', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_id` bigint(20) NOT NULL COMMENT '正式结算单ID', `line_no` int(11) NOT NULL COMMENT '行号', `invoice_no` varchar(32) NOT NULL COMMENT '发票号', `invoice_date` date DEFAULT NULL COMMENT '开票日期', `invoice_type` varchar(50) DEFAULT NULL COMMENT '发票类型', `tax_rate` decimal(8,4) DEFAULT NULL COMMENT '税率', `invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '发票金额(含税)', `available_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '可匹配发票金额(含税)', `matched_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '匹配结算单金额(含税)', `attachment_json` longtext COMMENT '发票附件JSON', PRIMARY KEY (`id`), UNIQUE KEY `uk_formal_settlement_invoice_no` (`tenant_id`,`formal_settlement_id`,`invoice_no`), KEY `idx_formal_settlement_invoice` (`formal_settlement_id`,`line_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算发票明细'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_change_record` ( `id` bigint(20) NOT NULL COMMENT '主键', `tenant_id` varchar(12) NOT NULL DEFAULT '000000' COMMENT '租户ID', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_id` bigint(20) NOT NULL COMMENT '正式结算单ID', `change_type` varchar(50) NOT NULL COMMENT '变更类型', `line_no` int(11) DEFAULT NULL COMMENT '行号', `operation_type` varchar(30) NOT NULL COMMENT '操作类型', `change_content` text NOT NULL COMMENT '变更内容', `change_reason` varchar(200) DEFAULT NULL COMMENT '变更原因', `operator_name` varchar(100) DEFAULT NULL COMMENT '操作人', `change_time` datetime NOT NULL COMMENT '变更时间', PRIMARY KEY (`id`), KEY `idx_formal_settlement_change_bill` (`formal_settlement_id`), KEY `idx_formal_settlement_change_time` (`change_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算变更记录'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_source` ( `id` bigint(20) NOT NULL, `tenant_id` varchar(12) NOT NULL DEFAULT '000000', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_id` bigint(20) NOT NULL, `pre_settlement_id` bigint(20) NOT NULL, `pre_settlement_no` varchar(100) NOT NULL, `settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `advance_applied_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `advance_paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`id`), KEY `idx_formal_source_pre` (`pre_settlement_id`), KEY `idx_formal_source_bill` (`formal_settlement_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算来源预结算'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_detail` ( `id` bigint(20) NOT NULL, `tenant_id` varchar(12) NOT NULL DEFAULT '000000', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_id` bigint(20) NOT NULL, `source_pre_settlement_id` bigint(20) DEFAULT NULL, `source_pre_settlement_detail_id` bigint(20) DEFAULT NULL, `source_detail_id` bigint(20) NOT NULL, `line_no` int(11) NOT NULL, `document_no` varchar(100) DEFAULT NULL, `waybill_id` bigint(20) DEFAULT NULL, `waybill_no` varchar(100) DEFAULT NULL, `vehicle_no` varchar(100) DEFAULT NULL, `departure_address` varchar(500) DEFAULT NULL, `arrival_address` varchar(500) DEFAULT NULL, `departure_contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货联系人', `departure_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货联系方式', `arrival_contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货联系人', `arrival_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货联系方式', `actual_departure_time` datetime DEFAULT NULL, `actual_completion_time` datetime DEFAULT NULL, `transport_type` varchar(100) DEFAULT NULL, `cargo_name` varchar(500) DEFAULT NULL, `cargo_type` varchar(500) DEFAULT NULL, `transport_quantity` decimal(18,6) DEFAULT NULL, `quantity_unit` varchar(50) DEFAULT NULL, `mileage` decimal(18,2) DEFAULT NULL, `batch_no` varchar(100) DEFAULT NULL, `unit_price` decimal(18,2) DEFAULT NULL, `freight_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `fee_items_json` longtext, `original_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `adjust_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `settlement_amount_tax` decimal(18,2) NOT NULL DEFAULT '0.00', `settlement_amount_no_tax` decimal(18,2) DEFAULT NULL, `currency` varchar(20) NOT NULL DEFAULT 'RMB', `remark` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_formal_detail_bill` (`formal_settlement_id`), KEY `idx_formal_detail_source` (`source_detail_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算明细快照'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_detail_fee` ( `id` bigint(20) NOT NULL, `tenant_id` varchar(12) NOT NULL DEFAULT '000000', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_detail_id` bigint(20) NOT NULL, `source_fee_id` bigint(20) DEFAULT NULL, `line_no` varchar(30) DEFAULT NULL, `cargo_name` varchar(100) DEFAULT NULL, `cargo_type` varchar(100) DEFAULT NULL, `transport_quantity` decimal(18,6) DEFAULT NULL, `quantity_unit` varchar(50) DEFAULT NULL, `mileage` decimal(18,2) DEFAULT NULL, `unit_price` decimal(18,2) DEFAULT NULL, `freight_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `fee_items_json` longtext, `original_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `adjust_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `settlement_amount_tax` decimal(18,2) NOT NULL DEFAULT '0.00', `settlement_amount_no_tax` decimal(18,2) DEFAULT NULL, `remark` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_formal_detail_fee_detail` (`formal_settlement_detail_id`), KEY `idx_formal_detail_fee_source` (`source_fee_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算货物费用快照'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_summary_fee` ( `id` bigint(20) NOT NULL COMMENT '主键', `tenant_id` varchar(12) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000' COMMENT '租户ID', `create_user` bigint(20) DEFAULT NULL COMMENT '创建人', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', `status` int(11) DEFAULT '1' COMMENT '状态', `is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除', `formal_settlement_id` bigint(20) NOT NULL COMMENT '正式结算单ID', `line_no` int(11) NOT NULL COMMENT '行号', `fee_type` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '费用类型', `fee_item` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '费用项', `original_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '原金额', `adjust_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '调整金额', `settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '结算金额', `remark` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', `manual_flag` int(11) NOT NULL DEFAULT '0' COMMENT '是否手工添加', PRIMARY KEY (`id`) USING BTREE, KEY `idx_formal_settlement_summary_bill` (`formal_settlement_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算合计费用'; CREATE TABLE IF NOT EXISTS `blade_formal_settlement_payment` ( `id` bigint(20) NOT NULL, `tenant_id` varchar(12) NOT NULL DEFAULT '000000', `create_user` bigint(20) DEFAULT NULL, `create_dept` bigint(20) DEFAULT NULL, `create_time` datetime DEFAULT NULL, `update_user` bigint(20) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `status` int(11) DEFAULT '1', `is_deleted` int(11) DEFAULT '0', `formal_settlement_id` bigint(20) NOT NULL, `payment_no` varchar(100) NOT NULL, `payment_type` varchar(30) NOT NULL DEFAULT 'final', `applied_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `bill_status` varchar(30) NOT NULL DEFAULT 'reviewing', `kingdee_bill_no` varchar(100) DEFAULT NULL, `remark` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_formal_payment_no` (`tenant_id`,`payment_no`), KEY `idx_formal_payment_bill` (`formal_settlement_id`), KEY `idx_formal_payment_status` (`bill_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='正式结算付款申请'; INSERT INTO `blade_menu` (`id`,`parent_id`,`code`,`name`,`alias`,`path`,`source`,`sort`,`category`,`action`,`is_open`,`component`,`remark`,`is_deleted`) VALUES (2090000000000001040,2090000000000001000,'formal_settlement','正式结算单','formal_settlement','/settlement/formal-settlement','iconfont icon-caidanguanli',4,1,0,1,NULL,'',0), (2090000000000001041,2090000000000001040,'formal_settlement_view','查看','formal_settlement_view','','',1,2,0,1,NULL,'',0), (2090000000000001042,2090000000000001040,'formal_settlement_add','新增','formal_settlement_add','','',2,2,0,1,NULL,'',0), (2090000000000001043,2090000000000001040,'formal_settlement_edit','编辑','formal_settlement_edit','','',3,2,0,1,NULL,'',0), (2090000000000001044,2090000000000001040,'formal_settlement_delete','删除','formal_settlement_delete','','',4,2,0,1,NULL,'',0), (2090000000000001045,2090000000000001040,'formal_settlement_submit','提交审批','formal_settlement_submit','','',5,2,0,1,NULL,'',0), (2090000000000001046,2090000000000001040,'formal_settlement_approve','审批','formal_settlement_approve','','',6,2,0,1,NULL,'',0), (2090000000000001047,2090000000000001040,'formal_settlement_sync','同步金蝶','formal_settlement_sync','','',7,2,0,1,NULL,'',0), (2090000000000001048,2090000000000001040,'formal_settlement_print','打印','formal_settlement_print','','',8,2,0,1,NULL,'',0), (2090000000000001049,2090000000000001040,'formal_settlement_export','导出','formal_settlement_export','','',9,2,0,1,NULL,'',0), (2090000000000001050,2090000000000001040,'formal_settlement_void','作废','formal_settlement_void','','',10,2,0,1,NULL,'',0), (2090000000000001051,2090000000000001040,'formal_settlement_adjust','明细调整','formal_settlement_adjust','','',11,2,0,1,NULL,'',0), (2090000000000001052,2090000000000001040,'formal_settlement_payment','付款申请','formal_settlement_payment','','',12,2,0,1,NULL,'',0) ON DUPLICATE KEY UPDATE `name`=VALUES(`name`),`path`=VALUES(`path`),`is_deleted`=0;