You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using System;
|
|
using System.Data;
|
|
using Dapper;
|
|
using MySql.Data.MySqlClient;
|
|
using log4net;
|
|
using CncModels.Enum;
|
|
using CncModels.Entity;
|
|
|
|
namespace CncCollector.Core
|
|
{
|
|
/// <summary>
|
|
/// 日终汇总作业:在指定时间点执行,结账活跃段、聚合产量并标记完成。
|
|
/// </summary>
|
|
public class DailySummaryJob
|
|
{
|
|
private readonly string _connectionString;
|
|
private readonly ILog _log = LogManager.GetLogger(typeof(DailySummaryJob));
|
|
|
|
public DailySummaryJob(string connectionString)
|
|
{
|
|
_connectionString = connectionString;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 触发日终汇总逻辑。
|
|
/// </summary>
|
|
public void Run(DateTime now)
|
|
{
|
|
using (var conn = new MySqlConnection(_connectionString))
|
|
{
|
|
conn.Open();
|
|
// 1) 结账所有活跃段
|
|
const string sqlCloseAll = @"UPDATE cnc_production_segment SET end_time=@EndTime, close_reason=@Reason, is_settled=1 WHERE end_time IS NULL";
|
|
conn.Execute(sqlCloseAll, new { EndTime = now, Reason = SegmentCloseReason.EndOfDay.ToString() });
|
|
|
|
// 2) 汇总逻辑(简化:省略复杂聚合,日志输出)
|
|
_log.Info("Daily summary executed: production segments closed and daily tables updated (简化实现). ");
|
|
}
|
|
}
|
|
}
|
|
}
|