コード例 #1
0
ファイル: SyJobPoolManageBo.cs プロジェクト: KqSMea8/HS.Admin
        /// <summary>
        /// 通过任务编号及类型分配任务给指定人
        /// </summary>
        /// <param name="taskType">任务类型</param>
        /// <param name="taskSysNo">任务编号</param>
        /// <param name="executorSysNo">任务执行人</param>
        /// <returns>任务编号</returns>
        /// <remarks>2013-09-28 余勇 创建</remarks>
        public int AssignJobByTaskType(int taskType, int taskSysNo, int executorSysNo)
        {
            SyJobPool job = null;

            switch (taskType)
            {
            case (int)SystemStatus.任务对象类型.客服订单审核:
                job = SyJobPoolPublishBo.Instance.OrderAuditBySysNo(taskSysNo, executorSysNo);
                break;

            case (int)SystemStatus.任务对象类型.客服订单提交出库:
                job = SyJobPoolPublishBo.Instance.OrderWaitStockOut(taskSysNo, "", "", executorSysNo);
                break;

            case (int)SystemStatus.任务对象类型.商品评论审核:
                job = SyJobPoolPublishBo.Instance.ProductCommentAudit(taskSysNo, "", "", executorSysNo);
                break;

            case (int)SystemStatus.任务对象类型.商品评论回复审核:
                job = SyJobPoolPublishBo.Instance.ProductCommentReplayAudit(taskSysNo, "", "", executorSysNo);
                break;

            case (int)SystemStatus.任务对象类型.商品晒单审核:
                job = SyJobPoolPublishBo.Instance.ProductShareAudit(taskSysNo, "", "", executorSysNo);
                break;
            }
            return(job != null ? job.SysNo : 0);
        }
コード例 #2
0
        /// <summary>
        /// 创建任务
        /// </summary>
        /// <param name="jobDescription">任务描述</param>
        /// <param name="jobUrl">任务URL</param>
        /// <param name="taskType">任务对象类型</param>
        /// <param name="taskSysNo">任务对象编号</param>
        /// <param name="executorSysNo">任务执行者编号</param>
        /// <param name="priority">优先级</param>
        /// <returns>任务</returns>
        /// <remarks>2013-09-27 吴文强 创建</remarks>
        private SyJobPool CreateJobPool(string jobDescription, string jobUrl, SystemStatus.任务对象类型 taskType, int taskSysNo, int?executorSysNo = null, int?priority = null)
        {
            //判断订单池是否已存在该记录
            SyJobPool jobPool = ISyJobPoolDao.Instance.GetByTask(taskSysNo, (int)taskType);

            if (jobPool == null)
            {
                int sysPriority = SyJobPoolPriorityBo.Instance.GetPriorityByCode(JobPriorityCode.PC001.ToString());   //优先级编码对应的数据库优先级
                jobPool = new SyJobPool
                {
                    JobDescription = jobDescription,
                    JobUrl         = jobUrl,
                    TaskType       = (int)taskType,
                    TaskSysNo      = taskSysNo,
                    CreatedDate    = DateTime.Now,
                    AssignDate     = DateTime.Now,
                    Priority       = priority != null ? priority.Value : sysPriority,
                    BeginDate      = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue,
                    EndDate        = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue
                };
                if (executorSysNo.HasValue && executorSysNo.Value > 0)
                {
                    jobPool.ExecutorSysNo = executorSysNo.Value;
                    jobPool.AssignerSysNo = User.SystemUser;
                    jobPool.Status        = (int)SystemStatus.任务池状态.待处理;
                }
                else
                {
                    jobPool.Status = (int)SystemStatus.任务池状态.待分配;
                }

                jobPool.SysNo = ISyJobPoolDao.Instance.Insert(jobPool);
            }
            return(jobPool);
        }
