修改文件配置

This commit is contained in:
wuweihua
2026-09-24 11:23:14 +08:00
parent 252e177495
commit f602060ab4
62 changed files with 2583 additions and 3506 deletions
@@ -1,55 +0,0 @@
DROP TABLE IF EXISTS `ctr_customer`;
CREATE TABLE `ctr_customer` (
`customer_id` VARCHAR(32) NOT NULL AUTO_INCREMENT COMMENT '客户ID',
`customer_code` varchar(50) NOT NULL COMMENT '客户编码',
`customer_name` varchar(100) NOT NULL COMMENT '客户名称',
`customer_code_dw` varchar(50) DEFAULT '' COMMENT '对外代码',
`credit_code` varchar(18) DEFAULT '' COMMENT '统一社会信用代码',
-- 业务类型(字典:直客、同行、集运)
`customer_type` char(1) DEFAULT '0' COMMENT '业务类型(0直客 1同行 2集运)',
`is_enable` char(1) DEFAULT '0' COMMENT '启用状态(0正常 1停用)',
-- 销售归属
`sales_user_id` varchar(64) DEFAULT '' COMMENT '业务员用户ID',
`sales_user` varchar(50) DEFAULT '' COMMENT '业务员姓名',
-- 财务等信息
`ed` decimal(15,2) DEFAULT 0.00 COMMENT '资金额度(元)',
`zq` int(11) DEFAULT 0 COMMENT '回款账期(天)',
`settlement_user_id` varchar(64) DEFAULT '' COMMENT '结算员用户ID',
`settlement_user` varchar(50) DEFAULT '' COMMENT '结算员姓名',
`service_user_id` varchar(64) DEFAULT '' COMMENT '客服用户ID',
`service_user` varchar(50) DEFAULT '' COMMENT '客服姓名',
`settlement_type` char(1) DEFAULT '0' COMMENT '结算方式(0月结 1周结 2日结)',
`temp_ed` decimal(15,2) DEFAULT 0.00 COMMENT '临时额度(元)',
`account_balance` decimal(15,2) DEFAULT 0.00 COMMENT '账户余额(元)',
`foreign_currency_balance` decimal(15,2) DEFAULT 0.00 COMMENT '外币余额(元)',
`weight_threshold` decimal(15,2) DEFAULT 0.00 COMMENT '重量阈值(kg)',
`throw_ratio` decimal(15,2) DEFAULT 0.00 COMMENT '抛比(%)',
`credit_ed` decimal(15,2) DEFAULT 0.00 COMMENT '信用额度(元)',
`product_codes` varchar(1000) DEFAULT NULL COMMENT '绑定产品代码(多个产品代码用逗号分隔,对接旧库产品编码)',
-- ========== 附件字段(新增) ==========
`logo_oss_id` bigint(20) DEFAULT NULL COMMENT '客户Logo(图片,关联sys_oss.oss_id)',
`attachment_ids` varchar(1000) DEFAULT NULL COMMENT '附件资料(多个oss_id用逗号分隔,支持PDF/图片/压缩包等)',
-- 备注
`remark` varchar(500) DEFAULT NULL COMMENT '备注说明',
-- 若依标准审计字段
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标记(0正常 2删除)',
PRIMARY KEY (`customer_id`)
-- UNIQUE KEY `uk_customer_code` (`customer_code`),
-- UNIQUE KEY `uk_credit_code` (`credit_code`),
-- KEY `idx_sales_user_id` (`sales_user_id`),
-- KEY `idx_customer_type` (`customer_type`),
-- KEY `idx_is_enable` (`is_enable`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户主表';
@@ -1,19 +0,0 @@
-- =============================================================
-- 1) 客户公司主体营业执照:bigint oss_id 改为 URL 字符串
-- 先按服务器本地存储(/common/upload 返回相对路径),后续可平滑切换对象存储
-- 2) 客户收款登记:增加收款银行账户(ar_bank_account 关联 + 冗余快照,防账户后续变更)
-- 2026-09-20
-- =============================================================
SET NAMES utf8mb4;
-- ---------- bms_customer_company ----------
ALTER TABLE `bms_customer_company`
CHANGE COLUMN `business_license_oss_id` `business_license_url` VARCHAR(500)
DEFAULT NULL COMMENT '营业执照图片URL(服务器本地存储,后续可切换对象存储)';
-- ---------- customer_receipt ----------
ALTER TABLE `customer_receipt`
ADD COLUMN `bank_account_id` BIGINT(20) DEFAULT NULL COMMENT '收款银行账户ID(ar_bank_account)' AFTER `pay_method`,
ADD COLUMN `bank_account_name` VARCHAR(100) DEFAULT NULL COMMENT '收款账户户名(登记时快照)' AFTER `bank_account_id`,
ADD COLUMN `bank_account_no` VARCHAR(128) DEFAULT NULL COMMENT '收款银行账号(登记时快照)' AFTER `bank_account_name`,
ADD COLUMN `bank_name` VARCHAR(100) DEFAULT NULL COMMENT '开户行名称(登记时快照)' AFTER `bank_account_no`;
@@ -1,72 +0,0 @@
-- =============================================================
-- 客户额度调整申请/审批表
-- 信用额度、额外额度(临时额度)调整不再直接生效:
-- 先申请(PENDING)-> 审批通过(APPROVED)后才真正调整 ctr_customer_account
-- 并生成 ctr_customer_credit_flow 额度流水;可驳回(REJECTED)/撤销(CANCELLED)
-- 2026-09-16
-- =============================================================
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS `ctr_customer_credit_apply` (
`apply_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '申请单ID',
`apply_no` VARCHAR(64) NOT NULL COMMENT '申请单号(EDSQ前缀)',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) DEFAULT NULL COMMENT '客户账户ID(审批通过时回写)',
`credit_type` VARCHAR(16) NOT NULL COMMENT '额度类型:CREDIT信用额度 TEMP临时额度(额外额度)',
`adjust_mode` VARCHAR(8) NOT NULL COMMENT '调整方式:SET设置为 ADD增加 SUB减少',
`change_amount` DECIMAL(18,2) NOT NULL COMMENT '调整金额(恒为正数,方式看adjust_mode)',
`effective_date` DATE DEFAULT NULL COMMENT '临时额度生效日期',
`expire_date` DATE DEFAULT NULL COMMENT '临时额度失效日期(空=长期)',
`reason` VARCHAR(255) NOT NULL COMMENT '调整原因',
`status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING待审批 APPROVED已通过 REJECTED已驳回 CANCELLED已撤销',
`apply_by` VARCHAR(64) DEFAULT '' COMMENT '申请人',
`apply_user_id` BIGINT(20) DEFAULT NULL COMMENT '申请人ID',
`apply_time` DATETIME DEFAULT NULL COMMENT '申请时间',
`approve_by` VARCHAR(64) DEFAULT '' COMMENT '审批人',
`approve_user_id` BIGINT(20) DEFAULT NULL COMMENT '审批人ID',
`approve_time` DATETIME DEFAULT NULL COMMENT '审批时间',
`approve_remark` VARCHAR(255) DEFAULT NULL COMMENT '审批意见/驳回原因',
`flow_id` BIGINT(20) DEFAULT NULL COMMENT '审批通过后生成的额度流水ID(ctr_customer_credit_flow.id)',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
PRIMARY KEY (`apply_id`),
UNIQUE KEY `uk_apply_no` (`apply_no`),
KEY `idx_customer_status` (`customer_id`, `status`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户额度调整申请审批表';
-- =============================================================
-- 菜单:额度审批(挂在 2422 客户余额管理 下,与 2434 额度调整/申请 并列)
-- =============================================================
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT 2439, N'额度审批', 2422, 2, '', NULL, 1, 0, 'F', '0', '0', 'customer:credit:approve', '#', 'admin', sysdate(), '客户信用/额外额度调整申请审批'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2439);
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 2, 2439 FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu WHERE role_id = 2 AND menu_id = 2439);
-- =============================================================
-- 下线“客户账单”独立页面(需求2):
-- 余额页“查看账单”改为跳转应收管理-应收账单(/ar/bill,菜单2401)并带客户条件
-- 2435 客户账单(C) / 2436 账单详情(F) 删除;
-- 2437 余额核销 / 2438 取消余额核销 仍在客户余额页使用,改挂到 2422 客户余额管理
-- =============================================================
DELETE FROM sys_role_menu WHERE menu_id IN (2435, 2436);
DELETE FROM sys_menu WHERE menu_id IN (2435, 2436);
UPDATE sys_menu SET parent_id = 2422 WHERE menu_id IN (2437, 2438);
-- =============================================================
-- 字典:客户业务类型 customer_type 补齐(原有仅 0直客)
-- 0直客 1同行 2集运
-- =============================================================
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 1, N'同行', '1', 'customer_type', '', 'info', 'N', '0', 'admin', sysdate(), '同行客户'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_type' AND dict_value = '1');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 2, N'集运', '2', 'customer_type', '', 'warning', 'N', '0', 'admin', sysdate(), '集运客户'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_type' AND dict_value = '2');
@@ -1,10 +0,0 @@
-- =============================================================
-- 额度流水增加业务来源关联列
-- 授信额度的占用/释放由各业务模块(应收账单确认、计费订单开单/计费变动)
-- 通过客户资金公共API ICustomerAccountApi 触发,流水需能反查来源单据
-- 2026-09-17
-- =============================================================
ALTER TABLE `customer_credit_flow`
ADD COLUMN `biz_type` VARCHAR(32) DEFAULT NULL COMMENT '业务来源类型:AR_BILL应收账单 ORDER计费订单(占用/释放流水)' AFTER `change_type`,
ADD COLUMN `biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务单据ID' AFTER `biz_type`,
ADD COLUMN `biz_no` VARCHAR(64) DEFAULT NULL COMMENT '关联业务单据号' AFTER `biz_id`;
@@ -1,23 +0,0 @@
-- =====================================================================
-- 客户绑定产品:存储口径由「产品ID逗号串」改为「产品代码逗号串」
-- 背景:后续产品数据从旧数据库迁移导入,新旧库产品ID不一致,
-- 产品代码(product_code)在两库间稳定,故客户绑定关系改用代码。
-- 日期:2026-09-22
-- =====================================================================
-- 1. 列改名(保留原数据,CHANGE 仅改列名/注释)
ALTER TABLE bms_customer
CHANGE COLUMN product_ids product_codes varchar(1000) DEFAULT NULL
COMMENT '绑定产品代码(多个产品代码用逗号分隔,对接旧库产品编码)';
-- 2. 旧值(产品ID逗号串)按 bms_product 映射为产品代码逗号串
-- FIND_IN_SET 逐个匹配逗号串中的ID,GROUP_CONCAT 重新拼为代码串;
-- 匹配不到产品的ID会被置为NULL(脏数据,可在客户编辑页重新绑定)
UPDATE bms_customer c
SET c.product_codes = (
SELECT GROUP_CONCAT(p.product_code)
FROM bms_product p
WHERE FIND_IN_SET(p.product_id, c.product_codes)
)
WHERE c.product_codes IS NOT NULL
AND c.product_codes <> '';
@@ -1,15 +0,0 @@
-- ----------------------------
-- 客户收款单增加汇率来源留痕:
-- rate_source 汇率来源类型(SYSTEM系统默认本币1:1 / RATE_TABLE汇率表自动带出 / MANUAL手工修改)
-- rate_source_desc 来源说明(汇率表来源+命中路径,或手工录入说明)
-- 登记收款时由后端权威判定:CNY=SYSTEM;外币汇率与收款日即期汇率表一致=RATE_TABLE,否则=MANUAL。
-- ----------------------------
ALTER TABLE `customer_receipt`
ADD COLUMN `rate_source` VARCHAR(16) NOT NULL DEFAULT 'SYSTEM'
COMMENT '汇率来源:RATE_TABLE汇率表/MANUAL手工修改/SYSTEM系统默认(本币1:1)' AFTER `exchange_rate`,
ADD COLUMN `rate_source_desc` VARCHAR(100) DEFAULT NULL
COMMENT '汇率来源说明(汇率表来源及命中路径/手工录入等)' AFTER `rate_source`;
-- 存量数据订正:本币收款=系统默认;历史外币收款按汇率表取值口径登记,统一标记为汇率表
UPDATE `customer_receipt` SET `rate_source` = 'SYSTEM' WHERE `currency` = 'CNY' AND `rate_source` = 'SYSTEM';
UPDATE `customer_receipt` SET `rate_source` = 'RATE_TABLE' WHERE `currency` <> 'CNY';
@@ -1,104 +0,0 @@
-- ----------------------------
-- 客户管理 / 供应商管理 菜单按钮权限补全 + 普通角色(role_id=2)初始授权
-- 幂等:可重复执行;已有记录不会重复插入
-- 菜单结构:
-- 2309 客户/供应商管理(M)
-- 2313 客户管理(C) perms -> customersupplier:customerinfo:list
-- 2422 客户余额管理(C,隐藏,静态路由页面,仅作收款审核按钮挂载点)
-- 2423 收款审核(F) customer:balance:review
-- [新增] 客户查询/新增/修改/删除/导出 5个F按钮
-- 2314 供应商管理(C) perms -> customersupplier:supplierinfo:list
-- [新增] 供应商查询/新增/修改/删除/导出 5个F按钮
-- ----------------------------
-- 1. 两个业务菜单补 list 权限标识(后端列表接口 @PreAuthorize 要求)
UPDATE `sys_menu` SET `perms` = 'customersupplier:customerinfo:list'
WHERE `menu_id` = 2313 AND (`perms` IS NULL OR `perms` = '');
UPDATE `sys_menu` SET `perms` = 'customersupplier:supplierinfo:list'
WHERE `menu_id` = 2314 AND (`perms` IS NULL OR `perms` = '');
-- 2. 客户余额管理为静态路由页面(/customersupplier/customer-money),侧边栏不应显示,避免死链
UPDATE `sys_menu` SET `visible` = '1'
WHERE `menu_id` = 2422 AND `visible` = '0';
-- 3. 补全客户管理 5 个按钮(F),按 perms 幂等
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '客户查询', 2313, 1, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:customerinfo:query', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:customerinfo:query' AND `parent_id` = 2313);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '客户新增', 2313, 2, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:customerinfo:add', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:customerinfo:add' AND `parent_id` = 2313);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '客户修改', 2313, 3, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:customerinfo:edit', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:customerinfo:edit' AND `parent_id` = 2313);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '客户删除', 2313, 4, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:customerinfo:remove', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:customerinfo:remove' AND `parent_id` = 2313);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '客户导出', 2313, 5, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:customerinfo:export', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:customerinfo:export' AND `parent_id` = 2313);
-- 4. 补全供应商管理 5 个按钮(F),按 perms 幂等
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '供应商查询', 2314, 1, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:supplierinfo:query', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:supplierinfo:query' AND `parent_id` = 2314);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '供应商新增', 2314, 2, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:supplierinfo:add', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:supplierinfo:add' AND `parent_id` = 2314);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '供应商修改', 2314, 3, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:supplierinfo:edit', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:supplierinfo:edit' AND `parent_id` = 2314);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '供应商删除', 2314, 4, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:supplierinfo:remove', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:supplierinfo:remove' AND `parent_id` = 2314);
INSERT INTO `sys_menu`
(`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`,
`menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '供应商导出', 2314, 5, '', '', '', 1, 0, 'F', '0', '0', 'customersupplier:supplierinfo:export', '#', 'admin', NOW(), ''
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `perms` = 'customersupplier:supplierinfo:export' AND `parent_id` = 2314);
-- 5. 普通角色(role_id=2) 授权:目录 + 2个菜单 + 余额隐藏菜单 + 收款审核 + 10个新按钮(幂等)
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 2, m.`menu_id`
FROM `sys_menu` m
WHERE (
m.`menu_id` IN (2309, 2313, 2314, 2422, 2423)
OR m.`perms` IN (
'customersupplier:customerinfo:query', 'customersupplier:customerinfo:add',
'customersupplier:customerinfo:edit', 'customersupplier:customerinfo:remove',
'customersupplier:customerinfo:export',
'customersupplier:supplierinfo:query', 'customersupplier:supplierinfo:add',
'customersupplier:supplierinfo:edit', 'customersupplier:supplierinfo:remove',
'customersupplier:supplierinfo:export'
)
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` rm WHERE rm.`role_id` = 2 AND rm.`menu_id` = m.`menu_id`
);
@@ -1,90 +0,0 @@
DROP TABLE IF EXISTS `ctr_customer_account`;
CREATE TABLE `ctr_customer_account` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
`balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '账户余额',
`frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额',
`total_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '总额度',
`extra_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '额外额度',
`used_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已用额度',
`tax` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '税金',
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_customer_currency` (`customer_id`, `currency`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户余额表';
DROP TABLE IF EXISTS `ctr_customer_receipt`;
CREATE TABLE `ctr_customer_receipt` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`receipt_no` VARCHAR(64) NOT NULL COMMENT '收款单号',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) DEFAULT NULL COMMENT '客户账户ID',
`receipt_type` VARCHAR(32) NOT NULL DEFAULT 'PREPAY' COMMENT '收款类型:PREPAY预充值/REPAY还款核销/MIXED混合',
`amount` DECIMAL(18,2) NOT NULL COMMENT '收款金额',
`allocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已核销金额',
`unallocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '待核销金额',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
`pay_method` VARCHAR(32) DEFAULT NULL COMMENT '收款方式:BANK_TRANSFER/ALIPAY/WECHAT/CASH/OTHER',
`bank_transaction_no` VARCHAR(64) DEFAULT NULL COMMENT '银行流水号/支付平台流水号',
`received_at` DATETIME NOT NULL COMMENT '收款日期',
`status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING待确认/CONFIRMED已确认/CANCELLED已取消',
`confirmed_at` DATETIME DEFAULT NULL COMMENT '确认时间',
`confirmed_by` BIGINT(20) DEFAULT NULL COMMENT '确认人',
`invoice_status` VARCHAR(16) NOT NULL DEFAULT 'NONE' COMMENT '开票状态:NONE未开/PART部分/ALL全部',
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_receipt_no` (`receipt_no`),
KEY `idx_customer_time` (`customer_id`, `received_at`),
KEY `idx_account` (`account_id`),
KEY `idx_status` (`status`),
KEY `idx_bank_transaction_no` (`bank_transaction_no`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户收款表';
CREATE TABLE `ctr_customer_balance_flow` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`flow_no` VARCHAR(64) NOT NULL COMMENT '流水号',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) NOT NULL COMMENT '客户账户ID',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种',
`biz_type` VARCHAR(32) NOT NULL COMMENT '业务类型:RECEIPT收款/BILL_PAY账单支付/REFUND退款/ADJUST手工调整/FREEZE冻结/UNFREEZE解冻',
`biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID,如收款单ID、账单ID',
`biz_no` VARCHAR(64) DEFAULT NULL COMMENT '关联业务单号',
`direction` TINYINT(1) NOT NULL COMMENT '变动方向:1增加,-1减少',
`amount` DECIMAL(18,2) NOT NULL COMMENT '变动金额',
`before_balance` DECIMAL(18,2) NOT NULL COMMENT '变动前余额',
`after_balance` DECIMAL(18,2) NOT NULL COMMENT '变动后余额',
`before_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动前冻结余额',
`after_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动后冻结余额',
`operator_id` BIGINT(20) DEFAULT NULL COMMENT '操作人',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_flow_no` (`flow_no`),
KEY `idx_customer_time` (`customer_id`, `create_time`),
KEY `idx_account_time` (`account_id`, `create_time`),
KEY `idx_biz` (`biz_type`, `biz_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='余额流水表';
-- 收款单附件复用客户附件表:attachment_type='3'(其他),biz_id 关联 ctr_customer_receipt.id
ALTER TABLE `ctr_customer_attachment`
ADD COLUMN `biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID(如收款单ID,attachment_type=3时使用)' AFTER `attachment_type`,
ADD KEY `idx_biz_id` (`biz_id`);
@@ -1,37 +0,0 @@
-- =============================================================
-- 客户/供应商数据权限角色:
-- 销售(sales) data_scope=5 仅本人:只看 sales_user_id/purchaser_user_id=自己 的数据
-- 销售经理(sales_mgr) data_scope=3 本部门:看所属部门人员的客户/供应商
-- 超级管理员(admin) data_scope=1 全部数据,不受限。
-- 菜单授权:客户/供应商管理目录 + 客户管理 + 供应商管理 + 客户余额管理 + 查询/新增/修改/导出按钮
-- 幂等:角色已存在则只更新 data_scope,菜单授权重复执行无副作用
-- 2026-09-21
-- =============================================================
SET NAMES utf8mb4;
INSERT INTO `sys_role`
(`role_name`, `role_key`, `role_sort`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`,
`status`, `del_flag`, `create_by`, `create_time`, `remark`)
SELECT '销售', 'sales', 10, '5', 1, 1, '0', '0', 'admin', NOW(), '仅本人数据:只能看自己负责的客户/供应商'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `role_key` = 'sales' AND `del_flag` = '0');
INSERT INTO `sys_role`
(`role_name`, `role_key`, `role_sort`, `data_scope`, `menu_check_strictly`, `dept_check_strictly`,
`status`, `del_flag`, `create_by`, `create_time`, `remark`)
SELECT '销售经理', 'sales_mgr', 11, '3', 1, 1, '0', '0', 'admin', NOW(), '本部门数据:可查看本部门销售负责的客户/供应商'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `role_key` = 'sales_mgr' AND `del_flag` = '0');
-- 角色数据范围以本文件为准(重复执行可纠偏)
UPDATE `sys_role` SET `data_scope` = '5' WHERE `role_key` = 'sales' AND `del_flag` = '0';
UPDATE `sys_role` SET `data_scope` = '3' WHERE `role_key` = 'sales_mgr' AND `del_flag` = '0';
-- 菜单授权(2309 目录 / 2313 客户管理 / 2314 供应商管理 / 2422 客户余额管理 / 2424~2433 操作按钮)
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT r.role_id, m.menu_id
FROM `sys_role` r
JOIN `sys_menu` m ON m.menu_id IN (2309, 2313, 2314, 2422, 2424, 2425, 2426, 2428, 2429, 2430, 2431, 2433)
WHERE r.`role_key` IN ('sales', 'sales_mgr')
AND r.`del_flag` = '0'
AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id);
@@ -1,22 +0,0 @@
-- customer fund biz_type dict (CustomerFundBizType)
-- dict_type: customer_fund_biz_type
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
SELECT '客户资金业务类型', 'customer_fund_biz_type', '0', 'admin', sysdate(), 'ICustomerAccountApi bizType'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'customer_fund_biz_type');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 1, '收款', 'RECEIPT', 'customer_fund_biz_type', '', 'success', 'N', '0', 'admin', sysdate(), NULL
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_fund_biz_type' AND dict_value = 'RECEIPT');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 2, '应收账单', 'AR_BILL', 'customer_fund_biz_type', '', 'primary', 'N', '0', 'admin', sysdate(), NULL
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_fund_biz_type' AND dict_value = 'AR_BILL');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 3, '账单核销', 'BILL_PAY', 'customer_fund_biz_type', '', 'danger', 'N', '0', 'admin', sysdate(), NULL
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_fund_biz_type' AND dict_value = 'BILL_PAY');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
SELECT 4, '计费订单', 'ORDER', 'customer_fund_biz_type', '', 'warning', 'Y', '0', 'admin', sysdate(), 'TMS bill sync occupy/release'
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'customer_fund_biz_type' AND dict_value = 'ORDER');
@@ -1,15 +0,0 @@
-- =============================================================
-- 客户授信到期失效 - 纳入 RuoYi 定时任务菜单(Quartz / sys_job)
-- 调用目标:customerCreditTask.expireCredits()
-- cron:每天 01:30(失效日当天仍有效,严格按「早于今天」判断)
-- 幂等:已存在同名调用目标则跳过
-- =============================================================
INSERT INTO sys_job
(job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
SELECT '客户授信到期失效', 'DEFAULT', 'customerCreditTask.expireCredits()',
'0 30 1 * * ?', '3', '1', '0', 'admin', NOW(),
'每天01:30扫描已到期的信用/临时额度并物化失效(额度清零、释放额度池、写EXPIRE流水);失效日当天仍有效'
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM sys_job WHERE invoke_target = 'customerCreditTask.expireCredits()'
);
@@ -1,33 +0,0 @@
-- =============================================================
-- 表名按模块缩写重命名
-- 供应商模块:bms_supplier* -> sup_supplier*
-- 客户模块: bms_customer* -> ctr_customer*
-- customer_* -> ctr_customer_*
-- 2026-09-24
-- 说明:
-- 1. 14 张表均无外键约束(子表通过 customer_id/supplier_id 逻辑关联),可直接 RENAME;
-- 2. RENAME TABLE 为单条 DDL,MySQL 原子执行;
-- 3. 同步更新代码生成器元数据 gen_table.table_name;
-- 4. 注意:bms_customer_attachment.biz_type 中的枚举值 'customer_receipt' 是业务类型,
-- 不是表名,保持不变。
-- =============================================================
SET NAMES utf8mb4;
RENAME TABLE
bms_supplier TO sup_supplier,
bms_supplier_attachment TO sup_supplier_attachment,
bms_supplier_company TO sup_supplier_company,
bms_supplier_contact TO sup_supplier_contact,
bms_customer TO ctr_customer,
bms_customer_attachment TO ctr_customer_attachment,
bms_customer_company TO ctr_customer_company,
bms_customer_contact TO ctr_customer_contact,
customer_account TO ctr_customer_account,
customer_balance_flow TO ctr_customer_balance_flow,
customer_credit_apply TO ctr_customer_credit_apply,
customer_credit_flow TO ctr_customer_credit_flow,
customer_credit_grant TO ctr_customer_credit_grant,
customer_receipt TO ctr_customer_receipt;
-- 代码生成器元数据(类名 BmsCustomer 不变,仅表名同步)
UPDATE gen_table SET table_name = 'ctr_customer' WHERE table_name = 'bms_customer';
@@ -1,76 +0,0 @@
-- =============================================================
-- 角色额度池 + 客户信用额度有效期 改造
-- 1. ctr_customer_account 新增信用额度生效/失效日期(与临时额度口径一致,到期次日自动清零)
-- 2. ctr_customer_credit_apply 新增 approve_role_id,记录审批占用的额度池角色
-- 3. ctr_customer_credit_flow 新增 role_id,流水留痕额度池归属角色
-- 4. 新表 sys_role_credit_quota:管理员为角色设置的可分配额度总额(额度池)
-- 5. 新表 ctr_customer_credit_grant:审批增量额度的占用台账(池余额=该表remaining求和)
-- 2026-09-20
-- 说明:ALTER 语句非自动幂等,若字段/表已存在,对应语句会报 Duplicate/already exists,忽略即可
-- =============================================================
SET NAMES utf8mb4;
-- -------------------------------------------------------------
-- 1. ctr_customer_account:信用额度有效期
-- -------------------------------------------------------------
ALTER TABLE `ctr_customer_account`
ADD COLUMN `credit_effective_date` DATE DEFAULT NULL COMMENT '信用额度生效日期' AFTER `total_credit`,
ADD COLUMN `credit_expire_date` DATE DEFAULT NULL COMMENT '信用额度失效日期(空=长期;到期次日清零)' AFTER `credit_effective_date`;
-- -------------------------------------------------------------
-- 2. ctr_customer_credit_apply / ctr_customer_credit_flow:额度池归属
-- -------------------------------------------------------------
ALTER TABLE `ctr_customer_credit_apply`
ADD COLUMN `approve_role_id` BIGINT(20) DEFAULT NULL COMMENT '审批占用的额度池角色ID(NULL=超管审批不占池)' AFTER `approve_user_id`;
ALTER TABLE `ctr_customer_credit_flow`
ADD COLUMN `role_id` BIGINT(20) DEFAULT NULL COMMENT '额度池角色ID(审批调整流水留痕;NULL=超管/系统)' AFTER `operator_id`;
-- -------------------------------------------------------------
-- 3. 角色额度池
-- 一个角色一行;没有记录视为额度 0(该角色用户不能审批任何增量授信)
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `sys_role_credit_quota` (
`role_id` BIGINT(20) NOT NULL COMMENT '角色ID(sys_role.role_id)',
`total_quota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '可分配额度总额(CNY)',
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色可分配授信额度池';
-- -------------------------------------------------------------
-- 4. 额度分配台账
-- 审批通过的净增额度在此占一行(占用角色池);调减/到期按 FIFO 核销行余额。
-- 角色池已用 = SUM(remaining WHERE role_id=? AND status='0')
-- role_id 为 NULL 表示超管审批(不占池)或历史/建档直配额度。
-- -------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `ctr_customer_credit_grant` (
`grant_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '台账ID',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) NOT NULL COMMENT '客户账户ID',
`role_id` BIGINT(20) DEFAULT NULL COMMENT '占用的额度池角色ID(NULL=超管/不占池)',
`approve_user_id` BIGINT(20) DEFAULT NULL COMMENT '审批人ID',
`apply_id` BIGINT(20) DEFAULT NULL COMMENT '额度申请单ID',
`flow_id` BIGINT(20) DEFAULT NULL COMMENT '额度流水ID',
`credit_type` VARCHAR(16) NOT NULL COMMENT '额度类型:CREDIT信用额度 TEMP临时额度',
`amount` DECIMAL(18,2) NOT NULL COMMENT '原始占用池金额',
`remaining` DECIMAL(18,2) NOT NULL COMMENT '仍占用池的待释放余额',
`effective_date` DATE DEFAULT NULL COMMENT '生效日期',
`expire_date` DATE DEFAULT NULL COMMENT '失效日期',
`status` CHAR(1) NOT NULL DEFAULT '0' COMMENT '状态:0占用中 1已释放',
`release_time` DATETIME DEFAULT NULL COMMENT '全部释放时间',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0存在 2删除)',
PRIMARY KEY (`grant_id`),
KEY `idx_role_status` (`role_id`, `status`),
KEY `idx_customer_type_status` (`customer_id`, `credit_type`, `status`),
KEY `idx_apply` (`apply_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户授信额度分配台账(角色池占用明细)';
@@ -1,74 +0,0 @@
-- 假设开发库表里无重要数据,直接 ALTER;如有数据需先备份迁移
-- 1) 客户主表
ALTER TABLE ctr_customer MODIFY COLUMN customer_id varchar(32) NOT NULL COMMENT '客户ID(UUID)';
-- 2) 供应商主表
ALTER TABLE sup_supplier MODIFY COLUMN supplier_id varchar(32) NOT NULL COMMENT '供应商ID(UUID)';
select * from sys_menu
DROP TABLE IF EXISTS `sup_supplier`;
CREATE TABLE `sup_supplier` (
-- ========== 主键 ==========
`supplier_id` VARCHAR(32) NOT NULL AUTO_INCREMENT COMMENT '供应商ID',
-- ========== 供应商基本信息 ==========
`supplier_code` varchar(50) NOT NULL COMMENT '供应商编码',
`supplier_name` varchar(100) NOT NULL COMMENT '供应商名称',
`supplier_code_dw` varchar(50) DEFAULT '' COMMENT '对外代码',
`credit_code` varchar(18) DEFAULT '' COMMENT '统一社会信用代码',
-- ========== 业务类型(字典:生产商、代理商、个人、物流商等) ==========
`supplier_type` char(1) DEFAULT '0' COMMENT '供应商类型(0生产商 1代理商 2个人 3物流商 4其他)',
`is_enable` char(1) DEFAULT '0' COMMENT '启用状态(0正常 1停用)',
-- ========== 采购归属 ==========
`purchaser_user_id` varchar(64) DEFAULT '' COMMENT '采购员用户ID',
`purchaser_user` varchar(50) DEFAULT '' COMMENT '采购员姓名',
-- ========== 财务人员(采购侧) ==========
`settlement_user_id` varchar(64) DEFAULT '' COMMENT '结算员用户ID',
`settlement_user` varchar(50) DEFAULT '' COMMENT '结算员姓名',
`service_user_id` varchar(64) DEFAULT '' COMMENT '跟单员用户ID',
`service_user` varchar(50) DEFAULT '' COMMENT '跟单员姓名',
-- ========== 财务信息(应付侧) ==========
`ed` decimal(15,2) DEFAULT 0.00 COMMENT '应付额度(元)', -- 供应商侧:可欠款上限
`zq` int(11) DEFAULT 0 COMMENT '应付账期(天)', -- 供应商侧:付款账期
`settlement_type` char(1) DEFAULT '0' COMMENT '结算方式(0月结 1周结 2日结 3票结)',
`temp_ed` decimal(15,2) DEFAULT 0.00 COMMENT '临时额度(元)',
`account_balance` decimal(15,2) DEFAULT 0.00 COMMENT '应付余额(元)', -- 累计欠款余额(正数表示欠供应商的钱)
`foreign_currency_balance` decimal(15,2) DEFAULT 0.00 COMMENT '外币应付余额(元)', -- 外币欠款余额
`credit_ed` decimal(15,2) DEFAULT 0.00 COMMENT '信用额度(元)',
-- ========== 供应商特有字段 ==========
`weight_threshold` decimal(15,2) DEFAULT 0.00 COMMENT '重量阈值(kg)',
`throw_ratio` decimal(15,2) DEFAULT 0.00 COMMENT '抛比(%)',
`cooperation_start_date` date DEFAULT NULL COMMENT '合作开始日期',
`cooperation_status` char(1) DEFAULT '0' COMMENT '合作状态(0正常 1暂停 2终止)',
-- ========== 绑定的产品/服务 ==========
`channel_ids` varchar(1000) DEFAULT NULL COMMENT '绑定的渠道/服务ID(多个用逗号分隔)',
-- ========== 备注 ==========
`remark` varchar(500) DEFAULT NULL COMMENT '备注说明',
-- ========== 若依标准审计字段 ==========
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标记(0正常 2删除)',
-- ========== 主键 & 索引 ==========
PRIMARY KEY (`supplier_id`)
-- UNIQUE KEY `uk_supplier_code` (`supplier_code`),
-- UNIQUE KEY `uk_credit_code` (`credit_code`),
-- KEY `idx_purchaser_user_id` (`purchaser_user_id`),
-- KEY `idx_supplier_type` (`supplier_type`),
-- KEY `idx_is_enable` (`is_enable`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='供应商主表';