예제 #1
0
        public void testCallBack(int timer_id, string user_params)
        {
            JObject       item       = (JObject)JsonConvert.DeserializeObject(user_params);
            int           eneity_id  = Convert.ToInt32(item["entity_id"]);
            string        event_name = item["event_name"].ToString();
            DSEventDetail ds         = new DSEventDetail();
            DateTime      now        = DateTime.Now;

            ds.year      = now.Year;
            ds.month     = now.Month;
            ds.day       = now.Day;
            ds.week      = WeekOfMonth(now, 1);
            ds.state     = 0;
            ds.entity_id = eneity_id;
            //List<UI_MISSION> AllHistoryMiss = CWFEngine.GetHistoryMissions(eneity_id);
            UI_MISSION u          = CWFEngine.GetActiveMission <Person_Info>(eneity_id, null, false);
            string     work_name  = u.WE_Name;
            string     event_desc = u.WE_Event_Desc;

            ds.event_name = work_name + ":" + event_desc;

            Timer_Jobs tj = js.GetTimerJob(timer_id);

            ds.DSTime_Desc = tj.STR_RES_2;
            //if (dm.getdetailbyE_id(eneity_id) == null)
            dm.AddDsEvent(ds);
        }
예제 #2
0
        public override void Load(Timer_Jobs job)
        {
            base.Load(job);

            m_wfentityID = job.workflow_ID;
            m_eventName  = job.STR_RES_1;
        }
예제 #3
0
        public ActionResult Index(int job_id)
        {
            Jobs       js        = new Jobs();
            Timer_Jobs tj        = js.GetTimerJob(job_id);
            string     qeendtime = tj.STR_RES_3;

            if (DateTime.Now < DateTime.Parse(qeendtime))
            {
                ViewBag.zgenable = 1;
            }
            else
            {
                ViewBag.zgenable = 0;
            }
            ViewBag.jobName = tj.job_name;
            ViewBag.time    = tj.STR_RES_2;
            ViewBag.depts   = tj.STR_RES_1;
            ViewBag.wfe_ids = tj.run_result;

            int             UserId = (Session["User"] as EquipModel.Entities.Person_Info).Person_Id;
            PersonManagment pm     = new PersonManagment();

            EquipBLL.AdminManagment.PersonManagment.P_viewModal pv = pm.Get_PersonModal(UserId);
            if (pv.Role_Names.Contains("可靠性工程师"))
            {
                ViewBag.isKkxgcs = "1";
            }
            else
            {
                ViewBag.isKkxgcs = "0";
            }
            return(View());
        }
예제 #4
0
        /// <summary>
        /// 保存定时性任务到数据库
        /// </summary>
        /// <param name="job"></param>
        public override void Save(Timer_Jobs job = null)
        {
            Timer_Jobs self = new Timer_Jobs();

            self.workflow_ID = m_wfentityID;
            self.Job_Type    = TIMER_JOB_TYPE.CHANGE_STATUS;
            base.Save(self);
        }
예제 #5
0
        public override void Save(Timer_Jobs job = null)
        {
            Timer_Jobs job1 = new Timer_Jobs();

            job1.Job_Type = TIMER_JOB_TYPE.Normal;

            base.Save(job1);
        }
예제 #6
0
        /// <summary>
        /// 保存到数据库
        /// </summary>
        public override void Save(Timer_Jobs job = null)
        {
            Timer_Jobs self_Job = new Timer_Jobs();

            self_Job.workflow_ID = m_workFlow.DefineID;

            self_Job.Job_Type = TIMER_JOB_TYPE.CREATE_WORKFLOW;

            CustomAction = CreateCallback;


            base.Save(self_Job);
        }
