|
@@ -138,6 +138,102 @@ namespace OASystem.API.Controllers
|
|
|
return Ok(jw);
|
|
return Ok(jw);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 根据工单ID获取任务详情
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
|
+ /// <returns></returns>
|
|
|
|
|
+ [HttpPost]
|
|
|
|
|
+ public async Task<IActionResult> GetTaskListByTaskId(GetTaskListByTaskIdDto dto)
|
|
|
|
|
+ {
|
|
|
|
|
+ var jw = JsonView(false);
|
|
|
|
|
+
|
|
|
|
|
+ if (dto.WorkOrderId < 1 || dto.UserId < 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ jw.Msg = "参数有误!";
|
|
|
|
|
+ return Ok(jw);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询工单基本信息
|
|
|
|
|
+ var query = _sqlsugar.Queryable<Task_WorkOrder>()
|
|
|
|
|
+ .LeftJoin<Grp_DelegationInfo>((x, y) => x.GroupId == y.Id && y.IsDel == 0)
|
|
|
|
|
+ .LeftJoin<Sys_SetData>((x, y, z) => x.ForeignOptionId == z.Id && z.IsDel == 0)
|
|
|
|
|
+ .LeftJoin<Sys_Users>((x, y, z, w) => x.AssignedUserId == w.Id && w.IsDel == 0)
|
|
|
|
|
+ .Where(x => x.Id == dto.WorkOrderId && x.IsDel == 0);
|
|
|
|
|
+
|
|
|
|
|
+ var workOrderInfo = query.Select((x, y, z, w) => new
|
|
|
|
|
+ {
|
|
|
|
|
+ Id = x.Id,
|
|
|
|
|
+ TaskName = x.Name,
|
|
|
|
|
+ StartTime = x.StartTime.ToString("yyyy-MM-dd HH:mm"),
|
|
|
|
|
+ Assignee = w.CnName,
|
|
|
|
|
+ ExternalOption = z.Name,
|
|
|
|
|
+ Team = y.TeamName,
|
|
|
|
|
+ Active = x.ProgressId,
|
|
|
|
|
+ CreateUserid = x.CreateUserId
|
|
|
|
|
+ }).First();
|
|
|
|
|
+
|
|
|
|
|
+ if (workOrderInfo == null)
|
|
|
|
|
+ {
|
|
|
|
|
+ jw.Msg = "工单不存在或已删除!";
|
|
|
|
|
+ return Ok(jw);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 查询工单的所有任务
|
|
|
|
|
+ var taskArr = _sqlsugar.Queryable<Task_WorkTask>()
|
|
|
|
|
+ .Where(y => y.IsDel == 0 && y.WorkOrderId == workOrderInfo.Id)
|
|
|
|
|
+ .ToList();
|
|
|
|
|
+
|
|
|
|
|
+ // 分离额外任务
|
|
|
|
|
+ var ExtraStep = taskArr.Where(x => x.IsExtraTask == true);
|
|
|
|
|
+
|
|
|
|
|
+ // 查询已审核通过的额外任务回执
|
|
|
|
|
+ var historyStep = _sqlsugar.Queryable<Task_WorkTaskReceipt>()
|
|
|
|
|
+ .Where(y => y.IsDel == 0 && y.WorkOrderId == workOrderInfo.Id
|
|
|
|
|
+ && ExtraStep.Select(z => z.Id).Contains(y.WorkTaskId)
|
|
|
|
|
+ && y.IsApproved == 1)
|
|
|
|
|
+ .Select(x => x.WorkTaskId)
|
|
|
|
|
+ .ToList();
|
|
|
|
|
+
|
|
|
|
|
+ // 构建返回数据
|
|
|
|
|
+ var data = new WorkOrdeView
|
|
|
|
|
+ {
|
|
|
|
|
+ Id = workOrderInfo.Id,
|
|
|
|
|
+ TaskName = workOrderInfo.TaskName,
|
|
|
|
|
+ StartTime = workOrderInfo.StartTime,
|
|
|
|
|
+ Assignee = workOrderInfo.Assignee,
|
|
|
|
|
+ ExternalOption = workOrderInfo.ExternalOption,
|
|
|
|
|
+ Team = string.IsNullOrWhiteSpace(workOrderInfo.Team) ? "未选择" : workOrderInfo.Team,
|
|
|
|
|
+ StepInfo = new StepInfo
|
|
|
|
|
+ {
|
|
|
|
|
+ Active = workOrderInfo.Active,
|
|
|
|
|
+ ExtraActive = 1,
|
|
|
|
|
+ Steps = taskArr.Where(x => x.IsExtraTask == false)
|
|
|
|
|
+ .OrderBy(x => x.Sort)
|
|
|
|
|
+ .Select(x => new Steps
|
|
|
|
|
+ {
|
|
|
|
|
+ Id = x.Id,
|
|
|
|
|
+ Name = x.Name,
|
|
|
|
|
+ }).ToList(),
|
|
|
|
|
+ ExtraStep = ExtraStep
|
|
|
|
|
+ .OrderBy(x => x.Sort)
|
|
|
|
|
+ .Select(x => new ExtraSteps
|
|
|
|
|
+ {
|
|
|
|
|
+ Id = x.Id,
|
|
|
|
|
+ Name = x.Name,
|
|
|
|
|
+ Approved = historyStep.Contains(x.Id) ? 1 : 0,
|
|
|
|
|
+ }).ToList()
|
|
|
|
|
+ },
|
|
|
|
|
+ isReview = workOrderInfo.CreateUserid == dto.UserId,
|
|
|
|
|
+ UrgentCount = taskArr.Where(x => x.IsUrgent).Count()
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ jw.Data = data;
|
|
|
|
|
+ jw.Msg = "查询成功!";
|
|
|
|
|
+ jw.Code = 200;
|
|
|
|
|
+ return Ok(jw);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 计算两个时间之间的工作小时数
|
|
/// 计算两个时间之间的工作小时数
|
|
|
/// 工作时间:周一至周五,上午9:00-12:00,下午13:30-18:00
|
|
/// 工作时间:周一至周五,上午9:00-12:00,下午13:30-18:00
|