namespace Yw.Application
{
///
/// RepairTaskForm
///
[Route("Repair/Task/Form/Std")]
[ApiDescriptionSettings("Repair", Name = "维修单(Std)", Order = 8900)]
public class RepairTaskForm_MobileController : IDynamicApiController
{
private readonly IHttpContextAccessor _httpContextAccessor;
///
///
///
public RepairTaskForm_MobileController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
private readonly Service.RepairTaskForm _service = new();
///
/// 通过 ID 获取详细
///
[Route("GetDetailByID@V1.0")]
[HttpGet]
public RepairTaskFormDetailDto GetDetailByID([FromQuery][Required] IDInput input)
{
var taskForm = _service.GetByID(input.ID);
if (taskForm == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
}
var equipment = new Yw.Service.Equipment().GetByID(taskForm.EquipmentID);
var taskLogList = new Service.RepairTaskLog().GetByFormID(input.ID);
var taskFileList = new Service.RepairTaskLogFile().GetByFormID(input.ID);
var vm = new RepairTaskFormDetailDto(taskForm, equipment, taskLogList, taskFileList);
if (taskForm.RequestID.HasValue)
{
var requestForm = new Service.RepairRequestForm().GetByID(taskForm.RequestID.Value);
var requestFileList = new Service.RepairRequestFile().GetByFormID(taskForm.RequestID.Value);
var requestLogList = new Service.RepairRequestLog().GetByFormID(taskForm.RequestID.Value);
vm.RequestForm = new RepairTaskRequestFormDetailDto(requestForm, equipment, requestFileList, requestLogList);
}
return vm;
}
///
/// 通过 ID 获取已派单详细
///
[Route("GetMyAssignedDetailByID@V1.0")]
[HttpGet]
public RepairTaskFormAssignedDetailDto GetAssignedDetailByID([FromQuery][Required] IDInput input)
{
var taskForm = _service.GetByID(input.ID);
if (taskForm == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
}
if (taskForm.FormStatus != eTaskStatus.Assigned)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"ID:{input.ID} 表单状态错误");
}
var equipment = new Yw.Service.Equipment().GetByID(taskForm.EquipmentID);
var taskLogList = new Service.RepairTaskLog().GetByFormID(input.ID);
var taskFileList = new Service.RepairTaskLogFile().GetByFormID(input.ID);
var vm = new RepairTaskFormAssignedDetailDto(taskForm, equipment, taskLogList, taskFileList);
if (taskForm.RequestID.HasValue)
{
var requestForm = new Service.RepairRequestForm().GetByID(taskForm.RequestID.Value);
var requestFileList = new Service.RepairRequestFile().GetByFormID(taskForm.RequestID.Value);
var requestLogList = new Service.RepairRequestLog().GetByFormID(taskForm.RequestID.Value);
vm.RequestForm = new RepairTaskRequestFormDetailDto(requestForm, equipment, requestFileList, requestLogList);
}
return vm;
}
///
/// 通过 ID 获取我的进行中详细
///
[Route("GetProgressDetailByID@V1.0")]
[HttpGet]
public RepairTaskFormProgressDetailDto GetProgressDetailByID([FromQuery][Required] IDInput input)
{
var taskForm = _service.GetByID(input.ID);
if (taskForm == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
}
if (taskForm.FormStatus < eTaskStatus.Received || taskForm.FormStatus >= eTaskStatus.Finished)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"ID:{input.ID} 表单状态错误");
}
var equipment = new Yw.Service.Equipment().GetByID(taskForm.EquipmentID);
var taskLogList = new Service.RepairTaskLog().GetByFormID(input.ID);
var taskFileList = new Service.RepairTaskLogFile().GetByFormID(input.ID);
var vm = new RepairTaskFormProgressDetailDto(taskForm, equipment, taskLogList, taskFileList);
if (taskForm.RequestID.HasValue)
{
var requestForm = new Service.RepairRequestForm().GetByID(taskForm.RequestID.Value);
var requestFileList = new Service.RepairRequestFile().GetByFormID(taskForm.RequestID.Value);
var requestLogList = new Service.RepairRequestLog().GetByFormID(taskForm.RequestID.Value);
vm.RequestForm = new RepairTaskRequestFormDetailDto(requestForm, equipment, requestFileList, requestLogList);
}
return vm;
}
///
/// 通过 ID 获取我的已完成详细(手机)
///
[Route("GetMyHasFinishedDetailByID@V1.0")]
[HttpGet]
public RepairTaskFormHasFinishedDetailDto GetHasFinishedDetailByID([FromQuery][Required] IDInput input)
{
var taskForm = _service.GetByID(input.ID);
if (taskForm == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
}
if (taskForm.FormStatus < eTaskStatus.Finished)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.V001, $"ID:{input.ID} 表单状态错误");
}
var equipment = new Yw.Service.Equipment().GetByID(taskForm.EquipmentID);
var taskLogList = new Service.RepairTaskLog().GetByFormID(input.ID);
var taskFileList = new Service.RepairTaskLogFile().GetByFormID(input.ID);
var vm = new RepairTaskFormHasFinishedDetailDto(taskForm, equipment, taskLogList, taskFileList);
if (taskForm.RequestID.HasValue)
{
var requestForm = new Service.RepairRequestForm().GetByID(taskForm.RequestID.Value);
var requestFileList = new Service.RepairRequestFile().GetByFormID(taskForm.RequestID.Value);
var requestLogList = new Service.RepairRequestLog().GetByFormID(taskForm.RequestID.Value);
vm.RequestForm = new RepairTaskRequestFormDetailDto(requestForm, equipment, requestFileList, requestLogList);
}
return vm;
}
}
}