|
|
@@ -1,5 +1,7 @@
|
|
|
using Aspose.Cells;
|
|
|
+using Dm.util;
|
|
|
using FluentValidation;
|
|
|
+using k8s.KubeConfigModels;
|
|
|
using Markdig;
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
using OASystem.API.OAMethodLib;
|
|
|
@@ -1050,141 +1052,71 @@ namespace OASystem.API.Controllers
|
|
|
groupArr = groupNames.Split(',').Select(part => part.Trim()).ToArray();
|
|
|
}
|
|
|
|
|
|
- string whereSql = "", currUserName = "";
|
|
|
- #region 分页参数处理
|
|
|
-
|
|
|
- //类型处理
|
|
|
- if (dto.Type == 0) whereSql = "";
|
|
|
- else if (dto.Type == 1) //1 由我指派
|
|
|
- {
|
|
|
- //whereSql = string.Format(@" And ta.CreateUserId = {0} Or (Select COUNT(1) As PeopleNumber From Pm_TaskRelevanceUser Where IsDel = 0 And ta.Id = TAId And UserId = {0}) > 0", dto.UserId);
|
|
|
- }
|
|
|
- else if (dto.Type == 2)// 2 指派给我
|
|
|
- {
|
|
|
- //whereSql = string.Format(@" And (Select COUNT(1) As PeopleNumber From Pm_TaskRelevanceUser Where IsDel = 0 And ta.Id = TAId And UserId = {0}) > 0", dto.UserId);
|
|
|
- }
|
|
|
- //状态 -1 全部 0 未开始 1 进行中 2 待审核 3 未完成 4 已完成
|
|
|
- if (dto.Status == -1) //全部
|
|
|
- {
|
|
|
- whereSql += "";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- whereSql += string.Format(@" And ta.Status = {0} ", dto.Status);
|
|
|
- }
|
|
|
-
|
|
|
- //任务类型
|
|
|
- if (dto.TaskType == -1) //全部
|
|
|
- {
|
|
|
- whereSql += "";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- whereSql += string.Format(@" And ta.TaskType = {0} ", dto.TaskType);
|
|
|
- }
|
|
|
-
|
|
|
- //任务名称
|
|
|
- if (!string.IsNullOrEmpty(dto.TaskName))
|
|
|
- {
|
|
|
- whereSql += string.Format(@" And ta.TaskName Like '%{0}%' ", dto.TaskName);
|
|
|
- }
|
|
|
-
|
|
|
- //人员名称
|
|
|
- string taskUserWhereSql = string.Empty;
|
|
|
- if (dto.TaskUserId > 0)
|
|
|
+ //任务人员限定 发布者可看范围内的人员,接受者只能看自己的任务
|
|
|
+ var taskPublisher = await _taskAllocationRep.ValidateTaskPublisher(dto.UserId);
|
|
|
+ var taskUserIds = new List<int>();
|
|
|
+ if (taskPublisher.isTaskPublisher)
|
|
|
{
|
|
|
- var taskUserInfo = await _sqlSugar.Queryable<Sys_Users>().FirstAsync(x => x.IsDel == 0 && x.Id == dto.TaskUserId);
|
|
|
- if (taskUserInfo != null)
|
|
|
+ taskUserIds = taskPublisher.userIds;
|
|
|
+ //查询指定人员
|
|
|
+ if (dto.TaskUserId > -1)
|
|
|
{
|
|
|
- taskUserWhereSql = $" AND [Participant] like '%{taskUserInfo.CnName}%'";
|
|
|
+ taskUserIds = taskPublisher.userIds.Where(x => x == dto.TaskUserId).ToList();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- #endregion
|
|
|
-
|
|
|
- var currUserInfo = await _sqlSugar.Queryable<Sys_Users>().FirstAsync(x => x.Id == dto.UserId);
|
|
|
- if (currUserInfo != null) currUserName = currUserInfo.CnName;
|
|
|
-
|
|
|
- string pageSql = string.Format(@"Select
|
|
|
- ROW_NUMBER() OVER(
|
|
|
- ORDER BY
|
|
|
- CreateTime Desc
|
|
|
- ) AS RowNumber,
|
|
|
- *
|
|
|
-From
|
|
|
-(
|
|
|
- Select
|
|
|
- ta.Id,
|
|
|
- ta.TaskName,
|
|
|
- ta.TaskContent,
|
|
|
- s.Name as 'TaskTypeName',
|
|
|
- ta.TaskPriority,
|
|
|
- d.DepName,
|
|
|
- di.TeamName,
|
|
|
- ta.Status,
|
|
|
- ta.PredictBeginTime,
|
|
|
- ta.PredictEndTime,
|
|
|
- ta.CreateUserId,
|
|
|
- u.CnName As CreateUserName,
|
|
|
- ta.CreateTime,
|
|
|
- ta.Remark,
|
|
|
- ta.OverTime,
|
|
|
- (
|
|
|
- SELECT
|
|
|
- STUFF(
|
|
|
- (
|
|
|
- Select
|
|
|
- ',' + u.CnName
|
|
|
- From
|
|
|
- Pm_TaskRelevanceUser tra
|
|
|
- Left Join Sys_Users u On tra.UserId = u.Id
|
|
|
- Where
|
|
|
- tra.Isdel = 0
|
|
|
- And tra.TAId = ta.Id FOR XML PATH('')
|
|
|
- ),
|
|
|
- 1,
|
|
|
- 1,
|
|
|
- ''
|
|
|
- )
|
|
|
- ) As Participant
|
|
|
- --,(
|
|
|
- -- SELECT
|
|
|
- -- STUFF(
|
|
|
- -- (
|
|
|
- -- Select
|
|
|
- -- ',' + u.CnName
|
|
|
- -- From
|
|
|
- -- Pm_TaskRelevanceUser tra
|
|
|
- -- Left Join Sys_Users u On tra.UserId = u.Id
|
|
|
- -- Where
|
|
|
- -- tra.Isdel = 0
|
|
|
- -- And tra.TAId = ta.Id
|
|
|
- -- And tra.TaskStatus = 4 FOR XML PATH('')
|
|
|
- -- ),
|
|
|
- -- 1,
|
|
|
- -- 1,
|
|
|
- -- ''
|
|
|
- -- )
|
|
|
- --) As Consummator
|
|
|
- From
|
|
|
- Pm_TaskAllocation ta
|
|
|
- Left Join Sys_Department d On ta.DepId = d.Id
|
|
|
- Left Join Grp_DelegationInfo di On ta.DiId = di.Id
|
|
|
- Left Join Sys_Users u On ta.CreateUserId = u.Id
|
|
|
- left join Sys_SetData s on ta.TaskType = s.Id
|
|
|
- Where
|
|
|
- ta.IsDel = 0 {0}
|
|
|
- ) As temp
|
|
|
-WHERE
|
|
|
- [CreateUserName] like '%{1}%' {2}", whereSql, currUserName, taskUserWhereSql);
|
|
|
+ else taskUserIds.Add(dto.UserId);
|
|
|
|
|
|
RefAsync<int> total = 0;
|
|
|
- var _view = await _sqlSugar.SqlQueryable<TaskListView>(pageSql)
|
|
|
- .WhereIF(groupArr.Any(), x => groupArr.Contains(x.TeamName))
|
|
|
- .ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
|
|
|
+ var view = await _sqlSugar.Queryable<Pm_TaskAllocation>()
|
|
|
+ .LeftJoin<Sys_Department>((ta, d) => ta.DepId == d.Id)
|
|
|
+ .LeftJoin<Grp_DelegationInfo>((ta, d, di) => ta.DiId == di.Id)
|
|
|
+ .LeftJoin<Sys_Users>((ta, d, di, u) => ta.CreateUserId == u.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((ta, d, di, u, sd) => ta.TaskType == sd.Id)
|
|
|
+ .Where((ta, d, di, u, sd) => ta.IsDel == 0)
|
|
|
+ //任务发布者和任务接受者
|
|
|
+ .Where((ta, d, di, u, sd) =>
|
|
|
+ SqlFunc.Subqueryable<Pm_TaskRelevanceUser>()
|
|
|
+ .Where(tr => tr.TAId == ta.Id && taskUserIds.Contains(tr.UserId))
|
|
|
+ .Any())
|
|
|
+ //状态
|
|
|
+ .WhereIF(dto.Status > -1, (ta, d, di, u, sd) => (int)ta.Status == dto.Status)
|
|
|
+ //任务类型
|
|
|
+ .WhereIF(dto.TaskType > -1, (ta, d, di, u, sd) => ta.TaskType == dto.TaskType)
|
|
|
+ //团组
|
|
|
+ .WhereIF(groupArr.Any(), (ta, d, di, u, sd) => groupArr.Contains(di.TeamName))
|
|
|
+ .OrderByDescending((ta, d, di, u, sd) => ta.CreateTime)
|
|
|
+ .Select((ta, d, di, u, sd) => new TaskListView()
|
|
|
+ {
|
|
|
+ Id = ta.Id,
|
|
|
+ TaskName = ta.TaskName,
|
|
|
+ TaskContent = ta.TaskContent,
|
|
|
+ TaskTypeName = sd.Name,
|
|
|
+ TaskPriority = ta.TaskPriority,
|
|
|
+ DepName = d.DepName,
|
|
|
+ TeamName = di.TeamName,
|
|
|
+ Status = (int)ta.Status,
|
|
|
+ PredictBeginTime = ta.PredictBeginTime,
|
|
|
+ PredictEndTime = ta.PredictEndTime,
|
|
|
+ CreateUserId = ta.CreateUserId,
|
|
|
+ CreateUserName = u.CnName,
|
|
|
+ CreateTime = ta.CreateTime,
|
|
|
+ Remark = ta.Remark,
|
|
|
+ OverTime = ta.OverTime
|
|
|
+ })
|
|
|
+ .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
|
|
|
+
|
|
|
+ int index = 1;
|
|
|
+ foreach (var item in view)
|
|
|
+ {
|
|
|
+ item.RowNumber = index;
|
|
|
+ //设置参与人
|
|
|
+ var userNames = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
|
+ .LeftJoin<Sys_Users>((tru, u) => tru.UserId == u.Id)
|
|
|
+ .Where((tru, u) => tru.IsDel == 0 && tru.TAId == item.Id)
|
|
|
+ .Select((tru, u) => u.CnName)
|
|
|
+ .ToListAsync();
|
|
|
+ item.Participant = string.Join("、", userNames);
|
|
|
|
|
|
- foreach (var item in _view)
|
|
|
- {
|
|
|
//设置编辑权限
|
|
|
(bool editPerm, string msg1) = _taskAllocationRep.EditPerm(item.Id, dto.UserId);
|
|
|
item.EditPerm = editPerm;
|
|
|
@@ -1197,9 +1129,11 @@ WHERE
|
|
|
item.TaskDetailsPerm = _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
|
.Where(it => it.IsDel == 0 && it.TAId == item.Id && (it.UserId == dto.UserId || it.CreateUserId == dto.UserId))
|
|
|
.Any();
|
|
|
+
|
|
|
+ index++;
|
|
|
}
|
|
|
|
|
|
- return Ok(JsonView(true, "查询成功!", _view, total));
|
|
|
+ return Ok(JsonView(true, "查询成功!", view, total));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -4239,6 +4173,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
/// <param name="start"></param>
|
|
|
/// <param name="end"></param>
|
|
|
/// <param name="createUserId"></param>
|
|
|
+ /// <param name="setdataId"></param>
|
|
|
/// <returns></returns>
|
|
|
private async Task<JsonView> AiPerformanceAnalysis_TaskAllocationAsync(int userId, DateTime start, DateTime end, int createUserId, int setdataId)
|
|
|
{
|
|
|
@@ -4496,8 +4431,8 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
/// <summary>
|
|
|
/// 通用绩效分析pdf下载
|
|
|
/// </summary>
|
|
|
- /// <param name="year"></param>
|
|
|
- /// <param name="month"></param>
|
|
|
+ /// <param name="start"></param>
|
|
|
+ /// <param name="end"></param>
|
|
|
/// <param name="userId"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
@@ -5300,7 +5235,7 @@ OPTION (MAXRECURSION 0); -- 允许无限递归 ";
|
|
|
dto.PageIndex = 1;
|
|
|
}
|
|
|
|
|
|
- if (dto.PageSize < 1 || dto.PageSize > 100)
|
|
|
+ if ((dto.PageSize < 1 || dto.PageSize > 100) && dto.PortType != 3)
|
|
|
{
|
|
|
dto.PageSize = 10;
|
|
|
}
|
|
|
@@ -5523,11 +5458,12 @@ ORDER BY MonthNumber, CollectionDays";
|
|
|
/// <summary>
|
|
|
/// 公司日常绩效 初始化数据
|
|
|
/// </summary>
|
|
|
+ /// <param name="currUserId">当前用户ID</param>
|
|
|
/// <returns></returns>
|
|
|
- [HttpGet]
|
|
|
- public async Task<IActionResult> CompanyDailyKpiInit()
|
|
|
+ [HttpGet("{currUserId}")]
|
|
|
+ public async Task<IActionResult> CompanyDailyKpiInit(int currUserId)
|
|
|
{
|
|
|
- return Ok(await _companyDailyKyiRep.InitAsync());
|
|
|
+ return Ok(await _companyDailyKyiRep.InitAsync(currUserId));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -5594,6 +5530,5 @@ ORDER BY MonthNumber, CollectionDays";
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
}
|
|
|
}
|