/* Navicat Premium Dump SQL Source Server : 47.99.164.66 hn02le.34lkdLKD Source Server Type : MySQL Source Server Version : 50736 (5.7.36) Source Host : 47.99.164.66:3306 Source Schema : sx-yth Target Server Type : MySQL Target Server Version : 50736 (5.7.36) File Encoding : 65001 Date: 10/05/2026 12:42:49 */ -- ============================================================================= -- 结构调整说明(相对 Navicat 原始导出): -- 主键 id 及原 bigint(20) 实体关联字段已统一为 VARCHAR(64),便于前后端以字符串传递 ID,避免大整数精度问题; -- 已移除列级 AUTO_INCREMENT 及表选项 AUTO_INCREMENT=…;例外:`sys_oper_log.cost_time` 仍为 bigint(毫秒耗时)。 -- ============================================================================= SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for bx_advance_apply -- ---------------------------- DROP TABLE IF EXISTS `bx_advance_apply`; CREATE TABLE `bx_advance_apply` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `apply_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请单号(如 BYJ20260424001)', `applicant_id` VARCHAR(64) NOT NULL COMMENT '申请人用户ID', `applicant_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人姓名(冗余)', `reason` varchar(1024) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请原因', `purpose` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '申请目的', `expense_item_id` VARCHAR(64) DEFAULT NULL COMMENT '费用项目ID', `amount` decimal(14,2) NOT NULL COMMENT '申请金额', `status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'draft' COMMENT '状态:draft-草稿 pending-待审批 approved-审批通过 rejected-审批驳回 issued-已发放', `current_node` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前审批节点名称', `wf_id` VARCHAR(64) DEFAULT NULL COMMENT '关联工作流定义ID', `issue_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发放状态:unissued-未发放 issued-已发放', `issue_time` datetime DEFAULT NULL COMMENT '发放时间', `issue_user_id` VARCHAR(64) DEFAULT NULL COMMENT '发放操作人ID', `issue_user_name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发放操作人姓名', `issue_remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '发放备注', `actual_amount` decimal(14,2) DEFAULT NULL COMMENT '实际发放金额', `remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_apply_code` (`apply_code`) USING BTREE, KEY `idx_applicant_id` (`applicant_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='备用金申请单'; -- ---------------------------- -- Table structure for bx_advance_approval -- ---------------------------- DROP TABLE IF EXISTS `bx_advance_approval`; CREATE TABLE `bx_advance_approval` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `apply_id` VARCHAR(64) NOT NULL COMMENT '备用金申请单ID', `node_order` int(11) NOT NULL COMMENT '节点顺序', `node_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '节点名称', `approver_id` VARCHAR(64) NOT NULL COMMENT '审批人用户ID', `approver_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '审批人姓名', `approval_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '审批结果:approved-通过 rejected-驳回', `approval_opinion` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审批意见', `approval_time` datetime NOT NULL COMMENT '审批时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_apply_id` (`apply_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='备用金审批记录表'; -- ---------------------------- -- Table structure for bx_expense_item -- ---------------------------- DROP TABLE IF EXISTS `bx_expense_item`; CREATE TABLE `bx_expense_item` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `parent_id` VARCHAR(64) NOT NULL DEFAULT '0' COMMENT '父级项目ID(0为一级项目)', `item_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '项目名称', `item_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '项目编码', `level` tinyint(4) NOT NULL DEFAULT '1' COMMENT '层级:1-一级 2-二级', `sort_order` int(11) NOT NULL DEFAULT '0' COMMENT '排序号', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1-启用 0-禁用', `remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`) USING BTREE, KEY `idx_parent_id` (`parent_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='费用项目表'; -- ---------------------------- -- Table structure for bx_reimburse_apply -- ---------------------------- DROP TABLE IF EXISTS `bx_reimburse_apply`; CREATE TABLE `bx_reimburse_apply` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `apply_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报销单号(如 BX20260424001)', `title` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报销标题', `applicant_id` VARCHAR(64) NOT NULL COMMENT '申请人用户ID', `applicant_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人姓名(冗余)', `expense_id` VARCHAR(64) NOT NULL COMMENT '费用项目ID(二级项目)', `expense_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目名称(冗余)', `amount` decimal(14,2) NOT NULL COMMENT '报销金额', `invoice_count` int(11) NOT NULL DEFAULT '0' COMMENT '发票数量', `attach_count` int(11) NOT NULL DEFAULT '0' COMMENT '附件数量', `status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'draft' COMMENT '状态:draft-草稿 pending-待审批 approved-审批通过 rejected-审批驳回 paid-已发放 offset-已冲抵', `current_node` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前审批节点名称', `wf_id` VARCHAR(64) DEFAULT NULL COMMENT '关联工作流定义ID', `pay_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付状态:unpaid-未支付 paid-已发放 offset-已冲抵', `pay_time` datetime DEFAULT NULL COMMENT '支付时间', `pay_user_id` VARCHAR(64) DEFAULT NULL COMMENT '支付操作人ID', `pay_user_name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付操作人姓名', `actual_amount` decimal(14,2) DEFAULT NULL COMMENT '实际发放金额', `offset_advance_id` VARCHAR(64) DEFAULT NULL COMMENT '冲抵关联的备用金单ID', `offset_amount` decimal(14,2) DEFAULT NULL COMMENT '冲抵金额', `remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注说明', `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_apply_code` (`apply_code`) USING BTREE, KEY `idx_applicant_id` (`applicant_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_expense_id` (`expense_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报销申请单'; -- ---------------------------- -- Table structure for bx_reimburse_approval -- ---------------------------- DROP TABLE IF EXISTS `bx_reimburse_approval`; CREATE TABLE `bx_reimburse_approval` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `apply_id` VARCHAR(64) NOT NULL COMMENT '报销申请单ID', `node_order` int(11) NOT NULL COMMENT '节点顺序', `node_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '节点名称', `approver_id` VARCHAR(64) NOT NULL COMMENT '审批人用户ID', `approver_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '审批人姓名', `approval_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '审批结果:approved-通过 rejected-驳回', `approval_opinion` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审批意见', `approval_time` datetime NOT NULL COMMENT '审批时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_apply_id` (`apply_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报销审批记录表'; -- ---------------------------- -- Table structure for bx_reimburse_detail -- ---------------------------- DROP TABLE IF EXISTS `bx_reimburse_detail`; CREATE TABLE `bx_reimburse_detail` ( `id` VARCHAR(64) NOT NULL, `reimburse_id` VARCHAR(64) NOT NULL COMMENT '报销单ID', `expense_id` VARCHAR(64) NOT NULL COMMENT '费用项目ID', `expense_name` varchar(128) NOT NULL COMMENT '费用项目名称', `amount` decimal(14,2) NOT NULL COMMENT '报销金额', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` smallint(6) NOT NULL DEFAULT '0', `create_by` varchar(64) DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_by` varchar(64) DEFAULT NULL, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) USING BTREE, KEY `idx_reimburse_id` (`reimburse_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报销明细'; -- ---------------------------- -- Table structure for bx_reimburse_offset -- ---------------------------- DROP TABLE IF EXISTS `bx_reimburse_offset`; CREATE TABLE `bx_reimburse_offset` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `reimburse_id` VARCHAR(64) NOT NULL COMMENT '报销申请单ID', `advance_id` VARCHAR(64) NOT NULL COMMENT '备用金申请单ID', `offset_amount` decimal(14,2) NOT NULL COMMENT '冲抵金额', `remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_reimburse_id` (`reimburse_id`) USING BTREE, KEY `idx_advance_id` (`advance_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='报销单-备用金冲抵关联表'; -- ---------------------------- -- Table structure for crm_clue -- ---------------------------- DROP TABLE IF EXISTS `crm_clue`; CREATE TABLE `crm_clue` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `clue_name` varchar(100) NOT NULL COMMENT '线索姓名', `mobile` varchar(20) NOT NULL COMMENT '手机号', `company` varchar(200) DEFAULT NULL COMMENT '公司名称', `customer_type` varchar(20) DEFAULT NULL COMMENT '客户类型(company-企业/person-个人)', `telephone` varchar(30) DEFAULT NULL COMMENT '固定电话', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `title` varchar(10) DEFAULT NULL COMMENT '称呼(先生/女士/其他)', `position` varchar(50) DEFAULT NULL COMMENT '职位', `source` varchar(20) NOT NULL COMMENT '线索来源(网站留言/电话咨询/展会/市场活动/老客户推荐/广告投放/社交媒体/其他)', `level` varchar(10) DEFAULT 'unrated' COMMENT '线索等级(A/B/C/unrated)', `industry` varchar(50) DEFAULT NULL COMMENT '所属行业', `park_area` varchar(100) DEFAULT NULL COMMENT '所在园区', `province` varchar(50) DEFAULT NULL COMMENT '省', `city` varchar(50) DEFAULT NULL COMMENT '市', `district` varchar(50) DEFAULT NULL COMMENT '区', `address` varchar(255) DEFAULT NULL COMMENT '详细地址', `website` varchar(500) DEFAULT NULL COMMENT '客户网站', `intent_products` varchar(500) DEFAULT NULL COMMENT '意向产品(多个用逗号分隔)', `expect_time` date DEFAULT NULL COMMENT '预计购买时间', `budget` varchar(20) DEFAULT NULL COMMENT '预算范围(1万以下/1-5万/5-10万/10-50万/50万以上/未知)', `requirement` text COMMENT '需求描述', `status` varchar(20) DEFAULT 'new' COMMENT '线索状态(new-新线索/follow-跟进中/invalid-无效/converted-已转化)', `owner_user_id` VARCHAR(64) DEFAULT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `last_time` datetime DEFAULT NULL COMMENT '最后跟进时间', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `follow_count` int(11) DEFAULT '0' COMMENT '跟进次数', `is_converted` tinyint(1) DEFAULT '0' COMMENT '是否已转化(0-否 1-是)', `converted_time` datetime DEFAULT NULL COMMENT '转化时间', `customer_id` VARCHAR(64) DEFAULT NULL COMMENT '转化的客户ID', `converted_by` VARCHAR(64) DEFAULT NULL COMMENT '转化操作人', `assign_time` datetime DEFAULT NULL COMMENT '分配时间', `assign_by` VARCHAR(64) DEFAULT NULL COMMENT '分配人', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_mobile` (`mobile`) USING BTREE, KEY `idx_owner` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_level` (`level`) USING BTREE, KEY `idx_source` (`source`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE, KEY `idx_park_area` (`park_area`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-线索主表'; -- ---------------------------- -- Table structure for crm_clue_follow -- ---------------------------- DROP TABLE IF EXISTS `crm_clue_follow`; CREATE TABLE `crm_clue_follow` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `clue_id` VARCHAR(64) NOT NULL COMMENT '线索ID', `clue_name` varchar(100) DEFAULT NULL COMMENT '线索姓名(冗余)', `follow_type` varchar(20) NOT NULL COMMENT '跟进方式(电话/微信/邮件/拜访/其他)', `follow_content` text NOT NULL COMMENT '跟进内容', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件(多个用逗号分隔)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(跟进人)', `create_by_name` varchar(50) DEFAULT NULL COMMENT '跟进人姓名(冗余)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(跟进时间)', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_clue_id` (`clue_id`) USING BTREE, KEY `idx_create_by` (`create_by`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-线索跟进记录表'; -- ---------------------------- -- Table structure for crm_contact -- ---------------------------- DROP TABLE IF EXISTS `crm_contact`; CREATE TABLE `crm_contact` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余)', `contact_name` varchar(100) NOT NULL COMMENT '联系人姓名', `gender` varchar(10) DEFAULT NULL COMMENT '性别(male-男/female-女)', `mobile` varchar(20) DEFAULT NULL COMMENT '手机号', `telephone` varchar(30) DEFAULT NULL COMMENT '固定电话', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `wechat` varchar(100) DEFAULT NULL COMMENT '微信号', `qq` varchar(20) DEFAULT NULL COMMENT 'QQ号', `department` varchar(100) DEFAULT NULL COMMENT '部门', `position` varchar(50) DEFAULT NULL COMMENT '职位', `role` varchar(20) DEFAULT NULL COMMENT '角色(decision-决策人/manager-管理者/user-使用者/other-其他)', `birthday` date DEFAULT NULL COMMENT '生日', `address` varchar(255) DEFAULT NULL COMMENT '住址', `is_key` tinyint(1) DEFAULT '0' COMMENT '是否关键决策人(0-否 1-是)', `is_primary` tinyint(1) DEFAULT '0' COMMENT '是否主要联系人(0-否 1-是)', `status` varchar(20) DEFAULT 'active' COMMENT '状态(active-在职/leave-离职)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_mobile` (`mobile`) USING BTREE, KEY `idx_is_key` (`is_key`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-联系人表'; -- ---------------------------- -- Table structure for crm_contract -- ---------------------------- DROP TABLE IF EXISTS `crm_contract`; CREATE TABLE `crm_contract` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_no` varchar(50) NOT NULL COMMENT '合同编号(CON+yyyyMMdd+4位流水号)', `contract_name` varchar(200) NOT NULL COMMENT '合同名称', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `opportunity_id` VARCHAR(64) DEFAULT NULL COMMENT '商机ID', `quote_id` VARCHAR(64) DEFAULT NULL COMMENT '报价单ID', `parent_contract_id` VARCHAR(64) DEFAULT NULL COMMENT '原合同ID(续签时关联)', `renewal_count` int(11) DEFAULT '0' COMMENT '续签次数', `template_id` VARCHAR(64) DEFAULT NULL COMMENT '合同模板ID', `contract_template` varchar(50) DEFAULT 'shanxia' COMMENT '合同模版(shanxia-山峡模版/customer-客户模版)', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名(冗余字段)', `contact_mobile` varchar(20) DEFAULT NULL COMMENT '联系人手机(冗余字段)', `contract_type` varchar(20) NOT NULL DEFAULT 'sale' COMMENT '合同类型(sale-销售合同/service-服务合同/lease-租赁合同/other-其他)', `contract_nature` varchar(20) DEFAULT 'new' COMMENT '合同性质(new-新签/renewal-续签/change-变更)', `amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '合同金额', `currency` varchar(10) DEFAULT 'CNY' COMMENT '币种(CNY-人民币/USD-美元/EUR-欧元)', `tax_rate` decimal(5,2) DEFAULT '6.00' COMMENT '税率(%)', `amount_with_tax` decimal(15,2) DEFAULT '0.00' COMMENT '含税金额', `sign_date` date DEFAULT NULL COMMENT '签订日期', `actual_sign_date` date DEFAULT NULL COMMENT '实际签订日期', `start_date` date DEFAULT NULL COMMENT '开始日期', `end_date` date DEFAULT NULL COMMENT '结束日期', `contract_period` int(11) DEFAULT NULL COMMENT '合同期限(月)', `status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '合同状态(draft-草稿/approving-审批中/approved-已审批/executing-执行中/finished-已完成/invalid-已作废)', `performance_status` varchar(20) DEFAULT 'normal' COMMENT '履约状态(normal-正常/delayed-延期/abnormal-异常/completed-已完成)', `performance_rate` decimal(5,2) DEFAULT '0.00' COMMENT '履约完成度(%)', `customer_satisfaction` int(11) DEFAULT NULL COMMENT '客户满意度(1-5星)', `approval_status` varchar(20) DEFAULT NULL COMMENT '审批状态(pending-待审批/approved-已通过/rejected-已驳回)', `approval_flow_id` VARCHAR(64) DEFAULT NULL COMMENT '审批流程ID(关联工作流)', `contract_file` varchar(500) DEFAULT NULL COMMENT '合同文件路径(扫描件或电子版)', `attachment_files` varchar(1000) DEFAULT NULL COMMENT '附件文件(多个文件用逗号分隔)', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `received_amount` decimal(15,2) DEFAULT '0.00' COMMENT '已回款金额', `unreceived_amount` decimal(15,2) DEFAULT '0.00' COMMENT '未回款金额', `invoice_amount` decimal(15,2) DEFAULT '0.00' COMMENT '已开票金额', `uninvoice_amount` decimal(15,2) DEFAULT '0.00' COMMENT '未开票金额', `party_a` varchar(200) DEFAULT NULL COMMENT '甲方(客户方)', `party_a_address` varchar(255) DEFAULT NULL COMMENT '甲方地址', `party_a_contact` varchar(50) DEFAULT NULL COMMENT '甲方联系人', `party_a_mobile` varchar(20) DEFAULT NULL COMMENT '甲方联系电话', `party_a_legal_person` varchar(50) DEFAULT NULL COMMENT '甲方法定代表人', `party_a_agent` varchar(50) DEFAULT NULL COMMENT '甲方代理人', `party_a_phone_fax` varchar(50) DEFAULT NULL COMMENT '甲方电话/传真', `party_a_bank` varchar(100) DEFAULT NULL COMMENT '甲方开户银行', `party_a_account` varchar(50) DEFAULT NULL COMMENT '甲方银行账号', `party_b` varchar(200) DEFAULT NULL COMMENT '乙方(我方)', `party_b_address` varchar(255) DEFAULT NULL COMMENT '乙方地址', `party_b_contact` varchar(50) DEFAULT NULL COMMENT '乙方联系人', `party_b_mobile` varchar(20) DEFAULT NULL COMMENT '乙方联系电话', `party_b_legal_person` varchar(100) DEFAULT NULL COMMENT '乙方法定代表人', `party_b_agent` varchar(100) DEFAULT NULL COMMENT '乙方代理人', `party_b_phone_fax` varchar(100) DEFAULT NULL COMMENT '乙方电话/传真', `party_b_bank` varchar(200) DEFAULT NULL COMMENT '乙方开户银行', `party_b_account` varchar(100) DEFAULT NULL COMMENT '乙方银行账号', `payment_terms` text COMMENT '付款条款', `delivery_terms` text COMMENT '交付条款', `contract_terms` text COMMENT '合同条款', `invalid_reason` varchar(500) DEFAULT NULL COMMENT '作废原因', `invalid_time` datetime DEFAULT NULL COMMENT '作废时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `template_content` longtext COMMENT '合同模板内容(富文本HTML)', `settlement_clause_drafts` longtext COMMENT '第五条结算方式草稿(按结算方式区分的JSON)', `supplier_id` VARCHAR(64) DEFAULT NULL COMMENT '供方主体ID(关联crm_supplier_info表)', `settlement_method` varchar(50) DEFAULT NULL COMMENT '结算方式(arrive_payment-货到付款,advance_payment-款到发货)', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_contract_no_del_flag` (`contract_no`,`del_flag`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_opportunity_id` (`opportunity_id`) USING BTREE, KEY `idx_quote_id` (`quote_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_approval_status` (`approval_status`) USING BTREE, KEY `idx_sign_date` (`sign_date`) USING BTREE, KEY `idx_end_date` (`end_date`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_contract_nature` (`contract_nature`) USING BTREE, KEY `idx_parent_contract_id` (`parent_contract_id`) USING BTREE, KEY `idx_performance_status` (`performance_status`) USING BTREE, KEY `idx_supplier_id` (`supplier_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-合同主表'; -- ---------------------------- -- Table structure for crm_contract_approval -- ---------------------------- DROP TABLE IF EXISTS `crm_contract_approval`; CREATE TABLE `crm_contract_approval` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `flow_id` VARCHAR(64) DEFAULT NULL COMMENT '审批流程ID(关联工作流)', `step` int(11) NOT NULL DEFAULT '1' COMMENT '审批步骤(第几步)', `step_name` varchar(100) DEFAULT NULL COMMENT '步骤名称', `approver_id` VARCHAR(64) NOT NULL COMMENT '审批人ID', `approver_name` varchar(50) DEFAULT NULL COMMENT '审批人姓名', `approver_dept` varchar(100) DEFAULT NULL COMMENT '审批人部门', `approval_result` varchar(20) DEFAULT 'pending' COMMENT '审批结果(pending-待审批/approved-已通过/rejected-已驳回)', `approval_opinion` text COMMENT '审批意见', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `approval_duration` int(11) DEFAULT NULL COMMENT '审批耗时(小时)', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件', `is_current` tinyint(1) DEFAULT '1' COMMENT '是否当前步骤(0否 1是)', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_approver_id` (`approver_id`) USING BTREE, KEY `idx_approval_result` (`approval_result`) USING BTREE, KEY `idx_is_current` (`is_current`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-合同审批记录表'; -- ---------------------------- -- Table structure for crm_contract_change -- ---------------------------- DROP TABLE IF EXISTS `crm_contract_change`; CREATE TABLE `crm_contract_change` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余)', `change_type` varchar(50) NOT NULL COMMENT '变更类型(amount-金额变更/period-期限变更/product-产品变更/terms-条款变更/other-其他)', `change_reason` varchar(500) NOT NULL COMMENT '变更原因', `change_content` text COMMENT '变更内容描述', `old_value` text COMMENT '变更前值(JSON格式)', `new_value` text COMMENT '变更后值(JSON格式)', `change_amount` decimal(15,2) DEFAULT NULL COMMENT '变更金额(用于金额变更)', `approval_status` varchar(20) DEFAULT 'pending' COMMENT '审批状态(pending-待审批/approved-已通过/rejected-已驳回)', `approver_id` VARCHAR(64) DEFAULT NULL COMMENT '审批人ID', `approver_name` varchar(50) DEFAULT NULL COMMENT '审批人姓名', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `approval_opinion` varchar(500) DEFAULT NULL COMMENT '审批意见', `attachment_files` varchar(1000) DEFAULT NULL COMMENT '附件文件(变更协议等)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_change_type` (`change_type`) USING BTREE, KEY `idx_approval_status` (`approval_status`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-合同变更记录表'; -- ---------------------------- -- Table structure for crm_contract_product -- ---------------------------- DROP TABLE IF EXISTS `crm_contract_product`; CREATE TABLE `crm_contract_product` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `product_no` varchar(50) DEFAULT NULL COMMENT '产品编号', `category_id` VARCHAR(64) DEFAULT NULL COMMENT '产品分类ID', `category_name` varchar(100) DEFAULT NULL COMMENT '产品分类名称', `model` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(20) DEFAULT '件' COMMENT '单位', `quantity` decimal(20,4) NOT NULL COMMENT '数量', `price` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '单价', `discount` decimal(5,2) DEFAULT '0.00' COMMENT '折扣(百分比)', `tax_rate` decimal(5,2) DEFAULT '6.00' COMMENT '税率(%)', `tax_amount` decimal(15,2) DEFAULT '0.00' COMMENT '税费金额', `subtotal` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '小计金额', `delivery_date` date DEFAULT NULL COMMENT '交付日期', `delivery_status` varchar(20) DEFAULT 'pending' COMMENT '交付状态(pending-待交付/partial-部分交付/delivered-已交付)', `delivered_quantity` decimal(20,4) DEFAULT '0.0000' COMMENT '已交付数量', `description` varchar(1000) DEFAULT NULL COMMENT '产品描述', `package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格', `delivery_method` varchar(100) DEFAULT NULL COMMENT '送货方式', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_delivery_status` (`delivery_status`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-合同产品明细表'; -- ---------------------------- -- Table structure for crm_contract_product_price_tier -- ---------------------------- DROP TABLE IF EXISTS `crm_contract_product_price_tier`; CREATE TABLE `crm_contract_product_price_tier` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_product_id` VARCHAR(64) NOT NULL COMMENT '合同产品明细ID', `start_date` date NOT NULL COMMENT '区间开始日期', `end_date` date NOT NULL COMMENT '区间结束日期', `price` decimal(15,2) NOT NULL COMMENT '含税单价', `letter_oss_ids` varchar(4000) DEFAULT NULL COMMENT '调价函OSS ID列表(JSON字符串数组,如["id1","id2"])', `letter_oss_id` VARCHAR(64) DEFAULT NULL COMMENT '调价函单附件OSS ID(废弃,请使用 letter_oss_ids)', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`), KEY `idx_contract_id` (`contract_id`), KEY `idx_contract_product_id` (`contract_product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-框架合同产品调价区间'; -- ---------------------------- -- Table structure for crm_contract_template -- ---------------------------- DROP TABLE IF EXISTS `crm_contract_template`; CREATE TABLE `crm_contract_template` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `template_no` varchar(50) NOT NULL COMMENT '模板编号', `template_name` varchar(200) NOT NULL COMMENT '模板名称', `contract_type` varchar(20) DEFAULT NULL COMMENT '适用合同类型(sale-销售/service-服务等)', `template_content` text COMMENT '模板内容(富文本)', `payment_terms` text COMMENT '付款条款模板', `delivery_terms` text COMMENT '交付条款模板', `contract_terms` text COMMENT '合同条款模板', `party_b` varchar(200) DEFAULT NULL COMMENT '乙方(我方)默认名称', `party_b_address` varchar(255) DEFAULT NULL COMMENT '乙方地址', `party_b_contact` varchar(50) DEFAULT NULL COMMENT '乙方联系人', `party_b_mobile` varchar(20) DEFAULT NULL COMMENT '乙方联系电话', `default_currency` varchar(10) DEFAULT 'CNY' COMMENT '默认币种', `default_tax_rate` decimal(5,2) DEFAULT '6.00' COMMENT '默认税率(%)', `default_period` int(11) DEFAULT '12' COMMENT '默认合同期限(月)', `is_active` tinyint(1) DEFAULT '1' COMMENT '是否启用(0-停用 1-启用)', `usage_count` int(11) DEFAULT '0' COMMENT '使用次数', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_template_no` (`template_no`) USING BTREE, KEY `idx_contract_type` (`contract_type`) USING BTREE, KEY `idx_is_active` (`is_active`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-合同模板表'; -- ---------------------------- -- Table structure for crm_customer -- ---------------------------- DROP TABLE IF EXISTS `crm_customer`; CREATE TABLE `crm_customer` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_no` varchar(50) NOT NULL COMMENT '客户编号(唯一)', `customer_name` varchar(200) NOT NULL COMMENT '客户名称', `short_name` varchar(100) DEFAULT NULL COMMENT '客户简称', `customer_type` varchar(20) DEFAULT 'company' COMMENT '客户类型(company-企业/person-个人)', `mobile` varchar(20) DEFAULT NULL COMMENT '手机号', `telephone` varchar(30) DEFAULT NULL COMMENT '固定电话', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `website` varchar(500) DEFAULT NULL COMMENT '客户网站', `level` varchar(20) DEFAULT 'normal' COMMENT '客户级别(key-重点/normal-普通/potential-潜在)', `source` varchar(20) DEFAULT NULL COMMENT '客户来源', `industry` varchar(50) DEFAULT NULL COMMENT '所属行业', `park_area` varchar(100) DEFAULT NULL COMMENT '所在园区', `payment_terms` varchar(500) DEFAULT NULL COMMENT '收付款条件(如:预付30%、账期30天等)', `scale` varchar(20) DEFAULT NULL COMMENT '企业规模(1-50人/50-200人/200-500人/500人以上)', `province` varchar(50) DEFAULT NULL COMMENT '省', `city` varchar(50) DEFAULT NULL COMMENT '市', `district` varchar(50) DEFAULT NULL COMMENT '区', `address` varchar(255) DEFAULT NULL COMMENT '详细地址', `status` varchar(20) DEFAULT 'normal' COMMENT '客户状态(normal-正常/pool-公海/invalid-无效)', `deal_status` varchar(20) DEFAULT 'not_deal' COMMENT '成交状态(not_deal-未成交/dealed-已成交/lost-已流失)', `owner_user_id` VARCHAR(64) DEFAULT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余)', `last_time` datetime DEFAULT NULL COMMENT '最后跟进时间', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `follow_count` int(11) DEFAULT '0' COMMENT '跟进次数', `deal_time` datetime DEFAULT NULL COMMENT '成交时间', `deal_amount` decimal(15,2) DEFAULT '0.00' COMMENT '累计成交金额', `contact_count` int(11) DEFAULT '0' COMMENT '联系人数量', `opportunity_count` int(11) DEFAULT '0' COMMENT '商机数量', `contract_count` int(11) DEFAULT '0' COMMENT '合同数量', `into_pool_time` datetime DEFAULT NULL COMMENT '进入公海时间', `into_pool_by` VARCHAR(64) DEFAULT NULL COMMENT '进入公海操作人ID', `into_pool_reason` varchar(500) DEFAULT NULL COMMENT '进入公海原因', `claim_time` datetime DEFAULT NULL COMMENT '领取时间', `assign_time` datetime DEFAULT NULL COMMENT '分配时间', `assign_by` VARCHAR(64) DEFAULT NULL COMMENT '分配人ID', `protect_time` datetime DEFAULT NULL COMMENT '保护到期时间', `clue_id` VARCHAR(64) DEFAULT NULL COMMENT '关联线索ID(从线索转化)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `business_license_images` varchar(1000) DEFAULT NULL COMMENT '营业执照图片OSS ID(多个用逗号分隔)', `business_permit_images` varchar(1000) DEFAULT NULL COMMENT '经营许可证图片OSS ID(多个用逗号分隔)', `other_cert_images` varchar(1000) DEFAULT NULL COMMENT '其他证件图片OSS ID(多个用逗号分隔)', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_customer_no_del_flag` (`customer_no`,`del_flag`) USING BTREE, KEY `idx_mobile` (`mobile`) USING BTREE, KEY `idx_owner` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_level` (`level`) USING BTREE, KEY `idx_deal_status` (`deal_status`) USING BTREE, KEY `idx_source` (`source`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_clue` (`clue_id`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE, KEY `idx_park_area` (`park_area`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户主表'; -- ---------------------------- -- Table structure for crm_customer_follow -- ---------------------------- DROP TABLE IF EXISTS `crm_customer_follow`; CREATE TABLE `crm_customer_follow` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余)', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人姓名(冗余)', `follow_type` varchar(20) NOT NULL COMMENT '跟进方式(电话/微信/邮件/拜访/其他)', `follow_content` text NOT NULL COMMENT '跟进内容', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件(多个用逗号分隔)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(跟进人)', `create_by_name` varchar(50) DEFAULT NULL COMMENT '跟进人姓名(冗余)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(跟进时间)', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_contact_id` (`contact_id`) USING BTREE, KEY `idx_create_by` (`create_by`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户跟进记录表'; -- ---------------------------- -- Table structure for crm_customer_pool -- ---------------------------- DROP TABLE IF EXISTS `crm_customer_pool`; CREATE TABLE `crm_customer_pool` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余)', `operation_type` varchar(20) NOT NULL COMMENT '操作类型(into-进入公海/claim-领取/assign-分配/recycle-回收)', `from_user_id` VARCHAR(64) DEFAULT NULL COMMENT '原负责人ID', `from_user_name` varchar(50) DEFAULT NULL COMMENT '原负责人姓名(冗余)', `to_user_id` VARCHAR(64) DEFAULT NULL COMMENT '新负责人ID', `to_user_name` varchar(50) DEFAULT NULL COMMENT '新负责人姓名(冗余)', `reason` varchar(500) DEFAULT NULL COMMENT '操作原因', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(操作人)', `create_by_name` varchar(50) DEFAULT NULL COMMENT '操作人姓名(冗余)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(操作时间)', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_operation_type` (`operation_type`) USING BTREE, KEY `idx_from_user` (`from_user_id`) USING BTREE, KEY `idx_to_user` (`to_user_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户公海池记录表'; -- ---------------------------- -- Table structure for crm_customer_pool_rule -- ---------------------------- DROP TABLE IF EXISTS `crm_customer_pool_rule`; CREATE TABLE `crm_customer_pool_rule` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `pool_name` varchar(100) NOT NULL COMMENT '规则名称', `rule_type` varchar(20) NOT NULL COMMENT '规则类型(no_follow-未跟进/no_deal-未成交)', `timeout_days` int(11) NOT NULL COMMENT '超时天数(多少天未跟进/未成交)', `protect_days` int(11) NOT NULL DEFAULT '0' COMMENT '保护期天数(领取后保护多少天)', `status` varchar(20) DEFAULT 'enable' COMMENT '状态(enable-启用/disable-禁用)', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_rule_type` (`rule_type`) USING BTREE, KEY `idx_sort` (`sort`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户公海池规则表'; -- ---------------------------- -- Table structure for crm_customer_tag -- ---------------------------- DROP TABLE IF EXISTS `crm_customer_tag`; CREATE TABLE `crm_customer_tag` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `tag_name` varchar(50) NOT NULL COMMENT '标签名称', `tag_color` varchar(20) DEFAULT '#409EFF' COMMENT '标签颜色(十六进制颜色值)', `tag_type` varchar(20) DEFAULT 'custom' COMMENT '标签类型(system-系统预设/custom-自定义)', `sort_order` int(11) DEFAULT '0' COMMENT '排序号', `share_scope` varchar(20) DEFAULT 'private' COMMENT '共享范围(private-个人/dept-部门/company-公司)', `create_user_id` VARCHAR(64) DEFAULT NULL COMMENT '创建人ID', `create_user_name` varchar(50) DEFAULT NULL COMMENT '创建人姓名', `use_count` int(11) DEFAULT '0' COMMENT '使用次数', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tag_name` (`tag_name`,`tenant_id`,`del_flag`) USING BTREE, KEY `idx_tag_type` (`tag_type`) USING BTREE, KEY `idx_share_scope` (`share_scope`) USING BTREE, KEY `idx_create_user` (`create_user_id`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户标签表'; -- ---------------------------- -- Table structure for crm_customer_tag_relation -- ---------------------------- DROP TABLE IF EXISTS `crm_customer_tag_relation`; CREATE TABLE `crm_customer_tag_relation` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余)', `tag_id` VARCHAR(64) NOT NULL COMMENT '标签ID', `tag_name` varchar(50) DEFAULT NULL COMMENT '标签名称(冗余)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(打标签的人)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_customer_tag` (`customer_id`,`tag_id`,`del_flag`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_tag_id` (`tag_id`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-客户标签关联表'; -- ---------------------------- -- Table structure for crm_invoice -- ---------------------------- DROP TABLE IF EXISTS `crm_invoice`; CREATE TABLE `crm_invoice` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `invoice_no` varchar(50) NOT NULL COMMENT '发票编号(INV+yyyyMMdd+4位流水号)', `invoice_code` varchar(50) DEFAULT NULL COMMENT '发票代码(税务发票代码)', `invoice_number` varchar(50) DEFAULT NULL COMMENT '发票号码(税务发票号码)', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余字段)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `payment_id` VARCHAR(64) DEFAULT NULL COMMENT '回款ID', `payment_no` varchar(50) DEFAULT NULL COMMENT '回款编号(冗余字段)', `invoice_type` varchar(20) NOT NULL DEFAULT 'special' COMMENT '发票类型(special-增值税专用发票/normal-增值税普通发票/electronic-电子发票)', `invoice_title` varchar(200) NOT NULL COMMENT '发票抬头', `tax_no` varchar(50) NOT NULL COMMENT '纳税人识别号', `company_address` varchar(255) DEFAULT NULL COMMENT '企业地址', `company_phone` varchar(50) DEFAULT NULL COMMENT '企业电话', `bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行', `bank_account` varchar(100) DEFAULT NULL COMMENT '银行账号', `amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '开票金额(不含税)', `tax_rate` decimal(5,2) NOT NULL DEFAULT '6.00' COMMENT '税率(百分比,如6.00表示6%)', `is_tax_included` tinyint(1) DEFAULT '0' COMMENT '是否含税: 0-不含税 1-含税', `tax_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '税额', `total_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '价税合计', `invoice_content` varchar(200) DEFAULT NULL COMMENT '开票内容', `invoice_date` date DEFAULT NULL COMMENT '开票日期', `status` varchar(20) NOT NULL DEFAULT 'applying' COMMENT '发票状态(applying-申请中/approved-已审批/invoiced-已开票/delivered-已寄出/received-已签收/rejected-已驳回/invalid-已作废)', `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因', `invalid_reason` varchar(500) DEFAULT NULL COMMENT '作废原因', `invalid_time` datetime DEFAULT NULL COMMENT '作废时间', `invoice_file` varchar(500) DEFAULT NULL COMMENT '发票PDF文件', `invoice_image` varchar(500) DEFAULT NULL COMMENT '发票图片(扫描件)', `express_company` varchar(50) DEFAULT NULL COMMENT '快递公司', `express_no` varchar(100) DEFAULT NULL COMMENT '快递单号', `express_status` varchar(20) DEFAULT 'no' COMMENT '快递状态(no-未寄出/sent-已寄出/received-已签收)', `express_time` datetime DEFAULT NULL COMMENT '寄出时间', `receive_time` datetime DEFAULT NULL COMMENT '签收时间', `mail_address` varchar(255) DEFAULT NULL COMMENT '邮寄地址', `mail_contact` varchar(50) DEFAULT NULL COMMENT '收件人', `mail_mobile` varchar(20) DEFAULT NULL COMMENT '收件电话', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `apply_by` VARCHAR(64) DEFAULT NULL COMMENT '申请人ID', `apply_by_name` varchar(50) DEFAULT NULL COMMENT '申请人姓名', `apply_time` datetime DEFAULT NULL COMMENT '申请时间', `approve_by` VARCHAR(64) DEFAULT NULL COMMENT '审批人ID', `approve_by_name` varchar(50) DEFAULT NULL COMMENT '审批人姓名', `approve_time` datetime DEFAULT NULL COMMENT '审批时间', `invoice_by` VARCHAR(64) DEFAULT NULL COMMENT '开票人ID', `invoice_by_name` varchar(50) DEFAULT NULL COMMENT '开票人姓名', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_invoice_no_del_flag` (`invoice_no`,`del_flag`) USING BTREE, KEY `uk_invoice_number` (`invoice_number`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_payment_id` (`payment_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_invoice_date` (`invoice_date`) USING BTREE, KEY `idx_express_status` (`express_status`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-发票主表'; -- ---------------------------- -- Table structure for crm_invoice_info -- ---------------------------- DROP TABLE IF EXISTS `crm_invoice_info`; CREATE TABLE `crm_invoice_info` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `company_name` varchar(200) DEFAULT NULL COMMENT '单位名称(章)', `company_address` varchar(500) DEFAULT NULL COMMENT '单位地址', `legal_representative` varchar(100) DEFAULT NULL COMMENT '法定代表人', `agent` varchar(100) DEFAULT NULL COMMENT '代理人', `phone_fax` varchar(100) DEFAULT NULL COMMENT '电话/传真', `bank_name` varchar(200) DEFAULT NULL COMMENT '开户银行', `bank_account` varchar(100) DEFAULT NULL COMMENT '账号', `is_default` char(1) DEFAULT '0' COMMENT '是否默认(0否 1是)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` int(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', PRIMARY KEY (`id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户开票信息表'; -- ---------------------------- -- Table structure for crm_invoice_item -- ---------------------------- DROP TABLE IF EXISTS `crm_invoice_item`; CREATE TABLE `crm_invoice_item` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `invoice_id` VARCHAR(64) NOT NULL COMMENT '发票ID', `item_name` varchar(200) NOT NULL COMMENT '项目名称', `spec` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(50) DEFAULT NULL COMMENT '单位', `quantity` decimal(15,2) DEFAULT '0.00' COMMENT '数量', `unit_price` decimal(15,2) DEFAULT '0.00' COMMENT '单价', `amount` decimal(15,2) DEFAULT '0.00' COMMENT '金额', `tax_rate` decimal(5,2) DEFAULT '0.00' COMMENT '税率(百分比)', `tax_amount` decimal(15,2) DEFAULT '0.00' COMMENT '税额', `total_amount` decimal(15,2) DEFAULT '0.00' COMMENT '价税合计', `sort` int(11) DEFAULT '0' COMMENT '排序', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_invoice_id` (`invoice_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-发票明细表'; -- ---------------------------- -- Table structure for crm_opportunity -- ---------------------------- DROP TABLE IF EXISTS `crm_opportunity`; CREATE TABLE `crm_opportunity` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `opportunity_no` varchar(50) NOT NULL COMMENT '商机编号(OPP+yyyyMMdd+4位流水号)', `opportunity_name` varchar(200) NOT NULL COMMENT '商机名称', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名(冗余字段)', `amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '商机金额', `stage` varchar(20) NOT NULL DEFAULT 'initial' COMMENT '商机阶段(initial-初步接触/requirement-需求分析/solution-方案制定/quote-报价/negotiate-谈判审核/contract-合同签订/won-赢单)', `stage_percent` int(11) DEFAULT '10' COMMENT '阶段进度百分比(10/20/40/60/80/90/100)', `status` varchar(20) NOT NULL DEFAULT 'following' COMMENT '商机状态(following-跟进中/won-赢单/lost-输单/invalid-无效)', `win_rate` decimal(5,2) DEFAULT '50.00' COMMENT '赢单率(百分比,如50.00表示50%)', `expect_deal_date` date DEFAULT NULL COMMENT '预计成交日期', `actual_deal_date` date DEFAULT NULL COMMENT '实际成交日期', `lost_reason` varchar(500) DEFAULT NULL COMMENT '输单原因', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID(销售人员)', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `product_count` int(11) DEFAULT '0' COMMENT '产品数量(冗余字段)', `last_time` datetime DEFAULT NULL COMMENT '最后跟进时间', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `follow_count` int(11) DEFAULT '0' COMMENT '跟进次数(冗余字段)', `contract_id` VARCHAR(64) DEFAULT NULL COMMENT '关联合同ID(赢单后生成)', `source` varchar(20) DEFAULT NULL COMMENT '商机来源(同线索来源)', `type` varchar(20) DEFAULT NULL COMMENT '商机类型(new_customer-新客户新业务/renewal-老客户续约/upgrade-老客户升级)', `description` text COMMENT '商机描述(详细说明商机背景、客户需求等)', `competitors` varchar(500) DEFAULT NULL COMMENT '竞争对手(多个竞争对手用逗号分隔)', `key_factors` varchar(500) DEFAULT NULL COMMENT '关键决策因素(客户关注的核心要素)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_opportunity_no_del_flag` (`opportunity_no`,`del_flag`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_stage` (`stage`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_expect_deal_date` (`expect_deal_date`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-商机主表'; -- ---------------------------- -- Table structure for crm_opportunity_follow -- ---------------------------- DROP TABLE IF EXISTS `crm_opportunity_follow`; CREATE TABLE `crm_opportunity_follow` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `opportunity_id` VARCHAR(64) NOT NULL COMMENT '商机ID', `follow_type` varchar(20) NOT NULL COMMENT '跟进方式(phone-电话/wechat-微信/email-邮件/visit-拜访/meeting-会议/other-其他)', `follow_content` text NOT NULL COMMENT '跟进内容', `follow_time` datetime DEFAULT NULL COMMENT '跟进时间', `stage` varchar(20) DEFAULT NULL COMMENT '当前商机阶段', `stage_percent` int(11) DEFAULT NULL COMMENT '阶段进度百分比', `next_time` datetime DEFAULT NULL COMMENT '下次联系时间', `next_content` varchar(500) DEFAULT NULL COMMENT '下次联系计划', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件(多个文件用逗号分隔)', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名', `location` varchar(200) DEFAULT NULL COMMENT '跟进地点(拜访时填写)', `duration` int(11) DEFAULT NULL COMMENT '跟进时长(分钟)', `follow_by` VARCHAR(64) DEFAULT NULL COMMENT '跟进人ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(跟进人)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(跟进时间)', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_opportunity_id` (`opportunity_id`) USING BTREE, KEY `idx_create_by` (`create_by`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_next_time` (`next_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_follow_time` (`follow_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-商机跟进记录表'; -- ---------------------------- -- Table structure for crm_opportunity_product -- ---------------------------- DROP TABLE IF EXISTS `crm_opportunity_product`; CREATE TABLE `crm_opportunity_product` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `opportunity_id` VARCHAR(64) NOT NULL COMMENT '商机ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `product_name` varchar(200) DEFAULT NULL COMMENT '产品名称(冗余字段)', `product_no` varchar(50) DEFAULT NULL COMMENT '产品编号(冗余字段)', `category_id` VARCHAR(64) DEFAULT NULL COMMENT '产品分类ID', `category_name` varchar(100) DEFAULT NULL COMMENT '产品分类名称(冗余字段)', `model` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(20) DEFAULT '件' COMMENT '单位', `quantity` decimal(20,4) NOT NULL COMMENT '数量', `price` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '单价', `discount` decimal(5,2) DEFAULT '0.00' COMMENT '折扣(百分比,如10.00表示9折)', `subtotal` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '小计金额(数量*单价*折扣后)', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_opportunity_id` (`opportunity_id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-商机产品关联表'; -- ---------------------------- -- Table structure for crm_opportunity_stage_log -- ---------------------------- DROP TABLE IF EXISTS `crm_opportunity_stage_log`; CREATE TABLE `crm_opportunity_stage_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `opportunity_id` VARCHAR(64) NOT NULL COMMENT '商机ID', `from_stage` varchar(20) DEFAULT NULL COMMENT '原阶段', `from_stage_name` varchar(50) DEFAULT NULL COMMENT '原阶段名称', `from_percent` int(11) DEFAULT NULL COMMENT '原进度百分比', `to_stage` varchar(20) NOT NULL COMMENT '新阶段', `to_stage_name` varchar(50) DEFAULT NULL COMMENT '新阶段名称', `to_percent` int(11) DEFAULT NULL COMMENT '新进度百分比', `change_type` varchar(20) DEFAULT 'forward' COMMENT '变更类型(forward-推进/backward-后退)', `change_reason` varchar(500) DEFAULT NULL COMMENT '变更原因', `change_amount` decimal(15,2) DEFAULT NULL COMMENT '变更时的商机金额', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者(变更人)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(变更时间)', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `lost_detail` varchar(2000) DEFAULT NULL COMMENT '输单详细说明', `competitor_info` varchar(1000) DEFAULT NULL COMMENT '竞争对手信息', `improvement` varchar(1000) DEFAULT NULL COMMENT '改进建议', `won_remark` varchar(2000) DEFAULT NULL COMMENT '赢单说明', PRIMARY KEY (`id`) USING BTREE, KEY `idx_opportunity_id` (`opportunity_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-商机阶段变更日志表'; -- ---------------------------- -- Table structure for crm_payment -- ---------------------------- DROP TABLE IF EXISTS `crm_payment`; CREATE TABLE `crm_payment` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `payment_no` varchar(50) NOT NULL COMMENT '回款编号(PAY+yyyyMMdd+4位流水号)', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余字段)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `plan_id` VARCHAR(64) DEFAULT NULL COMMENT '回款计划ID', `plan_no` varchar(50) DEFAULT NULL COMMENT '计划编号(冗余字段)', `period` int(11) DEFAULT NULL COMMENT '期数(冗余字段)', `amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '回款金额', `payment_date` date NOT NULL COMMENT '回款日期', `payment_method` varchar(20) DEFAULT 'bank' COMMENT '付款方式(bank-银行转账/cash-现金/check-支票/alipay-支付宝/wechat-微信/other-其他)', `payment_account` varchar(100) DEFAULT NULL COMMENT '付款账户', `voucher_no` varchar(100) DEFAULT NULL COMMENT '凭证号(流水号)', `voucher_file` varchar(500) DEFAULT NULL COMMENT '凭证文件(回款凭证扫描件)', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '回款状态(pending-待确认/confirmed-已确认/invalid-已作废)', `confirm_by` VARCHAR(64) DEFAULT NULL COMMENT '确认人ID', `confirm_by_name` varchar(50) DEFAULT NULL COMMENT '确认人姓名', `confirm_time` datetime DEFAULT NULL COMMENT '确认时间', `invalid_reason` varchar(500) DEFAULT NULL COMMENT '作废原因', `invalid_time` datetime DEFAULT NULL COMMENT '作废时间', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID(录入人)', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `bank_name` varchar(100) DEFAULT NULL COMMENT '收款银行', `bank_account` varchar(100) DEFAULT NULL COMMENT '收款账号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_payment_no_del_flag` (`payment_no`,`del_flag`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_plan_id` (`plan_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_payment_date` (`payment_date`) USING BTREE, KEY `idx_confirm_by` (`confirm_by`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-回款记录表'; -- ---------------------------- -- Table structure for crm_payment_collection -- ---------------------------- DROP TABLE IF EXISTS `crm_payment_collection`; CREATE TABLE `crm_payment_collection` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_id` VARCHAR(64) NOT NULL COMMENT '回款计划ID', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余)', `collection_date` datetime NOT NULL COMMENT '催收日期时间', `collection_method` varchar(20) NOT NULL COMMENT '催收方式(phone/email/message/visit/legal/other)', `contact_person` varchar(100) DEFAULT NULL COMMENT '联系人姓名', `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `collection_content` text NOT NULL COMMENT '催收内容(最少20字)', `customer_feedback` varchar(20) NOT NULL COMMENT '客户反馈类型(promise/processing/difficulty/refuse/no_contact/other)', `feedback_detail` varchar(500) DEFAULT NULL COMMENT '反馈详情', `promise_date` date DEFAULT NULL COMMENT '承诺付款日期', `collector_user_id` VARCHAR(64) NOT NULL COMMENT '催收人ID', `collector_user_name` varchar(50) DEFAULT NULL COMMENT '催收人姓名(冗余)', `attachment` varchar(500) DEFAULT NULL COMMENT '附件(催收邮件截图等)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_plan_id` (`plan_id`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_collection_date` (`collection_date`) USING BTREE, KEY `idx_collector_user_id` (`collector_user_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-催收记录表'; -- ---------------------------- -- Table structure for crm_payment_plan -- ---------------------------- DROP TABLE IF EXISTS `crm_payment_plan`; CREATE TABLE `crm_payment_plan` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_no` varchar(50) NOT NULL COMMENT '计划编号(PLAN+yyyyMMdd+4位流水号)', `contract_id` VARCHAR(64) NOT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余字段)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `period` int(11) NOT NULL DEFAULT '1' COMMENT '期数(第几期)', `plan_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '计划回款金额', `plan_date` date NOT NULL COMMENT '计划回款日期', `plan_percent` decimal(5,2) DEFAULT NULL COMMENT '计划比例(占合同总金额的百分比)', `received_amount` decimal(15,2) DEFAULT '0.00' COMMENT '已回款金额', `unreceived_amount` decimal(15,2) DEFAULT '0.00' COMMENT '未回款金额', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态(pending-待回款/partial-部分回款/finished-已完成/overdue-已逾期)', `is_overdue` tinyint(1) DEFAULT '0' COMMENT '是否逾期(0否 1是)', `overdue_days` int(11) DEFAULT '0' COMMENT '逾期天数', `remind_days` int(11) DEFAULT '7' COMMENT '提前提醒天数(默认7天)', `remind_status` varchar(20) DEFAULT 'no' COMMENT '提醒状态(no-未提醒/reminded-已提醒)', `last_remind_time` datetime DEFAULT NULL COMMENT '最后提醒时间', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_plan_no_del_flag` (`plan_no`,`del_flag`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_plan_date` (`plan_date`) USING BTREE, KEY `idx_is_overdue` (`is_overdue`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-回款计划表'; -- ---------------------------- -- Table structure for crm_product -- ---------------------------- DROP TABLE IF EXISTS `crm_product`; CREATE TABLE `crm_product` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_no` varchar(50) NOT NULL COMMENT '产品编号(唯一)', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `category_id` VARCHAR(64) DEFAULT NULL COMMENT '分类ID', `category_name` varchar(100) DEFAULT NULL COMMENT '分类名称(冗余)', `model` varchar(100) DEFAULT NULL COMMENT '型号/规格', `unit` varchar(20) DEFAULT '个' COMMENT '单位', `barcode` varchar(100) DEFAULT NULL COMMENT '条码', `price` decimal(15,2) DEFAULT '0.00' COMMENT '标准价格', `cost` decimal(15,2) DEFAULT '0.00' COMMENT '成本价', `min_price` decimal(15,2) DEFAULT NULL COMMENT '最低价格', `stock` int(11) DEFAULT '0' COMMENT '库存数量', `low_stock` int(11) DEFAULT '10' COMMENT '库存预警值', `status` varchar(20) DEFAULT 'on' COMMENT '状态(on-上架/off-下架)', `tax_rate` decimal(5,2) NOT NULL DEFAULT '13.00' COMMENT '税率(百分比)', `description` text COMMENT '产品描述', `images` varchar(1000) DEFAULT NULL COMMENT '产品图片(多个用逗号分隔)', `sale_count` int(11) DEFAULT '0' COMMENT '销售次数', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_product_no_del_flag` (`product_no`,`del_flag`) USING BTREE, KEY `idx_category` (`category_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-产品主表'; -- ---------------------------- -- Table structure for crm_product_attachment -- ---------------------------- DROP TABLE IF EXISTS `crm_product_attachment`; CREATE TABLE `crm_product_attachment` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `file_name` varchar(200) NOT NULL COMMENT '文件名称', `file_path` varchar(500) NOT NULL COMMENT '文件路径', `file_type` varchar(50) DEFAULT NULL COMMENT '文件类型(pdf/doc/xls/ppt/jpg等)', `file_size` VARCHAR(64) DEFAULT NULL COMMENT '文件大小(字节)', `attachment_type` varchar(50) DEFAULT 'other' COMMENT '资料类型(manual-产品手册/whitepaper-技术白皮书/guide-用户指南/demo-演示PPT/case-案例资料/video-视频教程/other-其他)', `download_count` int(11) DEFAULT '0' COMMENT '下载次数', `sort` int(11) DEFAULT '0' COMMENT '显示顺序', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` int(11) DEFAULT '0' COMMENT '逻辑删除标志(0存在 1删除)', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_attachment_type` (`attachment_type`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品附件表'; -- ---------------------------- -- Table structure for crm_product_category -- ---------------------------- DROP TABLE IF EXISTS `crm_product_category`; CREATE TABLE `crm_product_category` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `category_name` varchar(100) NOT NULL COMMENT '分类名称', `parent_id` VARCHAR(64) DEFAULT '0' COMMENT '父级ID(0为顶级)', `ancestors` varchar(500) DEFAULT NULL COMMENT '祖级列表(如: 0,1,2)', `sort` int(11) DEFAULT '0' COMMENT '显示顺序', `status` varchar(10) DEFAULT '0' COMMENT '状态(0-正常 1-停用)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_parent_id` (`parent_id`) USING BTREE, KEY `idx_tenant` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-产品分类表'; -- ---------------------------- -- Table structure for crm_product_price -- ---------------------------- DROP TABLE IF EXISTS `crm_product_price`; CREATE TABLE `crm_product_price` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `price_type` varchar(20) NOT NULL COMMENT '价格类型(standard/cost/minimum/vip/wholesale/promotion)', `price` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '价格', `start_date` datetime DEFAULT NULL COMMENT '生效日期', `end_date` datetime DEFAULT NULL COMMENT '失效日期', `status` varchar(10) DEFAULT 'active' COMMENT '状态(active-生效中/inactive-已失效)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` int(11) DEFAULT '0' COMMENT '逻辑删除标志(0存在 1删除)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_price_type` (`price_type`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品价格表'; -- ---------------------------- -- Table structure for crm_product_price_history -- ---------------------------- DROP TABLE IF EXISTS `crm_product_price_history`; CREATE TABLE `crm_product_price_history` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `price_type` varchar(20) NOT NULL COMMENT '价格类型', `old_price` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '调整前价格', `new_price` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '调整后价格', `price_change` decimal(12,2) DEFAULT '0.00' COMMENT '调整金额', `change_percent` decimal(5,2) DEFAULT '0.00' COMMENT '调整百分比', `adjust_reason` varchar(500) DEFAULT NULL COMMENT '调价原因', `effective_date` datetime DEFAULT NULL COMMENT '生效日期', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '操作人', `create_time` datetime DEFAULT NULL COMMENT '操作时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品价格历史表'; -- ---------------------------- -- Table structure for crm_product_stock_log -- ---------------------------- DROP TABLE IF EXISTS `crm_product_stock_log`; CREATE TABLE `crm_product_stock_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `operation_type` varchar(20) NOT NULL COMMENT '操作类型(in-入库/out-出库/adjust-调整/check-盘点)', `quantity` int(11) NOT NULL DEFAULT '0' COMMENT '变动数量(正数-增加/负数-减少)', `before_stock` int(11) NOT NULL DEFAULT '0' COMMENT '变动前库存', `after_stock` int(11) NOT NULL DEFAULT '0' COMMENT '变动后库存', `unit_price` decimal(12,2) DEFAULT NULL COMMENT '单价', `total_amount` decimal(12,2) DEFAULT NULL COMMENT '总金额', `related_no` varchar(100) DEFAULT NULL COMMENT '关联单号(入库单/出库单/合同编号等)', `related_type` varchar(50) DEFAULT NULL COMMENT '关联类型(purchase-采购/sale-销售/sample-样品/other-其他)', `supplier` varchar(200) DEFAULT NULL COMMENT '供应商(入库时)', `operator` varchar(100) DEFAULT NULL COMMENT '操作人', `operation_date` datetime DEFAULT NULL COMMENT '操作日期', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_operation_type` (`operation_type`) USING BTREE, KEY `idx_operation_date` (`operation_date`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品库存记录表'; -- ---------------------------- -- Table structure for crm_product_tag -- ---------------------------- DROP TABLE IF EXISTS `crm_product_tag`; CREATE TABLE `crm_product_tag` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `tag_name` varchar(50) NOT NULL COMMENT '标签名称', `tag_color` varchar(20) DEFAULT NULL COMMENT '标签颜色', `sort` int(11) DEFAULT '0' COMMENT '显示顺序', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` int(11) DEFAULT '0' COMMENT '逻辑删除标志(0存在 1删除)', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tag_name` (`tag_name`,`tenant_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品标签表'; -- ---------------------------- -- Table structure for crm_product_tag_relation -- ---------------------------- DROP TABLE IF EXISTS `crm_product_tag_relation`; CREATE TABLE `crm_product_tag_relation` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `tag_id` VARCHAR(64) NOT NULL COMMENT '标签ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_product_tag` (`product_id`,`tag_id`,`tenant_id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_tag_id` (`tag_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='产品标签关联表'; -- ---------------------------- -- Table structure for crm_quote -- ---------------------------- DROP TABLE IF EXISTS `crm_quote`; CREATE TABLE `crm_quote` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `quote_no` varchar(50) NOT NULL COMMENT '报价单编号(QUO+yyyyMMdd+4位流水号)', `quote_title` varchar(200) NOT NULL COMMENT '报价单标题', `quote_type` varchar(20) NOT NULL DEFAULT 'sales' COMMENT '报价单类型(sales-销售/purchase-采购)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `opportunity_id` VARCHAR(64) DEFAULT NULL COMMENT '商机ID', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名(冗余字段)', `contact_mobile` varchar(20) DEFAULT NULL COMMENT '联系人手机(冗余字段)', `contact_email` varchar(100) DEFAULT NULL COMMENT '联系人邮箱(冗余字段)', `version` varchar(20) DEFAULT 'V1.0' COMMENT '版本号(如V1.0,V1.1,V2.0)', `parent_id` VARCHAR(64) DEFAULT NULL COMMENT '父版本ID(版本管理,0表示首版)', `is_latest` tinyint(1) DEFAULT '1' COMMENT '是否最新版本(0否 1是)', `total_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '总金额(未折扣前)', `discount_rate` decimal(5,2) DEFAULT '0.00' COMMENT '整单折扣率(百分比)', `discount_amount` decimal(15,2) DEFAULT '0.00' COMMENT '折扣金额', `final_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '最终金额(折扣后)', `validity_days` int(11) DEFAULT '30' COMMENT '有效期(天数)', `quote_date` date DEFAULT NULL COMMENT '报价日期', `expire_date` date DEFAULT NULL COMMENT '到期日期', `status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '状态(draft-草稿/submitted-已提交/accepted-已接受/rejected-已拒绝/expired-已过期/contract-已转合同)', `reject_reason` varchar(500) DEFAULT NULL COMMENT '拒绝原因', `pdf_url` varchar(500) DEFAULT NULL COMMENT 'PDF文件路径', `pdf_generated` tinyint(1) DEFAULT '0' COMMENT 'PDF是否已生成(0否 1是)', `share_link` varchar(500) DEFAULT NULL COMMENT '分享链接', `share_code` varchar(50) DEFAULT NULL COMMENT '分享码', `share_password` varchar(100) DEFAULT NULL COMMENT '分享密码(可选)', `share_expire_time` datetime DEFAULT NULL COMMENT '分享链接过期时间', `view_count` int(11) DEFAULT '0' COMMENT '查看次数', `last_view_time` datetime DEFAULT NULL COMMENT '最后查看时间', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `supplier_id` VARCHAR(64) DEFAULT NULL COMMENT '报价主体ID(关联crm_supplier_info表)', `supplier_name` varchar(200) DEFAULT NULL COMMENT '报价主体名称(冗余字段)', `contract_id` VARCHAR(64) DEFAULT NULL COMMENT '关联合同ID(转合同后)', `payment_terms` varchar(500) DEFAULT NULL COMMENT '付款条款', `delivery_terms` varchar(500) DEFAULT NULL COMMENT '交付条款', `freight` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '运费(元)', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件(多个用逗号分隔)', `template_content` longtext COMMENT '报价单模板内容(富文本HTML)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version_no` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_opportunity_id` (`opportunity_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_parent_id` (`parent_id`) USING BTREE, KEY `idx_expire_date` (`expire_date`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE, KEY `idx_share_code` (`share_code`) USING BTREE, KEY `idx_supplier_id` (`supplier_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单主表'; -- ---------------------------- -- Table structure for crm_quote_approval -- ---------------------------- DROP TABLE IF EXISTS `crm_quote_approval`; CREATE TABLE `crm_quote_approval` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `quote_id` VARCHAR(64) NOT NULL COMMENT '报价单ID', `quote_no` varchar(50) DEFAULT NULL COMMENT '报价单编号(冗余)', `step` int(11) NOT NULL COMMENT '审批步骤(1/2/3...)', `approver_id` VARCHAR(64) NOT NULL COMMENT '审批人ID', `approver_name` varchar(50) DEFAULT NULL COMMENT '审批人姓名(冗余)', `approval_result` varchar(20) DEFAULT 'pending' COMMENT '审批结果(pending-待审批/approved-通过/rejected-拒绝)', `approval_opinion` text COMMENT '审批意见', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_quote_id` (`quote_id`) USING BTREE, KEY `idx_approver_id` (`approver_id`) USING BTREE, KEY `idx_approval_time` (`approval_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_approval_result` (`approval_result`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单审批记录表'; -- ---------------------------- -- Table structure for crm_quote_product -- ---------------------------- DROP TABLE IF EXISTS `crm_quote_product`; CREATE TABLE `crm_quote_product` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `quote_id` VARCHAR(64) NOT NULL COMMENT '报价单ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `product_no` varchar(50) DEFAULT NULL COMMENT '产品编号', `category_id` VARCHAR(64) DEFAULT NULL COMMENT '产品分类ID', `category_name` varchar(100) DEFAULT NULL COMMENT '产品分类名称', `model` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(20) DEFAULT '件' COMMENT '单位', `quantity` decimal(20,4) NOT NULL COMMENT '数量', `price` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '含税单价/元', `discount` decimal(5,2) DEFAULT '0.00' COMMENT '折扣(百分比)', `subtotal` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '含税总价/元', `tax_amount` decimal(15,2) DEFAULT '0.00' COMMENT '税费/元', `tax_rate` decimal(5,2) DEFAULT '13.00' COMMENT '税率(%)', `package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格', `delivery_method` varchar(200) DEFAULT NULL COMMENT '送货方式', `description` varchar(1000) DEFAULT NULL COMMENT '产品描述', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_quote_id` (`quote_id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单产品明细表'; -- ---------------------------- -- Table structure for crm_quote_share_log -- ---------------------------- DROP TABLE IF EXISTS `crm_quote_share_log`; CREATE TABLE `crm_quote_share_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `quote_id` VARCHAR(64) NOT NULL COMMENT '报价单ID', `share_code` varchar(50) NOT NULL COMMENT '分享码', `visit_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '访问时间', `ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址', `location` varchar(200) DEFAULT NULL COMMENT '地理位置(省市)', `device_type` varchar(50) DEFAULT NULL COMMENT '设备类型(PC/Mobile/Tablet)', `browser` varchar(100) DEFAULT NULL COMMENT '浏览器信息', `stay_duration` int(11) DEFAULT '0' COMMENT '停留时长(秒)', `page_views` int(11) DEFAULT '1' COMMENT '浏览页数', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_quote_id` (`quote_id`) USING BTREE, KEY `idx_share_code` (`share_code`) USING BTREE, KEY `idx_visit_time` (`visit_time`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价单分享访问日志表'; -- ---------------------------- -- Table structure for crm_supplier_info -- ---------------------------- DROP TABLE IF EXISTS `crm_supplier_info`; CREATE TABLE `crm_supplier_info` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `supplier_name` varchar(200) NOT NULL COMMENT '供方名称(章)', `short_name` varchar(100) DEFAULT NULL COMMENT '简称', `supplier_code` varchar(50) DEFAULT NULL COMMENT '编码', `supplier_address` varchar(500) DEFAULT NULL COMMENT '单位地址', `legal_person` varchar(100) DEFAULT NULL COMMENT '法定代表人', `agent` varchar(100) DEFAULT NULL COMMENT '代理人', `phone_fax` varchar(100) DEFAULT NULL COMMENT '电话/传真', `bank_name` varchar(200) DEFAULT NULL COMMENT '开户银行', `bank_account` varchar(100) DEFAULT NULL COMMENT '账号', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `del_flag` char(1) DEFAULT '0' COMMENT '逻辑删除标志(0存在 1删除)', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供方信息表'; -- ---------------------------- -- Table structure for crm_visit -- ---------------------------- DROP TABLE IF EXISTS `crm_visit`; CREATE TABLE `crm_visit` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `visit_no` varchar(50) NOT NULL COMMENT '回访编号(VIS+yyyyMMdd+4位流水号)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `contract_id` VARCHAR(64) DEFAULT NULL COMMENT '合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号(冗余字段)', `contact_id` VARCHAR(64) DEFAULT NULL COMMENT '联系人ID', `contact_name` varchar(50) DEFAULT NULL COMMENT '联系人姓名', `contact_mobile` varchar(20) DEFAULT NULL COMMENT '联系人手机', `visit_type` varchar(20) NOT NULL DEFAULT 'regular' COMMENT '回访类型(contract-合同回访/delivery-交付回访/regular-定期回访/renew-续约回访/complaint-投诉回访/other-其他)', `plan_visit_date` datetime DEFAULT NULL COMMENT '计划回访时间', `visit_date` datetime NOT NULL COMMENT '实际回访时间(执行回访时填写)', `visit_method` varchar(20) NOT NULL DEFAULT 'phone' COMMENT '回访方式(phone-电话/wechat-微信/email-邮件/visit-上门拜访/other-其他)', `visit_purpose` text COMMENT '回访目的(多个用逗号分隔: understand_usage,collect_feedback等)', `visit_script` text COMMENT '回访话术模板', `visit_content` text NOT NULL COMMENT '回访内容', `visit_summary` varchar(1000) DEFAULT NULL COMMENT '回访小结', `satisfaction` varchar(20) DEFAULT NULL COMMENT '满意度(very_satisfied-非常满意/satisfied-满意/general-一般/dissatisfied-不满意/very_dissatisfied-非常不满意)', `satisfaction_score` int(11) DEFAULT NULL COMMENT '满意度评分(1-5分,5分最高)', `usage_status` varchar(20) DEFAULT NULL COMMENT '使用情况(normal-正常/occasional-偶尔/rarely-很少/not_used-未使用)', `dissatisfaction_reason` varchar(500) DEFAULT NULL COMMENT '不满意原因(满意度<3星时必填)', `has_problem` tinyint(1) DEFAULT '0' COMMENT '是否有问题(0否 1是)', `problem_count` int(11) DEFAULT '0' COMMENT '问题数量(冗余字段)', `problem_summary` varchar(500) DEFAULT NULL COMMENT '问题概述', `has_opportunity` tinyint(1) DEFAULT '0' COMMENT '是否有商机(0否 1是)', `opportunity_desc` text COMMENT '商机描述', `opportunity_amount` decimal(15,2) DEFAULT NULL COMMENT '预估商机金额', `next_visit_date` date DEFAULT NULL COMMENT '下次回访日期', `next_visit_content` varchar(500) DEFAULT NULL COMMENT '下次回访计划', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '回访状态(pending-待回访/visiting-回访中/completed-已完成/cancelled-已取消)', `cancel_reason` varchar(500) DEFAULT NULL COMMENT '取消原因', `cancel_time` datetime DEFAULT NULL COMMENT '取消时间', `owner_user_id` VARCHAR(64) NOT NULL COMMENT '负责人ID(回访人)', `owner_user_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名(冗余字段)', `duration` int(11) DEFAULT NULL COMMENT '回访时长(分钟)', `attachments` varchar(1000) DEFAULT NULL COMMENT '附件(多个文件用逗号分隔)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_visit_no_del_flag` (`visit_no`,`del_flag`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_contract_id` (`contract_id`) USING BTREE, KEY `idx_owner_user_id` (`owner_user_id`) USING BTREE, KEY `idx_visit_type` (`visit_type`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_visit_date` (`visit_date`) USING BTREE, KEY `idx_satisfaction` (`satisfaction`) USING BTREE, KEY `idx_has_problem` (`has_problem`) USING BTREE, KEY `idx_has_opportunity` (`has_opportunity`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE, KEY `idx_create_time` (`create_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-回访记录表'; -- ---------------------------- -- Table structure for crm_visit_plan -- ---------------------------- DROP TABLE IF EXISTS `crm_visit_plan`; CREATE TABLE `crm_visit_plan` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `rule_name` varchar(200) NOT NULL COMMENT '规则名称', `trigger_type` varchar(20) NOT NULL COMMENT '触发类型(contract_signed-合同签订后/last_visit-上次回访后/product_expire-产品到期前/fixed_period-固定周期)', `delay_days` int(11) NOT NULL DEFAULT '0' COMMENT '延迟天数(合同签订/上次回访后多少天回访)', `visit_type` varchar(20) NOT NULL COMMENT '回访类型(参考crm_visit_type字典)', `visit_method` varchar(20) DEFAULT 'phone' COMMENT '回访方式(参考crm_visit_method字典)', `visit_content_template` text COMMENT '回访内容模板', `status` varchar(20) NOT NULL DEFAULT 'enabled' COMMENT '状态(enabled-启用/disabled-禁用)', `execute_count` int(11) DEFAULT '0' COMMENT '执行次数', `last_execute_time` datetime DEFAULT NULL COMMENT '最后执行时间', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_trigger_type` (`trigger_type`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-回访计划规则表'; -- ---------------------------- -- Table structure for crm_visit_problem -- ---------------------------- DROP TABLE IF EXISTS `crm_visit_problem`; CREATE TABLE `crm_visit_problem` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `visit_id` VARCHAR(64) NOT NULL COMMENT '回访ID', `visit_no` varchar(50) DEFAULT NULL COMMENT '回访编号(冗余字段)', `customer_id` VARCHAR(64) NOT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称(冗余字段)', `problem_type` varchar(20) NOT NULL DEFAULT 'product' COMMENT '问题类型(product-产品问题/service-服务问题/delivery-交付问题/quality-质量问题/price-价格问题/other-其他)', `problem_desc` text NOT NULL COMMENT '问题描述', `problem_images` varchar(1000) DEFAULT NULL COMMENT '问题图片(多个图片用逗号分隔)', `severity` varchar(20) NOT NULL DEFAULT 'medium' COMMENT '严重程度(low-低/medium-中/high-高/urgent-紧急)', `solution` text COMMENT '解决方案', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '问题状态(pending-待处理/processing-处理中/solved-已解决/closed-已关闭)', `solve_by` VARCHAR(64) DEFAULT NULL COMMENT '处理人ID', `solve_by_name` varchar(50) DEFAULT NULL COMMENT '处理人姓名', `solve_time` datetime DEFAULT NULL COMMENT '处理时间', `solve_duration` int(11) DEFAULT NULL COMMENT '处理耗时(小时)', `close_by` VARCHAR(64) DEFAULT NULL COMMENT '关闭人ID', `close_by_name` varchar(50) DEFAULT NULL COMMENT '关闭人姓名', `close_time` datetime DEFAULT NULL COMMENT '关闭时间', `close_reason` varchar(500) DEFAULT NULL COMMENT '关闭原因', `customer_feedback` text COMMENT '客户反馈', `is_satisfied` tinyint(1) DEFAULT NULL COMMENT '客户是否满意(0否 1是)', `sort` int(11) DEFAULT '0' COMMENT '排序号', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_visit_id` (`visit_id`) USING BTREE, KEY `idx_customer_id` (`customer_id`) USING BTREE, KEY `idx_problem_type` (`problem_type`) USING BTREE, KEY `idx_severity` (`severity`) USING BTREE, KEY `idx_status` (`status`) USING BTREE, KEY `idx_solve_by` (`solve_by`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-回访问题记录表'; -- ---------------------------- -- Table structure for inbound_outbound -- ---------------------------- DROP TABLE IF EXISTS `inbound_outbound`; CREATE TABLE `inbound_outbound` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `date` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '日期', `partner_company` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '往来单位', `business_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型(入库/出库)', `product` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品', `quantity` double NOT NULL COMMENT '本次量(t)', `plan_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '计划号(关联计划)', `batch_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '批次号', `vehicle_no` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车牌号', `status` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态(待入库/待出库,已入库/已出库)', `remarks` text COLLATE utf8mb4_unicode_ci COMMENT '备注', `purchase_plan_id` VARCHAR(64) DEFAULT NULL COMMENT '关联的计划ID', `is_deleted` int(11) DEFAULT '0' COMMENT '是否删除(0=否,1=是)', `created_at` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_plan_no` (`plan_no`), KEY `idx_purchase_plan_id` (`purchase_plan_id`), KEY `idx_date` (`date`), KEY `idx_is_deleted` (`is_deleted`), KEY `idx_status` (`status`), KEY `idx_vehicle_no` (`vehicle_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='出入库单表'; -- ---------------------------- -- Table structure for pl_certificate -- ---------------------------- DROP TABLE IF EXISTS `pl_certificate`; CREATE TABLE `pl_certificate` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_id` VARCHAR(64) DEFAULT NULL COMMENT '计划ID (FK → pl_plan.id)', `cert_type` varchar(16) DEFAULT NULL COMMENT '证件类型(购买证/运输证)', `cert_no` varchar(64) DEFAULT NULL COMMENT '证件编号', `attachment` varchar(512) DEFAULT NULL COMMENT '附件路径', `expire_date` date DEFAULT NULL COMMENT '过期日期', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_cert_plan_id` (`plan_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购买证/运输证表'; -- ---------------------------- -- Table structure for pl_inventory -- ---------------------------- DROP TABLE IF EXISTS `pl_inventory`; CREATE TABLE `pl_inventory` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `product_id` VARCHAR(64) NOT NULL COMMENT '产品ID (FK → crm_product.id)', `warehouse` varchar(64) NOT NULL DEFAULT '' COMMENT '仓库名称', `company` varchar(32) NOT NULL DEFAULT '' COMMENT '归属公司(安庆山峡/安徽云栋)', `quantity` decimal(12,4) NOT NULL DEFAULT '0.0000' COMMENT '库存数量', `avg_price` decimal(12,2) DEFAULT NULL COMMENT '加权平均价', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_inventory` (`product_id`,`warehouse`,`company`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存表(简化版)'; -- ---------------------------- -- Table structure for pl_own_vehicle -- ---------------------------- DROP TABLE IF EXISTS `pl_own_vehicle`; CREATE TABLE `pl_own_vehicle` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `license_plate` varchar(32) NOT NULL DEFAULT '' COMMENT '车牌号', `vehicle_type` varchar(32) DEFAULT NULL COMMENT '车辆类型', `load_capacity` decimal(10,2) DEFAULT NULL COMMENT '载重(吨)', `driver_name` varchar(64) DEFAULT NULL COMMENT '司机姓名', `driver_phone` varchar(20) DEFAULT NULL COMMENT '司机电话', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态(1启用 0停用)', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自有车辆表'; -- ---------------------------- -- Table structure for pl_plan -- ---------------------------- DROP TABLE IF EXISTS `pl_plan`; CREATE TABLE `pl_plan` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_date` date DEFAULT NULL COMMENT '计划日期', `plan_no` varchar(32) NOT NULL DEFAULT '' COMMENT '计划编号,格式 SXDDHYYYYMMDD######', `company` varchar(32) NOT NULL DEFAULT '' COMMENT '归属公司(安庆山峡/安徽云栋)', `doc_type` varchar(16) NOT NULL DEFAULT '' COMMENT '单据类型: 直销单/入库单/出库单', `follow_status` varchar(16) NOT NULL DEFAULT '' COMMENT '跟进状态(等客户确认/待采购/待发货/待收货/待入库/已入库/待出库/已出库/已收货/待归档/归档完成/计划取消)', `transport_status` varchar(16) NOT NULL DEFAULT '待安排' COMMENT '运输安排状态(待安排/已安排)', `archive_status` varchar(16) NOT NULL DEFAULT '未归档' COMMENT '归档状态(未归档/已归档)', `finish_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '完结标记(0未完结 1已完结)', `supplier_name` varchar(128) DEFAULT NULL COMMENT '供应商名称(下拉选自客户表)', `destination` varchar(128) DEFAULT NULL COMMENT '目的地(下拉选自客户表)', `delivery_method` varchar(16) DEFAULT NULL COMMENT '提货方式(山峡自提/一票制/客户自提)', `has_transport_fee` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否含运费(0否 1是)', `transport_no` varchar(32) DEFAULT NULL COMMENT '运输单号(冗余,关联 pl_plan_transport)', `license_plate` varchar(32) DEFAULT NULL COMMENT '车牌号(冗余)', `transport_company` varchar(128) DEFAULT NULL COMMENT '运输公司(冗余)', `transport_unit` varchar(16) DEFAULT NULL COMMENT '运输单位', `transport_fee` decimal(12,2) DEFAULT NULL COMMENT '运费单价', `total_transport_fee` decimal(12,2) DEFAULT NULL COMMENT '运费合计', `contract_id` VARCHAR(64) DEFAULT NULL COMMENT '关联合同ID(FK → crm_contract.id)', `follower` varchar(64) DEFAULT NULL COMMENT '跟进人', `notify_msg` text COMMENT '通知消息(模板生成,不可编辑)', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_plan_no` (`plan_no`), KEY `idx_plan_company` (`company`), KEY `idx_plan_doc_type` (`doc_type`), KEY `idx_plan_follow_status` (`follow_status`), KEY `idx_plan_date` (`plan_date`), KEY `idx_plan_contract_id` (`contract_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划主表'; -- ---------------------------- -- Table structure for pl_plan_item -- ---------------------------- DROP TABLE IF EXISTS `pl_plan_item`; CREATE TABLE `pl_plan_item` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_id` VARCHAR(64) NOT NULL COMMENT '计划ID (FK → pl_plan.id)', `product_code` varchar(64) DEFAULT NULL COMMENT '产品编码', `product_name` varchar(128) DEFAULT NULL COMMENT '产品名称', `spec` varchar(128) DEFAULT NULL COMMENT '规格', `pack_spec` varchar(128) DEFAULT NULL COMMENT '包装规格', `unit` varchar(16) DEFAULT NULL COMMENT '单位', `in_estimated` decimal(12,4) DEFAULT NULL COMMENT '入库预估数量', `in_quantity` decimal(12,4) DEFAULT NULL COMMENT '入库实际数量', `in_price` decimal(12,2) DEFAULT NULL COMMENT '入库单价(默认合同价格,可修改)', `in_amount` decimal(12,2) DEFAULT NULL COMMENT '入库金额(入库数×入库价)', `out_estimated` decimal(12,4) DEFAULT NULL COMMENT '出库预估数量', `out_quantity` decimal(12,4) DEFAULT NULL COMMENT '出库实际数量', `out_price` decimal(12,2) DEFAULT NULL COMMENT '出库单价', `out_amount` decimal(12,2) DEFAULT NULL COMMENT '出库金额(出库数×出库价)', `weight_diff` decimal(12,4) DEFAULT NULL COMMENT '磅差(支持负数)', `is_drug_precursor` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否易制毒(0否 1是)', `is_explosive_precursor` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否易制爆(0否 1是)', PRIMARY KEY (`id`), KEY `idx_plan_item_plan_id` (`plan_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划产品明细表'; -- ---------------------------- -- Table structure for pl_plan_transport -- ---------------------------- DROP TABLE IF EXISTS `pl_plan_transport`; CREATE TABLE `pl_plan_transport` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_id` VARCHAR(64) NOT NULL COMMENT '计划ID (FK → pl_plan.id)', `transport_id` VARCHAR(64) NOT NULL COMMENT '运输ID (FK → pl_transport.id)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_plan_transport` (`plan_id`,`transport_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划-运输关联表'; -- ---------------------------- -- Table structure for pl_price_adjustment -- ---------------------------- DROP TABLE IF EXISTS `pl_price_adjustment`; CREATE TABLE `pl_price_adjustment` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `contract_id` VARCHAR(64) DEFAULT NULL COMMENT '合同ID (FK → crm_contract.id)', `product_id` VARCHAR(64) DEFAULT NULL COMMENT '产品ID (FK → crm_product.id)', `old_price` decimal(12,2) DEFAULT NULL COMMENT '原价格', `new_price` decimal(12,2) DEFAULT NULL COMMENT '新价格', `effective_date` date DEFAULT NULL COMMENT '生效日期', `attachment` varchar(512) DEFAULT NULL COMMENT '附件路径', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_price_adj_contract_id` (`contract_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调价函记录表'; -- ---------------------------- -- Table structure for pl_qrcode -- ---------------------------- DROP TABLE IF EXISTS `pl_qrcode`; CREATE TABLE `pl_qrcode` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_id` VARCHAR(64) DEFAULT NULL COMMENT '关联计划ID (FK → pl_plan.id)', `transport_id` VARCHAR(64) DEFAULT NULL COMMENT '关联运输ID (FK → pl_transport.id)', `qr_type` varchar(16) NOT NULL DEFAULT '' COMMENT '二维码类型(driver-司机现场人员)', `code` varchar(128) NOT NULL DEFAULT '' COMMENT '二维码唯一标识', `expire_time` datetime DEFAULT NULL COMMENT '过期时间', `access_type` varchar(16) NOT NULL DEFAULT 'open' COMMENT '访问类型(open-无需登录restricted-需登录+权限验证)', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态(1有效 0已使用/已过期)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_qrcode_code` (`code`), KEY `idx_qrcode_plan_id` (`plan_id`), KEY `idx_qrcode_transport_id` (`transport_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='二维码记录表'; -- ---------------------------- -- Table structure for pl_settlement -- ---------------------------- DROP TABLE IF EXISTS `pl_settlement`; CREATE TABLE `pl_settlement` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `settlement_no` varchar(32) NOT NULL DEFAULT '' COMMENT '结算单号', `status` varchar(16) NOT NULL DEFAULT '待审核' COMMENT '状态(待审核/审核中/审核通过/审核驳回/已开票/已付款)', `total_fee` decimal(12,2) DEFAULT NULL COMMENT '结算总金额', `invoice_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '开票状态(0未开票 1已开票)', `invoice_attachment` varchar(512) DEFAULT NULL COMMENT '发票附件路径', `invoice_remark` varchar(512) DEFAULT NULL COMMENT '开票备注', `payment_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '付款状态(0未付款 1已付款)', `payment_attachment` varchar(512) DEFAULT NULL COMMENT '付款凭证路径', `payment_remark` varchar(512) DEFAULT NULL COMMENT '付款备注', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_settlement_no` (`settlement_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输结算表'; -- ---------------------------- -- Table structure for pl_settlement_transport -- ---------------------------- DROP TABLE IF EXISTS `pl_settlement_transport`; CREATE TABLE `pl_settlement_transport` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `settlement_id` VARCHAR(64) NOT NULL COMMENT '结算ID (FK → pl_settlement.id)', `transport_id` VARCHAR(64) NOT NULL COMMENT '运输ID (FK → pl_transport.id)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_settlement_transport` (`settlement_id`,`transport_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输结算-运输单关联表'; -- ---------------------------- -- Table structure for pl_transport -- ---------------------------- DROP TABLE IF EXISTS `pl_transport`; CREATE TABLE `pl_transport` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `transport_no` varchar(32) NOT NULL DEFAULT '' COMMENT '运输编号,格式 SXYS######', `license_plate` varchar(32) DEFAULT NULL COMMENT '车牌号', `owner_name` varchar(64) DEFAULT NULL COMMENT '车主姓名/所属公司', `transport_medium` varchar(64) DEFAULT NULL COMMENT '运输介质', `start_point` varchar(255) DEFAULT NULL COMMENT '起点', `end_point` varchar(255) DEFAULT NULL COMMENT '终点', `distance_km` decimal(10,1) DEFAULT NULL COMMENT '距离(公里)', `fee_unit` varchar(16) DEFAULT NULL COMMENT '计费单位(吨/趟)', `transport_fee` decimal(12,2) DEFAULT NULL COMMENT '运费', `has_invoice` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否有发票(0否 1是)', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_transport_no` (`transport_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输信息表'; -- ---------------------------- -- Table structure for pl_transport_company -- ---------------------------- DROP TABLE IF EXISTS `pl_transport_company`; CREATE TABLE `pl_transport_company` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `company_name` varchar(128) NOT NULL DEFAULT '' COMMENT '公司名称', `contact_person` varchar(64) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态(1启用 0停用)', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `sort_order` int(11) NOT NULL DEFAULT '0' COMMENT '排序号', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输公司表'; -- ---------------------------- -- Table structure for pl_transport_vehicle -- ---------------------------- DROP TABLE IF EXISTS `pl_transport_vehicle`; CREATE TABLE `pl_transport_vehicle` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `company_id` VARCHAR(64) NOT NULL COMMENT '运输公司ID (FK → pl_transport_company.id)', `license_plate` varchar(32) NOT NULL DEFAULT '' COMMENT '车牌号', `vehicle_type` varchar(32) DEFAULT NULL COMMENT '车辆类型', `load_capacity` decimal(10,2) DEFAULT NULL COMMENT '载重(吨)', `driver_name` varchar(64) DEFAULT NULL COMMENT '司机姓名', `driver_phone` varchar(20) DEFAULT NULL COMMENT '司机电话', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态(1启用 0停用)', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记(0正常 1已删除)', `create_by` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_vehicle_company_id` (`company_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输公司车辆表'; -- ---------------------------- -- Table structure for purchase_plans -- ---------------------------- DROP TABLE IF EXISTS `purchase_plans`; CREATE TABLE `purchase_plans` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `plan_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '计划号(自动生成,格式:SX-YYYYMMDDMMHHSS001)', `plan_date` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '计划日期(兼容字段)', `start_date` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '开始时间', `end_date` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结束时间', `business_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型(入库/出库)', `product` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品名称', `specification` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '规格', `planned_quantity` double NOT NULL COMMENT '计划数量(t)', `vehicle_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '', `customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '往来单位', `remarks` text COLLATE utf8mb4_unicode_ci COMMENT '备注', `is_deleted` int(11) DEFAULT '0' COMMENT '是否删除(0=否,1=是)', `execution_status` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '执行状态(待入库/待出库,已入库/已出库)', `executed_at` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '执行时间', `last_weighing_slip_id` VARCHAR(64) DEFAULT NULL COMMENT '最后关联的地磅单ID', `executed_quantity` double DEFAULT '0' COMMENT '已执行量(kg)', `created_at` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建时间', `auto_generate_enabled` int(11) NOT NULL DEFAULT '0' COMMENT '是否自动按月生成(0=否,1=是)', `auto_generate_end_month` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '自动生成结束月份(YYYY-MM,NULL=一直生成)', `auto_generate_last_month` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后一次自动生成的月份(YYYY-MM,用于防重复)', PRIMARY KEY (`id`), KEY `idx_plan_no` (`plan_no`), KEY `idx_plan_date` (`plan_date`), KEY `idx_start_date` (`start_date`), KEY `idx_end_date` (`end_date`), KEY `idx_business_type` (`business_type`), KEY `idx_product` (`product`), KEY `idx_is_deleted` (`is_deleted`), KEY `idx_execution_status` (`execution_status`), KEY `idx_auto_generate_enabled` (`auto_generate_enabled`), KEY `idx_auto_generate_end_month` (`auto_generate_end_month`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计划表'; -- ---------------------------- -- Table structure for sys_client -- ---------------------------- DROP TABLE IF EXISTS `sys_client`; CREATE TABLE `sys_client` ( `id` VARCHAR(64) NOT NULL COMMENT 'id', `client_id` varchar(64) DEFAULT NULL COMMENT '客户端id', `client_key` varchar(32) DEFAULT NULL COMMENT '客户端key', `client_secret` varchar(255) DEFAULT NULL COMMENT '客户端秘钥', `grant_type` varchar(255) DEFAULT NULL COMMENT '授权类型', `device_type` varchar(32) DEFAULT NULL COMMENT '设备类型', `active_timeout` int(11) NOT NULL DEFAULT '1800' COMMENT 'token活跃超时时间(秒)', `timeout` int(11) NOT NULL DEFAULT '604800' COMMENT 'token固定超时(秒)', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统授权表'; -- ---------------------------- -- Table structure for sys_config -- ---------------------------- DROP TABLE IF EXISTS `sys_config`; CREATE TABLE `sys_config` ( `id` VARCHAR(64) NOT NULL COMMENT '参数主键', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `config_name` varchar(100) DEFAULT '' COMMENT '参数名称', `config_key` varchar(100) NOT NULL DEFAULT '' COMMENT '参数键名', `config_value` varchar(500) DEFAULT '' COMMENT '参数键值', `config_type` char(1) DEFAULT 'N' COMMENT '系统内置(Y是 N否)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数配置表'; -- ---------------------------- -- Table structure for sys_dept -- ---------------------------- DROP TABLE IF EXISTS `sys_dept`; CREATE TABLE `sys_dept` ( `id` varchar(64) NOT NULL COMMENT '部门id', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `parent_id` varchar(64) DEFAULT '0' COMMENT '父部门id', `ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表', `dept_name` varchar(30) DEFAULT '' COMMENT '部门名称', `dept_category` varchar(100) DEFAULT NULL COMMENT '部门类别编码', `order_num` int(11) DEFAULT '0' COMMENT '显示顺序', `leader` varchar(64) DEFAULT NULL COMMENT '负责人', `phone` varchar(11) DEFAULT NULL COMMENT '联系电话', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `status` char(1) DEFAULT '0' COMMENT '部门状态(0正常 1停用)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表'; -- ---------------------------- -- Table structure for sys_dict_data -- ---------------------------- DROP TABLE IF EXISTS `sys_dict_data`; CREATE TABLE `sys_dict_data` ( `dict_code` VARCHAR(64) NOT NULL COMMENT '字典编码', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `dict_sort` int(4) DEFAULT '0' COMMENT '字典排序', `dict_label` varchar(100) DEFAULT '' COMMENT '字典标签', `dict_value` varchar(100) DEFAULT '' COMMENT '字典键值', `dict_type` varchar(100) DEFAULT '' COMMENT '字典类型', `css_class` varchar(100) DEFAULT NULL COMMENT '样式属性(其他样式扩展)', `list_class` varchar(100) DEFAULT NULL COMMENT '表格回显样式', `is_default` char(1) DEFAULT 'N' COMMENT '是否默认(Y是 N否)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`dict_code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典数据表'; -- ---------------------------- -- Table structure for sys_dict_type -- ---------------------------- DROP TABLE IF EXISTS `sys_dict_type`; CREATE TABLE `sys_dict_type` ( `dict_id` VARCHAR(64) NOT NULL COMMENT '字典主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `dict_name` varchar(100) DEFAULT '' COMMENT '字典名称', `dict_type` varchar(100) DEFAULT '' COMMENT '字典类型', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`dict_id`) USING BTREE, UNIQUE KEY `tenant_id` (`tenant_id`,`dict_type`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表'; -- ---------------------------- -- Table structure for sys_logininfor -- ---------------------------- DROP TABLE IF EXISTS `sys_logininfor`; CREATE TABLE `sys_logininfor` ( `id` VARCHAR(64) NOT NULL COMMENT '访问ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `user_name` varchar(50) DEFAULT '' COMMENT '用户账号', `client_key` varchar(32) DEFAULT '' COMMENT '客户端', `device_type` varchar(32) DEFAULT '' COMMENT '设备类型', `ipaddr` varchar(128) DEFAULT '' COMMENT '登录IP地址', `login_location` varchar(255) DEFAULT '' COMMENT '登录地点', `browser` varchar(50) DEFAULT '' COMMENT '浏览器类型', `os` varchar(50) DEFAULT '' COMMENT '操作系统', `status` char(1) DEFAULT '0' COMMENT '登录状态(0成功 1失败)', `msg` varchar(255) DEFAULT '' COMMENT '提示消息', `login_time` datetime DEFAULT NULL COMMENT '访问时间', PRIMARY KEY (`id`), KEY `idx_logininfor_s` (`status`), KEY `idx_logininfor_lt` (`login_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录表'; -- ---------------------------- -- Table structure for sys_menu -- ---------------------------- DROP TABLE IF EXISTS `sys_menu`; CREATE TABLE `sys_menu` ( `id` varchar(64) NOT NULL COMMENT '菜单ID', `menu_name` varchar(50) NOT NULL COMMENT '菜单名称', `parent_id` varchar(64) DEFAULT '0' COMMENT '父菜单ID', `order_num` int(11) DEFAULT '0' COMMENT '显示顺序', `path` varchar(200) DEFAULT '' COMMENT '路由地址', `component` varchar(255) DEFAULT NULL COMMENT '组件路径', `query_param` varchar(255) DEFAULT NULL COMMENT '路由参数', `is_frame` tinyint(4) DEFAULT '1' COMMENT '是否为外链(0是 1否)', `is_cache` tinyint(4) DEFAULT '0' COMMENT '是否缓存(0缓存 1不缓存)', `menu_type` char(1) DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)', `visible` char(1) DEFAULT '0' COMMENT '显示状态(0显示 1隐藏)', `status` char(1) DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', `perms` varchar(100) DEFAULT NULL COMMENT '权限标识', `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT '' COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单权限表'; -- ---------------------------- -- Table structure for sys_notice -- ---------------------------- DROP TABLE IF EXISTS `sys_notice`; CREATE TABLE `sys_notice` ( `id` VARCHAR(64) NOT NULL COMMENT '公告ID', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `notice_title` varchar(50) NOT NULL COMMENT '公告标题', `notice_type` char(1) NOT NULL COMMENT '公告类型(1通知 2公告)', `notice_content` longblob COMMENT '公告内容', `status` char(1) NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知公告表'; -- ---------------------------- -- Table structure for sys_oper_log -- ---------------------------- DROP TABLE IF EXISTS `sys_oper_log`; CREATE TABLE `sys_oper_log` ( `id` VARCHAR(64) NOT NULL COMMENT '日志主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `title` varchar(50) DEFAULT '' COMMENT '模块标题', `business_type` int(11) DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除)', `method` varchar(100) DEFAULT '' COMMENT '方法名称', `request_method` varchar(10) DEFAULT '' COMMENT '请求方式', `operator_type` int(11) DEFAULT '0' COMMENT '操作类别(0其它 1后台 2手机端)', `oper_name` varchar(50) DEFAULT '' COMMENT '操作人员', `dept_name` varchar(50) DEFAULT '' COMMENT '部门名称', `oper_url` varchar(255) DEFAULT '' COMMENT '请求URL', `oper_ip` varchar(128) DEFAULT '' COMMENT '主机地址', `oper_location` varchar(255) DEFAULT '' COMMENT '操作地点', `oper_param` text COMMENT '请求参数', `json_result` text COMMENT '返回参数', `status` int(11) DEFAULT '0' COMMENT '操作状态(0正常 1异常)', `error_msg` varchar(4000) DEFAULT '' COMMENT '错误消息', `oper_time` datetime DEFAULT NULL COMMENT '操作时间', `cost_time` bigint(20) DEFAULT '0' COMMENT '消耗时间', PRIMARY KEY (`id`), KEY `idx_oper_log_bt` (`business_type`), KEY `idx_oper_log_s` (`status`), KEY `idx_oper_log_ot` (`oper_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志记录'; -- ---------------------------- -- Table structure for sys_oss -- ---------------------------- DROP TABLE IF EXISTS `sys_oss`; CREATE TABLE `sys_oss` ( `id` VARCHAR(64) NOT NULL COMMENT '对象存储主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `file_name` varchar(255) NOT NULL DEFAULT '' COMMENT '文件名', `original_name` varchar(255) NOT NULL DEFAULT '' COMMENT '原名', `file_suffix` varchar(10) NOT NULL DEFAULT '' COMMENT '文件后缀名', `url` varchar(500) NOT NULL COMMENT 'URL地址', `service` varchar(20) NOT NULL DEFAULT 'minio' COMMENT '服务商', `ext1` text COMMENT '扩展字段', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '上传人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OSS对象存储表'; -- ---------------------------- -- Table structure for sys_oss_config -- ---------------------------- DROP TABLE IF EXISTS `sys_oss_config`; CREATE TABLE `sys_oss_config` ( `id` VARCHAR(64) NOT NULL COMMENT '主键', `tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号', `config_key` varchar(20) NOT NULL DEFAULT '' COMMENT '配置key', `access_key` varchar(255) DEFAULT '' COMMENT 'accessKey', `secret_key` varchar(255) DEFAULT '' COMMENT '秘钥', `bucket_name` varchar(255) DEFAULT '' COMMENT '桶名称', `prefix` varchar(255) DEFAULT '' COMMENT '前缀', `endpoint` varchar(255) DEFAULT '' COMMENT '访问站点', `domain` varchar(255) DEFAULT '' COMMENT '自定义域名', `is_https` char(1) DEFAULT 'N' COMMENT '是否https(Y是 N否)', `region` varchar(255) DEFAULT '' COMMENT '域', `access_policy` char(1) NOT NULL DEFAULT '1' COMMENT '桶权限类型(0private 1public 2custom)', `status` char(1) DEFAULT '1' COMMENT '是否默认(0是 1否)', `ext1` varchar(255) DEFAULT '' COMMENT '扩展字段', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对象存储配置表'; -- ---------------------------- -- Table structure for sys_post -- ---------------------------- DROP TABLE IF EXISTS `sys_post`; CREATE TABLE `sys_post` ( `id` VARCHAR(64) NOT NULL COMMENT '岗位ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `dept_id` VARCHAR(64) NOT NULL COMMENT '部门id', `post_code` varchar(64) NOT NULL COMMENT '岗位编码', `post_category` varchar(100) DEFAULT NULL COMMENT '岗位类别编码', `post_name` varchar(50) NOT NULL COMMENT '岗位名称', `post_sort` int(11) NOT NULL COMMENT '显示顺序', `status` char(1) NOT NULL COMMENT '状态(0正常 1停用)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位信息表'; -- ---------------------------- -- Table structure for sys_region -- ---------------------------- DROP TABLE IF EXISTS `sys_region`; CREATE TABLE `sys_region` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `code` varchar(20) NOT NULL COMMENT '行政区划编码', `name` varchar(50) NOT NULL COMMENT '行政区划名称', `short_name` varchar(30) DEFAULT NULL COMMENT '行政区划简称', `parent_code` VARCHAR(64) DEFAULT '0' COMMENT '父级行政区划编码,顶级为0', `level` tinyint(1) NOT NULL COMMENT '层级(1:省,2:市,3:区/县,4:街道/镇)', `sort` int(11) DEFAULT '0' COMMENT '排序', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度', `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标识(0未删除 1已删除)', `tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_region_code` (`code`,`deleted`,`tenant_id`) USING BTREE, KEY `idx_region_parent_code` (`parent_code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='行政区划表'; -- ---------------------------- -- Table structure for sys_role -- ---------------------------- DROP TABLE IF EXISTS `sys_role`; CREATE TABLE `sys_role` ( `id` varchar(64) NOT NULL COMMENT '角色ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `role_name` varchar(30) NOT NULL COMMENT '角色名称', `role_key` varchar(100) NOT NULL COMMENT '角色权限字符串', `role_sort` int(11) NOT NULL COMMENT '显示顺序', `data_scope` char(1) DEFAULT '1' COMMENT '数据范围(1全部 2自定 3本部门 4本部门及以下 5仅本人 6部门及以下或本人)', `menu_check_strictly` tinyint(4) DEFAULT '1' COMMENT '菜单树选择项是否关联显示', `dept_check_strictly` tinyint(4) DEFAULT '1' COMMENT '部门树选择项是否关联显示', `status` char(1) NOT NULL COMMENT '角色状态(0正常 1停用)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色信息表'; -- ---------------------------- -- Table structure for sys_role_dept -- ---------------------------- DROP TABLE IF EXISTS `sys_role_dept`; CREATE TABLE `sys_role_dept` ( `role_id` VARCHAR(64) NOT NULL COMMENT '角色ID', `dept_id` VARCHAR(64) NOT NULL COMMENT '部门ID', PRIMARY KEY (`role_id`,`dept_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和部门关联表'; -- ---------------------------- -- Table structure for sys_role_menu -- ---------------------------- DROP TABLE IF EXISTS `sys_role_menu`; CREATE TABLE `sys_role_menu` ( `role_id` varchar(64) NOT NULL COMMENT '角色ID', `menu_id` varchar(64) NOT NULL COMMENT '菜单ID', PRIMARY KEY (`role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和菜单关联表'; -- ---------------------------- -- Table structure for sys_tenant -- ---------------------------- DROP TABLE IF EXISTS `sys_tenant`; CREATE TABLE `sys_tenant` ( `id` VARCHAR(64) NOT NULL COMMENT 'id', `tenant_id` varchar(20) NOT NULL COMMENT '租户编号', `contact_user_name` varchar(20) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `company_name` varchar(30) DEFAULT NULL COMMENT '企业名称', `license_number` varchar(30) DEFAULT NULL COMMENT '统一社会信用代码', `address` varchar(200) DEFAULT NULL COMMENT '地址', `intro` varchar(200) DEFAULT NULL COMMENT '企业简介', `domain` varchar(200) DEFAULT NULL COMMENT '域名', `remark` varchar(200) DEFAULT NULL COMMENT '备注', `package_id` VARCHAR(64) DEFAULT NULL COMMENT '租户套餐编号', `expire_time` datetime DEFAULT NULL COMMENT '过期时间', `account_count` int(11) DEFAULT '-1' COMMENT '用户数量(-1不限制)', `status` char(1) DEFAULT '0' COMMENT '租户状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表'; -- ---------------------------- -- Table structure for sys_tenant_package -- ---------------------------- DROP TABLE IF EXISTS `sys_tenant_package`; CREATE TABLE `sys_tenant_package` ( `id` VARCHAR(64) NOT NULL COMMENT '租户套餐id', `package_name` varchar(20) DEFAULT NULL COMMENT '套餐名称', `menu_ids` varchar(3000) DEFAULT NULL COMMENT '关联菜单id', `remark` varchar(200) DEFAULT NULL COMMENT '备注', `menu_check_strictly` tinyint(4) NOT NULL DEFAULT '1' COMMENT '菜单树选择项是否关联显示', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_dept` VARCHAR(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户套餐表'; -- ---------------------------- -- Table structure for sys_user -- ---------------------------- DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `id` varchar(64) NOT NULL COMMENT '用户ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `dept_id` varchar(64) DEFAULT NULL COMMENT '部门ID', `user_name` varchar(30) NOT NULL COMMENT '用户账号', `nick_name` varchar(30) NOT NULL COMMENT '用户昵称', `user_type` varchar(10) DEFAULT 'sys_user' COMMENT '用户类型(sys_user系统用户)', `email` varchar(50) DEFAULT '' COMMENT '用户邮箱', `phonenumber` varchar(11) DEFAULT '' COMMENT '手机号码', `sex` char(1) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', `avatar` varchar(64) DEFAULT NULL COMMENT '头像地址', `password` varchar(100) DEFAULT '' COMMENT '密码', `status` char(1) DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `login_ip` varchar(128) DEFAULT '' COMMENT '最后登录IP', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', `create_dept` varchar(64) DEFAULT NULL COMMENT '创建部门', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表'; -- ---------------------------- -- Table structure for sys_user_post -- ---------------------------- DROP TABLE IF EXISTS `sys_user_post`; CREATE TABLE `sys_user_post` ( `user_id` VARCHAR(64) NOT NULL COMMENT '用户ID', `post_id` VARCHAR(64) NOT NULL COMMENT '岗位ID', PRIMARY KEY (`user_id`,`post_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户与岗位关联表'; -- ---------------------------- -- Table structure for sys_user_role -- ---------------------------- DROP TABLE IF EXISTS `sys_user_role`; CREATE TABLE `sys_user_role` ( `user_id` varchar(64) NOT NULL COMMENT '用户ID', `role_id` varchar(64) NOT NULL COMMENT '角色ID', PRIMARY KEY (`user_id`,`role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表'; -- ---------------------------- -- Table structure for weighing_slips -- ---------------------------- DROP TABLE IF EXISTS `weighing_slips`; CREATE TABLE `weighing_slips` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `vehicle_no` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车号', `plan_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '计划单号', `cargo_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '货物名称', `business_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型(入库/出库)', `batch_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '批次号', `supplier` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '供货单位', `consignee` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货单位', `gross_weight` double NOT NULL COMMENT '毛重(kg)', `gross_weight_time` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '毛重时间', `tare_weight` double NOT NULL COMMENT '皮重(kg)', `tare_weight_time` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '皮重时间', `deduction` double DEFAULT '0' COMMENT '扣杂(kg)', `net_weight` double NOT NULL COMMENT '净重(kg)', `planned_quantity` double DEFAULT NULL COMMENT '计划数量(kg)', `executed_quantity` double DEFAULT NULL COMMENT '执行数量(kg)', `purchase_plan_id` VARCHAR(64) DEFAULT NULL COMMENT '关联的计划ID', `inbound_outbound_id` VARCHAR(64) DEFAULT NULL COMMENT '关联的出入库单ID', `weighing_point` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '山峡地磅' COMMENT '称重点', `remarks` text COLLATE utf8mb4_unicode_ci COMMENT '备注', `current_quantity` double DEFAULT NULL COMMENT '本次量(kg)', `is_voided` int(11) DEFAULT '0' COMMENT '是否作废(0=否, 1=是)', `created_at` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_vehicle_no` (`vehicle_no`), KEY `idx_plan_no` (`plan_no`), KEY `idx_cargo_name` (`cargo_name`), KEY `idx_gross_weight_time` (`gross_weight_time`), KEY `idx_is_voided` (`is_voided`), KEY `idx_purchase_plan_id` (`purchase_plan_id`), KEY `idx_inbound_outbound_id` (`inbound_outbound_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='地磅单表'; -- ---------------------------- -- Table structure for wf_workflow_def -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_def`; CREATE TABLE `wf_workflow_def` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `flow_code` varchar(40) NOT NULL COMMENT '流程编码', `flow_name` varchar(100) NOT NULL COMMENT '流程名称', `category` varchar(100) DEFAULT NULL COMMENT '流程类别', `version` varchar(20) NOT NULL DEFAULT '1' COMMENT '版本号', `is_publish` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)', `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `activity_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)', `def_json` text COMMENT '流程定义JSON(设计器产出)', `biz_type` varchar(32) DEFAULT NULL COMMENT '关联业务类型(crm_contract/bx_reimburse/pl_plan/pl_settlement 等)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_flow_code_version` (`flow_code`,`version`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流定义表'; -- ---------------------------- -- Table structure for wf_workflow_instance -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_instance`; CREATE TABLE `wf_workflow_instance` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `definition_id` VARCHAR(64) NOT NULL COMMENT '流程定义ID (FK → wf_workflow_def.id)', `business_id` varchar(40) NOT NULL COMMENT '业务ID', `biz_type` varchar(32) DEFAULT NULL COMMENT '业务类型(crm_contract/bx_reimburse/pl_plan/pl_settlement 等)', `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2通过 4终止 5作废 6撤销 8完成 9退回)', `activity_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '激活状态(0挂起 1激活)', `current_node_code` varchar(100) DEFAULT NULL COMMENT '当前节点编码', `current_node_name` varchar(100) DEFAULT NULL COMMENT '当前节点名称', `variable` text COMMENT '流程变量JSON', `def_json` text COMMENT '流程定义快照JSON', `ext` varchar(500) DEFAULT NULL COMMENT '扩展字段', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者(流程发起人)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_wf_instance_def_id` (`definition_id`), KEY `idx_wf_instance_biz` (`biz_type`,`business_id`), KEY `idx_wf_instance_status` (`flow_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流实例表'; -- ---------------------------- -- Table structure for wf_workflow_node -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_node`; CREATE TABLE `wf_workflow_node` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `definition_id` VARCHAR(64) NOT NULL COMMENT '流程定义ID (FK → wf_workflow_def.id)', `node_code` varchar(100) NOT NULL COMMENT '流程节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称', `node_type` tinyint(4) NOT NULL COMMENT '节点类型(0开始 1审批 2结束 3互斥网关 4并行网关)', `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识', `assignee_type` varchar(20) DEFAULT NULL COMMENT '审批人类型(user/role/dept/dept_leader/initiator)', `assignee_id` varchar(200) DEFAULT NULL COMMENT '审批人ID(多ID逗号分隔)', `multi_approve` varchar(20) DEFAULT 'any' COMMENT '多人审批策略(any/all/ratio)', `approve_ratio` decimal(5,2) DEFAULT NULL COMMENT '通过比例', `coordinate` varchar(100) DEFAULT NULL COMMENT '设计器坐标', `sort_order` int(11) NOT NULL DEFAULT '0' COMMENT '节点顺序', `version` varchar(20) NOT NULL DEFAULT '1' COMMENT '版本', `ext` text COMMENT '扩展属性', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', PRIMARY KEY (`id`), KEY `idx_wf_node_def_id` (`definition_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流节点表'; -- ---------------------------- -- Table structure for wf_workflow_skip -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_skip`; CREATE TABLE `wf_workflow_skip` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `definition_id` VARCHAR(64) NOT NULL COMMENT '流程定义ID (FK → wf_workflow_def.id)', `now_node_code` varchar(100) NOT NULL COMMENT '当前节点编码', `now_node_type` tinyint(4) DEFAULT NULL COMMENT '当前节点类型', `next_node_code` varchar(100) NOT NULL COMMENT '下一节点编码', `next_node_type` tinyint(4) DEFAULT NULL COMMENT '下一节点类型', `skip_name` varchar(100) DEFAULT NULL COMMENT '跳转名称', `skip_type` varchar(40) DEFAULT NULL COMMENT '跳转类型(PASS通过 REJECT退回)', `skip_condition` varchar(200) DEFAULT NULL COMMENT '跳转条件', `coordinate` varchar(100) DEFAULT NULL COMMENT '设计器坐标', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', PRIMARY KEY (`id`), KEY `idx_wf_skip_def_id` (`definition_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流跳转关联表'; -- ---------------------------- -- Table structure for wf_workflow_task -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_task`; CREATE TABLE `wf_workflow_task` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `definition_id` VARCHAR(64) NOT NULL COMMENT '流程定义ID (FK → wf_workflow_def.id)', `instance_id` VARCHAR(64) NOT NULL COMMENT '流程实例ID (FK → wf_workflow_instance.id)', `node_code` varchar(100) NOT NULL COMMENT '节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称', `node_type` tinyint(4) NOT NULL COMMENT '节点类型', `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2通过 9退回)', `assignee` varchar(64) DEFAULT NULL COMMENT '当前处理人', `form_custom` char(1) DEFAULT 'N' COMMENT '表单是否自定义', `form_path` varchar(100) DEFAULT NULL COMMENT '表单路径', `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标志(0正常 1删除)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_wf_task_instance_id` (`instance_id`), KEY `idx_wf_task_assignee` (`assignee`), KEY `idx_wf_task_status` (`flow_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流待办任务表'; -- ---------------------------- -- Table structure for wf_workflow_task_log -- ---------------------------- DROP TABLE IF EXISTS `wf_workflow_task_log`; CREATE TABLE `wf_workflow_task_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `instance_id` VARCHAR(64) NOT NULL COMMENT '流程实例ID (FK → wf_workflow_instance.id)', `task_id` VARCHAR(64) DEFAULT NULL COMMENT '任务ID (FK → wf_workflow_task.id)', `node_code` varchar(100) NOT NULL COMMENT '节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称', `action_type` varchar(20) NOT NULL COMMENT '操作类型(submit/approve/reject/terminate/revoke/transfer)', `operator` varchar(64) DEFAULT NULL COMMENT '操作人', `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名', `opinion` varchar(1024) DEFAULT NULL COMMENT '审批意见', `ext` varchar(500) DEFAULT NULL COMMENT '扩展字段', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', PRIMARY KEY (`id`), KEY `idx_wf_task_log_instance_id` (`instance_id`), KEY `idx_wf_task_log_operator` (`operator`), KEY `idx_wf_task_log_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流任务日志表'; SET FOREIGN_KEY_CHECKS = 1;