From 0cbb829ebfc2ed422ee25ac62c72b73a2db654aa Mon Sep 17 00:00:00 2001 From: haoliang <821644@qq.com> Date: Tue, 19 May 2026 22:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=91=98=E5=B7=A5=E4=BA=A7?= =?UTF-8?q?=E9=87=8F=E6=8C=89workerId=E7=AD=9B=E9=80=89SQL=E8=AF=AD?= =?UTF-8?q?=E6=B3=95=E9=94=99=E8=AF=AF=EF=BC=88AND=E5=9C=A8ORDER=20BY?= =?UTF-8?q?=E5=90=8E=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CncRepository/Impl/DailyProductionRepository.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CncRepository/Impl/DailyProductionRepository.cs b/src/CncRepository/Impl/DailyProductionRepository.cs index 25d7db1..fb6dc35 100644 --- a/src/CncRepository/Impl/DailyProductionRepository.cs +++ b/src/CncRepository/Impl/DailyProductionRepository.cs @@ -178,10 +178,11 @@ namespace CncRepository.Impl var orderBy = string.Equals(sortOrder, "asc", StringComparison.OrdinalIgnoreCase) ? "ASC" : "DESC"; using (var conn = CreateConnection()) { - string sql = $@"SELECT w.name AS WorkerName, COUNT(DISTINCT dp.machine_id) AS MachineCount, COUNT(DISTINCT dp.program_name) AS ProgramCount, COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity FROM cnc_worker w LEFT JOIN cnc_daily_production dp ON dp.worker_id = w.id AND dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count GROUP BY w.id, w.name ORDER BY TotalQuantity {orderBy}"; + string sql = $@"SELECT w.name AS WorkerName, COUNT(DISTINCT dp.machine_id) AS MachineCount, COUNT(DISTINCT dp.program_name) AS ProgramCount, COALESCE(SUM(dp.end_total_count - dp.base_total_count), 0) AS TotalQuantity FROM cnc_worker w LEFT JOIN cnc_daily_production dp ON dp.worker_id = w.id AND dp.production_date BETWEEN @Start AND @End AND dp.end_total_count > dp.base_total_count"; var parameters = new DynamicParameters(); parameters.Add("Start", startDate); parameters.Add("End", endDate); - if (workerId.HasValue) { sql += " AND w.id = @WorkerId"; parameters.Add("WorkerId", workerId.Value); } + if (workerId.HasValue) { sql += " WHERE w.id = @WorkerId"; parameters.Add("WorkerId", workerId.Value); } + sql += $" GROUP BY w.id, w.name ORDER BY TotalQuantity {orderBy}"; var items = conn.Query(sql, parameters).ToList(); if (items.Count > 0) { int grandTotal = items.Sum(x => x.TotalQuantity); for (int i = 0; i < items.Count; i++) { items[i].Rank = i + 1; if (grandTotal > 0) items[i].Percentage = Math.Round((decimal)items[i].TotalQuantity / grandTotal * 100, 1); } } return items;