文件还在测试中

This commit is contained in:
2026-08-08 15:53:53 +08:00
parent 5f1e7adb64
commit 8101177cb5
241 changed files with 18074 additions and 22 deletions
+139
View File
@@ -0,0 +1,139 @@
-- 酷冰甲 CMS 升级脚本:新增 CRM(客户管理)与 PSI(进销存)模块
-- 用法:在远端 MySQL 执行本文件(phpMyAdmin / 命令行均可)。
-- 幂等,可重复执行;兼容 MySQL 5.7 与 8.05.7 不支持 ADD COLUMN IF NOT EXISTS,故用存储过程判断)。
SET NAMES utf8mb4;
/* ===================== CRM 客户管理系统 ===================== */
CREATE TABLE IF NOT EXISTS `crm_customers` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(120) NOT NULL,
`company` VARCHAR(160) DEFAULT '',
`contact` VARCHAR(60) DEFAULT '',
`phone` VARCHAR(40) DEFAULT '',
`email` VARCHAR(120) DEFAULT '',
`country` VARCHAR(60) DEFAULT '',
`type` VARCHAR(20) DEFAULT 'trade',
`source` VARCHAR(40) DEFAULT '',
`level` VARCHAR(20) DEFAULT 'C',
`remark` TEXT,
`owner` VARCHAR(60) DEFAULT '',
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `crm_leads` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`customer_id` INT DEFAULT 0,
`title` VARCHAR(200) NOT NULL,
`amount` DECIMAL(12,2) DEFAULT 0,
`stage` VARCHAR(20) DEFAULT 'new',
`expected_close` VARCHAR(20) DEFAULT '',
`owner` VARCHAR(60) DEFAULT '',
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `crm_followups` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`customer_id` INT DEFAULT 0,
`lead_id` INT DEFAULT 0,
`content` TEXT,
`next_at` VARCHAR(20) DEFAULT '',
`owner` VARCHAR(60) DEFAULT '',
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/* ===================== 进销存 PSI 系统 ===================== */
CREATE TABLE IF NOT EXISTS `psi_materials` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`code` VARCHAR(40) DEFAULT '',
`name` VARCHAR(160) NOT NULL,
`spec` VARCHAR(120) DEFAULT '',
`unit` VARCHAR(10) DEFAULT '',
`category` VARCHAR(40) DEFAULT '',
`stock` DECIMAL(12,2) DEFAULT 0,
`price` DECIMAL(10,2) DEFAULT 0,
`supplier_id` INT DEFAULT 0,
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `psi_products` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`code` VARCHAR(40) DEFAULT '',
`name` VARCHAR(160) NOT NULL,
`spec` VARCHAR(120) DEFAULT '',
`unit` VARCHAR(10) DEFAULT '',
`category` VARCHAR(40) DEFAULT '',
`stock` DECIMAL(12,2) DEFAULT 0,
`cost` DECIMAL(10,2) DEFAULT 0,
`price` DECIMAL(10,2) DEFAULT 0,
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `psi_suppliers` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(160) NOT NULL,
`contact` VARCHAR(60) DEFAULT '',
`phone` VARCHAR(40) DEFAULT '',
`country` VARCHAR(60) DEFAULT '',
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `psi_purchases` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`order_no` VARCHAR(40) NOT NULL,
`supplier_id` INT DEFAULT 0,
`item_type` VARCHAR(10) DEFAULT 'material',
`item_id` INT DEFAULT 0,
`qty` DECIMAL(12,2) DEFAULT 0,
`price` DECIMAL(10,2) DEFAULT 0,
`amount` DECIMAL(12,2) DEFAULT 0,
`status` VARCHAR(20) DEFAULT 'pending',
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `psi_sales` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`order_no` VARCHAR(40) NOT NULL,
`customer` VARCHAR(160) DEFAULT '',
`channel` VARCHAR(20) DEFAULT 'domestic',
`item_id` INT DEFAULT 0,
`qty` DECIMAL(12,2) DEFAULT 0,
`price` DECIMAL(10,2) DEFAULT 0,
`amount` DECIMAL(12,2) DEFAULT 0,
`status` VARCHAR(20) DEFAULT 'pending',
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `psi_stock_moves` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`item_type` VARCHAR(10) DEFAULT 'product',
`item_id` INT DEFAULT 0,
`direction` VARCHAR(10) DEFAULT 'in',
`qty` DECIMAL(12,2) DEFAULT 0,
`ref_no` VARCHAR(40) DEFAULT '',
`remark` TEXT,
`created_at` VARCHAR(20) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/* 为 admin_users 补齐分系统角色列(幂等,兼容 5.7) */
DROP PROCEDURE IF EXISTS `add_crm_psi_cols`;
DELIMITER $$
CREATE PROCEDURE `add_crm_psi_cols`()
BEGIN
IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='admin_users' AND COLUMN_NAME='crm_role') THEN
ALTER TABLE `admin_users` ADD COLUMN `crm_role` VARCHAR(20) DEFAULT 'none';
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='admin_users' AND COLUMN_NAME='psi_role') THEN
ALTER TABLE `admin_users` ADD COLUMN `psi_role` VARCHAR(20) DEFAULT 'none';
END IF;
END$$
DELIMITER ;
CALL `add_crm_psi_cols`();
DROP PROCEDURE IF EXISTS `add_crm_psi_cols`;
-- 升级完成后,登录后台 → 用户管理,将超级管理员/相关账号的 crm_role、psi_role 设为 admin。