예제 #7
0
        /// <summary>
        /// 保存该定时性任务
        /// </summary>
        /// <param name="job"></param>
        public override void Save(Timer_Jobs job = null)
        {
            Timer_Jobs self_Job = new Timer_Jobs();

            self_Job.workflow_ID = m_wfentityID;

            self_Job.Job_Type = TIMER_JOB_TYPE.TIME_OUT;

            //保留字段STR_RES_1保存callback URL地址
            self_Job.STR_RES_1 = m_eventName;

            base.Save(self_Job);
        }
예제 #8
0
        /// <summary>
        /// 根据Timer_Jobs创建相应的对象
        /// </summary>
        /// <param name="job"></param>
        /// <returns></returns>
        public static CTimerMission CreateTimerMission(Timer_Jobs job)
        {
            if (job == null)
            {
                return(null);
            }

            CTimerMission J_val;

            switch (job.Job_Type)
            {
            case TIMER_JOB_TYPE.CREATE_WORKFLOW:
                CTimerCreateWF J_create = new CTimerCreateWF();
                J_create.Load(job);
                J_val = J_create;
                break;

            case TIMER_JOB_TYPE.CHANGE_STATUS:
                CTimerWFStatus J_status = new CTimerWFStatus();
                J_status.Load(job);
                J_val = J_status;
                break;

            case TIMER_JOB_TYPE.TIME_OUT:
                CTimerTimeout J_timeout = new CTimerTimeout();
                J_timeout.Load(job);
                J_val = J_timeout;
                break;

            case TIMER_JOB_TYPE.EMPTY:
                CTimerEmptyMission J_empty = new CTimerEmptyMission();
                J_empty.Load(job);
                J_val = J_empty;
                break;

            case TIMER_JOB_TYPE.Normal:
                CTimerNormalMission J_Normal = new CTimerNormalMission();
                J_Normal.Load(job);
                J_val = J_Normal;
                break;

            default:
                J_val = null;
                break;
            }
            return(J_val);
        }
예제 #9
0
        /// <summary>
        /// 从数据库记录加载类对象
        /// </summary>
        /// <param name="job"></param>
        public virtual void Load(Timer_Jobs job)
        {
            //ID
            job_id = job.JOB_ID;
            //前一次执行时间
            m_perTime = job.PreTime;
            //任务状态
            status = job.status;
            //执行时间
            m_triggerT.FromString(job.corn_express);
            m_triggerT.RefreshNextTiming(DateTime.Now);
            //解析运行参数
            ParseRunParam(job.run_params);
            //解析运行结果
            ParseRunResult(job.run_result);
            //名称
            mission_name = job.job_name;
            //创建时间
            m_createTime = job.create_time;
            //自定义事件
            CustomAction = job.custom_action;
            //自定义标签
            CustomFlag = job.custom_flag;
            //读取保留字段
            m_reserve.Clear();
            if (job.STR_RES_1 != "null")
            {
                m_reserve["STR_RES_1"] = job.STR_RES_1;
            }
            if (job.STR_RES_2 != "null")
            {
                m_reserve["STR_RES_2"] = job.STR_RES_2;
            }
            if (job.STR_RES_3 != "null")
            {
                m_reserve["STR_RES_3"] = job.STR_RES_3;
            }

            m_reserve["INT_RES_1"] = job.INT_RES_1;
            m_reserve["INT_RES_2"] = job.INT_RES_2;
            m_reserve["INT_RES_3"] = job.INT_RES_3;
        }
예제 #10
0
        /// <summary>
        /// 从数据库记录加载类对象
        /// </summary>
        /// <param name="job">数据库记录</param>
        public override void Load(Timer_Jobs job)
        {
            //加载工作流定义
            WorkFlows       wfs       = new WorkFlows();
            WorkFlow_Define wf_define = wfs.GetWorkFlowDefineByID(job.workflow_ID);

            m_workFlow = null;
            if (wf_define != null)
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(Encoding.Default.GetString(wf_define.W_Xml));
                m_workFlow = new CWorkFlow();
                m_workFlow.InstFromXmlNode((XmlNode)doc.DocumentElement);
                m_workFlow.DefineID = job.workflow_ID;
            }

            base.Load(job);

            CreateCallback = CustomAction;
        }
