From dfe6188bb685b91ac1162be135fd3c848b3db02a Mon Sep 17 00:00:00 2001 From: “wangming” <“wangming@antissoft.com”> Date: Sun, 12 Oct 2025 17:55:54 +0800 Subject: [PATCH] 修复数据库排序规则冲突问题 --- netcore/src/Application/NCC.API/appsettings.json | 2 +- netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs | 12 ++++++------ 修复排序规则冲突_精简版.sql | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 修复排序规则冲突_精简版.sql diff --git a/netcore/src/Application/NCC.API/appsettings.json b/netcore/src/Application/NCC.API/appsettings.json index d3d8657..a074cfe 100644 --- a/netcore/src/Application/NCC.API/appsettings.json +++ b/netcore/src/Application/NCC.API/appsettings.json @@ -29,7 +29,7 @@ "AllowedHosts": "*", "ConnectionStrings": { "ConfigId": "db", - "DBName": "lqerp", + "DBName": "lqerp_test", "DBType": "MySql", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp; //SqlServer // "DefaultConnection": "Data Source=localhost;Initial Catalog={0};User ID=sqladmin;Password=P@ssw0rd;MultipleActiveResultSets=true" diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs index 855f676..8e50319 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs @@ -1464,7 +1464,7 @@ namespace NCC.Extend.LqStatistics SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) as order_performance FROM lq_kd_jksyj jksyj INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 - INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh = kd.F_Id + INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh COLLATE utf8mb4_general_ci = kd.F_Id COLLATE utf8mb4_general_ci WHERE jksyj.yjsj IS NOT NULL AND jksyj.jksyj IS NOT NULL AND jksyj.jksyj != '' @@ -2529,7 +2529,7 @@ namespace NCC.Extend.LqStatistics SUM(CASE WHEN kd.sfskdd = '是' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_FirstOrderPerformance, SUM(CASE WHEN kd.sfskdd = '否' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_UpgradeOrderPerformance FROM lq_kd_kdjlb kd - LEFT JOIN lq_mdxx md ON kd.djmd = md.F_Id + LEFT JOIN lq_mdxx md ON kd.djmd COLLATE utf8mb4_general_ci = md.F_Id COLLATE utf8mb4_general_ci WHERE kd.F_IsEffective = 1 AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth GROUP BY kd.djmd, md.dm @@ -2539,7 +2539,7 @@ namespace NCC.Extend.LqStatistics kd.djmd as F_StoreId, COUNT(pxmx.F_ProjectNumber) as F_ItemQuantity FROM lq_kd_kdjlb kd - LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id = pxmx.glkdbh AND pxmx.F_IsEffective = 1 + LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id COLLATE utf8mb4_general_ci = pxmx.glkdbh COLLATE utf8mb4_general_ci AND pxmx.F_IsEffective = 1 WHERE kd.F_IsEffective = 1 AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth GROUP BY kd.djmd @@ -2924,7 +2924,7 @@ namespace NCC.Extend.LqStatistics var personalPerformanceSql = @" UPDATE lq_salary_statistics s INNER JOIN lq_statistics_personal_performance p - ON s.F_EmployeeId COLLATE utf8mb4_unicode_ci = p.F_EmployeeId COLLATE utf8mb4_unicode_ci + ON s.F_EmployeeId COLLATE utf8mb4_general_ci = p.F_EmployeeId COLLATE utf8mb4_general_ci AND s.F_StatisticsMonth = p.F_StatisticsMonth SET s.F_TotalPerformance = p.F_TotalPerformance, @@ -2944,7 +2944,7 @@ namespace NCC.Extend.LqStatistics var storePerformanceSql = @" UPDATE lq_salary_statistics s INNER JOIN lq_statistics_store_total_performance st - ON s.F_StoreId COLLATE utf8mb4_unicode_ci = st.F_StoreId COLLATE utf8mb4_unicode_ci + ON s.F_StoreId COLLATE utf8mb4_general_ci = st.F_StoreId COLLATE utf8mb4_general_ci AND s.F_StatisticsMonth = st.F_StatisticsMonth SET s.F_StoreTotalPerformance = st.F_TotalOrderPerformance @@ -2960,7 +2960,7 @@ namespace NCC.Extend.LqStatistics var teamPerformanceSql = @" UPDATE lq_salary_statistics s INNER JOIN lq_statistics_gold_triangle gt - ON s.F_GoldTriangleId COLLATE utf8mb4_unicode_ci = gt.F_GoldTriangleId COLLATE utf8mb4_unicode_ci + ON s.F_GoldTriangleId COLLATE utf8mb4_general_ci = gt.F_GoldTriangleId COLLATE utf8mb4_general_ci AND s.F_StatisticsMonth = gt.F_StatisticsMonth SET s.F_TeamPerformance = gt.F_TotalPerformance diff --git a/修复排序规则冲突_精简版.sql b/修复排序规则冲突_精简版.sql new file mode 100644 index 0000000..60ef96a --- /dev/null +++ b/修复排序规则冲突_精简版.sql @@ -0,0 +1,50 @@ +-- 修复排序规则冲突 - 精简版 +-- 只更新报错的相关表 + +-- 1. 统一 BASE_USER 表的所有字段排序规则 +ALTER TABLE BASE_USER CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 2. 统一 lq_mdxx 表的所有字段排序规则 +ALTER TABLE lq_mdxx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 3. 统一 lq_zjl_mdsmxsz 表的所有字段排序规则 +ALTER TABLE lq_zjl_mdsmxsz CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 4. 统一 lq_ycsd_jsj 表的所有字段排序规则 +ALTER TABLE lq_ycsd_jsj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 5. 统一 lq_kd_jksyj 表的所有字段排序规则 +ALTER TABLE lq_kd_jksyj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 6. 统一 lq_statistics_gold_triangle 表的所有字段排序规则 +ALTER TABLE lq_statistics_gold_triangle CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 7. 统一 lq_jinsanjiao_user 表的所有字段排序规则 +ALTER TABLE lq_jinsanjiao_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 8. 统一 lq_salary_statistics 表的所有字段排序规则 +ALTER TABLE lq_salary_statistics CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 9. 统一 lq_kd_pxmx 表的所有字段排序规则 +ALTER TABLE lq_kd_pxmx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 10. 跳过 lq_kd_kdjlb 表(表太大,无法转换) +-- ALTER TABLE lq_kd_kdjlb CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 11. 统一 lq_xmzl 表的所有字段排序规则 +ALTER TABLE lq_xmzl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 12. 统一 lq_statistics_personal_performance 表的所有字段排序规则 +ALTER TABLE lq_statistics_personal_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 13. 统一 lq_statistics_store_total_performance 表的所有字段排序规则 +ALTER TABLE lq_statistics_store_total_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- 验证排序规则是否统一 +SELECT + TABLE_NAME, + TABLE_COLLATION +FROM INFORMATION_SCHEMA.TABLES +WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME IN ('BASE_USER', 'lq_mdxx', 'lq_zjl_mdsmxsz', 'lq_ycsd_jsj', 'lq_kd_jksyj', 'lq_statistics_gold_triangle', 'lq_jinsanjiao_user', 'lq_salary_statistics', 'lq_kd_pxmx', 'lq_xmzl', 'lq_statistics_personal_performance', 'lq_statistics_store_total_performance') +ORDER BY TABLE_NAME; -- libgit2 0.21.4