/// <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); }
/// <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); }
/// <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); }
/// <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); }
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)); }
/// <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); }
/// <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()); }
/// <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")); }
/// <summary> /// 修改任务池 /// </summary> /// <param name="model">任务池实体</param> /// <returns>修改的任务池编号</returns> /// <remarks>2013-06-13 余勇 创建</remarks> public abstract int Update(SyJobPool model);
/// <summary> /// 插入任务池实体 /// </summary> /// <param name="model">任务池实体</param> /// <returns>插入的任务池编号</returns> /// <remarks>2013-06-13 余勇 创建</remarks> public abstract int Insert(SyJobPool model);
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)); }
/// <summary> /// 修改任务池 /// </summary> /// <param name="model">任务池实体</param> /// <returns>修改的任务池编号</returns> /// <remarks>2013-06-13 余勇 创建</remarks> public int Update(SyJobPool model) { return(ISyJobPoolDao.Instance.Update(model)); }