Browse Source

加入定时检测

master
feng 3 years ago
parent
commit
e1b35fe0b4
  1. 29
      src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs
  2. 29
      src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs
  3. 2
      src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs

29
src/Coldairarrow.Business/HuiYan/pricetasklogBusiness.cs

@ -20,13 +20,15 @@ namespace Coldairarrow.Business.HuiYan
public class pricetasklogBusiness : BaseBusiness<pricetasklog>, IpricetasklogBusiness, ITransientDependency public class pricetasklogBusiness : BaseBusiness<pricetasklog>, IpricetasklogBusiness, ITransientDependency
{ {
IuserBusiness _iuserBusiness; IuserBusiness _iuserBusiness;
IteamitemsBusiness _iteamitemsBusiness;
readonly IOperator _operator; readonly IOperator _operator;
public pricetasklogBusiness(IDbAccessor db, IuserBusiness iuserBusiness, public pricetasklogBusiness(IDbAccessor db, IuserBusiness iuserBusiness, IteamitemsBusiness iteamitemsBusiness,
IOperator @operator) IOperator @operator)
: base(db) : base(db)
{ {
_operator = @operator; _operator = @operator;
_iuserBusiness = iuserBusiness; _iuserBusiness = iuserBusiness;
_iteamitemsBusiness = iteamitemsBusiness;
} }
#region 外部接口 #region 外部接口
@ -133,6 +135,9 @@ namespace Coldairarrow.Business.HuiYan
public AjaxResult DayTaskSet() public AjaxResult DayTaskSet()
{ {
CheckIsTimeOut();
var users = _iuserBusiness.GetPriceTaskUserList().ToList(); var users = _iuserBusiness.GetPriceTaskUserList().ToList();
Expression<Func<user, pricetasklog, PricetaskUser>> select = (a, b) => new PricetaskUser() Expression<Func<user, pricetasklog, PricetaskUser>> select = (a, b) => new PricetaskUser()
@ -212,6 +217,26 @@ namespace Coldairarrow.Business.HuiYan
return Success("任务分配成功!"); return Success("任务分配成功!");
} }
public AjaxResult CheckIsTimeOut()
{
try
{
var needUpdates = Db.GetIQueryable<pricetasklog>().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) public AjaxResult CanelTask(string teamItemId)
{ {
var teamItem = Db.GetIQueryable<teamitems>().FirstOrDefault(c => c.Id == teamItemId && c.TeamId == _operator.TeamId); var teamItem = Db.GetIQueryable<teamitems>().FirstOrDefault(c => c.Id == teamItemId && c.TeamId == _operator.TeamId);
@ -355,6 +380,7 @@ namespace Coldairarrow.Business.HuiYan
} }
var taskState = (PriceTaskState)state; var taskState = (PriceTaskState)state;
if (taskState == PriceTaskState.) if (taskState == PriceTaskState.)
{ {
var result = Db.RunTransaction(() => var result = Db.RunTransaction(() =>
@ -362,6 +388,7 @@ namespace Coldairarrow.Business.HuiYan
int row = Db.Update<pricetasklog>(c => c.Id == task.Id, item => int row = Db.Update<pricetasklog>(c => c.Id == task.Id, item =>
{ {
item.State = taskState; item.State = taskState;
item.WorkDate = DateTime.Now;
}); });
if (row <= 0) if (row <= 0)

29
src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs

@ -255,6 +255,35 @@ namespace Coldairarrow.Business.HuiYan
return Error("操作失败!"); return Error("操作失败!");
} }
public bool UpdateTaskSuccess(List<pricetasklog> 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<PriceTaskInfo> GetMyTaskInfo(int type,DateTime start,DateTime end) public async Task<PriceTaskInfo> GetMyTaskInfo(int type,DateTime start,DateTime end)
{ {
Expression<Func< pricetasklog, teamitems, TaskInfoDto >> select = (a, b) => new TaskInfoDto Expression<Func< pricetasklog, teamitems, TaskInfoDto >> select = (a, b) => new TaskInfoDto

2
src/Coldairarrow.IBusiness/HuiYan/IteamitemsBusiness.cs

@ -25,5 +25,7 @@ namespace Coldairarrow.Business.HuiYan
AjaxResult GetTeamCount(); AjaxResult GetTeamCount();
Task<PriceTaskInfo> GetMyTaskInfo(int type, DateTime start, DateTime end); Task<PriceTaskInfo> GetMyTaskInfo(int type, DateTime start, DateTime end);
bool UpdateTaskSuccess(List<pricetasklog> logs);
} }
} }
Loading…
Cancel
Save