namespace Yw.Application
|
{
|
/// <summary>
|
/// RepairRequestForm
|
/// </summary>
|
[Route("Repair/Request/Form/Std")]
|
[ApiDescriptionSettings("Repair", Name = "报修单(Std)", Order = 9900)]
|
public class RepairRequestForm_StdController : IDynamicApiController
|
{
|
|
private readonly Service.RepairRequestForm _service = new();
|
|
|
/// <summary>
|
/// 通过 ID 获取详细
|
/// </summary>
|
[Route("GetDetailByID@V1.0")]
|
[HttpGet]
|
public RepairRequestFormDetailDto GetDetailByID([FromQuery][Required] IDInput input)
|
{
|
var model = new Service.RepairRequestForm().GetByID(input.ID);
|
if (model == null)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
|
}
|
var equipment = new Yw.Service.Equipment().GetByID(model.EquipmentID);
|
var vm = new RepairRequestFormDetailDto(model, equipment);
|
|
#region 文件
|
|
var fileList = new Service.RepairRequestFile().GetByFormID(model.ID);
|
vm.FileList = fileList?.Select(x => new RepairRequestFileDetailDto(x)).ToList();
|
|
#endregion
|
|
#region 日志
|
|
var logList = new Service.RepairRequestLog().GetByFormID(model.ID);
|
vm.LogList = logList?.Select(x => new RepairRequestLogDetailDto(x)).ToList();
|
|
#endregion
|
|
return vm;
|
}
|
|
/// <summary>
|
/// 通过 ID 获取待受理详细
|
/// </summary>
|
[Route("GetPendingDetailByID@V1.0")]
|
[HttpGet]
|
public RepairRequestFormPendingDetailDto GetPendingDetailByID([FromQuery][Required] IDInput input)
|
{
|
var model = new Service.RepairRequestForm().GetByID(input.ID);
|
if (model == null)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
|
}
|
if (model.FormStatus != eRequestStatus.Pending)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 表单状态错误");
|
}
|
var equipment = new Yw.Service.Equipment().GetByID(model.EquipmentID);
|
var vm = new RepairRequestFormPendingDetailDto(model, equipment);
|
|
#region 文件
|
|
var fileList = new Service.RepairRequestFile().GetByFormID(model.ID);
|
vm.FileList = fileList?.Select(x => new RepairRequestFileDetailDto(x)).ToList();
|
|
#endregion
|
|
#region 日志
|
|
var logList = new Service.RepairRequestLog().GetByFormID(model.ID);
|
vm.LogList = logList?.Select(x => new RepairRequestLogDetailDto(x)).ToList();
|
|
#endregion
|
|
return vm;
|
|
}
|
|
/// <summary>
|
/// 通过 ID 获取被驳回详细
|
/// </summary>
|
[Route("GetRejectedDetailByID@V1.0")]
|
[HttpGet]
|
public RepairRequestFormRejectedDetailDto GetRejectedDetailByID([FromQuery][Required] IDInput input)
|
{
|
var model = new Service.RepairRequestForm().GetByID(input.ID);
|
if (model == null)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
|
}
|
if (model.FormStatus != eRequestStatus.Rejected)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 表单状态错误");
|
}
|
|
var equipment = new Yw.Service.Equipment().GetByID(model.EquipmentID);
|
var vm = new RepairRequestFormRejectedDetailDto(model, equipment);
|
|
#region 文件
|
|
var fileList = new Service.RepairRequestFile().GetByFormID(model.ID);
|
vm.FileList = fileList?.Select(x => new RepairRequestFileDetailDto(x)).ToList();
|
|
#endregion
|
|
#region 日志
|
|
var logList = new Service.RepairRequestLog().GetByFormID(model.ID);
|
vm.LogList = logList?.Select(x => new RepairRequestLogDetailDto(x)).ToList();
|
|
#endregion
|
|
var lastLog = logList?.FindLast(x => x.OperateType == eRequestOperation.Reject);
|
if (lastLog != null)
|
{
|
vm.RejectUserID = lastLog.OperateUserID;
|
vm.RejectTime = lastLog.OperateTime;
|
vm.RejectUserName = lastLog.OperateUserName;
|
vm.RejectReason = lastLog.OperateNote;
|
}
|
return vm;
|
}
|
|
/// <summary>
|
/// 通过 ID 获取已受理详细
|
/// </summary>
|
[Route("GetAcceptedDetailByID@V1.0")]
|
[HttpGet]
|
public RepairRequestFormAcceptedDetailDto GetAcceptedDetailByID([FromQuery][Required] IDInput input)
|
{
|
var model = new Service.RepairRequestForm().GetByID(input.ID);
|
if (model == null)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
|
}
|
if (model.FormStatus != eRequestStatus.Accepted)
|
{
|
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 表单状态错误");
|
}
|
var equipment = new Service.Equipment().GetByID(model.EquipmentID);
|
var fileList = new Service.RepairRequestFile().GetByFormID(model.ID);
|
var logList = new Service.RepairRequestLog().GetByFormID(model.ID);
|
var vm = new RepairRequestFormAcceptedDetailDto(model, equipment, fileList, logList);
|
var taskForm = new Yw.Service.RepairTaskForm().GetByRequestID(model.ID)?.FirstOrDefault();
|
if (taskForm != null)
|
{
|
var taskLogList = new Yw.Service.RepairTaskLog().GetByFormID(taskForm.ID);
|
var taskLogFileList = new Yw.Service.RepairTaskLogFile().GetByFormID(taskForm.ID);
|
vm.TaskForm = new RepairRequestTaskFormDetailDto(taskForm, equipment, taskLogList, taskLogFileList);
|
}
|
return vm;
|
}
|
|
|
}
|
}
|