|
@@ -1,4 +1,5 @@
|
|
using AutoMapper;
|
|
using AutoMapper;
|
|
|
|
+using EnumsNET;
|
|
using NPOI.SS.Formula.Functions;
|
|
using NPOI.SS.Formula.Functions;
|
|
using OASystem.Domain;
|
|
using OASystem.Domain;
|
|
using OASystem.Domain.Dtos.PersonnelModule;
|
|
using OASystem.Domain.Dtos.PersonnelModule;
|
|
@@ -45,6 +46,8 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
taskOperationAudit.TaskAddAudit = 1;
|
|
taskOperationAudit.TaskAddAudit = 1;
|
|
taskOperationAudit.TaskDelAudit = 1;
|
|
taskOperationAudit.TaskDelAudit = 1;
|
|
taskOperationAudit.TasStopAudit = 1;
|
|
taskOperationAudit.TasStopAudit = 1;
|
|
|
|
+ taskOperationAudit.TaskComfirmAudit = 1;
|
|
|
|
+ taskOperationAudit.TaskScoreAudit = 1;
|
|
}
|
|
}
|
|
|
|
|
|
return taskOperationAudit;
|
|
return taskOperationAudit;
|
|
@@ -144,42 +147,63 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
|
|
|
|
if (portType == 1 || portType == 2 || portType == 3)
|
|
if (portType == 1 || portType == 2 || portType == 3)
|
|
{
|
|
{
|
|
- TaskDetailsView _view = await _sqlSugar.Queryable<Pm_TaskAllocation>().Where(it => it.IsDel == 0 && it.Id == Id)
|
|
|
|
- .Select(it => new TaskDetailsView
|
|
|
|
- {
|
|
|
|
- Id = it.Id,
|
|
|
|
- DiId = it.DiId,
|
|
|
|
- DepId = it.DepId,
|
|
|
|
- CreateUserId = it.CreateUserId,
|
|
|
|
- CreateTime = it.CreateTime,
|
|
|
|
- TaskName = it.TaskName,
|
|
|
|
- TaskContent = it.TaskContent,
|
|
|
|
- TaskPriority = it.TaskPriority,
|
|
|
|
- PredictBeginTime = it.PredictBeginTime,
|
|
|
|
- PredictEndTime = it.PredictEndTime,
|
|
|
|
- IsIntoPerformance = it.IsIntoPerformance,
|
|
|
|
- Remark = it.Remark,
|
|
|
|
- })
|
|
|
|
- .FirstAsync();
|
|
|
|
- if (_view != null)
|
|
|
|
|
|
+ //团组名称
|
|
|
|
+ List<ValueInfo> _GroupNameInfos = new List<ValueInfo>();
|
|
|
|
+ _GroupNameInfos = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0)
|
|
|
|
+ .OrderByDescending(it => it.CreateTime)
|
|
|
|
+ .Select(it => new ValueInfo { Id = it.Id, Name = it.TeamName })
|
|
|
|
+ .ToList();
|
|
|
|
+ _GroupNameInfos.Insert(0, new ValueInfo() { Id = -1, Name = "未选择" });
|
|
|
|
+ //部门名称
|
|
|
|
+ List<ValueInfo> _DepartmentNameInfos = new List<ValueInfo>();
|
|
|
|
+ _DepartmentNameInfos = _sqlSugar.Queryable<Sys_Department>()
|
|
|
|
+ .Select(d => new ValueInfo() { Id = d.Id, Name = d.DepName })
|
|
|
|
+ .ToList();
|
|
|
|
+ //用户名称
|
|
|
|
+ List<ValueInfo> _UserNameInfos = new List<ValueInfo>();
|
|
|
|
+ _UserNameInfos = _sqlSugar.Queryable<Sys_Users>()
|
|
|
|
+ .Select(d => new ValueInfo() { Id = d.Id, Name = d.CnName })
|
|
|
|
+ .ToList();
|
|
|
|
+
|
|
|
|
+ TaskDetailsView _view = _sqlSugar.Queryable<Pm_TaskAllocation>()
|
|
|
|
+ .Where(it => it.IsDel == 0 && it.Id == Id)
|
|
|
|
+ .Select(it => new TaskDetailsView
|
|
|
|
+ {
|
|
|
|
+ Id = it.Id,
|
|
|
|
+ DiId = it.DiId,
|
|
|
|
+ DepId = it.DepId,
|
|
|
|
+ CreateUserId = it.CreateUserId,
|
|
|
|
+ CreateTime = it.CreateTime,
|
|
|
|
+ TaskName = it.TaskName,
|
|
|
|
+ TaskContent = it.TaskContent,
|
|
|
|
+ TaskPriority = it.TaskPriority,
|
|
|
|
+ PredictBeginTime = it.PredictBeginTime,
|
|
|
|
+ PredictEndTime = it.PredictEndTime,
|
|
|
|
+ IsIntoPerformance = it.IsIntoPerformance,
|
|
|
|
+ Remark = it.Remark,
|
|
|
|
+ })
|
|
|
|
+ .First();
|
|
|
|
+ if (_view != null)
|
|
{
|
|
{
|
|
List<TaskUserDetailsView> taskUserDetailsViews = new List<TaskUserDetailsView>();
|
|
List<TaskUserDetailsView> taskUserDetailsViews = new List<TaskUserDetailsView>();
|
|
|
|
|
|
- taskUserDetailsViews = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>().Where(it => it.IsDel == 0 && it.TAId == _view.Id)
|
|
|
|
- .Select(it => new TaskUserDetailsView
|
|
|
|
- {
|
|
|
|
- Id = it.Id,
|
|
|
|
- TAId = it.TAId,
|
|
|
|
- UserId = it.UserId,
|
|
|
|
- BeginTime = it.BeginTime,
|
|
|
|
- OverTime = it.OverTime,
|
|
|
|
- TaskStatus = it.TaskStatus,
|
|
|
|
- Cause = it.Cause,
|
|
|
|
- Remark = it.Remark
|
|
|
|
- })
|
|
|
|
- .ToListAsync();
|
|
|
|
|
|
+ taskUserDetailsViews = _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
|
|
+ .Where(it => it.IsDel == 0 && it.TAId == _view.Id)
|
|
|
|
+ .Select(it => new TaskUserDetailsView
|
|
|
|
+ {
|
|
|
|
+ Id = it.Id,
|
|
|
|
+ TAId = it.TAId,
|
|
|
|
+ UserId = it.UserId,
|
|
|
|
+ BeginTime = it.BeginTime,
|
|
|
|
+ OverTime = it.OverTime,
|
|
|
|
+ TaskStatus = it.TaskStatus,
|
|
|
|
+ Cause = it.Cause,
|
|
|
|
+ Remark = it.Remark
|
|
|
|
+ })
|
|
|
|
+ .ToList();
|
|
_view.UserTaskInfos = taskUserDetailsViews;
|
|
_view.UserTaskInfos = taskUserDetailsViews;
|
|
|
|
|
|
|
|
+ _result.Data = _view;
|
|
_result.Code = 0;
|
|
_result.Code = 0;
|
|
_result.Msg = "查询成功!";
|
|
_result.Msg = "查询成功!";
|
|
}
|
|
}
|
|
@@ -233,8 +257,8 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
}
|
|
}
|
|
|
|
|
|
_sqlSugar.BeginTran();
|
|
_sqlSugar.BeginTran();
|
|
-
|
|
|
|
- int addId = await _sqlSugar.Insertable< Pm_TaskAllocation >(_TaskAllocation).ExecuteReturnIdentityAsync();
|
|
|
|
|
|
+
|
|
|
|
+ int addId = await _sqlSugar.Insertable<Pm_TaskAllocation>(_TaskAllocation).ExecuteReturnIdentityAsync();
|
|
if (addId < 1)
|
|
if (addId < 1)
|
|
{
|
|
{
|
|
_sqlSugar.RollbackTran();
|
|
_sqlSugar.RollbackTran();
|
|
@@ -256,15 +280,11 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
return _result;
|
|
return _result;
|
|
}
|
|
}
|
|
|
|
|
|
- /*
|
|
|
|
- * 发送消息
|
|
|
|
- */
|
|
|
|
-
|
|
|
|
_result.Code = 0;
|
|
_result.Code = 0;
|
|
_result.Msg = "添加成功!";
|
|
_result.Msg = "添加成功!";
|
|
_sqlSugar.CommitTran();
|
|
_sqlSugar.CommitTran();
|
|
}
|
|
}
|
|
- else if(dto.Id > 0) //修改
|
|
|
|
|
|
+ else if (dto.Id > 0) //修改
|
|
{
|
|
{
|
|
_sqlSugar.BeginTran();
|
|
_sqlSugar.BeginTran();
|
|
|
|
|
|
@@ -295,7 +315,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
.Select(it => it.UserId)
|
|
.Select(it => it.UserId)
|
|
.ToListAsync();
|
|
.ToListAsync();
|
|
|
|
|
|
- if (selectUserId.Count < 1)
|
|
|
|
|
|
+ if (selectUserId.Count < 1)
|
|
{
|
|
{
|
|
int addSub1 = await _sqlSugar.Insertable<Pm_TaskRelevanceUser>(_TaskRelevanceUsers).ExecuteCommandAsync();
|
|
int addSub1 = await _sqlSugar.Insertable<Pm_TaskRelevanceUser>(_TaskRelevanceUsers).ExecuteCommandAsync();
|
|
if (addSub1 < 1)
|
|
if (addSub1 < 1)
|
|
@@ -314,8 +334,8 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
List<Pm_TaskRelevanceUser> _TaskRelevanceUsers1 = new List<Pm_TaskRelevanceUser>();
|
|
List<Pm_TaskRelevanceUser> _TaskRelevanceUsers1 = new List<Pm_TaskRelevanceUser>();
|
|
|
|
|
|
_TaskRelevanceUsers1 = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
_TaskRelevanceUsers1 = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
- .Where(it => it.IsDel == 0 &&
|
|
|
|
- it.TAId == _TaskAllocation.Id &&
|
|
|
|
|
|
+ .Where(it => it.IsDel == 0 &&
|
|
|
|
+ it.TAId == _TaskAllocation.Id &&
|
|
SelectUserIdDiff.Contains(it.UserId))
|
|
SelectUserIdDiff.Contains(it.UserId))
|
|
.ToListAsync();
|
|
.ToListAsync();
|
|
if (_TaskRelevanceUsers1.Count > 0)
|
|
if (_TaskRelevanceUsers1.Count > 0)
|
|
@@ -327,7 +347,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
|
|
|
|
var updateIsDel = await _sqlSugar.Updateable(_TaskRelevanceUsers1)
|
|
var updateIsDel = await _sqlSugar.Updateable(_TaskRelevanceUsers1)
|
|
.UpdateColumns(it => it.IsDel)
|
|
.UpdateColumns(it => it.IsDel)
|
|
- .WhereColumns(it => new { it.Id,it.TAId})
|
|
|
|
|
|
+ .WhereColumns(it => new { it.Id, it.TAId })
|
|
.ExecuteCommandAsync();
|
|
.ExecuteCommandAsync();
|
|
if (updateIsDel < 1)
|
|
if (updateIsDel < 1)
|
|
{
|
|
{
|
|
@@ -373,7 +393,152 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的PortType参数!");
|
|
|
|
+ }
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 设置任务知晓
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="id"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> _TaskSetHaveStatus(int id)
|
|
|
|
+ {
|
|
|
|
+ if (id < 1)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的Id参数!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var data1 = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>().Where(it => it.IsDel == 0 && it.Id == id).FirstAsync();
|
|
|
|
+ if (data1 == null)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("该任务不存在!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+ var data2 = await _sqlSugar.Queryable<Pm_TaskAllocation>().Where(it => it.IsDel == 0 && it.Id == data1.TAId).FirstAsync();
|
|
|
|
+
|
|
|
|
+ _sqlSugar.BeginTran();
|
|
|
|
+
|
|
|
|
+ var update1 = await _sqlSugar.Updateable<Pm_TaskRelevanceUser>()
|
|
|
|
+ .SetColumns(it => it.TaskStatus == (int)TaskEnum.HaveKnown)
|
|
|
|
+ .ExecuteCommandAsync();
|
|
|
|
+ if (update1 < 1)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("操作失败!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+ _result.Msg = string.Format("操作成功!");
|
|
|
|
+ _result.Code = 0;
|
|
|
|
+ _sqlSugar.CommitTran();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 任务确认完成
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> _TaskConfirmCompletion(int portType,int id)
|
|
|
|
+ {
|
|
|
|
+ if (portType == 1 || portType == 2 || portType == 3)
|
|
|
|
+ {
|
|
|
|
+ if (id < 1)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的Id参数!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var data = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
|
|
|
|
+ .Where(it => it.IsDel == 0 && it.Id == id && it.TaskStatus <= (int)TaskEnum.UnFinished)
|
|
|
|
+ .ToListAsync();
|
|
|
|
+ if (data.Count > 0)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("本任务参与人员并未全部完成,不可确认任务完成!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var update = await _sqlSugar.Updateable<Pm_TaskAllocation>()
|
|
|
|
+ .SetColumns(it => it.IsComplete == 1)
|
|
|
|
+ .SetColumns(it => it.Status == 4)
|
|
|
|
+ .Where(it => it.Id == id)
|
|
|
|
+ .ExecuteCommandAsync();
|
|
|
|
+ if (update > 0)
|
|
|
|
+ {
|
|
|
|
+ _result.Code = 0;
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+ else _result.Msg = "确认完成失败!";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的PortType参数!");
|
|
|
|
+ }
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 任务评分
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> _TaskScore(int portType, int id, List<ScoreInfo> subIds)
|
|
|
|
+ {
|
|
|
|
+ if (portType == 1 || portType == 2 || portType == 3)
|
|
|
|
+ {
|
|
|
|
+ if (id < 1)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的Id参数!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (subIds.Count < 1)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("请传入有效的SubIds参数!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var data = await _sqlSugar.Queryable<Pm_TaskAllocation>()
|
|
|
|
+ .Where(it => it.IsDel == 0 && it.Id == id && it.IsComplete == 1)
|
|
|
|
+ .FirstAsync();
|
|
|
|
+ if (data == null)
|
|
|
|
+ {
|
|
|
|
+ _result.Msg = string.Format("本任务尚未由发布人确认任务完成,不可评分!");
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<Pm_TaskRelevanceUser> _TaskRelevanceUsers = new List<Pm_TaskRelevanceUser>();
|
|
|
|
+ foreach (var item in subIds)
|
|
|
|
+ {
|
|
|
|
+ _TaskRelevanceUsers.Add(new Pm_TaskRelevanceUser()
|
|
|
|
+ {
|
|
|
|
+ Id = item.Id,
|
|
|
|
+ Score = item.Score,
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var update = await _sqlSugar.Updateable<Pm_TaskRelevanceUser>(_TaskRelevanceUsers)
|
|
|
|
+ .UpdateColumns(it => it.Score)
|
|
|
|
+ .WhereColumns(it => it.Id)
|
|
|
|
+ .ExecuteCommandAsync();
|
|
|
|
+ if (update > 0)
|
|
|
|
+ {
|
|
|
|
+ _result.Code = 0;
|
|
|
|
+ return _result;
|
|
|
|
+ }
|
|
|
|
+ else _result.Msg = "评分失败!";
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|