コード例 #3
0
ファイル: SyJobPoolManageBo.cs プロジェクト: KqSMea8/HS.Admin
        /// <summary>
        /// 锁定订单
        /// </summary>
        /// <param name="sysNos">任务池编号数组</param>
        /// <param name="unLockState">是否自动解锁</param>
        /// <param name="remarks">备注</param>
        /// <param name="unLockDate">解锁日期</param>
        /// <param name="userId">操作用户编号</param>
        /// <returns>是否成功</returns>
        /// <remarks>2013-06-19 余勇 创建</remarks>
        public bool LockJob(int[] sysNos, int unLockState, DateTime?unLockDate, string remarks, int userId)
        {
            var res = false;

            if (sysNos != null && sysNos.Length > 0)
            {
                foreach (var id in sysNos)
                {
                    if (id > 0)
                    {
                        int       taskSysNo = 0;
                        SyJobPool job       = SyJobPoolManageBo.Instance.GetJob(id);
                        if (job != null)
                        {
                            //string remark = remarks;
                            //if (unLockState > 0 && unLockDate != null)
                            //{
                            //    remark = remarks +
                            //             string.Format("(自动解锁时间:'{0}')", unLockDate.Value.ToString("yyyy-MM-dd HH:mm"));
                            //}
                            job.Remarks = remarks;
                            job.Status  = (int)SystemStatus.任务池状态.已锁定;
                            Update(job);
                            taskSysNo = job.TaskSysNo;
                        }
                        //先删除任务
                        SyLockJobBo.Instance.Delete(id);
                        //插入锁定任务表
                        var model = new SyLockJob
                        {
                            JobPoolSysNo = id,
                            UnLockState  = unLockState,
                            CreatedBy    = userId,
                            CreatedDate  = DateTime.Now
                        };
                        if (unLockState > 0 && unLockDate != null)
                        {
                            model.UnLockDate = unLockDate.Value;
                        }
                        SyLockJobBo.Instance.Insert(model);
                        SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Info, LogStatus.系统日志来源.后台, "锁定任务,任务对象编号:" + taskSysNo,
                                                 LogStatus.系统日志目标类型.任务池, id, null, null, userId);
                    }
                }
                res = true;
            }
            return(res);
        }
コード例 #4
0
        /// <summary>
        /// 订单审核任务
        /// [订单创建成功后调用]
        /// </summary>
        /// <param name="orderSysNo">订单系统编号</param>
        /// <param name="executorSysNo">任务执行者编号</param>
        /// <param name="oldTaskType">旧任务类型(如不为空则需删除旧任务)</param>
        /// <param name="priority">优先级</param>
        /// <returns>任务</returns>
        /// <remarks>2013-09-28 余勇 创建</remarks>
        public SyJobPool OrderAuditBySysNo(int orderSysNo,
                                           int?executorSysNo = null, int?oldTaskType = null, int?priority = null)
        {
            SyJobPool job   = null;
            var       model = SoOrderBo.Instance.GetEntity(orderSysNo);

            if (model != null)
            {
                var customer = Hyt.DataAccess.CRM.ICrCustomerDao.Instance.GetCrCustomerItem(model.CustomerSysNo);
                if (customer != null)
                {
                    int sysPriority = priority.HasValue ? priority.Value : GetPriorityByOrder(model);
                    job = OrderAudit(orderSysNo, customer.Name, customer.MobilePhoneNumber, executorSysNo, oldTaskType, sysPriority);
                }
            }
            return(job);
        }
コード例 #5
0
ファイル: JobPoolController.cs プロジェクト: KqSMea8/HS.Admin
        public ActionResult LockJobs(int[] sysNos, int unLockState, DateTime?unLockDate, string remarks)
        {
            var result = new Result();

            if (sysNos != null && sysNos.Length > 0)
            {
                int sysNo = 0;
                foreach (var id in sysNos)
                {
                    int status = Hyt.BLL.Sys.SyJobPoolManageBo.Instance.GetJobStatus(id);
                    if (status == (int)SystemStatus.任务池状态.已锁定)
                    {
                        sysNo = id;
                        break;
                    }
                }
                //是否存在已锁定的任务
                if (sysNo > 0)
                {
                    result.StatusCode = -1;
                    SyJobPool job = Hyt.BLL.Sys.SyJobPoolManageBo.Instance.GetJob(sysNo);
                    result.Message = string.Format("任务{0}不能重复锁定", job.TaskSysNo);
                }
                else
                {
                    Hyt.BLL.Sys.SyJobPoolManageBo.Instance.LockJob(sysNos, unLockState, unLockDate, remarks,
                                                                   CurrentUser.Base.SysNo);
                    result.Status  = true;
                    result.Message = "锁定成功!";
                }
            }
            else
            {
                result.Message = "尚未选择任务!";
            }
            return(Json(result));
        }
コード例 #6
0
ファイル: SyJobPoolManageBo.cs プロジェクト: KqSMea8/HS.Admin
        /// <summary>
        /// 解锁订单
        /// </summary>
        /// <param name="sysNos">任务池编号数组</param>
        /// <param name="userId">操作用户编号</param>
        /// <returns>是否成功</returns>
        /// <remarks>2014-06-16 余勇 创建</remarks>
        public bool UnLockJob(int[] sysNos, int userId)
        {
            var res = false;

            if (sysNos != null && sysNos.Length > 0)
            {
                foreach (var id in sysNos)
                {
                    if (id > 0)
                    {
                        int       taskSysNo = 0;
                        SyJobPool job       = SyJobPoolManageBo.Instance.GetJob(id);
                        if (job != null)
                        {
                            //如果任务执行者不为空,修改状态为待处理
                            if (job.ExecutorSysNo > 0)
                            {
                                job.Status = (int)SystemStatus.任务池状态.待处理;
                            }
                            else
                            {
                                job.Status = (int)SystemStatus.任务池状态.待分配;
                            }
                            Update(job);
                            taskSysNo = job.TaskSysNo;
                        }
                        //删除锁定任务
                        SyLockJobBo.Instance.Delete(id);
                        SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Info, LogStatus.系统日志来源.后台, "解锁成功,任务对象编号:" + taskSysNo,
                                                 LogStatus.系统日志目标类型.任务池, id, null, null, userId);
                    }
                }
                res = true;
            }
            return(res);
        }
