using Microsoft.AspNetCore.Mvc;
using System.Net;
using System.Net.Http.Headers;
using Microsoft.Extensions.Hosting.Internal;
using Microsoft.AspNetCore.Http.Extensions;
using IStation.Untity;
using Furion.DynamicApiController;
using System.ComponentModel.DataAnnotations;
using Mapster;
using Microsoft.AspNetCore.Http;
namespace IStation.Application
{
///
/// RepairTaskForm
///
[Route("Repair/RepairTaskForm/Mobile")]
[ApiDescriptionSettings("Repair", Name = "维修单(手机)", Order = 900)]
public class RepairTaskForm_MobileController : IDynamicApiController
{
private readonly IHttpContextAccessor _httpContextAccessor;
///
///
///
public RepairTaskForm_MobileController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
#region 上传文件
///
/// 上传文件 (手机)
///
[Route("UploadFile@V1.0")]
[HttpPost]
public bool UploadFile([FromForm] UploadRepairTaskFormFileMobileInput input)
{
if (input == null)
return false;
var request = _httpContextAccessor.HttpContext.Request;
if (request.Form.Files == null || request.Form.Files.Count < 1)
return false;
var log = new Service.RepairTaskLog().GetLastByFormID(input.CorpID,input.FormID);
if (log == null)
return false;
var fileList = new List();
for (int i = 0; i < request.Form.Files.Count; i++)
{
var uploadFile = request.Form.Files[i];
var file = new Model.RepairTaskLogFile();
file.CorpID = input.CorpID;
file.FormID = input.FormID;
file.LogID = log.ID;
file.FileSuffix = Path.GetExtension(uploadFile.FileName);
file.FileName = Path.GetFileNameWithoutExtension(uploadFile.FileName);
file.FileFormat = FileHelper.GetFormat(file.FileSuffix);
file.StorageHouse = Constant.TaskStorageHouse;
file.StorageCode = FileHelper.UploadSubFile(Constant.TaskStorageHouse, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
file.SortCode = i + 1;
fileList.Add(file);
}
var service = new Service.RepairTaskLogFile();
var bol = service.Inserts(fileList);
return bol;
}
#endregion
#region 待接单
///
/// 获取我的待接单的分页列表(手机)
///
[Route("GetMyAssignedPageList@V1.0")]
[HttpGet]
public PageListOutput GetMyAssignedPageList([FromQuery][Required] GetMyRepairTaskFormAssignedPageListMobileInput input)
{
int total = 0;
var list = new Service.RepairTaskForm().GetPageList
(input.CorpID,null,null,null,UserManager.UserID,Model.Repair.eTaskStatus.Assigned,null,null,input.StartTime,input.EndTime,input.PageIndex,input.PageSize,ref total);
var vmList = list?.Select(x => new MyRepairTaskFormAssignedMobileDto(x.Item1)).ToList();
return new PageListOutput() { Total = total, List = vmList };
}
///
/// 通过 ID 获取我的待接单详细(手机)
///
[Route("GetMyAssignedDetailByID@V1.0")]
[HttpGet]
public MyRepairTaskFormAssignedDetailMobileDto GetMyAssignedDetailByID([FromQuery][Required] IDUnderCorpInput input)
{
var taskForm = new Service.RepairTaskForm().GetByID(input.CorpID,input.ID);
if (taskForm == null)
return default;
var logList = new Service.RepairTaskLog().GetByFormID(taskForm.CorpID,taskForm.ID);
var logFileList = new Service.RepairTaskLogFile().GetByFormID(taskForm.CorpID,taskForm.ID);
var vm=new MyRepairTaskFormAssignedDetailMobileDto(taskForm,logList,logFileList);
return vm;
}
#endregion
#region 接单
///
/// 接单
///
[Route("Receive@V1.0")]
[HttpPut]
public bool Receive([Required] RepairTaskReceiveInput input)
{
var service = new Service.RepairTaskForm();
var model = service.GetByID(input.CorpID, input.ID);
if (model.FormStatus != Model.Repair.eTaskStatus.Assigned)
return false;
var bol = service.Receive(input.CorpID, input.ID, input.Note, UserManager.UserID, DateTime.Now);
return bol;
}
#endregion
#region 开工
///
/// 开工 (支持上传文件)
///
[Route("Start@V1.0")]
[HttpPost]
public bool Start([FromForm][Required] RepairTaskStartInput input)
{
var request = _httpContextAccessor.HttpContext.Request;
var fileList = new List();
if (request.Form.Files != null && request.Form.Files.Count > 0)
{
for (int i = 0; i < request.Form.Files.Count; i++)
{
var uploadFile = request.Form.Files[i];
var file = new Model.RepairTaskLogFile();
file.CorpID = input.CorpID;
file.FormID = input.ID;
file.FileSuffix = Path.GetExtension(uploadFile.FileName);
file.FileName = Path.GetFileNameWithoutExtension(uploadFile.FileName);
file.FileFormat = FileHelper.GetFormat(file.FileSuffix);
file.StorageHouse = Constant.TaskStorageHouse;
file.StorageCode = FileHelper.UploadSubFile(Constant.TaskStorageHouse, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
file.SortCode = i + 1;
fileList.Add(file);
}
}
var service = new Service.RepairTaskForm();
var bol = service.Start(input.CorpID, input.ID, input.Note,fileList, UserManager.UserID, DateTime.Now);
return bol;
}
///
/// 重新开工 (支持上传文件)
///
[Route("Restart@V1.0")]
[HttpPost]
public bool Restart([FromForm][Required]RepairTaskRestartInput input)
{
var request = _httpContextAccessor.HttpContext.Request;
var fileList = new List();
if (request.Form.Files != null && request.Form.Files.Count > 0)
{
for (int i = 0; i < request.Form.Files.Count; i++)
{
var uploadFile = request.Form.Files[i];
var file = new Model.RepairTaskLogFile();
file.CorpID = input.CorpID;
file.FormID = input.ID;
file.FileSuffix = Path.GetExtension(uploadFile.FileName);
file.FileName = Path.GetFileNameWithoutExtension(uploadFile.FileName);
file.FileFormat = FileHelper.GetFormat(file.FileSuffix);
file.StorageHouse = Constant.TaskStorageHouse;
file.StorageCode = FileHelper.UploadSubFile(Constant.TaskStorageHouse, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
file.SortCode = i + 1;
fileList.Add(file);
}
}
var service = new Service.RepairTaskForm();
var bol = service.Restart(input.CorpID, input.ID, input.Note, fileList, UserManager.UserID, DateTime.Now);
return bol;
}
#endregion
#region 暂停
///
/// 暂停 (支持上传文件)
///
[Route("Pause@V1.0")]
[HttpPost]
public bool Pause([FromForm][Required] RepairTaskPauseInput input)
{
var request = _httpContextAccessor.HttpContext.Request;
var fileList = new List();
if (request.Form.Files != null && request.Form.Files.Count > 0)
{
for (int i = 0; i < request.Form.Files.Count; i++)
{
var uploadFile = request.Form.Files[i];
var file = new Model.RepairTaskLogFile();
file.CorpID = input.CorpID;
file.FormID = input.ID;
file.FileSuffix = Path.GetExtension(uploadFile.FileName);
file.FileName = Path.GetFileNameWithoutExtension(uploadFile.FileName);
file.FileFormat = FileHelper.GetFormat(file.FileSuffix);
file.StorageHouse = Constant.TaskStorageHouse;
file.StorageCode = FileHelper.UploadSubFile(Constant.TaskStorageHouse, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
file.SortCode = i + 1;
fileList.Add(file);
}
}
var service = new Service.RepairTaskForm();
var bol = service.Pause(input.CorpID, input.ID, input.Note, fileList, UserManager.UserID, DateTime.Now);
return bol;
}
#endregion
#region 完工
///
/// 完工 (支持上传文件)
///
[Route("Finish@V1.0")]
[HttpPost]
public bool Finish([FromForm][Required] RepairTaskFinishInput input)
{
var request = _httpContextAccessor.HttpContext.Request;
var fileList = new List();
if (request.Form.Files != null && request.Form.Files.Count > 0)
{
for (int i = 0; i < request.Form.Files.Count; i++)
{
var uploadFile = request.Form.Files[i];
var file = new Model.RepairTaskLogFile();
file.CorpID = input.CorpID;
file.FormID = input.ID;
file.FileSuffix = Path.GetExtension(uploadFile.FileName);
file.FileName = Path.GetFileNameWithoutExtension(uploadFile.FileName);
file.FileFormat = FileHelper.GetFormat(file.FileSuffix);
file.StorageHouse = Constant.TaskStorageHouse;
file.StorageCode = FileHelper.UploadSubFile(Constant.TaskStorageHouse, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName));
file.SortCode = i + 1;
fileList.Add(file);
}
}
var service = new Service.RepairTaskForm();
var bol = service.Finish(input.CorpID, input.ID, input.Note, fileList, UserManager.UserID, DateTime.Now);
return bol;
}
#endregion
#region 进行中
///
/// 获取我的进行中的分页列表(手机)
///
[Route("GetMyProgressPageList@V1.0")]
[HttpGet]
public PageListOutput GetMyProgressPageList([FromQuery][Required] GetMyRepairTaskFormProgressPageListMobileInput input)
{
int total = 0;
var list = new Service.RepairTaskForm().GetProgressPageList
(input.CorpID, null, null, null, UserManager.UserID, null, null, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total);
var vmList = list?.Select(x => new MyRepairTaskFormProgressMobileDto(x.Item1)).ToList();
return new PageListOutput() { Total = total, List = vmList };
}
///
/// 通过 ID 获取我的进行中详细(手机)
///
[Route("GetMyProgressDetailByID@V1.0")]
[HttpGet]
public MyRepairTaskFormProgressDetailMobileDto GetMyProgressDetailByID([FromQuery][Required] IDUnderCorpInput input)
{
var taskForm = new Service.RepairTaskForm().GetByID(input.CorpID, input.ID);
if (taskForm == null)
return default;
var logList = new Service.RepairTaskLog().GetByFormID(taskForm.CorpID, taskForm.ID);
var logFileList = new Service.RepairTaskLogFile().GetByFormID(taskForm.CorpID, taskForm.ID);
var vm = new MyRepairTaskFormProgressDetailMobileDto(taskForm, logList, logFileList);
return vm;
}
#endregion
#region 已完成
///
/// 获取我的已完成的分页列表(手机)
///
[Route("GetMyHasFinishedPageList@V1.0")]
[HttpGet]
public PageListOutput GetMyHasFinishedPageList([FromQuery][Required] GetMyRepairTaskFormHasFinishedPageListMobileInput input)
{
int total = 0;
var list = new Service.RepairTaskForm().GetHasFinishedPageList
(input.CorpID, null, null, null, UserManager.UserID, null, null, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total);
var vmList = list?.Select(x => new MyRepairTaskFormHasFinishedMobileDto(x.Item1)).ToList();
return new PageListOutput() { Total = total, List = vmList };
}
///
/// 通过 ID 获取我的已完成详细(手机)
///
[Route("GetMyHasFinishedDetailByID@V1.0")]
[HttpGet]
public MyRepairTaskFormHasFinishedDetailMobileDto GetMyHasFinishedDetailByID([FromQuery][Required] IDUnderCorpInput input)
{
var taskForm = new Service.RepairTaskForm().GetByID(input.CorpID, input.ID);
if (taskForm == null)
return default;
var logList = new Service.RepairTaskLog().GetByFormID(taskForm.CorpID, taskForm.ID);
var logFileList = new Service.RepairTaskLogFile().GetByFormID(taskForm.CorpID, taskForm.ID);
var vm = new MyRepairTaskFormHasFinishedDetailMobileDto(taskForm, logList, logFileList);
return vm;
}
#endregion
}
}