添加管理员统计量
parent
bf2e0f30fe
commit
e9ad7bc896
|
|
@ -380,7 +380,244 @@ namespace OpenAuth.App.ServiceApp
|
|||
|
||||
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)
|
||||
//{
|
||||
|
|
@ -678,7 +915,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
SetCellStyle(row21, headerStyle24);
|
||||
// 合并单元格
|
||||
sheet2.AddMergedRegion(new CellRangeAddress(0, 0, 0, 11)); // 合并标题行
|
||||
sheet2.AddMergedRegion(new CellRangeAddress(1, 1, 9, 11));
|
||||
sheet2.AddMergedRegion(new CellRangeAddress(1, 1, 9, 11));
|
||||
int[] normalColumns2 = { 1, 2, 3, 4, 5, 6, 10 };
|
||||
foreach (var index in normalColumns2) sheet2.SetColumnWidth(index, 11 * 256); // 设置列宽
|
||||
sheet2.SetColumnWidth(0, 6 * 256);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ namespace OpenAuth.App.ServiceApp.Response
|
|||
public int TaskNoComplateCount { get; set; }
|
||||
public int TuBanComplateCount { 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>>();
|
||||
try
|
||||
{
|
||||
return await _app.GetGroupOrUserTaskAndTuBanByTime(beginTime, endTime);
|
||||
return await _app.GetGroupOrUserTaskStatisticsByTime(beginTime, endTime);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue