Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
                }
            });
        }
Esempio n. 3
0
        /// <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);
            });
        }
Esempio n. 4
0
        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());
            }
        }
Esempio n. 5
0
 public JSRMOrderMonitor()
 {
     InitializeComponent();
     viewModel = OrderMonitorViewModel.Instance();
     this.gridOder.DataContext = viewModel;
 }
Esempio n. 6
0
        private static void GetYanfaTime(Order order)
        {
            string str = "";

            order.YanFaTime = OrderMonitorViewModel.Instance().GetTimePointByGDAsync(order.problemCode, false, out str);
        }
Esempio n. 7
0
        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);
            });
        }