From 359c3c18e429c6724650dff06a9ffe63e880a09e Mon Sep 17 00:00:00 2001 From: wuweihua <88888888> Date: Sat, 14 Nov 2026 01:22:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B4=B9=E7=94=A8ID=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=B8=BALong=EF=BC=8C=E6=9B=B4=E6=96=B0=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=80=BB=E8=BE=91=E5=92=8CSQL=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bms/price/mapper/PrcPayBillFeeMapper.java | 2 +- .../service/impl/PayBillServiceImpl.java | 2 +- .../impl/PrcPayBillFeeServiceImpl.java | 4 +- .../mapper/price/PrcPayBillFeeMapper.xml | 2 +- .../20261113_uuid_to_bigint_order_bill.sql | 109 +++++++++--------- 5 files changed, 57 insertions(+), 62 deletions(-) diff --git a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPayBillFeeMapper.java b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPayBillFeeMapper.java index a9802717..1f63e115 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPayBillFeeMapper.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/mapper/PrcPayBillFeeMapper.java @@ -32,7 +32,7 @@ public interface PrcPayBillFeeMapper public int insertBatch(@Param("list") List fees); /** 把还没标明来源的费用,关联到本行主键 id。 */ - public int fillSourceIdByFeeIds(@Param("feeIds") List feeIds); + public int fillSourceIdByFeeIds(@Param("feeIds") List feeIds); /** * 删除一票订单上来源为计算的费用。提单分摊和人工费用保留。 diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PayBillServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PayBillServiceImpl.java index 98e92449..1d60762d 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PayBillServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PayBillServiceImpl.java @@ -582,7 +582,7 @@ public class PayBillServiceImpl implements IPayBillService adjust.setAmount(delta); adjust.setCurrency(line.getCurrency()); adjust.setFeeSource("MANUAL"); - adjust.setSourceId(source != null && source.getId() != null ? String.valueOf(source.getId()) : null); + adjust.setSourceId(source != null && source.getFeeId() != null ? String.valueOf(source.getFeeId()) : null); adjust.setRemark(open.getReason()); adjust.setSettleSupplierId(bill.getSupplierId()); adjust.setSettleSupplierName(bill.getSupplierName()); diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPayBillFeeServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPayBillFeeServiceImpl.java index d5a0d215..ba0a56d4 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPayBillFeeServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcPayBillFeeServiceImpl.java @@ -43,10 +43,10 @@ public class PrcPayBillFeeServiceImpl implements IPrcPayBillFeeService { List chunk = fees.subList(from, Math.min(from + BATCH_SIZE, fees.size())); payBillFeeMapper.insertBatch(chunk); - List ownIds = new ArrayList<>(); + List ownIds = new ArrayList<>(); for (PrcPayBillFee fee : chunk) { - if (fee != null && fee.getFeeId() != null && !fee.getFeeId().isBlank() + if (fee != null && fee.getFeeId() != null && (fee.getSourceId() == null || fee.getSourceId().isBlank())) { ownIds.add(fee.getFeeId()); diff --git a/bms-back/bms-system/src/main/resources/mapper/price/PrcPayBillFeeMapper.xml b/bms-back/bms-system/src/main/resources/mapper/price/PrcPayBillFeeMapper.xml index 67a227e9..a85492a3 100644 --- a/bms-back/bms-system/src/main/resources/mapper/price/PrcPayBillFeeMapper.xml +++ b/bms-back/bms-system/src/main/resources/mapper/price/PrcPayBillFeeMapper.xml @@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update prc_pay_bill_fee - set source_id = id + set source_id = cast(fee_id as char) where (source_id is null or source_id = '') and fee_id in #{feeId} diff --git a/bms-back/sql/20261113_uuid_to_bigint_order_bill.sql b/bms-back/sql/20261113_uuid_to_bigint_order_bill.sql index 68590fff..6e1fa102 100644 --- a/bms-back/sql/20261113_uuid_to_bigint_order_bill.sql +++ b/bms-back/sql/20261113_uuid_to_bigint_order_bill.sql @@ -8,6 +8,11 @@ -- FK盘点: fk_income_bill_order_bill, fk_income_bill_fee_order, fk_order_bill_ext_bill, fk_pay_bill_order_bill, fk_pay_bill_fee_order SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; +-- 提高 GROUP_CONCAT 长度,避免动态拼 SQL 被截断(默认 1024 会报 1064) +SET SESSION group_concat_max_len = 1024000; +-- 若上次中途失败/校对规则报错,先: +-- DROP TABLE IF EXISTS prc_order_bill_new, prc_income_bill_new, prc_income_bill_fee_new, prc_pay_bill_new, prc_pay_bill_fee_new; +-- DROP TABLE IF EXISTS mig_map_order_bill, mig_map_income_bill, mig_map_income_fee, mig_map_pay_bill, mig_map_pay_fee; -- ========== 0. 前置检查 ========== SELECT 'prc_order_bill' AS tbl, COUNT(*) AS cnt FROM prc_order_bill @@ -31,55 +36,55 @@ ORDER BY TABLE_NAME, CONSTRAINT_NAME; -- ========== 2. 映射表 ========== DROP TABLE IF EXISTS `mig_map_order_bill`; CREATE TABLE `mig_map_order_bill` ( - `old_id` varchar(36) NOT NULL, + `old_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `new_id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`old_id`), UNIQUE KEY `uk_new_id` (`new_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `mig_map_order_bill` (`old_id`) SELECT `bill_id` FROM `prc_order_bill` ORDER BY IFNULL(`create_time`, '1970-01-01'), `bill_id`; DROP TABLE IF EXISTS `mig_map_income_bill`; CREATE TABLE `mig_map_income_bill` ( - `old_id` varchar(36) NOT NULL, + `old_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `new_id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`old_id`), UNIQUE KEY `uk_new_id` (`new_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `mig_map_income_bill` (`old_id`) SELECT `income_bill_id` FROM `prc_income_bill` ORDER BY IFNULL(`create_time`, '1970-01-01'), `income_bill_id`; DROP TABLE IF EXISTS `mig_map_income_fee`; CREATE TABLE `mig_map_income_fee` ( - `old_id` varchar(36) NOT NULL, + `old_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `new_id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`old_id`), UNIQUE KEY `uk_new_id` (`new_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `mig_map_income_fee` (`old_id`) SELECT `fee_id` FROM `prc_income_bill_fee` ORDER BY IFNULL(`create_time`, '1970-01-01'), `fee_id`; DROP TABLE IF EXISTS `mig_map_pay_bill`; CREATE TABLE `mig_map_pay_bill` ( - `old_id` varchar(36) NOT NULL, + `old_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `new_id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`old_id`), UNIQUE KEY `uk_new_id` (`new_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `mig_map_pay_bill` (`old_id`) SELECT `pay_bill_id` FROM `prc_pay_bill` ORDER BY IFNULL(`create_time`, '1970-01-01'), `pay_bill_id`; DROP TABLE IF EXISTS `mig_map_pay_fee`; CREATE TABLE `mig_map_pay_fee` ( - `old_id` varchar(36) NOT NULL, + `old_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `new_id` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`old_id`), UNIQUE KEY `uk_new_id` (`new_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `mig_map_pay_fee` (`old_id`) SELECT `fee_id` FROM `prc_pay_bill_fee` ORDER BY IFNULL(`create_time`, '1970-01-01'), `fee_id`; --- ========== 3. 重建核心表(动态列) ========== +-- ========== 3. 重建核心表(动态列,需 group_concat_max_len) ========== DROP TABLE IF EXISTS `prc_order_bill_new`; CREATE TABLE `prc_order_bill_new` LIKE `prc_order_bill`; ALTER TABLE `prc_order_bill_new` MODIFY COLUMN `bill_id` bigint NOT NULL AUTO_INCREMENT; @@ -88,15 +93,13 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pr SELECT GROUP_CONCAT(CONCAT('t.`', COLUMN_NAME, '`') ORDER BY ORDINAL_POSITION SEPARATOR ',') INTO @sels_rest FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_order_bill' AND COLUMN_NAME NOT IN ('bill_id'); SET @sql := CONCAT( - 'INSERT INTO `prc_order_bill_new` (`bill_id`', - IF(@cols_rest IS NULL OR @cols_rest = '', '', CONCAT(', ', @cols_rest)), ') ', - 'SELECT mo.new_id', - IF(@sels_rest IS NULL OR @sels_rest = '', '', CONCAT(', ', @sels_rest)), ' ', + 'INSERT INTO `prc_order_bill_new`(`bill_id`,', @cols_rest, ') ', + 'SELECT mo.new_id,', @sels_rest, ' ', 'FROM `prc_order_bill` t ', - 'JOIN `mig_map_order_bill` mo ON mo.old_id = t.`bill_id` ' + 'JOIN `mig_map_order_bill` mo ON BINARY mo.old_id = BINARY t.`bill_id` ' ); +-- 若仍报错可先:SELECT LEFT(@sql, 500), LENGTH(@cols_rest), LENGTH(@sels_rest); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; - DROP TABLE IF EXISTS `prc_income_bill_new`; CREATE TABLE `prc_income_bill_new` LIKE `prc_income_bill`; ALTER TABLE `prc_income_bill_new` MODIFY COLUMN `income_bill_id` bigint NOT NULL AUTO_INCREMENT; @@ -106,16 +109,14 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pr SELECT GROUP_CONCAT(CONCAT('t.`', COLUMN_NAME, '`') ORDER BY ORDINAL_POSITION SEPARATOR ',') INTO @sels_rest FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_income_bill' AND COLUMN_NAME NOT IN ('income_bill_id','bill_id'); SET @sql := CONCAT( - 'INSERT INTO `prc_income_bill_new` (`income_bill_id`, `bill_id`', - IF(@cols_rest IS NULL OR @cols_rest = '', '', CONCAT(', ', @cols_rest)), ') ', - 'SELECT mi.new_id, mo.new_id', - IF(@sels_rest IS NULL OR @sels_rest = '', '', CONCAT(', ', @sels_rest)), ' ', + 'INSERT INTO `prc_income_bill_new`(`income_bill_id`, `bill_id`,', @cols_rest, ') ', + 'SELECT mi.new_id, mo.new_id,', @sels_rest, ' ', 'FROM `prc_income_bill` t ', - 'JOIN `mig_map_income_bill` mi ON mi.old_id = t.`income_bill_id` ' - ,'JOIN `mig_map_order_bill` mo ON mo.old_id = t.`bill_id` ' + 'JOIN `mig_map_income_bill` mi ON BINARY mi.old_id = BINARY t.`income_bill_id` ' + ,'JOIN `mig_map_order_bill` mo ON BINARY mo.old_id = BINARY t.`bill_id` ' ); +-- 若仍报错可先:SELECT LEFT(@sql, 500), LENGTH(@cols_rest), LENGTH(@sels_rest); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; - DROP TABLE IF EXISTS `prc_income_bill_fee_new`; CREATE TABLE `prc_income_bill_fee_new` LIKE `prc_income_bill_fee`; ALTER TABLE `prc_income_bill_fee_new` MODIFY COLUMN `fee_id` bigint NOT NULL AUTO_INCREMENT; @@ -126,17 +127,15 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pr SELECT GROUP_CONCAT(CONCAT('t.`', COLUMN_NAME, '`') ORDER BY ORDINAL_POSITION SEPARATOR ',') INTO @sels_rest FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_income_bill_fee' AND COLUMN_NAME NOT IN ('fee_id','bill_id','income_bill_id'); SET @sql := CONCAT( - 'INSERT INTO `prc_income_bill_fee_new` (`fee_id`, `bill_id`, `income_bill_id`', - IF(@cols_rest IS NULL OR @cols_rest = '', '', CONCAT(', ', @cols_rest)), ') ', - 'SELECT mf.new_id, mo.new_id, mi.new_id', - IF(@sels_rest IS NULL OR @sels_rest = '', '', CONCAT(', ', @sels_rest)), ' ', + 'INSERT INTO `prc_income_bill_fee_new`(`fee_id`, `bill_id`, `income_bill_id`,', @cols_rest, ') ', + 'SELECT mf.new_id, mo.new_id, mi.new_id,', @sels_rest, ' ', 'FROM `prc_income_bill_fee` t ', - 'JOIN `mig_map_income_fee` mf ON mf.old_id = t.`fee_id` ' - ,'JOIN `mig_map_order_bill` mo ON mo.old_id = t.`bill_id` ' - ,'LEFT JOIN `mig_map_income_bill` mi ON mi.old_id = t.`income_bill_id` ' + 'JOIN `mig_map_income_fee` mf ON BINARY mf.old_id = BINARY t.`fee_id` ' + ,'JOIN `mig_map_order_bill` mo ON BINARY mo.old_id = BINARY t.`bill_id` ' + ,'LEFT JOIN `mig_map_income_bill` mi ON BINARY mi.old_id = BINARY t.`income_bill_id` ' ); +-- 若仍报错可先:SELECT LEFT(@sql, 500), LENGTH(@cols_rest), LENGTH(@sels_rest); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; - DROP TABLE IF EXISTS `prc_pay_bill_new`; CREATE TABLE `prc_pay_bill_new` LIKE `prc_pay_bill`; ALTER TABLE `prc_pay_bill_new` MODIFY COLUMN `pay_bill_id` bigint NOT NULL AUTO_INCREMENT; @@ -146,16 +145,14 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pr SELECT GROUP_CONCAT(CONCAT('t.`', COLUMN_NAME, '`') ORDER BY ORDINAL_POSITION SEPARATOR ',') INTO @sels_rest FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_pay_bill' AND COLUMN_NAME NOT IN ('pay_bill_id','bill_id'); SET @sql := CONCAT( - 'INSERT INTO `prc_pay_bill_new` (`pay_bill_id`, `bill_id`', - IF(@cols_rest IS NULL OR @cols_rest = '', '', CONCAT(', ', @cols_rest)), ') ', - 'SELECT mp.new_id, mo.new_id', - IF(@sels_rest IS NULL OR @sels_rest = '', '', CONCAT(', ', @sels_rest)), ' ', + 'INSERT INTO `prc_pay_bill_new`(`pay_bill_id`, `bill_id`,', @cols_rest, ') ', + 'SELECT mp.new_id, mo.new_id,', @sels_rest, ' ', 'FROM `prc_pay_bill` t ', - 'JOIN `mig_map_pay_bill` mp ON mp.old_id = t.`pay_bill_id` ' - ,'JOIN `mig_map_order_bill` mo ON mo.old_id = t.`bill_id` ' + 'JOIN `mig_map_pay_bill` mp ON BINARY mp.old_id = BINARY t.`pay_bill_id` ' + ,'JOIN `mig_map_order_bill` mo ON BINARY mo.old_id = BINARY t.`bill_id` ' ); +-- 若仍报错可先:SELECT LEFT(@sql, 500), LENGTH(@cols_rest), LENGTH(@sels_rest); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; - DROP TABLE IF EXISTS `prc_pay_bill_fee_new`; CREATE TABLE `prc_pay_bill_fee_new` LIKE `prc_pay_bill_fee`; ALTER TABLE `prc_pay_bill_fee_new` MODIFY COLUMN `fee_id` bigint NOT NULL AUTO_INCREMENT; @@ -166,22 +163,20 @@ FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pr SELECT GROUP_CONCAT(CONCAT('t.`', COLUMN_NAME, '`') ORDER BY ORDINAL_POSITION SEPARATOR ',') INTO @sels_rest FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_pay_bill_fee' AND COLUMN_NAME NOT IN ('fee_id','bill_id','pay_bill_id'); SET @sql := CONCAT( - 'INSERT INTO `prc_pay_bill_fee_new` (`fee_id`, `bill_id`, `pay_bill_id`', - IF(@cols_rest IS NULL OR @cols_rest = '', '', CONCAT(', ', @cols_rest)), ') ', - 'SELECT mf.new_id, mo.new_id, mp.new_id', - IF(@sels_rest IS NULL OR @sels_rest = '', '', CONCAT(', ', @sels_rest)), ' ', + 'INSERT INTO `prc_pay_bill_fee_new`(`fee_id`, `bill_id`, `pay_bill_id`,', @cols_rest, ') ', + 'SELECT mf.new_id, mo.new_id, mp.new_id,', @sels_rest, ' ', 'FROM `prc_pay_bill_fee` t ', - 'JOIN `mig_map_pay_fee` mf ON mf.old_id = t.`fee_id` ' - ,'JOIN `mig_map_order_bill` mo ON mo.old_id = t.`bill_id` ' - ,'LEFT JOIN `mig_map_pay_bill` mp ON mp.old_id = t.`pay_bill_id` ' + 'JOIN `mig_map_pay_fee` mf ON BINARY mf.old_id = BINARY t.`fee_id` ' + ,'JOIN `mig_map_order_bill` mo ON BINARY mo.old_id = BINARY t.`bill_id` ' + ,'LEFT JOIN `mig_map_pay_bill` mp ON BINARY mp.old_id = BINARY t.`pay_bill_id` ' ); +-- 若仍报错可先:SELECT LEFT(@sql, 500), LENGTH(@cols_rest), LENGTH(@sels_rest); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; - -- --- prc_order_bill_ext 阴影列 --- SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_order_bill_ext' AND COLUMN_NAME='bill_id_bi')=0, 'ALTER TABLE `prc_order_bill_ext` ADD COLUMN `bill_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -UPDATE `prc_order_bill_ext` e JOIN `mig_map_order_bill` m ON m.old_id = e.bill_id SET e.bill_id_bi = m.new_id; +UPDATE `prc_order_bill_ext` e JOIN `mig_map_order_bill` m ON BINARY m.old_id = BINARY e.bill_id SET e.bill_id_bi = m.new_id; -- ========== 4. 引用表阴影列 ========== SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ar_bill_detail' AND COLUMN_NAME='prc_order_bill_id')>0 @@ -189,7 +184,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `ar_bill_detail` ADD COLUMN `prc_order_bill_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ar_bill_detail' AND COLUMN_NAME='prc_order_bill_id')>0, - 'UPDATE `ar_bill_detail` x JOIN `mig_map_order_bill` m ON m.old_id = x.`prc_order_bill_id` SET x.`prc_order_bill_id_bi` = m.new_id', + 'UPDATE `ar_bill_detail` x JOIN `mig_map_order_bill` m ON BINARY m.old_id = BINARY x.`prc_order_bill_id` SET x.`prc_order_bill_id_bi` = m.new_id', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -198,7 +193,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `ar_bill_detail_fee` ADD COLUMN `prc_income_bill_fee_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ar_bill_detail_fee' AND COLUMN_NAME='prc_income_bill_fee_id')>0, - 'UPDATE `ar_bill_detail_fee` x JOIN `mig_map_income_fee` m ON m.old_id = x.`prc_income_bill_fee_id` SET x.`prc_income_bill_fee_id_bi` = m.new_id', + 'UPDATE `ar_bill_detail_fee` x JOIN `mig_map_income_fee` m ON BINARY m.old_id = BINARY x.`prc_income_bill_fee_id` SET x.`prc_income_bill_fee_id_bi` = m.new_id', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -207,7 +202,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `ar_bill_generate_task` ADD COLUMN `last_source_bill_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ar_bill_generate_task' AND COLUMN_NAME='last_source_bill_id')>0, - 'UPDATE `ar_bill_generate_task` x JOIN `mig_map_order_bill` m ON m.old_id = x.`last_source_bill_id` SET x.`last_source_bill_id_bi` = m.new_id WHERE x.`last_source_bill_id` IS NOT NULL AND x.`last_source_bill_id` <> \'\'', + 'UPDATE `ar_bill_generate_task` x JOIN `mig_map_order_bill` m ON BINARY m.old_id = BINARY x.`last_source_bill_id` SET x.`last_source_bill_id_bi` = m.new_id WHERE x.`last_source_bill_id` IS NOT NULL AND x.`last_source_bill_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -216,7 +211,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `prc_billing_task` ADD COLUMN `bill_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='prc_billing_task' AND COLUMN_NAME='bill_id')>0, - 'UPDATE `prc_billing_task` x JOIN `mig_map_order_bill` m ON m.old_id = x.`bill_id` SET x.`bill_id_bi` = m.new_id WHERE x.`bill_id` IS NOT NULL AND x.`bill_id` <> \'\'', + 'UPDATE `prc_billing_task` x JOIN `mig_map_order_bill` m ON BINARY m.old_id = BINARY x.`bill_id` SET x.`bill_id_bi` = m.new_id WHERE x.`bill_id` IS NOT NULL AND x.`bill_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -225,7 +220,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `pay_bill_line` ADD COLUMN `order_bill_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pay_bill_line' AND COLUMN_NAME='order_bill_id')>0, - 'UPDATE `pay_bill_line` x JOIN `mig_map_order_bill` m ON m.old_id = x.`order_bill_id` SET x.`order_bill_id_bi` = m.new_id WHERE x.`order_bill_id` IS NOT NULL AND x.`order_bill_id` <> \'\'', + 'UPDATE `pay_bill_line` x JOIN `mig_map_order_bill` m ON BINARY m.old_id = BINARY x.`order_bill_id` SET x.`order_bill_id_bi` = m.new_id WHERE x.`order_bill_id` IS NOT NULL AND x.`order_bill_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -234,7 +229,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `pay_bill_line` ADD COLUMN `fee_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pay_bill_line' AND COLUMN_NAME='fee_id')>0, - 'UPDATE `pay_bill_line` x JOIN `mig_map_pay_fee` m ON m.old_id = x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', + 'UPDATE `pay_bill_line` x JOIN `mig_map_pay_fee` m ON BINARY m.old_id = BINARY x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -243,7 +238,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `pay_bill_log` ADD COLUMN `fee_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pay_bill_log' AND COLUMN_NAME='fee_id')>0, - 'UPDATE `pay_bill_log` x JOIN `mig_map_pay_fee` m ON m.old_id = x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', + 'UPDATE `pay_bill_log` x JOIN `mig_map_pay_fee` m ON BINARY m.old_id = BINARY x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -252,7 +247,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `pay_bill_diff` ADD COLUMN `fee_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pay_bill_diff' AND COLUMN_NAME='fee_id')>0, - 'UPDATE `pay_bill_diff` x JOIN `mig_map_pay_fee` m ON m.old_id = x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', + 'UPDATE `pay_bill_diff` x JOIN `mig_map_pay_fee` m ON BINARY m.old_id = BINARY x.`fee_id` SET x.`fee_id_bi` = m.new_id WHERE x.`fee_id` IS NOT NULL AND x.`fee_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; @@ -261,7 +256,7 @@ SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHE 'ALTER TABLE `pay_bill_diff` ADD COLUMN `adjust_fee_id_bi` bigint NULL', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='pay_bill_diff' AND COLUMN_NAME='adjust_fee_id')>0, - 'UPDATE `pay_bill_diff` x JOIN `mig_map_pay_fee` m ON m.old_id = x.`adjust_fee_id` SET x.`adjust_fee_id_bi` = m.new_id WHERE x.`adjust_fee_id` IS NOT NULL AND x.`adjust_fee_id` <> \'\'', + 'UPDATE `pay_bill_diff` x JOIN `mig_map_pay_fee` m ON BINARY m.old_id = BINARY x.`adjust_fee_id` SET x.`adjust_fee_id_bi` = m.new_id WHERE x.`adjust_fee_id` IS NOT NULL AND x.`adjust_fee_id` <> \'\'', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;