Example #1
0
 public void InsertWorkInfo(Work_WorkInfo objWork_WorkInfo)
 {
     objWork_WorkInfo.WorkInfoName.CheckIsNull("请输入作业名称", "WorkLog");
     objWork_WorkInfo.WorkInfoRemark.CheckIsNull("请输入作业说明", "WorkLog");
     this.CurrentEntities.AddTowork_workinfo(objWork_WorkInfo);
     this.CurrentEntities.SaveChanges();
 }
Example #2
0
    /// <summary>
    /// 页面加载
    /// </summary>
    public override void RenderPage()
    {
        if (WorkInfoID.IsNoNull())
        {
            objWork_WorkInfo = objWorkRule.Work_WorkInfo.First(s => s.WorkInfoID == WorkInfoID);

            Page.DataBind();
        }
    }
Example #3
0
    /// <summary>
    /// 保存信息
    /// </summary>
    public void SaveInfo()
    {
        if (WorkInfoID.IsNull())
        {
            //作业名称
            objWork_WorkInfo.WorkInfoName = txtWorkInfoName.TextCutWord(50);
            ///作业说明
            objWork_WorkInfo.WorkInfoRemark = txtWorkInfoRemark.TextCutWord(500);
            ///是否启用
            objWork_WorkInfo.IsEnable = false;
            ///创建时间
            objWork_WorkInfo.CreateDate = DateTime.Now;
            ///修改时间
            objWork_WorkInfo.ModifyDate = DateTime.Now;

            objWork_WorkInfo.RunIP = txtRunIP.Text;
            ///上次执行时间
            objWork_WorkInfo.LastProcessDate = DateTime.Now;
            objWorkRule.InsertWorkInfo(objWork_WorkInfo);
            MessageDialog("新增成功", "WorkInfoList.aspx");
        }
        else
        {
            objWork_WorkInfo = objWorkRule.Work_WorkInfo.First(p => p.WorkInfoID == WorkInfoID);
            ///作业名称
            objWork_WorkInfo.WorkInfoName = txtWorkInfoName.TextCutWord(50);
            ///作业说明
            objWork_WorkInfo.WorkInfoRemark = txtWorkInfoRemark.TextCutWord(500);
            //运行IP
            objWork_WorkInfo.RunIP = txtRunIP.Text;
            ///修改时间
            objWork_WorkInfo.ModifyDate = DateTime.Now;

            objWorkRule.UpdateWorkInfo(objWork_WorkInfo);
            MessageDialog("修改成功", "WorkInfoList.aspx");
        }
    }
Example #4
0
 public void UpdateWorkInfo(Work_WorkInfo objWork_WorkInfo)
 {
     objWork_WorkInfo.WorkInfoName.CheckIsNull("请输入作业名称", "WorkLog");
     objWork_WorkInfo.WorkInfoRemark.CheckIsNull("请输入作业说明", "WorkLog");
     this.CurrentEntities.SaveChanges();
 }
