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 { /// /// 初始化请求日志 /// /// 任务ID /// 设备号 /// PLC的任务号 /// 来源的库位号 /// 目标的库位号 /// 业务描述 /// 创建人 /// 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(); } } }