添加管理员统计量
parent
bf2e0f30fe
commit
e9ad7bc896
|
|
@ -380,7 +380,244 @@ namespace OpenAuth.App.ServiceApp
|
||||||
|
|
||||||
return new Response<List<UserOrGroupTaskResp>>(); // 默认返回空列表
|
return new Response<List<UserOrGroupTaskResp>>(); // 默认返回空列表
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 查看各组及人员任务信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="beginTime"></param>
|
||||||
|
/// <param name="endTime"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Response<List<UserOrGroupTaskResp>>> GetGroupOrUserTaskStatisticsByTime(DateTime beginTime, DateTime endTime)
|
||||||
|
{
|
||||||
|
var user = _auth.GetCurrentUser().User;
|
||||||
|
var role = _auth.GetCurrentUser().Roles;
|
||||||
|
|
||||||
|
using (var db = base.UnitWork.CreateContext())
|
||||||
|
{
|
||||||
|
// 管理员角色
|
||||||
|
if (role.Any(r => r.Name.Contains("管理员")) || user.Id == -1)
|
||||||
|
{
|
||||||
|
// 获取所有小组信息
|
||||||
|
var groupInfo = await db.SysGroup.AsQueryable().ToListAsync();
|
||||||
|
|
||||||
|
// 获取任务和图斑信息
|
||||||
|
var taskInfo = await db.InsTaskgroup.AsQueryable()
|
||||||
|
.LeftJoin<SysGroupuser>((a, b) => a.ReciveUserId == b.UserId)
|
||||||
|
.LeftJoin<SysGroup>((a, b, c) => b.GroupId == c.Id)
|
||||||
|
.WhereIF(beginTime.Year != 0001, a => a.CreateTime >= beginTime && a.CreateTime <= endTime)
|
||||||
|
.Where((a, b) => !string.IsNullOrEmpty(a.ReciveUserId))
|
||||||
|
.Select((a, b, c) => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.ReciveUserId,
|
||||||
|
c.Name,
|
||||||
|
a.IsComplate,
|
||||||
|
a.EndNum,
|
||||||
|
a.BeginNum,
|
||||||
|
groupId = c.Id,
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
// 组织任务信息
|
||||||
|
var groupTaskStats = groupInfo.Select(group =>
|
||||||
|
{
|
||||||
|
var groupTaskInfo = taskInfo.Where(t => t.Name == group.Name).ToList();
|
||||||
|
|
||||||
|
var taskCount = groupTaskInfo.Count;
|
||||||
|
var taskComplateCount = groupTaskInfo.Count(t => t.IsComplate);
|
||||||
|
var taskNoComplateCount = taskCount - taskComplateCount;
|
||||||
|
|
||||||
|
var tuBanCount = groupTaskInfo.Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var tuBanComplateCount = groupTaskInfo.Where(t => t.IsComplate).Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var tuBanNoComplateCount = tuBanCount - tuBanComplateCount;
|
||||||
|
//人员任务数据
|
||||||
|
var userList = db.SysGroupuser.AsQueryable()
|
||||||
|
.LeftJoin<SysUser>((a, b) => a.UserId == b.Id.ToString())
|
||||||
|
.Where((a,b) => a.GroupId == group.Id)
|
||||||
|
.Select((a, b) => new
|
||||||
|
{
|
||||||
|
a.UserId,
|
||||||
|
b.Name,
|
||||||
|
a.GroupId
|
||||||
|
}).ToList();
|
||||||
|
var userTaskCount = userList.Select(user =>
|
||||||
|
{
|
||||||
|
var userTaskInfo = taskInfo.Where(t => t.ReciveUserId == user.UserId).ToList();
|
||||||
|
|
||||||
|
var userTaskCount = userTaskInfo.Count;
|
||||||
|
var userComplateCount = userTaskInfo.Count(t => t.IsComplate);
|
||||||
|
var userNoComplateCount = userTaskCount - userComplateCount;
|
||||||
|
|
||||||
|
var userTuBanCount = userTaskInfo.Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var userTuBanComplateCount = userTaskInfo.Where(t => t.IsComplate).Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var userTuBanNoComplateCount = userTuBanCount - userTuBanComplateCount;
|
||||||
|
//任务列表
|
||||||
|
var userTaskList = db.InsTaskgroup.AsQueryable()
|
||||||
|
.LeftJoin<InsTask>((a, b) => a.TaskId == b.Id)
|
||||||
|
.Where((a, b) => a.ReciveUserId == user.UserId)
|
||||||
|
.Select<dynamic>((a,b) => new
|
||||||
|
{
|
||||||
|
Id = a.Id.SelectAll(),
|
||||||
|
TaskName = b.TaskName,
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
return new UserOrGroupTaskResp
|
||||||
|
{
|
||||||
|
UserName = user.Name,
|
||||||
|
TaskCount = userTaskCount,
|
||||||
|
TaskComplateCount = userComplateCount,
|
||||||
|
TaskNoComplateCount = userNoComplateCount,
|
||||||
|
TuBanCount = userTuBanCount,
|
||||||
|
TuBanComplateCount = userTuBanComplateCount,
|
||||||
|
TuBanNoComplateCount = userTuBanNoComplateCount,
|
||||||
|
UserInsTaskList = userTaskList
|
||||||
|
};
|
||||||
|
}).ToList();
|
||||||
|
return new UserOrGroupTaskResp
|
||||||
|
{
|
||||||
|
UserName = group.Name,
|
||||||
|
TaskCount = taskCount,
|
||||||
|
TaskComplateCount = taskComplateCount,
|
||||||
|
TaskNoComplateCount = taskNoComplateCount,
|
||||||
|
TuBanCount = tuBanCount,
|
||||||
|
TuBanComplateCount = tuBanComplateCount,
|
||||||
|
TuBanNoComplateCount = tuBanNoComplateCount,
|
||||||
|
UserOrGroupTask = userTaskCount
|
||||||
|
};
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
return new Response<List<UserOrGroupTaskResp>>
|
||||||
|
{
|
||||||
|
Result = groupTaskStats
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 获取所有小组信息
|
||||||
|
var groupInfo = await db.SysGroup.AsQueryable().Where(r => r.GroupLeaderId == user.Id.ToString()).ToListAsync();
|
||||||
|
|
||||||
|
// 获取任务和图斑信息
|
||||||
|
var taskInfo = await db.InsTaskgroup.AsQueryable()
|
||||||
|
.LeftJoin<SysGroupuser>((a, b) => a.ReciveUserId == b.UserId)
|
||||||
|
.LeftJoin<SysGroup>((a, b, c) => b.GroupId == c.Id)
|
||||||
|
.WhereIF(beginTime.Year != 0001, a => a.CreateTime >= beginTime && a.CreateTime <= endTime)
|
||||||
|
.Where((a, b) => !string.IsNullOrEmpty(a.ReciveUserId))
|
||||||
|
.Select((a, b, c) => new
|
||||||
|
{
|
||||||
|
a.Id,
|
||||||
|
a.ReciveUserId,
|
||||||
|
c.Name,
|
||||||
|
a.IsComplate,
|
||||||
|
a.EndNum,
|
||||||
|
a.BeginNum,
|
||||||
|
groupId = c.Id,
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
// 组织任务信息
|
||||||
|
var groupTaskStats = groupInfo.Select(group =>
|
||||||
|
{
|
||||||
|
var groupTaskInfo = taskInfo.Where(t => t.Name == group.Name).ToList();
|
||||||
|
|
||||||
|
var taskCount = groupTaskInfo.Count;
|
||||||
|
var taskComplateCount = groupTaskInfo.Count(t => t.IsComplate);
|
||||||
|
var taskNoComplateCount = taskCount - taskComplateCount;
|
||||||
|
|
||||||
|
var tuBanCount = groupTaskInfo.Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var tuBanComplateCount = groupTaskInfo.Where(t => t.IsComplate).Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var tuBanNoComplateCount = tuBanCount - tuBanComplateCount;
|
||||||
|
//人员任务数据
|
||||||
|
var userList = db.SysGroupuser.AsQueryable()
|
||||||
|
.LeftJoin<SysUser>((a, b) => a.UserId == b.Id.ToString())
|
||||||
|
.Where((a, b) => a.GroupId == group.Id)
|
||||||
|
.Select((a, b) => new
|
||||||
|
{
|
||||||
|
a.UserId,
|
||||||
|
b.Name,
|
||||||
|
a.GroupId
|
||||||
|
}).ToList();
|
||||||
|
var userTaskCount = userList.Select(user =>
|
||||||
|
{
|
||||||
|
var userTaskInfo = taskInfo.Where(t => t.ReciveUserId == user.UserId).ToList();
|
||||||
|
|
||||||
|
var userTaskCount = userTaskInfo.Count;
|
||||||
|
var userComplateCount = userTaskInfo.Count(t => t.IsComplate);
|
||||||
|
var userNoComplateCount = userTaskCount - userComplateCount;
|
||||||
|
|
||||||
|
var userTuBanCount = userTaskInfo.Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var userTuBanComplateCount = userTaskInfo.Where(t => t.IsComplate).Sum(t => t.EndNum - t.BeginNum + 1);
|
||||||
|
var userTuBanNoComplateCount = userTuBanCount - userTuBanComplateCount;
|
||||||
|
//任务列表
|
||||||
|
var userTaskList = db.InsTaskgroup.AsQueryable()
|
||||||
|
.LeftJoin<InsTask>((a, b) => a.TaskId == b.Id)
|
||||||
|
.Where((a, b) => a.ReciveUserId == user.UserId)
|
||||||
|
.Select<dynamic>((a, b) => new
|
||||||
|
{
|
||||||
|
Id = a.Id.SelectAll(),
|
||||||
|
TaskName = b.TaskName,
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
return new UserOrGroupTaskResp
|
||||||
|
{
|
||||||
|
UserName = user.Name,
|
||||||
|
TaskCount = userTaskCount,
|
||||||
|
TaskComplateCount = userComplateCount,
|
||||||
|
TaskNoComplateCount = userNoComplateCount,
|
||||||
|
TuBanCount = userTuBanCount,
|
||||||
|
TuBanComplateCount = userTuBanComplateCount,
|
||||||
|
TuBanNoComplateCount = userTuBanNoComplateCount,
|
||||||
|
UserInsTaskList = userTaskList
|
||||||
|
};
|
||||||
|
}).ToList();
|
||||||
|
return new UserOrGroupTaskResp
|
||||||
|
{
|
||||||
|
UserName = group.Name,
|
||||||
|
TaskCount = taskCount,
|
||||||
|
TaskComplateCount = taskComplateCount,
|
||||||
|
TaskNoComplateCount = taskNoComplateCount,
|
||||||
|
TuBanCount = tuBanCount,
|
||||||
|
TuBanComplateCount = tuBanComplateCount,
|
||||||
|
TuBanNoComplateCount = tuBanNoComplateCount,
|
||||||
|
UserOrGroupTask = userTaskCount
|
||||||
|
};
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
return new Response<List<UserOrGroupTaskResp>>
|
||||||
|
{
|
||||||
|
Result = groupTaskStats
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务列表
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Response<PageInfo<List<InsTaskForAdminResp>>>> GteTaskListByTime(DateTime beginTime, DateTime endTime, string taskName, int page, int limit)
|
||||||
|
{
|
||||||
|
using (var db = base.UnitWork.CreateContext())
|
||||||
|
{
|
||||||
|
RefAsync<int> totalCount = 0;
|
||||||
|
var tsakList = await db.InsTaskgroup.AsQueryable()
|
||||||
|
.LeftJoin<InsTask>((a, b) => a.TaskId == b.Id)
|
||||||
|
.Where((a, b) => a.CreateTime >= beginTime && a.CreateTime <= endTime)
|
||||||
|
.WhereIF(!string.IsNullOrEmpty(taskName), (a, b) => b.TaskName.Contains(taskName))
|
||||||
|
.Select((a, b) => new InsTaskForAdminResp()
|
||||||
|
{
|
||||||
|
Id = a.Id.SelectAll(),
|
||||||
|
}).OrderByDescending((a) => a.CreateTime).ToPageListAsync(page, limit, totalCount);
|
||||||
|
|
||||||
|
return new Response<PageInfo<List<InsTaskForAdminResp>>>
|
||||||
|
{
|
||||||
|
Result = new PageInfo<List<InsTaskForAdminResp>>
|
||||||
|
{
|
||||||
|
Items = tsakList,
|
||||||
|
Total = totalCount
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//public async Task<Response<List<AiShpDataExpenseAccountingTableResp>>> GetAiShpDataExpenseAccountingTableOld(DateTime beginTime, DateTime endTime)
|
//public async Task<Response<List<AiShpDataExpenseAccountingTableResp>>> GetAiShpDataExpenseAccountingTableOld(DateTime beginTime, DateTime endTime)
|
||||||
//{
|
//{
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace OpenAuth.App.ServiceApp.Response
|
||||||
public int TaskNoComplateCount { get; set; }
|
public int TaskNoComplateCount { get; set; }
|
||||||
public int TuBanComplateCount { get; set; }
|
public int TuBanComplateCount { get; set; }
|
||||||
public int TuBanNoComplateCount { get; set; }
|
public int TuBanNoComplateCount { get; set; }
|
||||||
|
public List<UserOrGroupTaskResp> UserOrGroupTask { get; set; }
|
||||||
|
public List<dynamic> UserInsTaskList { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||||
Response<List<UserOrGroupTaskResp>> response = new Response<List<UserOrGroupTaskResp>>();
|
Response<List<UserOrGroupTaskResp>> response = new Response<List<UserOrGroupTaskResp>>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return await _app.GetGroupOrUserTaskAndTuBanByTime(beginTime, endTime);
|
return await _app.GetGroupOrUserTaskStatisticsByTime(beginTime, endTime);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue