-- 结算管理 / 预结算 CREATE TABLE IF NOT EXISTS `blade_pre_settlement` ( `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 '是否已删除', `pre_settlement_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '预结算单号', `source_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '应收应付' COMMENT '来源', `settlement_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'payable' COMMENT '结算类型', `project_id` bigint(20) DEFAULT NULL COMMENT '项目ID', `project_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '项目名称', `dept_id` bigint(20) DEFAULT NULL COMMENT '所属组织ID', `dept_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属组织', `contract_id` bigint(20) NOT NULL COMMENT '合同ID', `contract_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '合同编号', `contract_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '合同名称', `payer_name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '付款方', `payee_name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收款方', `currency` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'RMB' COMMENT '结算币种', `settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '结算金额', `local_currency` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'RMB' COMMENT '本位币', `local_settlement_amount` decimal(18,2) DEFAULT NULL COMMENT '本位币合计', `exchange_rate_date` date DEFAULT NULL COMMENT '汇率日期', `exchange_rate` decimal(18,6) DEFAULT NULL COMMENT '结算汇率', `approval_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'draft' COMMENT '审核状态', `current_node` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前节点', `current_processor` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前处理人', `advance_no` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '预付单号', `advance_applied_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '申请预付金额', `advance_paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '已付款金额', `formal_settlement_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '正式结算单号', `attachments_json` longtext COLLATE utf8mb4_general_ci COMMENT '附件JSON', `remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', `approved_time` datetime DEFAULT NULL COMMENT '审核通过时间', `formal_settled_time` datetime DEFAULT NULL COMMENT '正式结算时间', `void_reason` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '作废原因', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_pre_settlement_no` (`tenant_id`,`pre_settlement_no`) USING BTREE, KEY `idx_pre_settlement_contract` (`contract_id`) USING BTREE, KEY `idx_pre_settlement_project` (`project_id`) USING BTREE, KEY `idx_pre_settlement_approval` (`approval_status`) USING BTREE, KEY `idx_pre_settlement_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预结算单'; CREATE TABLE IF NOT EXISTS `blade_pre_settlement_detail` ( `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 '是否已删除', `pre_settlement_id` bigint(20) NOT NULL COMMENT '预结算单ID', `source_detail_id` bigint(20) NOT NULL COMMENT '应收应付明细ID', `line_no` int(11) NOT NULL COMMENT '行号', `document_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '单据号', `waybill_id` bigint(20) DEFAULT NULL COMMENT '运单ID', `waybill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '运单号', `vehicle_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '车号', `departure_address` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货地址', `arrival_address` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货地址', `departure_contact` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货联系人', `departure_phone` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发货联系方式', `arrival_contact` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货联系人', `arrival_phone` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货联系方式', `actual_departure_time` datetime DEFAULT NULL COMMENT '实际发货时间', `actual_completion_time` datetime DEFAULT NULL COMMENT '实际完成时间', `transport_type` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '运输类型', `cargo_name` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货物名称', `cargo_type` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货物类型', `transport_quantity` decimal(18,6) DEFAULT NULL COMMENT '运输总量', `quantity_unit` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '数量单位', `mileage` decimal(18,2) DEFAULT NULL COMMENT '里程', `batch_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '批次号', `unit_price` decimal(18,2) DEFAULT NULL COMMENT '运输单价', `freight_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '运费', `fee_items_json` longtext COLLATE utf8mb4_general_ci COMMENT '费用项JSON', `original_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '原金额', `adjust_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '调整金额', `settlement_amount_tax` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '结算金额(含税)', `settlement_amount_no_tax` decimal(18,2) DEFAULT NULL COMMENT '结算金额(不含税)', `currency` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'RMB' COMMENT '币种', `remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_pre_settlement_source_detail` (`source_detail_id`) USING BTREE, KEY `idx_pre_settlement_detail_bill` (`pre_settlement_id`) USING BTREE, KEY `idx_pre_settlement_detail_waybill` (`waybill_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预结算明细'; CREATE TABLE IF NOT EXISTS `blade_pre_settlement_detail_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 '是否已删除', `pre_settlement_detail_id` bigint(20) NOT NULL COMMENT '预结算明细ID', `source_fee_id` bigint(20) DEFAULT NULL COMMENT '源费用行ID', `line_no` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '行号', `cargo_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货物名称', `cargo_type` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '货物类型', `transport_quantity` decimal(18,6) DEFAULT NULL COMMENT '运输量', `quantity_unit` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '数量单位', `mileage` decimal(18,2) DEFAULT NULL COMMENT '里程', `unit_price` decimal(18,2) DEFAULT NULL COMMENT '运输单价', `freight_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '运费', `fee_items_json` longtext COLLATE utf8mb4_general_ci COMMENT '费用项JSON', `original_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '原金额', `adjust_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '调整金额', `settlement_amount_tax` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '结算金额(含税)', `settlement_amount_no_tax` decimal(18,2) DEFAULT NULL COMMENT '结算金额(不含税)', `remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_pre_settlement_detail_fee_detail` (`pre_settlement_detail_id`) USING BTREE, KEY `idx_pre_settlement_detail_fee_source` (`source_fee_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预结算明细费用快照'; CREATE TABLE IF NOT EXISTS `blade_pre_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 '是否已删除', `pre_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_pre_settlement_summary_bill` (`pre_settlement_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预结算合计费用'; CREATE TABLE IF NOT EXISTS `blade_pre_settlement_advance` ( `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 '是否已删除', `pre_settlement_id` bigint(20) NOT NULL COMMENT '预结算单ID', `advance_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '预付单号', `applied_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '申请预付金额', `paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '已付款金额', `bill_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'reviewing' COMMENT '单据状态', `kingdee_advance_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '金蝶预付单号', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_pre_settlement_advance_no` (`tenant_id`,`advance_no`) USING BTREE, KEY `idx_pre_settlement_advance_bill` (`pre_settlement_id`) USING BTREE, KEY `idx_pre_settlement_advance_status` (`bill_status`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预结算预付记录'; CREATE TABLE IF NOT EXISTS `blade_pre_settlement_change_record` ( `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 '是否已删除', `pre_settlement_id` bigint(20) NOT NULL COMMENT '预结算单ID', `change_type` varchar(50) COLLATE utf8mb4_general_ci NOT NULL COMMENT '变更类型', `line_no` int(11) DEFAULT NULL COMMENT '行号', `operation_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作类型', `change_content` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '变更内容', `before_data` longtext COLLATE utf8mb4_general_ci COMMENT '变更前数据JSON', `after_data` longtext COLLATE utf8mb4_general_ci COMMENT '变更后数据JSON', `operator_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '操作人', `change_reason` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '变更原因', `change_time` datetime NOT NULL COMMENT '变更时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_pre_settlement_change_bill` (`pre_settlement_id`) USING BTREE, KEY `idx_pre_settlement_change_time` (`change_time`) USING BTREE ) 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 (2090000000000001020, 2090000000000001000, 'pre_settlement', '预结算', 'pre_settlement', '/settlement/pre-settlement', 'iconfont icon-caidanguanli', 3, 1, 0, 1, NULL, '', 0), (2090000000000001021, 2090000000000001020, 'pre_settlement_view', '查看', 'pre_settlement_view', '', '', 1, 2, 0, 1, NULL, '', 0), (2090000000000001022, 2090000000000001020, 'pre_settlement_add', '新增', 'pre_settlement_add', '', '', 2, 2, 0, 1, NULL, '', 0), (2090000000000001023, 2090000000000001020, 'pre_settlement_edit', '编辑', 'pre_settlement_edit', '', '', 3, 2, 0, 1, NULL, '', 0), (2090000000000001024, 2090000000000001020, 'pre_settlement_delete', '删除', 'pre_settlement_delete', '', '', 4, 2, 0, 1, NULL, '', 0), (2090000000000001025, 2090000000000001020, 'pre_settlement_submit', '提交审批', 'pre_settlement_submit', '', '', 5, 2, 0, 1, NULL, '', 0), (2090000000000001026, 2090000000000001020, 'pre_settlement_approve', '审批', 'pre_settlement_approve', '', '', 6, 2, 0, 1, NULL, '', 0), (2090000000000001027, 2090000000000001020, 'pre_settlement_advance', '预付申请', 'pre_settlement_advance', '', '', 7, 2, 0, 1, NULL, '', 0), (2090000000000001028, 2090000000000001020, 'pre_settlement_formal', '尾款结算', 'pre_settlement_formal', '', '', 8, 2, 0, 1, NULL, '', 0), (2090000000000001029, 2090000000000001020, 'pre_settlement_print', '打印结算单', 'pre_settlement_print', '', '', 9, 2, 0, 1, NULL, '', 0), (2090000000000001030, 2090000000000001020, 'pre_settlement_export', '导出', 'pre_settlement_export', '', '', 10, 2, 0, 1, NULL, '', 0), (2090000000000001031, 2090000000000001020, 'pre_settlement_adjust', '明细调整', 'pre_settlement_adjust', '', '', 11, 2, 0, 1, NULL, '', 0), (2090000000000001032, 2090000000000001020, 'pre_settlement_void', '作废', 'pre_settlement_void', '', '', 12, 2, 0, 1, NULL, '', 0) ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `path` = VALUES(`path`), `sort` = VALUES(`sort`), `is_deleted` = 0;