|
|
@@ -325,6 +325,42 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
|
return (true, string.Empty);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 任务终止权限验证
|
|
|
+ /// </summary>
|
|
|
+ public (bool CanEdit, string Message) TaskHavePerm(int taskId, int currentUserId)
|
|
|
+ {
|
|
|
+ var taskInfo = _sqlSugar.Queryable<Pm_TaskAllocation>().First(x => x.Id == taskId && x.IsDel == 0);
|
|
|
+
|
|
|
+ if (taskInfo == null)
|
|
|
+ return (false, "任务不存在!");
|
|
|
+
|
|
|
+ var taskerInfo = _sqlSugar.Queryable<Pm_TaskRelevanceUser>().First(x => x.TAId == taskId && x.UserId == currentUserId && x.IsDel == 0);
|
|
|
+ if (taskerInfo == null)
|
|
|
+ return (false, "任务指派单不存在!");
|
|
|
+
|
|
|
+ if (taskerInfo.UserId != currentUserId)
|
|
|
+ return (false, "只有任务归属者可设置“已知晓”状态!");
|
|
|
+
|
|
|
+ // 检查当前状态是否设置已知晓
|
|
|
+ if (taskerInfo.TaskStatus == TaskerEnum.HaveKnown)
|
|
|
+ {
|
|
|
+ return (false, "当前状态已设置,无需重复操作!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (taskInfo.Status == TaskEnum.UnFinished)
|
|
|
+ {
|
|
|
+ return (false, "当前状态 “未完成”,不可设置该状态!");
|
|
|
+ }
|
|
|
+ if (taskInfo.Status == TaskEnum.Finished)
|
|
|
+ {
|
|
|
+ return (false, "当前状态 “已完成”,不可设置该状态!");
|
|
|
+ }
|
|
|
+
|
|
|
+ return (true, string.Empty);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 安全解析字符串为 DateTime?
|
|
|
/// </summary>
|
|
|
@@ -732,24 +768,17 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
|
|
|
return _result;
|
|
|
}
|
|
|
|
|
|
- var taskUserInfo = await _sqlSugar.Queryable<Pm_TaskRelevanceUser>().Where(it => it.IsDel == 0 && it.TAId == id && it.UserId == userId).FirstAsync();
|
|
|
- if (taskUserInfo == null)
|
|
|
- {
|
|
|
- _result.Msg = string.Format("该任务不存在!");
|
|
|
- return _result;
|
|
|
- }
|
|
|
- var taskerId = taskUserInfo.Id;
|
|
|
-
|
|
|
- //状态确认
|
|
|
- if (taskUserInfo.TaskStatus == TaskerEnum.HaveKnown)
|
|
|
+ //状态校验
|
|
|
+ (bool havePerm, string msg3) = TaskHavePerm(id, userId);
|
|
|
+ if (!havePerm)
|
|
|
{
|
|
|
- _result.Msg = string.Format("已设置“已知晓”状态,不可重复设置!");
|
|
|
+ _result.Msg = msg3;
|
|
|
return _result;
|
|
|
}
|
|
|
|
|
|
var update1 = await _sqlSugar.Updateable<Pm_TaskRelevanceUser>()
|
|
|
.SetColumns(it => it.TaskStatus == TaskerEnum.HaveKnown)
|
|
|
- .Where(it => it.Id == taskerId && it.UserId == userId)
|
|
|
+ .Where(it => it.TAId == id && it.UserId == userId)
|
|
|
.ExecuteCommandAsync();
|
|
|
if (update1 < 1)
|
|
|
{
|