public async void Execute(IJobExecutionContext context) { //18点后工单仍然写入数据库,但是不再分配。避免18点后转到研发并且完成的工单不会被计数 //if (DateTime.Now.Hour >= 18) //{ // OrderMonitorViewModel.Instance().ShowMessage("18点之后的工单,隔天处理"); // return; //} JobDataMap data = context.JobDetail.JobDataMap; string requestArgs = data.GetString("HttpRequestArgs"); if (string.IsNullOrEmpty(requestArgs)) { OrderMonitorViewModel.Instance().ShowMessage("请求参数为空"); return; } HttpRequestArgs httpRequestArgs = JsonHelper.DeserializeObject <HttpRequestArgs>(requestArgs); ReturnMsg <PageOrder> returnMsg = await PostAsync <ReturnMsg <PageOrder> >(httpRequestArgs); if (returnMsg.success) { OrderMonitorViewModel.Instance().ShowMessage("工单请求成功"); ExecuteGetOrderJob.AddOrder(returnMsg.respData.data); } else { OrderMonitorViewModel.Instance().ShowMessage(returnMsg.respMsg); } }
public static void AddOrder(List <Order> orders) { //18点后工单仍然写入数据库,但是不再分配。避免18点后转到研发并且完成的工单不会被计数 //if (DateTime.Now.Hour > 18) //{ // OrderMonitorViewModel.Instance().ShowMessage("18点之后的工单,隔天处理"); // return; //} TaskHelper.Start(() => { foreach (var x in orders) { GetResponsiblePerson(x); GetYanfaTime(x); Order order = devJsrmOrderManager.GetOrder(x.problemCode); if (order != null) { continue; } x.ReceiveTime = DateTime.Now; OrderMonitorViewModel.Instance().ShowMessage($"新增加工单 {x.problemCode}"); OrderMonitorViewModel.Instance().Dispatcher.Invoke(() => { Notice.Show($"新增加工单 {x.problemCode}", "通知", 3, MessageBoxIcon.Success); }); devJsrmOrderManager.AddOrder(x); } }); }
/// <summary> /// 发送昨日报表 /// </summary> /// <param name="context"></param> public void Execute(IJobExecutionContext context) { JobDataMap data = context.JobDetail.JobDataMap; string receive = data.GetString("ReceiveEmail"); if (string.IsNullOrEmpty(receive)) { OrderMonitorViewModel.Instance().ShowMessage("接收人的邮箱为空"); return; } DataTable dataTable = devJsrmOrderManager.GetYesterdayDispatchingOrderTable(); List <Order> orders = devJsrmOrderManager.ConvertToOrderList(dataTable); //获取已处理工单的完成时间 orders.Where(x => x.FinishTime == DateTime.MinValue).ToList().ForEach(x => { string TrueResponsiblePerson = ""; x.FinishTime = OrderMonitorViewModel.Instance().GetTimePointByGDAsync(x.problemCode, true, out TrueResponsiblePerson); if (x.FinishTime != DateTime.MinValue) { devJsrmOrderManager.UpdateFinsihTime(x.problemCode, x.FinishTime, TrueResponsiblePerson); } }); DataTable dataTableForEmail = devJsrmOrderManager.GetYesterdayDispatchingOrderTableForEmail(); int count = orders.Count(); if (count <= 0) { OrderMonitorViewModel.Instance().ShowMessage("无昨日工单"); return; } string content = SendEmailHelper.HtmlBody(dataTableForEmail); SendEmailHelper.SendEmailAsync(receive, $"{DateTime.Now.AddDays(-1).ToString("yyyyMMdd")}日捷服务处理报表", content, true); OrderMonitorViewModel.Instance().ShowMessage($"已发送昨日报表邮件"); orders.Where(x => x.Dispatched == 0).ToList().ForEach(x => { devJsrmOrderManager.UpdateDispatch(x.problemCode); }); }
public void Execute(IJobExecutionContext context) { try { //过了晚上十二点,把前一天未完成的 并且未分配的工单的接收时间设为今日 if (DateTime.Now.Hour == 1) { devJsrmOrderManager.UpdateYesterdayFinsihTime(); OrderMonitorViewModel.Instance().ShowMessage("更新前一晚数据"); } if (DateTime.Now.Hour >= 18 || DateTime.Now.Hour < 8) { OrderMonitorViewModel.Instance().ShowMessage("18点之后的工单,隔天处理"); return; } JobDataMap data = context.JobDetail.JobDataMap; string receive = data.GetString("ReceiveEmail"); if (string.IsNullOrEmpty(receive)) { OrderMonitorViewModel.Instance().ShowMessage("接收人的邮箱为空"); return; } DataTable dataTable = devJsrmOrderManager.GetDispatchingOrderTable(); List <Order> orders = devJsrmOrderManager.ConvertToOrderList(dataTable); #region 更新研发完成时间 //获取已处理工单的完成时间 DataTable dataTableForUpdate = devJsrmOrderManager.GetAllNotFinsihOrderTable(); List <Order> ordersForUpdate = devJsrmOrderManager.ConvertToOrderList(dataTableForUpdate); ordersForUpdate.Where(x => x.FinishTime == DateTime.MinValue).ToList().ForEach(x => { string TrueResponsiblePerson = ""; x.FinishTime = OrderMonitorViewModel.Instance().GetTimePointByGDAsync(x.problemCode, true, out TrueResponsiblePerson); if (x.FinishTime != DateTime.MinValue) { devJsrmOrderManager.UpdateFinsihTime(x.problemCode, x.FinishTime, TrueResponsiblePerson); } }); #endregion DataTable dataTableForEmail = devJsrmOrderManager.GetDispatchingOrderTableForEmail(); int count = orders.Where(x => x.Dispatched == 0).Count(); var isDelay = devJsrmOrderManager.GetIsDelay(7); if (count <= 0 && isDelay.Count == 0) { OrderMonitorViewModel.Instance().ShowMessage("没有新增的工单"); return; } //if (!(count >= 2 || DateTime.Now.Hour > 16)) //{ // OrderMonitorViewModel.Instance().ShowMessage($"新增工单{count}单,暂不发送邮件"); // return; //} string content = SendEmailHelper.HtmlBody(dataTableForEmail); //仅在上班时间报这个警 if (isDelay.Count > 0 && DateTime.Now.Hour >= 9 && DateTime.Now.Hour < 18) { string title = isDelay[0] + "等" + isDelay.Count + "个工单即将超时,需优先处理"; SendEmailHelper.SendEmailAsync(receive, title, content, true); OrderMonitorViewModel.Instance().ShowMessage(title); } else if (count > 0) { SendEmailHelper.SendEmailAsync(receive, $"{DateTime.Now.ToString("yyyyMMddHH")}待处理捷服务工单", content, true); OrderMonitorViewModel.Instance().ShowMessage($"新增工单{count}单,已发送邮件"); } orders.Where(x => x.Dispatched == 0).ToList().ForEach(x => { devJsrmOrderManager.UpdateDispatch(x.problemCode); }); } catch (Exception ex) { LogHelper.CommLogger.Error(ex.ToString()); } }
public JSRMOrderMonitor() { InitializeComponent(); viewModel = OrderMonitorViewModel.Instance(); this.gridOder.DataContext = viewModel; }
private static void GetYanfaTime(Order order) { string str = ""; order.YanFaTime = OrderMonitorViewModel.Instance().GetTimePointByGDAsync(order.problemCode, false, out str); }
public void Execute(IJobExecutionContext context) { //过了晚上十二点,把前一天未完成的 并且未分配的工单的接收时间设为今日 if (DateTime.Now.Hour == 1) { devJsrmOrderManager.UpdateYesterdayFinsihTime(); OrderMonitorViewModel.Instance().ShowMessage("更新前一晚数据"); } if (DateTime.Now.Hour >= 18) { OrderMonitorViewModel.Instance().ShowMessage("18点之后的工单,隔天处理"); return; } JobDataMap data = context.JobDetail.JobDataMap; string receive = data.GetString("ReceiveEmail"); if (string.IsNullOrEmpty(receive)) { OrderMonitorViewModel.Instance().ShowMessage("接收人的邮箱为空"); return; } DataTable dataTable = devJsrmOrderManager.GetDispatchingOrderTable(); List <Order> orders = devJsrmOrderManager.ConvertToOrderList(dataTable); //获取已处理工单的完成时间 orders.Where(x => x.FinishTime == DateTime.MinValue).ToList().ForEach(x => { string TrueResponsiblePerson = ""; x.FinishTime = OrderMonitorViewModel.Instance().GetTimePointByGDAsync(x.problemCode, true, out TrueResponsiblePerson); if (x.FinishTime != DateTime.MinValue) { devJsrmOrderManager.UpdateFinsihTime(x.problemCode, x.FinishTime, TrueResponsiblePerson); } }); DataTable dataTableForEmail = devJsrmOrderManager.GetDispatchingOrderTableForEmail(); int count = orders.Where(x => x.Dispatched == 0).Count(); if (count <= 0) { OrderMonitorViewModel.Instance().ShowMessage("没有新增的工单"); return; } if (!(count >= 2 || DateTime.Now.Hour > 16)) { OrderMonitorViewModel.Instance().ShowMessage($"新增工单{count}单,暂不发送邮件"); return; } string content = SendEmailHelper.HtmlBody(dataTableForEmail); SendEmailHelper.SendEmailAsync(receive, $"{DateTime.Now.ToString("yyyyMMddHH")}待处理捷服务工单", content, true); OrderMonitorViewModel.Instance().ShowMessage($"新增工单{count}单,已发送邮件"); orders.Where(x => x.Dispatched == 0).ToList().ForEach(x => { devJsrmOrderManager.UpdateDispatch(x.problemCode); }); }