修复 GetTodayProduction/GetProductionTrend 方法 — 使用新字段 end_total_count/base_total_count 替代旧字段 total_quantity/total_run_time,移除对已废弃 cnc_production_segment 表的降级查询

main
haoliang 1 month ago
parent 650ed5db43
commit 88eb8391a9

@ -232,23 +232,11 @@ namespace CncRepository.Impl
{
using (var conn = CreateConnection())
{
// 优先从已汇总的日产量表取
string dpSql = @"SELECT program_name AS ProgramName, CAST(total_quantity AS SIGNED) AS Quantity,
total_run_time AS RunTime, total_cutting_time AS CuttingTime
FROM cnc_daily_production
WHERE machine_id = @MachineId AND production_date = CURDATE()";
var dpItems = conn.Query<MachineTodayProdItem>(dpSql, new { MachineId = machineId }).AsList();
if (dpItems.Count > 0) return dpItems;
// 没有汇总数据则从分段表实时计算
string segSql = @"SELECT seg.program_name AS ProgramName,
CAST(SUM(CASE WHEN seg.is_settled=1 THEN seg.quantity
ELSE COALESCE(seg.end_part_count, seg.start_part_count) - seg.start_part_count END) AS SIGNED) AS Quantity,
NULL AS RunTime, NULL AS CuttingTime
FROM cnc_production_segment seg
WHERE seg.machine_id = @MachineId AND seg.production_date = CURDATE()
GROUP BY seg.program_name";
return conn.Query<MachineTodayProdItem>(segSql, new { MachineId = machineId }).AsList();
string sql = @"SELECT dp.program_name AS ProgramName,
(dp.end_total_count - dp.base_total_count) AS Quantity
FROM cnc_daily_production dp
WHERE dp.machine_id = @MachineId AND dp.production_date = CURDATE()";
return conn.Query<MachineTodayProdItem>(sql, new { MachineId = machineId }).AsList();
}
}
@ -257,27 +245,14 @@ namespace CncRepository.Impl
{
using (var conn = CreateConnection())
{
// 优先从日产量表取近N天数据
string sql = @"SELECT DATE_FORMAT(dp.production_date, '%Y-%m-%d') AS Date,
CAST(SUM(dp.total_quantity) AS SIGNED) AS Quantity
CAST(SUM(dp.end_total_count - dp.base_total_count) AS SIGNED) AS Quantity
FROM cnc_daily_production dp
WHERE dp.machine_id = @MachineId
AND dp.production_date >= DATE_SUB(CURDATE(), INTERVAL @Days DAY)
GROUP BY dp.production_date
ORDER BY dp.production_date";
var items = conn.Query<MachineTrendItem>(sql, new { MachineId = machineId, Days = days - 1 }).AsList();
if (items.Count > 0) return items;
// 没有汇总数据则从分段表实时计算
string segSql = @"SELECT DATE_FORMAT(seg.production_date, '%Y-%m-%d') AS Date,
CAST(SUM(CASE WHEN seg.is_settled=1 THEN seg.quantity
ELSE COALESCE(seg.end_part_count, seg.start_part_count) - seg.start_part_count END) AS SIGNED) AS Quantity
FROM cnc_production_segment seg
WHERE seg.machine_id = @MachineId
AND seg.production_date >= DATE_SUB(CURDATE(), INTERVAL @Days DAY)
GROUP BY seg.production_date
ORDER BY seg.production_date";
return conn.Query<MachineTrendItem>(segSql, new { MachineId = machineId, Days = days - 1 }).AsList();
return conn.Query<MachineTrendItem>(sql, new { MachineId = machineId, Days = days - 1 }).AsList();
}
}

Loading…
Cancel
Save