|
using iWareCommon;
|
|
using iWareCommon.Utils;
|
using iWareSql.Orm;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading;
|
using System.Collections;
|
using Newtonsoft.Json;
|
using System.Threading.Tasks;
|
using iWareSql.DBModel;
|
using iWareModel;
|
|
namespace iWareSql
|
{
|
public class TaskRequestLogHandler
|
{
|
/// <summary>
|
/// 初始化请求日志
|
/// </summary>
|
/// <param name="taskId">任务ID</param>
|
/// <param name="DeviceId">设备号</param>
|
/// <param name="PlcTaskId">PLC的任务号</param>
|
/// <param name="SourcePlaceNo">来源的库位号</param>
|
/// <param name="ToPlaceNo">目标的库位号</param>
|
/// <param name="Business">业务描述</param>
|
/// <param name="CreateBy">创建人</param>
|
/// <returns></returns>
|
public static Task_RequestLog GetTask(string taskId,
|
int DeviceId, string PlcTaskId,
|
string SourcePlaceNo, string ToPlaceNo, string Business, string CreateBy)
|
{
|
Task_RequestLog log = new Task_RequestLog()
|
{
|
DeviceId = DeviceId,
|
DeviceName=
|
PlcTaskId = PlcTaskId,
|
Id = Guid.NewGuid().ToString(),
|
CreateTime = DateTime.Now,
|
ModifyTime = DateTime.Now,
|
CreateBy = CreateBy,
|
ModifyBy = CreateBy,
|
//Business = Business,
|
RequestStatus = Convert.ToInt32(RequestStatusEnum.已请求).ToString(),//1 已请求 2 请求成功 3 请求失败
|
PartTaskId = taskId.ToString(),
|
//SourcePlaceNo = SourcePlaceNo,
|
//ToPlaceNo = ToPlaceNo,
|
//Remark = "初始化请求日志"
|
};
|
return log;
|
}
|
|
public static void InsertTask(LogType currentLogType, RequestStatusEnum requestStatusEnum, string PlcResult, Task_RequestLog log, Exception exObect = null)
|
{
|
log.RequesResult = PlcResult;
|
log.RequestStatus = Convert.ToInt32(requestStatusEnum).ToString();
|
log.ModifyBy = "";
|
log.ModifyTime = DateTime.Now;
|
//log.Remark = "修改请求日志";
|
if (requestStatusEnum == RequestStatusEnum.请求失败)
|
{
|
//log.Remark = "请求失败:" + JsonConvert.SerializeObject(exObect);
|
}
|
Task.Run(() =>
|
{
|
try
|
{
|
using (DbModel edm = new DbModel())
|
{
|
InsertTask(log, edm);
|
}
|
//记录文本日志
|
switch (requestStatusEnum)
|
{
|
case RequestStatusEnum.请求成功:
|
Log4NetHelper.WriteInfoLog(currentLogType,
|
log.Business + "成功,log:" + JsonConvert.SerializeObject(log));
|
break;
|
case RequestStatusEnum.请求失败:
|
log.OperationRemark = "请求失败";
|
Log4NetHelper.WriteErrorLog(currentLogType, log.Business + "失败,log:" + JsonConvert.SerializeObject(log));
|
break;
|
}
|
}
|
catch (Exception ex)
|
{
|
Log4NetHelper.WriteErrorLog(currentLogType, "记录日志失败,log:" + JsonConvert.SerializeObject(log), ex);
|
}
|
});
|
}
|
|
private static void InsertTask(Task_RequestLog log, DbModel edm)
|
{
|
edm.Task_RequestLog.Add(log);
|
edm.SaveChanges();
|
}
|
}
|
}
|