Example #5
0
        private void ProcessWorkRun(object state)
        {
            PlanInfo objPlanInfo = (PlanInfo)state;
            WorkRule workRule    = new WorkRule();

            (objPlanInfo.FullName + " 开始执行").WriteLineYellow("");
            try
            {
                DateTime     now          = DateTime.Now;
                Work_WorkLog work_WorkLog = new Work_WorkLog();
                work_WorkLog.WorkInfoID = objPlanInfo.WorkInfoID;
                work_WorkLog.WorkLogID  = objPlanInfo.WorkLogID;
                work_WorkLog.RunIP      = this._RunWorkIP;
                work_WorkLog.PlanID     = objPlanInfo.PlanID;
                work_WorkLog.HostName   = Environment.MachineName;
                work_WorkLog.CreateDate = DateTime.Now;
                work_WorkLog.StartDate  = now;
                work_WorkLog.EndDate    = DateTime.Parse(DateTime.MaxValue.ToString("yyyy-MM-dd HH:mm:ss"));
                work_WorkLog.ResultType = 0;
                workRule.InsertWorkLog(work_WorkLog);
                bool         flag               = true;
                InvokeResult invokeResult       = new InvokeResult();
                InvokeResult previousStepResult = null;
                foreach (PlanStepInfo current in from s in objPlanInfo.ProcessInfoList
                         orderby s.SortIndex
                         select s)
                {
                    current.RunCurrentCount = 0;
                    invokeResult            = this.RunPlanStep(current, previousStepResult);
                    if (invokeResult.ResultCode != "0")
                    {
                        for (int i = 0; i < current.RunCount; i++)
                        {
                            Thread.Sleep(current.RunInterval * 60 * 1000);
                            invokeResult = this.RunPlanStep(current, previousStepResult);
                            if (invokeResult.ResultCode == "0")
                            {
                                break;
                            }
                        }
                    }
                    previousStepResult = new InvokeResult
                    {
                        ResultCode    = invokeResult.ResultCode,
                        ResultMessage = invokeResult.ResultMessage,
                        Data          = invokeResult.Data
                    };
                    if (invokeResult.ResultCode == "0")
                    {
                        if (current.SucessProcessType == 1)
                        {
                            invokeResult.ResultCode = "-1";
                            break;
                        }
                        if (current.SucessProcessType != 2)
                        {
                            if (current.SucessProcessType == 3)
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (current.FailProcessType == 1)
                        {
                            break;
                        }
                        if (current.FailProcessType == 2)
                        {
                            invokeResult.ResultCode = "0";
                        }
                        else if (current.FailProcessType == 3)
                        {
                            invokeResult.ResultCode = "0";
                            break;
                        }
                    }
                    flag = (flag && invokeResult.ResultCode == "0");
                }
                flag = (flag && invokeResult.ResultCode == "0");
                Work_Plan work_Plan = workRule.Work_Plan.FirstOrDefault((Work_Plan s) => s.PlanID == objPlanInfo.PlanID);
                if (work_Plan != null)
                {
                    work_Plan.LastRunDate = objPlanInfo.RunDateTime;
                    workRule.CurrentEntities.SaveChanges();
                }
                DateTime now2 = DateTime.Now;
                string.Concat(new string[]
                {
                    objPlanInfo.FullName,
                    "执行结束,",
                    now.ToString("yyyy-MM-dd HH:mm:ss"),
                    "~",
                    now2.ToString("yyyy-MM-dd HH:mm:ss")
                }).WriteLineYellow("");
                Work_WorkInfo work_WorkInfo = workRule.Work_WorkInfo.FirstOrDefault((Work_WorkInfo s) => s.WorkInfoID == objPlanInfo.WorkInfoID);
                work_WorkLog.EndDate    = now2;
                work_WorkLog.ResultType = (flag ? 1 : -1);
                if (work_WorkInfo != null)
                {
                    work_WorkInfo.LastProcessDate = objPlanInfo.RunDateTime;
                }
                foreach (Work_PlanNotifyInfo current2 in from s in workRule.Work_PlanNotifyInfo
                         where s.PlanID == objPlanInfo.PlanID
                         select s)
                {
                    if ((current2.PlanResult == -1 && !flag) || (current2.PlanResult == 1 && flag) || current2.PlanResult == 2)
                    {
                        string text = objPlanInfo.FullName + "在" + DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + (flag ? "执行成功" : "执行失败");
                        switch (current2.NotifyType)
                        {
                        case 1:
                            //MailQueueHelper.SendMail(SendPriority.High, current2.Address, text, text, false, true);
                            break;

                        case 2:
                        {
                            //InvokeResult message = NotifyHelper.SendSMS(current2.Address, text, PriorityLevelType.Normal, 0, null);
                            //message.WriteLineRed(objPlanInfo.FullName + " 短信通知完成");
                            ConsoleHelper.WriteLineRed(objPlanInfo.FullName + " 短信通知完成");
                            break;
                        }
                        }
                    }
                }
                workRule.CurrentEntities.SaveChanges();
                workRule.DeletePlanRunByKey(objPlanInfo.PlanRunID.ToString());
                (objPlanInfo.FullName + " 执行结束").WriteLineYellow("");
            }
            catch (Exception ex)
            {
                (objPlanInfo.FullName + "执行异常" + ex.Message).WriteLineRed("");
                LogHelper.Write("WorkLog", objPlanInfo.FullName + "执行异常", ex, "");
            }
        }