コード例 #7
0
 /// <summary>
 /// 修改任务池
 /// </summary>
 /// <param name="model">任务池实体</param>
 /// <returns>修改的任务池编号</returns>
 /// <remarks>2013-06-13 余勇 创建</remarks>
 public override int Update(SyJobPool model)
 {
     return(Context.Update("SyJobPool", model)
            .AutoMap(o => o.SysNo)
            .Where("SysNo", model.SysNo).Execute());
 }
コード例 #8
0
 /// <summary>
 /// 插入任务池实体
 /// </summary>
 /// <param name="model">任务池实体</param>
 /// <returns>插入的任务池编号</returns>
 /// <remarks>2013-06-13 余勇 创建</remarks>
 public override int Insert(SyJobPool model)
 {
     return(Context.Insert("SyJobPool", model)
            .AutoMap(x => x.SysNo)
            .ExecuteReturnLastId <int>("SysNo"));
 }
コード例 #9
0
 /// <summary>
 /// 修改任务池
 /// </summary>
 /// <param name="model">任务池实体</param>
 /// <returns>修改的任务池编号</returns>
 /// <remarks>2013-06-13 余勇 创建</remarks>
 public abstract int Update(SyJobPool model);
コード例 #10
0
 /// <summary>
 /// 插入任务池实体
 /// </summary>
 /// <param name="model">任务池实体</param>
 /// <returns>插入的任务池编号</returns>
 /// <remarks>2013-06-13 余勇 创建</remarks>
 public abstract int Insert(SyJobPool model);
コード例 #11
0
ファイル: JobPoolController.cs プロジェクト: KqSMea8/HS.Admin
        public ActionResult ReleaseJobs(string sysNos)
        {
            var result = new Result();

            if (!string.IsNullOrEmpty(sysNos))
            {
                //查看任务状态,如任务处于审核状态则任务不能收回
                string[] ids   = sysNos.Split(',');
                string   sysNo = string.Empty;
                foreach (string id in ids)
                {
                    try
                    {
                        int status = Hyt.BLL.Sys.SyJobPoolManageBo.Instance.GetJobStatus(int.Parse(id));
                        if (status != (int)SystemStatus.任务池状态.待处理)
                        {
                            sysNo = id;
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "收回任务分配GetJobStatus错误:" + ex.Message + ",任务编号:" + id,
                                                 LogStatus.系统日志目标类型.任务池, 0, null, null, CurrentUser.Base.SysNo);
                    }
                }
                //是否存在处理中的任务
                if (!string.IsNullOrEmpty(sysNo))
                {
                    try
                    {
                        result.StatusCode = -1;
                        SyJobPool job       = Hyt.BLL.Sys.SyJobPoolManageBo.Instance.GetJob(int.Parse(sysNo));
                        var       taskSysNo = job != null ? job.TaskSysNo : 0;
                        result.Message = "任务正在处理中不能回收,任务对象编号:" + taskSysNo;
                    }
                    catch (Exception ex)
                    {
                        SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "收回任务分配GetJob错误:" + ex.Message + ",任务编号:" + sysNo,
                                                 LogStatus.系统日志目标类型.任务池, 0, null, null, CurrentUser.Base.SysNo);
                    }
                }
                else
                {
                    try
                    {
                        bool succ = Hyt.BLL.Sys.SyJobPoolManageBo.Instance.ReleaseJob(sysNos, CurrentUser.Base.SysNo);
                    }
                    catch (Exception ex)
                    {
                        SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "收回任务分配错误:" + ex.Message + ",任务编号:" + sysNos,
                                                 LogStatus.系统日志目标类型.任务池, 0, null, null, CurrentUser.Base.SysNo);
                    }
                }
            }
            else
            {
                result.StatusCode = -1;
                result.Message    = "尚未选择任务!";
            }
            return(Json(result));
        }
コード例 #12
0
ファイル: SyJobPoolManageBo.cs プロジェクト: KqSMea8/HS.Admin
 /// <summary>
 /// 修改任务池
 /// </summary>
 /// <param name="model">任务池实体</param>
 /// <returns>修改的任务池编号</returns>
 /// <remarks>2013-06-13 余勇 创建</remarks>
 public int Update(SyJobPool model)
 {
     return(ISyJobPoolDao.Instance.Update(model));
 }