Files
yunzerwebsiteallinone/go/docs/sql/create_crm_bidding.sql
T
2026-09-24 17:06:46 +08:00

526 lines
33 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================
-- CRM 招投标管理模块表结构(17 张)
--
-- 模块说明:CRM 系统下的「招投标管理」子模块
-- - 我要招标(甲方):6 张表
-- - 我要投标(乙方):11 张表
-- 设计原则:
-- 1. 命名统一以 yz_backend_crm_bidding_ 为前缀
-- 2. 软删除:delete_time
-- 3. 多租户:tenant_id
-- 4. 与现有 CRM 模块(business/contract/project)字段风格一致
-- 5. 中标/定标后只存 ID 引用(contract_id、project_id),不冗余数据
--
-- 状态机:
-- 招标:0草稿 -> 1公告中 -> 2报名中 -> 3投标中 -> 4开标中 -> 5评标中 -> 6已定标 -> 7已归档
-- 投标:0草稿 -> 1立项审批中 -> 2投标中 -> 3已开标 -> (4中标 | 5落标) -> (6已转合同 | 7已归档)
-- =============================================================
SET NAMES utf8mb4;
-- ============================================================
-- 第一部分:我要招标(6 张)
-- ============================================================
-- ---------------- 1. 招标项目主表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID',
`tender_no` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '招标编号',
`title` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '招标标题/项目名称',
`tender_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '招标类型: 1公开招标 2邀请招标 3竞争性谈判 4询比 5单一来源',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1公告中 2报名中 3投标中 4开标中 5评标中 6已定标 7已归档',
`customer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '招标方客户ID(我方客户库)',
`customer_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '招标方名称',
`publish_org` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '发布单位',
`budget_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '预算金额',
`bid_deposit` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '保证金',
`publish_date` DATE DEFAULT NULL COMMENT '发布日期',
`register_start_date` DATETIME DEFAULT NULL COMMENT '报名开始',
`register_end_date` DATETIME DEFAULT NULL COMMENT '报名截止',
`bid_start_date` DATETIME DEFAULT NULL COMMENT '投标开始',
`bid_end_date` DATETIME DEFAULT NULL COMMENT '投标截止',
`open_bid_date` DATETIME DEFAULT NULL COMMENT '开标时间',
`contact_person` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '联系人',
`contact_phone` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '联系电话',
`contact_email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '联系邮箱',
`bid_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '投标地址',
`open_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开标地址',
`description` TEXT COMMENT '项目描述',
`requirement` TEXT COMMENT '投标要求',
`evaluation_method` VARCHAR(50) NOT NULL DEFAULT '1' COMMENT '评标方法: 1综合评估 2最低价 3性价比',
`winner_supplier_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '中标供应商ID',
`winner_supplier_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '中标供应商名称',
`winner_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '中标金额',
`winner_date` DATETIME DEFAULT NULL COMMENT '定标时间',
`contract_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '转合同ID',
`project_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联项目ID',
`owner_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '负责人ID',
`owner_user_name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '负责人姓名',
`department_id` BIGINT UNSIGNED DEFAULT 0 COMMENT '部门ID',
`locked` TINYINT NOT NULL DEFAULT 0 COMMENT '0否 1是(定标后锁定)',
`remark` TEXT COMMENT '备注',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_status` (`tenant_id`, `status`),
KEY `idx_tender_no` (`tenant_id`, `tender_no`),
KEY `idx_owner` (`tenant_id`, `owner_user_id`),
KEY `idx_customer` (`tenant_id`, `customer_id`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-招标项目主表';
-- ---------------- 2. 招标文件表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender_file` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`tender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '招标项目ID',
`file_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1招标文件 2补充文件 3答疑文件 4其他',
`file_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文件名称',
`file_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '文件URL',
`file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '文件大小(字节)',
`file_ext` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '扩展名',
`upload_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`upload_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_tender` (`tenant_id`, `tender_id`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-招标文件';
-- ---------------- 3. 招标公告表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender_announce` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`tender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '招标项目ID',
`announce_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1招标公告 2变更公告 3中标公告 4终止公告',
`title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '公告标题',
`content` LONGTEXT COMMENT '公告内容(富文本)',
`publish_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1已发布',
`publish_time` DATETIME DEFAULT NULL COMMENT '发布时间',
`view_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '浏览次数',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_tender` (`tenant_id`, `tender_id`),
KEY `idx_announce_type` (`tenant_id`, `announce_type`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-招标公告';
-- ---------------- 4. 投标方/供应商表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender_supplier` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`tender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '招标项目ID',
`supplier_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '供应商ID(ERP/CRM共享)',
`supplier_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '投标方/供应商名称',
`register_status` TINYINT NOT NULL DEFAULT 1 COMMENT '1待审核 2已通过 3已拒绝 4已退标',
`register_time` DATETIME DEFAULT NULL COMMENT '报名时间',
`bid_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '报价金额',
`bid_files` TEXT COMMENT '投标文件JSON(多文件)',
`contact_person` VARCHAR(50) NOT NULL DEFAULT '',
`contact_phone` VARCHAR(20) NOT NULL DEFAULT '',
`is_winner` TINYINT NOT NULL DEFAULT 0 COMMENT '0否 1是中标方',
`ranking` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '排名',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_tender` (`tenant_id`, `tender_id`),
KEY `idx_supplier` (`tenant_id`, `supplier_id`),
KEY `idx_register_status` (`tenant_id`, `register_status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标方/供应商';
-- ---------------- 5. 开标评标表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender_evaluation` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`tender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '招标项目ID',
`supplier_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '被评标供应商ID',
`supplier_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '供应商名称',
`technical_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '技术分',
`business_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '商务分',
`price_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '价格分',
`service_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '服务分',
`total_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '总分',
`weight_config` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '权重配置JSON',
`ranking` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '排名',
`evaluation_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '评标人ID',
`evaluation_user_name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '评标人姓名',
`evaluation_time` DATETIME DEFAULT NULL COMMENT '评标时间',
`comment` TEXT COMMENT '评语',
`result` TINYINT NOT NULL DEFAULT 0 COMMENT '0待评 1合格 2不合格 3废标',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_tender` (`tenant_id`, `tender_id`),
KEY `idx_supplier` (`tenant_id`, `supplier_id`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-开标评标';
-- ---------------- 6. 定标结果表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_tender_result` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`tender_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '招标项目ID',
`result_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1定标 2流标 3废标',
`winner_supplier_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '中标供应商ID',
`winner_supplier_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '中标供应商名称',
`winner_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '中标金额',
`result_date` DATETIME DEFAULT NULL COMMENT '定标日期',
`announcement` TEXT COMMENT '定标公告',
`contract_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '转合同ID',
`project_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联项目ID',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_tender` (`tenant_id`, `tender_id`),
KEY `idx_result_type` (`tenant_id`, `result_type`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-定标结果';
-- ============================================================
-- 第二部分:我要投标(11 张)
-- ============================================================
-- ---------------- 7. 投标项目主表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_no` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '投标编号',
`title` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '投标标题/项目名称',
`bid_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '投标类型: 1公开 2邀请 3竞争性谈判 4询比 5单一来源',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0草稿 1立项审批中 2投标中 3已开标 4中标 5落标 6已转合同 7已归档',
`source_type` TINYINT NOT NULL DEFAULT 0 COMMENT '0独立 1商机 2项目',
`source_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '来源ID(商机/项目)',
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联商机ID',
`business_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '商机名称',
`project_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联项目ID(中转)',
`project_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '项目名称',
`tender_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联招标项目ID(如果从招标信息创建)',
`tender_no` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '招标编号',
`customer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '招标方ID',
`customer_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '招标方名称',
`publish_org` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '发布单位',
`bid_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '投标报价',
`bid_deposit` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '保证金',
`publish_date` DATE DEFAULT NULL COMMENT '招标发布日期',
`register_end_date` DATETIME DEFAULT NULL COMMENT '报名截止',
`bid_end_date` DATETIME DEFAULT NULL COMMENT '投标截止',
`open_bid_date` DATETIME DEFAULT NULL COMMENT '开标时间',
`contact_person` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '联系人',
`contact_phone` VARCHAR(20) NOT NULL DEFAULT '',
`bid_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '投标地址',
`open_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '开标地址',
`win_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0未开标 1中标 2未中标 3废标 4流标',
`win_date` DATETIME DEFAULT NULL COMMENT '中标日期',
`our_ranking` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '我方排名',
`total_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '我方得分',
`competitor_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '竞争对手数量',
`contract_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '转合同ID',
`new_project_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '中标后新建项目ID',
`owner_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`owner_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`department_id` BIGINT UNSIGNED DEFAULT 0 COMMENT '部门ID',
`description` TEXT COMMENT '项目描述',
`remark` TEXT COMMENT '备注',
`locked` TINYINT NOT NULL DEFAULT 0 COMMENT '0否 1是',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_status` (`tenant_id`, `status`),
KEY `idx_bid_no` (`tenant_id`, `bid_no`),
KEY `idx_owner` (`tenant_id`, `owner_user_id`),
KEY `idx_business` (`tenant_id`, `business_id`),
KEY `idx_project` (`tenant_id`, `project_id`),
KEY `idx_tender` (`tenant_id`, `tender_id`),
KEY `idx_customer` (`tenant_id`, `customer_id`),
KEY `idx_win_status` (`tenant_id`, `win_status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标项目主表';
-- ---------------- 8. 投标文件表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_file` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`file_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1投标文件 2技术方案 3商务方案 4报价单 5保证金 7其他',
`file_name` VARCHAR(255) NOT NULL DEFAULT '',
`file_url` VARCHAR(500) NOT NULL DEFAULT '',
`file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`file_ext` VARCHAR(20) NOT NULL DEFAULT '',
`version` VARCHAR(20) NOT NULL DEFAULT '1.0' COMMENT '版本号',
`upload_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`upload_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标文件';
-- ---------------- 9. 投标立项审批表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_approval` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`approval_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1立项审批 2报价审批 3合同审批',
`approval_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0待审批 1已通过 2已拒绝 3已撤回',
`approval_flow_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审批流ID(复用现有引擎)',
`current_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '当前审批人',
`current_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`approval_users` TEXT COMMENT '审批人列表JSON',
`submit_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`submit_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`submit_time` DATETIME DEFAULT NULL,
`complete_time` DATETIME DEFAULT NULL,
`comment` TEXT COMMENT '审批意见',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_flow` (`approval_flow_id`),
KEY `idx_status` (`tenant_id`, `approval_status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标立项审批';
-- ---------------- 10. 投标任务表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_task` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`task_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '任务名称',
`task_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1商务 2技术 3报价 4法务 5财务 6其他',
`content` TEXT COMMENT '任务内容',
`owner_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '负责人',
`owner_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`start_date` DATE DEFAULT NULL,
`end_date` DATE DEFAULT NULL,
`complete_time` DATETIME DEFAULT NULL,
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '0未开始 1进行中 2已完成 3已逾期 4已取消',
`progress` TINYINT NOT NULL DEFAULT 0 COMMENT '进度 0-100',
`files` TEXT COMMENT '附件JSON',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_owner` (`tenant_id`, `owner_user_id`),
KEY `idx_status` (`tenant_id`, `status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标任务';
-- ---------------- 11. 标书模板表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_template` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`template_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '模板名称',
`template_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1技术标 2商务标 3综合标',
`industry` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '适用行业',
`description` VARCHAR(500) NOT NULL DEFAULT '',
`content` LONGTEXT COMMENT '模板内容',
`file_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '模板文件URL',
`use_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用次数',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1启用 0禁用',
`owner_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`owner_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_type` (`tenant_id`, `template_type`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-标书模板';
-- ---------------- 12. 标书版本表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_document` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`template_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '基于模板',
`version` VARCHAR(20) NOT NULL DEFAULT 'v1.0' COMMENT '版本号',
`title` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '版本标题',
`content` LONGTEXT COMMENT '标书内容',
`file_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '标书文件URL',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1编辑中 2待审核 3已定稿 4已提交',
`editor_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`editor_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`review_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`review_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`review_comment` TEXT COMMENT '审核意见',
`review_time` DATETIME DEFAULT NULL,
`submit_time` DATETIME DEFAULT NULL,
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_template` (`template_id`),
KEY `idx_status` (`tenant_id`, `status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-标书版本';
-- ---------------- 13. 资质文件库 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_qualification` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`qualification_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '资质名称',
`qualification_type` VARCHAR(20) NOT NULL DEFAULT '1' COMMENT '1营业执照 2资质证书 3业绩证明 4认证证书 5其他',
`qualification_no` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '证书编号',
`issuing_authority` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '颁发机构',
`issue_date` DATE DEFAULT NULL COMMENT '颁发日期',
`expire_date` DATE DEFAULT NULL COMMENT '到期日期',
`alert_days` INT UNSIGNED NOT NULL DEFAULT 30 COMMENT '提前提醒天数',
`file_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '文件URL',
`file_name` VARCHAR(255) NOT NULL DEFAULT '',
`file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`description` TEXT COMMENT '备注',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1有效 2即将过期 0失效',
`owner_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`owner_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_type` (`tenant_id`, `qualification_type`),
KEY `idx_expire` (`tenant_id`, `expire_date`),
KEY `idx_status` (`tenant_id`, `status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-资质文件库';
-- ---------------- 14. 报价表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_quote` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`quote_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '报价单名称',
`total_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '总报价',
`currency` VARCHAR(10) NOT NULL DEFAULT 'CNY' COMMENT '币种',
`tax_rate` DECIMAL(6,4) NOT NULL DEFAULT 0 COMMENT '税率',
`valid_date` DATE DEFAULT NULL COMMENT '报价有效期',
`products` LONGTEXT COMMENT '产品清单JSON',
`cost_analysis` TEXT COMMENT '成本分析',
`profit_rate` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '利润率%',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '1草稿 2待审批 3已审批 4已使用',
`approval_flow_id` BIGINT UNSIGNED DEFAULT NULL,
`submit_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`submit_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`submit_time` DATETIME DEFAULT NULL,
`approval_time` DATETIME DEFAULT NULL,
`remark` TEXT COMMENT '备注',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_status` (`tenant_id`, `status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-报价表';
-- ---------------- 15. 竞争对手报价表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_competitor` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`competitor_name` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '竞争对手名称',
`competitor_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1同类厂商 2关联企业 3其他',
`quote_amount` DECIMAL(14,2) NOT NULL DEFAULT 0 COMMENT '报价',
`advantages` TEXT COMMENT '优势',
`weaknesses` TEXT COMMENT '劣势',
`source` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '信息来源',
`remark` VARCHAR(500) NOT NULL DEFAULT '',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-竞争对手报价';
-- ---------------- 16. 投标结果表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_result` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`result_type` TINYINT NOT NULL DEFAULT 0 COMMENT '1中标 2未中标 3废标 4流标',
`announce_date` DATETIME DEFAULT NULL COMMENT '公告日期',
`announce_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '公告URL',
`total_score` DECIMAL(6,2) NOT NULL DEFAULT 0 COMMENT '我方得分',
`our_ranking` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '我方排名',
`competitor_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '竞争对手数量',
`reason` TEXT COMMENT '原因分析',
`lessons` TEXT COMMENT '经验教训',
`next_step` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '下一步行动',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_unique_bid` (`tenant_id`, `bid_id`),
KEY `idx_result_type` (`tenant_id`, `result_type`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标结果';
-- ---------------- 17. 投标费用表 ----------------
CREATE TABLE IF NOT EXISTS `yz_backend_crm_bidding_bid_expense` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '',
`bid_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '投标项目ID',
`expense_type` TINYINT NOT NULL DEFAULT 1 COMMENT '1标书费 2保证金 3差旅费 4咨询费 5代理费 6其他',
`expense_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '费用名称',
`amount` DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '金额',
`currency` VARCHAR(10) NOT NULL DEFAULT 'CNY',
`payment_status` TINYINT NOT NULL DEFAULT 0 COMMENT '0未付 1已付 2已退还 3已抵扣',
`payment_date` DATETIME DEFAULT NULL COMMENT '支付日期',
`payment_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`payment_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`voucher_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '凭证URL',
`description` TEXT COMMENT '说明',
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '',
`create_user_name` VARCHAR(128) NOT NULL DEFAULT '',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`delete_time` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_tenant_bid` (`tenant_id`, `bid_id`),
KEY `idx_payment_status` (`tenant_id`, `payment_status`),
KEY `idx_delete_time` (`delete_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='CRM-投标费用';
-- ============================================================
-- 菜单配置(投标管理)
-- ============================================================
-- 招标方菜单:path = 'apps/crm/bidding/tender/index.vue'
-- 投标方菜单:path = 'apps/crm/bidding/bid/index.vue'
-- 注意:菜单通常通过平台端 UI 配置,详见 docs/bidding_menus.sql