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; } } }