后端代码:// 添加新的接口方法用于获取工单统计数据
// 添加新的接口方法用于获取工单统计数据
[Route("GetWorkOrderStatistics"), HttpPost]
public async Task<WebResponseContent> GetWorkOrderStatistics(DateTime? beginDate, DateTime? endDate)
{
try
{
// 构建查询SQL
var sql = @"SELECT
wo.WorkOrderNo,
po.OrderNumber AS OrderID,
p.ProcessName AS ProcessID,
wo.ResponsiblePerson,
wo.PlanQty,
wo.CompletedQty,
wo.Status,
wo.PlannedStartTime,
wo.PlannedEndTime,
wo.ActualStartTime,
wo.ActualEndTime,
l.MaterialName
FROM mes_workorder wo
LEFT JOIN MES_ProductionOrder po ON wo.OrderID = po.OrderID
LEFT JOIN MES_Process p ON wo.ProcessID = p.ProcessID
lEFT JOIN MES_Bom_Main l ON po.bom_id = l.BomId
ORDER BY po.OrderNumber,wo.WorkOrderNo ASC ;
";
// 添加日期筛选条件
var parameters = new Dictionary<string, object>();
if (beginDate.HasValue)
{
sql += " AND PlannedStartTime >= @beginDate";
parameters.Add("beginDate", beginDate.Value.Date); // 从当天开始
}
if (endDate.HasValue)
{
sql += " AND PlannedEndTime <= @endDate";
parameters.Add("endDate", endDate.Value.Date.AddDays(1).AddSeconds(-1)); // 到当天结束
}
// 执行查询
var workOrders = await DBServerProvider.GetSqlDapper().QueryListAsync<dynamic>(sql, parameters);
// 转换为所需格式
var result = workOrders.Select(w =>
{
var workOrderDict = (IDictionary<string, object>)w;
return new
{
WorkOrderNo = workOrderDict.ContainsKey("WorkOrderNo") ? workOrderDict["WorkOrderNo"]?.ToString() : null,
OrderID = workOrderDict.ContainsKey("OrderID") ? workOrderDict["OrderID"]?.ToString() : null,
ProcessID = workOrderDict.ContainsKey("ProcessID") ? workOrderDict["ProcessID"]?.ToString() : null,
ResponsiblePerson = workOrderDict.ContainsKey("ResponsiblePerson") ? workOrderDict["ResponsiblePerson"]?.ToString() : null,
PlanQty = workOrderDict.ContainsKey("PlanQty") && workOrderDict["PlanQty"] != null ? Convert.ToInt32(workOrderDict["PlanQty"]) : 0,
CompletedQty = workOrderDict.ContainsKey("CompletedQty") && workOrderDict["CompletedQty"] != null ? Convert.ToInt32(workOrderDict["CompletedQty"]) : 0,
Status = workOrderDict.ContainsKey("Status") ? workOrderDict["Status"]?.ToString() : null,
PlannedStartTime = workOrderDict.ContainsKey("PlannedStartTime") ? workOrderDict["PlannedStartTime"]?.ToString() : null,
PlannedEndTime = workOrderDict.ContainsKey("PlannedEndTime") ? workOrderDict["PlannedEndTime"]?.ToString() : null,
ActualStartTime = workOrderDict.ContainsKey("ActualStartTime") ? workOrderDict["ActualStartTime"]?.ToString() : null,
ActualEndTime = workOrderDict.ContainsKey("ActualEndTime") ? workOrderDict["ActualEndTime"]?.ToString() : null,
MaterialName = workOrderDict.ContainsKey("MaterialName") ? workOrderDict["MaterialName"]?.ToString() : null
};
}).ToList();
return WebResponseContent.Instance.OK("获取成功", result);
}
catch (Exception ex)
{
return WebResponseContent.Instance.Error("获取工单数据失败:" + ex.Message);
}
}
本文来自博客园,作者:舒然,转载请注明原文链接:https://www.cnblogs.com/Jeffrey1172417122/p/20121831

浙公网安备 33010602011771号