예제 #11
0
        /// <summary>
        /// 添加一个定时性任务
        /// </summary>
        /// <param name="job"></param>
        /// <returns>新定时性任务的ID</returns>
        public int AppendJob(Timer_Jobs job)
        {
            try
            {
                using (var db = base.NewDB())
                {
                    Timer_Jobs j = db.timer_jobs.Add(job);
                    if (db.SaveChanges() != 1)
                    {
                        return(-1);
                    }

                    return(j.JOB_ID);
                }
            }
            catch
            {
                return(-1);
            }
        }
예제 #12
0
        /// <summary>
        /// 保存一个定时任务
        /// </summary>
        /// <param name="job"></param>
        /// <returns></returns>
        public int SaveJob(Timer_Jobs job)
        {
            try
            {
                using (var db = base.NewDB())
                {
                    //1. 查找是否存在该任务
                    var list = db.timer_jobs.Where(a => a.JOB_ID == job.JOB_ID);
                    //2. 如果存在则更新
                    if (list.ToList().Count != 0)
                    {
                        Timer_Jobs j = list.First();
                        j.copy(job);
                        if (db.SaveChanges() != 1)
                        {
                            return(-1);
                        }

                        return(j.JOB_ID);
                    }
                    //3. 不存在则添加一条新记录
                    else
                    {
                        job.JOB_ID = -1;
                        job        = db.timer_jobs.Add(job);
                        if (db.SaveChanges() != 1)
                        {
                            return(-1);
                        }
                        return(job.JOB_ID);
                    }
                }
            }
            catch (Exception e)
            {
                return(-1);
            }
        }
예제 #13
0
        /// <summary>
        /// 保存到数据库
        /// </summary>
        public virtual void Save(Timer_Jobs job = null)
        {
            //任务名称
            job.job_name = mission_name;
            //上一次执行时间
            job.PreTime = m_perTime;
            //创建时间
            job.create_time = m_createTime;
            //任务状态
            job.status = status;
            //任务用途
            job.t_using = for_using;
            //cron表达式
            job.corn_express = m_triggerT.ToString();
            //job ID
            job.JOB_ID = job_id;
            //运行参数
            object rp = ParseRunParamsToJObject();

            job.run_params = rp == null ? "[]" : rp.ToString();
            //运行结果
            object rr = ParseRunResultToJobject();

            job.run_result = rr == null ? "" : rr.ToString();
            //自定义事件
            job.custom_action = CustomAction;
            //自定义标签
            job.custom_flag = CustomFlag;
            //保留字段
            foreach (var p in m_reserve)
            {
                switch (p.Key)
                {
                case "STR_RES_1":
                    job.STR_RES_1 = Convert.ToString(p.Value);
                    break;

                case "STR_RES_2":
                    job.STR_RES_2 = Convert.ToString(p.Value);
                    break;

                case "STR_RES_3":
                    job.STR_RES_3 = Convert.ToString(p.Value);
                    break;

                case "INT_RES_1":
                    job.INT_RES_1 = Convert.ToInt32(p.Value);
                    break;

                case "INT_RES_2":
                    job.INT_RES_2 = Convert.ToInt32(p.Value);
                    break;

                case "INT_RES_3":
                    job.INT_RES_3 = Convert.ToInt32(p.Value);
                    break;

                default:
                    break;
                }
            }

            Jobs t_j = new Jobs();

            this.job_id = t_j.SaveJob(job);
        }
예제 #14
0
        /// <summary>
        /// 从数据库记录加载类对象
        /// </summary>
        /// <param name="job">数据库记录</param>
        public override void Load(Timer_Jobs job)
        {
            m_wfentityID = job.workflow_ID;

            base.Load(job);
        }