# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
This commit is contained in:
wuweihua
2026-11-14 01:33:15 +08:00
5 changed files with 57 additions and 62 deletions
@@ -32,7 +32,7 @@ public interface PrcPayBillFeeMapper
public int insertBatch(@Param("list") List<PrcPayBillFee> fees);
/** 把还没标明来源的费用,关联到本行主键 id。 */
public int fillSourceIdByFeeIds(@Param("feeIds") List<String> feeIds);
public int fillSourceIdByFeeIds(@Param("feeIds") List<Long> feeIds);
/**
* 删除一票订单上来源为计算的费用。提单分摊和人工费用保留。
@@ -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());
@@ -43,10 +43,10 @@ public class PrcPayBillFeeServiceImpl implements IPrcPayBillFeeService
{
List<PrcPayBillFee> chunk = fees.subList(from, Math.min(from + BATCH_SIZE, fees.size()));
payBillFeeMapper.insertBatch(chunk);
List<String> ownIds = new ArrayList<>();
List<Long> 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());
@@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="fillSourceIdByFeeIds">
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
<foreach collection="feeIds" item="feeId" open="(" separator="," close=")">#{feeId}</foreach>
@@ -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;