|
|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|