Merge remote-tracking branch 'origin/feature/20261103-bfi-warehouse-material' into feature/20261103-bfi-warehouse-material
This commit is contained in:
+68
@@ -0,0 +1,68 @@
|
||||
-- 正式结算单:新增金蝶冲销状态字段
|
||||
-- 列名遵循 MyBatis-Plus 驼峰转下划线默认映射(kingdeeWriteOffStatus -> kingdee_write_off_status,kingdeeWriteOffTime -> kingdee_write_off_time);
|
||||
-- 若存在早期脚本误建的旧列名 kingdee_writeoff_status / kingdee_writeoff_time 则先重命名,否则按缺失新增
|
||||
-- 结算单列表展示金蝶侧旧应付/应收单冲销状态:定时任务按 A102-4/A302-4 hadwrittenoff 批量回写,
|
||||
-- 选单预检/重推闸门实时查询后顺带回写;默认 unwrittenoff-未冲销(金蝶单据在未冲销前即视为未冲销,避免首跑全量初始化回写),writtenoff-已冲销(部分冲销视同已冲销)
|
||||
|
||||
-- ==================== kingdee_write_off_status ====================
|
||||
-- 旧列名重命名(早期脚本版本,不存在则跳过)
|
||||
SET @old_col := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_formal_settlement'
|
||||
AND COLUMN_NAME = 'kingdee_writeoff_status'
|
||||
);
|
||||
SET @ddl_sql = IF(@old_col = 1,
|
||||
'ALTER TABLE `blade_formal_settlement` CHANGE COLUMN `kingdee_writeoff_status` `kingdee_write_off_status` varchar(20) COLLATE utf8mb4_general_ci DEFAULT ''unwrittenoff'' COMMENT ''金蝶冲销状态:unwrittenoff-未冲销(默认) writtenoff-已冲销''',
|
||||
'SELECT 1');
|
||||
PREPARE ddl_stmt FROM @ddl_sql;
|
||||
EXECUTE ddl_stmt;
|
||||
DEALLOCATE PREPARE ddl_stmt;
|
||||
|
||||
-- 缺失则新增(支持重复执行)
|
||||
SET @ddl_sql = (
|
||||
SELECT IF(COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_formal_settlement` ADD COLUMN `kingdee_write_off_status` varchar(20) COLLATE utf8mb4_general_ci DEFAULT ''unwrittenoff'' COMMENT ''金蝶冲销状态:unwrittenoff-未冲销(默认) writtenoff-已冲销'' AFTER `kingdee_fail_reason`',
|
||||
'SELECT 1')
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'blade_formal_settlement'
|
||||
AND COLUMN_NAME = 'kingdee_write_off_status'
|
||||
);
|
||||
PREPARE ddl_stmt FROM @ddl_sql;
|
||||
EXECUTE ddl_stmt;
|
||||
DEALLOCATE PREPARE ddl_stmt;
|
||||
|
||||
-- 存量已同步结算单回填默认未冲销(可重复执行:仅补 NULL 行;未同步单据保持默认值即可,前端按同步状态展示'-')
|
||||
UPDATE `blade_formal_settlement`
|
||||
SET `kingdee_write_off_status` = 'unwrittenoff'
|
||||
WHERE `kingdee_write_off_status` IS NULL
|
||||
AND `kingdee_sync_status` = 'synced'
|
||||
AND `is_deleted` = 0;
|
||||
|
||||
-- ==================== kingdee_write_off_time ====================
|
||||
-- 旧列名重命名(早期脚本版本,不存在则跳过)
|
||||
SET @old_col := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_formal_settlement'
|
||||
AND COLUMN_NAME = 'kingdee_writeoff_time'
|
||||
);
|
||||
SET @ddl_sql = IF(@old_col = 1,
|
||||
'ALTER TABLE `blade_formal_settlement` CHANGE COLUMN `kingdee_writeoff_time` `kingdee_write_off_time` datetime DEFAULT NULL COMMENT ''金蝶冲销状态确认时间(定时回写/预检回写时间)''',
|
||||
'SELECT 1');
|
||||
PREPARE ddl_stmt FROM @ddl_sql;
|
||||
EXECUTE ddl_stmt;
|
||||
DEALLOCATE PREPARE ddl_stmt;
|
||||
|
||||
-- 缺失则新增(支持重复执行)
|
||||
SET @ddl_sql = (
|
||||
SELECT IF(COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_formal_settlement` ADD COLUMN `kingdee_write_off_time` datetime DEFAULT NULL COMMENT ''金蝶冲销状态确认时间(定时回写/预检回写时间)'' AFTER `kingdee_write_off_status`',
|
||||
'SELECT 1')
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'blade_formal_settlement'
|
||||
AND COLUMN_NAME = 'kingdee_write_off_time'
|
||||
);
|
||||
PREPARE ddl_stmt FROM @ddl_sql;
|
||||
EXECUTE ddl_stmt;
|
||||
DEALLOCATE PREPARE ddl_stmt;
|
||||
@@ -1,44 +0,0 @@
|
||||
-- 先票后款改造(收票登记A303-2 + 付款结算单A102-2 + A302-6指定应付)
|
||||
-- ① blade_invoice_receipt 新增 supplier_code:往来户=发票销售方在金蝶的供应商代码(A901-1),保存时尽力回填、推送前强校验
|
||||
-- ② 付款结算单(payment_settlement)下新增「发票登记」按钮权限:结算单审批后发票登记关联收票单并推送指定应付
|
||||
-- 幂等可重复执行:列查 information_schema,菜单 NOT EXISTS 防重
|
||||
|
||||
-- ① 收票登记表新增 supplier_code 列
|
||||
SET @ddl = (
|
||||
SELECT IF(
|
||||
(SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'blade_invoice_receipt'
|
||||
AND COLUMN_NAME = 'supplier_code') = 0,
|
||||
'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `supplier_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''往来户金蝶供应商代码(发票销售方,A901-1,保存时尽力回填、推送前强校验)'' AFTER `payee_name`',
|
||||
'SELECT 1'));
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ② 付款结算单「发票登记」按钮权限(先票后款路径B:列表发票登记 → 关联收票单 → 推送 A302-6 指定应付)
|
||||
INSERT INTO `blade_menu`
|
||||
(`id`,`parent_id`,`code`,`name`,`alias`,`path`,`source`,`sort`,`category`,`action`,`is_open`,`component`,`remark`,`is_deleted`)
|
||||
SELECT
|
||||
2090000000000002300,
|
||||
p.id,
|
||||
'payment_settlement_invoice_register',
|
||||
'发票登记',
|
||||
'payment_settlement_invoice_register',
|
||||
'',
|
||||
'',
|
||||
2,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
NULL,
|
||||
'先票后款:结算单审批后发票登记关联收票单并推送金蝶指定应付',
|
||||
0
|
||||
FROM `blade_menu` p
|
||||
WHERE p.`code` = 'payment_settlement'
|
||||
AND p.`is_deleted` = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `blade_menu` x
|
||||
WHERE x.`code` = 'payment_settlement_invoice_register' AND x.`is_deleted` = 0
|
||||
)
|
||||
LIMIT 1;
|
||||
@@ -1,20 +0,0 @@
|
||||
-- 金蝶分录仓储大类(A102-2/A302-2/A103-1 分录拆分按费用项档案分类编码判定仓储大类,无名称关键字兜底)。
|
||||
-- ① 业务字典 fee_category 新增子项 A05 仓储;② 费用项档案仓储类费用项归入 A05(分类生效前提)。
|
||||
-- id 由 UUID_SHORT() 动态生成,幂等可重复执行。
|
||||
|
||||
-- ① 业务字典 fee_category 新增子项:A05 仓储
|
||||
INSERT INTO blade_dict_biz (id, tenant_id, parent_id, code, dict_key, dict_value, sort, remark, is_sealed, status, is_deleted)
|
||||
SELECT UUID_SHORT(), '000000',
|
||||
(SELECT id FROM blade_dict_biz WHERE code = 'fee_category' AND dict_key = '-1' AND tenant_id = '000000' AND is_deleted = 0 LIMIT 1),
|
||||
'fee_category', 'A05', '仓储', 1, '金蝶分录仓储大类', 0, 1, 0
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM blade_dict_biz
|
||||
WHERE code = 'fee_category' AND dict_key = 'A05' AND tenant_id = '000000' AND is_deleted = 0
|
||||
);
|
||||
|
||||
# -- ② 费用项档案:仓储类费用项归入 A05(已执行则更新 0 行,幂等)
|
||||
# UPDATE blade_fee_item
|
||||
# SET fee_category = 'A05'
|
||||
# WHERE is_deleted = 0
|
||||
# AND fee_category <> 'A05'
|
||||
# AND (name LIKE '%仓储%' OR name LIKE '%堆存%' OR name LIKE '%保管%');
|
||||
Reference in New Issue
Block a user