diff --git a/src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs b/src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs index 2054e50..7bbd2d6 100644 --- a/src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs +++ b/src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs @@ -20,13 +20,15 @@ namespace Coldairarrow.Business.HuiYan public class pricetasklogBusiness : BaseBusiness, IpricetasklogBusiness, ITransientDependency { IuserBusiness _iuserBusiness; + IteamitemsBusiness _iteamitemsBusiness; readonly IOperator _operator; - public pricetasklogBusiness(IDbAccessor db, IuserBusiness iuserBusiness, + public pricetasklogBusiness(IDbAccessor db, IuserBusiness iuserBusiness, IteamitemsBusiness iteamitemsBusiness, IOperator @operator) : base(db) { _operator = @operator; _iuserBusiness = iuserBusiness; + _iteamitemsBusiness = iteamitemsBusiness; } #region 外部接口 @@ -133,6 +135,9 @@ namespace Coldairarrow.Business.HuiYan public AjaxResult DayTaskSet() { + + CheckIsTimeOut(); + var users = _iuserBusiness.GetPriceTaskUserList().ToList(); Expression> select = (a, b) => new PricetaskUser() @@ -212,6 +217,26 @@ namespace Coldairarrow.Business.HuiYan return Success("任务分配成功!"); } + + public AjaxResult CheckIsTimeOut() + { + try + { + var needUpdates = Db.GetIQueryable().Where(c => c.State == PriceTaskState.已比价 && c.WorkDate != null && (DateTime.Now - c.WorkDate.Value).TotalHours >= 48).ToList(); + + if (needUpdates.Count > 0) + { + _iteamitemsBusiness.UpdateTaskSuccess(needUpdates); + } + } + catch (Exception ex) + { + + } + + return Success(); + } + public AjaxResult CanelTask(string teamItemId) { var teamItem = Db.GetIQueryable().FirstOrDefault(c => c.Id == teamItemId && c.TeamId == _operator.TeamId); @@ -355,6 +380,7 @@ namespace Coldairarrow.Business.HuiYan } var taskState = (PriceTaskState)state; + if (taskState == PriceTaskState.已比价) { var result = Db.RunTransaction(() => @@ -362,6 +388,7 @@ namespace Coldairarrow.Business.HuiYan int row = Db.Update(c => c.Id == task.Id, item => { item.State = taskState; + item.WorkDate = DateTime.Now; }); if (row <= 0) diff --git a/src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs b/src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs index 30ac307..eac8d31 100644 --- a/src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs +++ b/src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs @@ -255,6 +255,35 @@ namespace Coldairarrow.Business.HuiYan return Error("操作失败!"); } + public bool UpdateTaskSuccess(List logs) + { + var ids= logs.Select(c => c.TeamItemId).ToList(); + + var list = GetIQueryable().Where(c => ids.Contains(c.Id)).ToList(); + + list.ForEach(item => { + + item.State = (int)TeamItemState.精选; + //完成日期 + item.UpdateDate = DateTime.Now; + + //判断是否合格 + item.IsQualified = CheckIsPass(item); + }); + + logs.ForEach(item => { + item.State = PriceTaskState.比价完成; + }); + + var result= Db.RunTransaction(() => { + Db.Update(list); + + Db.Update(logs); + }); + + return result.Success; + } + public async Task GetMyTaskInfo(int type,DateTime start,DateTime end) { Expression> select = (a, b) => new TaskInfoDto diff --git a/src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs b/src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs index cee474c..2160d13 100644 --- a/src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs +++ b/src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs @@ -25,5 +25,7 @@ namespace Coldairarrow.Business.HuiYan AjaxResult GetTeamCount(); Task GetMyTaskInfo(int type, DateTime start, DateTime end); + + bool UpdateTaskSuccess(List logs); } } \ No newline at end of file