Merge branch 'master' of http://git.lionquexpress.com/wuweihua/BMS
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
-- 3) 菜单与授权:客户账单(2435) / 账单详情(2436) / 余额核销(2437) / 反核销(2438)
|
||||
-- =====================================================================
|
||||
|
||||
-- 余额核销单:用客户账户余额核销应收账单(与 ar_receipt_writeoff 收款核销并列,
|
||||
-- 两者共享 ar_bill.written_off_amount / unwritten_amount 缓存字段)
|
||||
-- 余额核销单:用客户账户余额核销应收账单,
|
||||
-- 与客户账户余额流水配合,共享 ar_bill.written_off_amount / unwritten_amount 缓存字段
|
||||
CREATE TABLE IF NOT EXISTS ar_balance_writeoff (
|
||||
writeoff_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '余额核销ID',
|
||||
writeoff_no VARCHAR(50) NOT NULL COMMENT '核销单号(BWO开头)',
|
||||
|
||||
@@ -98,51 +98,6 @@ CREATE TABLE IF NOT EXISTS ar_bill_detail_fee (
|
||||
CONSTRAINT fk_ar_detail_fee_detail FOREIGN KEY (detail_id) REFERENCES ar_bill_detail (detail_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收账单费用快照';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ar_receipt (
|
||||
receipt_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '收款ID',
|
||||
receipt_no VARCHAR(50) NOT NULL COMMENT '收款单号',
|
||||
customer_id BIGINT(20) NOT NULL COMMENT '付款客户ID',
|
||||
receipt_date DATE NOT NULL COMMENT '到账日期',
|
||||
currency VARCHAR(10) NOT NULL DEFAULT 'CNY' COMMENT '币种',
|
||||
receipt_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '到账总额',
|
||||
unallocated_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '未分配金额缓存',
|
||||
payment_method VARCHAR(30) NOT NULL COMMENT '到账方式',
|
||||
bank_reference VARCHAR(100) DEFAULT NULL COMMENT '银行流水号或第三方交易号',
|
||||
status VARCHAR(30) NOT NULL COMMENT 'REGISTERED/PARTIAL_WRITTEN_OFF/WRITTEN_OFF/CANCELLED',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT '收款备注或取消原因',
|
||||
create_by VARCHAR(64) NOT NULL COMMENT '创建人',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NOT NULL COMMENT '更新人',
|
||||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (receipt_id),
|
||||
UNIQUE KEY uk_ar_receipt_no (receipt_no),
|
||||
UNIQUE KEY uk_ar_payment_reference (payment_method, bank_reference),
|
||||
KEY idx_ar_receipt_customer_date (customer_id, receipt_date),
|
||||
KEY idx_ar_receipt_status (status)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收收款表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ar_receipt_writeoff (
|
||||
writeoff_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '核销ID',
|
||||
receipt_id BIGINT(20) NOT NULL COMMENT '收款ID',
|
||||
ar_bill_id BIGINT(20) NOT NULL COMMENT '应收账单ID',
|
||||
writeoff_no VARCHAR(50) NOT NULL COMMENT '核销单号',
|
||||
writeoff_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '本次核销金额',
|
||||
currency VARCHAR(10) NOT NULL COMMENT '币种',
|
||||
writeoff_date DATE NOT NULL COMMENT '核销日期',
|
||||
status VARCHAR(30) NOT NULL COMMENT 'EFFECTIVE/CANCELLED',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT '核销备注或取消原因',
|
||||
create_by VARCHAR(64) NOT NULL COMMENT '创建人',
|
||||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||||
cancel_by VARCHAR(64) DEFAULT NULL COMMENT '取消人',
|
||||
cancel_time DATETIME DEFAULT NULL COMMENT '取消时间',
|
||||
PRIMARY KEY (writeoff_id),
|
||||
UNIQUE KEY uk_ar_writeoff_no (writeoff_no),
|
||||
KEY idx_ar_writeoff_receipt (receipt_id, status),
|
||||
KEY idx_ar_writeoff_bill (ar_bill_id, status),
|
||||
CONSTRAINT fk_ar_writeoff_receipt FOREIGN KEY (receipt_id) REFERENCES ar_receipt (receipt_id),
|
||||
CONSTRAINT fk_ar_writeoff_bill FOREIGN KEY (ar_bill_id) REFERENCES ar_bill (ar_bill_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收收款核销表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ar_bill_export (
|
||||
export_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '导出ID',
|
||||
ar_bill_id BIGINT(20) NOT NULL COMMENT '应收账单ID',
|
||||
@@ -167,9 +122,9 @@ CREATE TABLE IF NOT EXISTS ar_bill_export (
|
||||
CREATE TABLE IF NOT EXISTS ar_bill_log (
|
||||
log_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||||
ar_bill_id BIGINT(20) DEFAULT NULL COMMENT '账单ID',
|
||||
object_type VARCHAR(40) NOT NULL COMMENT 'BILL/RECEIPT/WRITEOFF/EXPORT',
|
||||
object_type VARCHAR(40) NOT NULL COMMENT 'BILL/EXPORT/BALANCE_WRITEOFF',
|
||||
object_id VARCHAR(64) NOT NULL COMMENT '通用对象ID',
|
||||
operation_type VARCHAR(40) NOT NULL COMMENT '操作类型',
|
||||
operation_type VARCHAR(40) NOT NULL COMMENT '操作类型:CONFIRM/VOID/EXPORT/BALANCE_WRITEOFF/CANCEL_BALANCE_WRITEOFF',
|
||||
operation_desc VARCHAR(500) DEFAULT NULL COMMENT '操作说明',
|
||||
from_status VARCHAR(30) DEFAULT NULL COMMENT '变更前状态',
|
||||
to_status VARCHAR(30) DEFAULT NULL COMMENT '变更后状态',
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
-- 应收日志兼容余额核销:仅更新字段注释,不改变字段类型和历史数据
|
||||
ALTER TABLE ar_bill_log
|
||||
MODIFY COLUMN object_type VARCHAR(40) NOT NULL
|
||||
COMMENT 'BILL/EXPORT/BALANCE_WRITEOFF',
|
||||
MODIFY COLUMN operation_type VARCHAR(40) NOT NULL
|
||||
COMMENT '操作类型:CONFIRM/VOID/EXPORT/BALANCE_WRITEOFF/CANCEL_BALANCE_WRITEOFF';
|
||||
@@ -2,7 +2,7 @@
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
SELECT 2400, N'应收管理', 0, 10, 'ar', NULL, '', '', 1, 0, 'M', '0', '0', '', 'money', 'admin', sysdate(), N'应收账单、收款与核销'
|
||||
SELECT 2400, N'应收管理', 0, 10, 'ar', NULL, '', '', 1, 0, 'M', '0', '0', '', 'money', 'admin', sysdate(), N'应收账单、余额核销与日志'
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2400);
|
||||
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
@@ -24,22 +24,6 @@ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component,
|
||||
SELECT 2406, N'导出账单', 2401, 5, '', NULL, 1, 0, 'F', '0', '0', 'ar:bill:export', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2406);
|
||||
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
SELECT 2410, N'应收收款', 2400, 2, 'receipt', 'ar/receipt/index', 'ArReceipt', 1, 0, 'C', '0', '0', 'ar:receipt:list', 'money', 'admin', sysdate(), N'收款登记与核销'
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2410);
|
||||
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)
|
||||
SELECT 2411, N'收款登记', 2410, 1, '', NULL, 1, 0, 'F', '0', '0', 'ar:receipt:add', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2411);
|
||||
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)
|
||||
SELECT 2412, N'批量核销', 2410, 2, '', NULL, 1, 0, 'F', '0', '0', 'ar:receipt:writeoff', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2412);
|
||||
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)
|
||||
SELECT 2413, N'取消核销', 2410, 3, '', NULL, 1, 0, 'F', '0', '0', 'ar:receipt:cancel', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2413);
|
||||
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)
|
||||
SELECT 2414, N'取消收款', 2410, 4, '', NULL, 1, 0, 'F', '0', '0', 'ar:receipt:cancel', '#', 'admin', sysdate()
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2414);
|
||||
|
||||
INSERT INTO sys_menu (
|
||||
menu_id, menu_name, parent_id, order_num, path, component,
|
||||
is_frame, is_cache, menu_type, visible, status, perms, icon,
|
||||
@@ -53,5 +37,5 @@ FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2420);
|
||||
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT 1, m.menu_id FROM (SELECT 2400 AS menu_id UNION SELECT 2401 UNION SELECT 2402 UNION SELECT 2403 UNION SELECT 2404 UNION SELECT 2405 UNION SELECT 2406 UNION SELECT 2410 UNION SELECT 2411 UNION SELECT 2412 UNION SELECT 2413 UNION SELECT 2414 UNION SELECT 2420) m
|
||||
SELECT 1, m.menu_id FROM (SELECT 2400 AS menu_id UNION SELECT 2401 UNION SELECT 2402 UNION SELECT 2403 UNION SELECT 2404 UNION SELECT 2405 UNION SELECT 2406 UNION SELECT 2420) m
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
-- 应收收款独立模块下线
|
||||
-- 业务闭环改为:客户收款登记/审核 -> 客户余额 -> 余额核销账单。
|
||||
-- 本脚本会永久删除 ar_receipt、ar_receipt_writeoff 及其历史数据,执行前请确认已完成备份。
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- 先删除子表,再删除收款主表
|
||||
DROP TABLE IF EXISTS ar_receipt_writeoff;
|
||||
DROP TABLE IF EXISTS ar_receipt;
|
||||
|
||||
-- 删除应收管理下独立“应收收款”菜单及按钮权限
|
||||
DELETE FROM sys_role_menu WHERE menu_id IN (2410, 2411, 2412, 2413, 2414);
|
||||
DELETE FROM sys_menu WHERE menu_id IN (2410, 2411, 2412, 2413, 2414);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -0,0 +1,72 @@
|
||||
-- =============================================================
|
||||
-- 客户额度调整申请/审批表
|
||||
-- 信用额度、额外额度(临时额度)调整不再直接生效:
|
||||
-- 先申请(PENDING)-> 审批通过(APPROVED)后才真正调整 customer_account
|
||||
-- 并生成 customer_credit_flow 额度流水;可驳回(REJECTED)/撤销(CANCELLED)
|
||||
-- 2026-09-16
|
||||
-- =============================================================
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `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(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');
|
||||
@@ -0,0 +1,10 @@
|
||||
-- =============================================================
|
||||
-- 额度流水增加业务来源关联列
|
||||
-- 授信额度的占用/释放由各业务模块(应收账单确认、计费订单开单/计费变动)
|
||||
-- 通过客户资金公共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`;
|
||||
Reference in New Issue
Block a user