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
|
{
|
/// <summary>
|
/// RepairTaskForm
|
/// </summary>
|
[Route("Repair/RepairTaskForm/Mobile")]
|
[ApiDescriptionSettings("Repair", Name = "维修单(手机)", Order = 900)]
|
public class RepairTaskForm_MobileController : IDynamicApiController
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
/// <summary>
|
///
|
/// </summary>
|
public RepairTaskForm_MobileController(IHttpContextAccessor httpContextAccessor)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
}
|
|
#region 上传文件
|
|
/// <summary>
|
/// 上传文件 (手机)
|
/// </summary>
|
[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<Model.RepairTaskLogFile>();
|
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 待接单
|
|
/// <summary>
|
/// 获取我的待接单的分页列表(手机)
|
/// </summary>
|
[Route("GetMyAssignedPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<MyRepairTaskFormAssignedMobileDto> 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<MyRepairTaskFormAssignedMobileDto>() { Total = total, List = vmList };
|
}
|
|
/// <summary>
|
/// 通过 ID 获取我的待接单详细(手机)
|
/// </summary>
|
[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 接单
|
|
/// <summary>
|
/// 接单
|
/// </summary>
|
[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 开工
|
|
/// <summary>
|
/// 开工 (支持上传文件)
|
/// </summary>
|
[Route("Start@V1.0")]
|
[HttpPost]
|
public bool Start([FromForm][Required] RepairTaskStartInput input)
|
{
|
var request = _httpContextAccessor.HttpContext.Request;
|
var fileList = new List<Model.RepairTaskLogFile>();
|
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;
|
}
|
|
/// <summary>
|
/// 重新开工 (支持上传文件)
|
/// </summary>
|
[Route("Restart@V1.0")]
|
[HttpPost]
|
public bool Restart([FromForm][Required]RepairTaskRestartInput input)
|
{
|
var request = _httpContextAccessor.HttpContext.Request;
|
var fileList = new List<Model.RepairTaskLogFile>();
|
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 暂停
|
|
/// <summary>
|
/// 暂停 (支持上传文件)
|
/// </summary>
|
[Route("Pause@V1.0")]
|
[HttpPost]
|
public bool Pause([FromForm][Required] RepairTaskPauseInput input)
|
{
|
var request = _httpContextAccessor.HttpContext.Request;
|
var fileList = new List<Model.RepairTaskLogFile>();
|
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 完工
|
|
/// <summary>
|
/// 完工 (支持上传文件)
|
/// </summary>
|
[Route("Finish@V1.0")]
|
[HttpPost]
|
public bool Finish([FromForm][Required] RepairTaskFinishInput input)
|
{
|
var request = _httpContextAccessor.HttpContext.Request;
|
var fileList = new List<Model.RepairTaskLogFile>();
|
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 进行中
|
|
/// <summary>
|
/// 获取我的进行中的分页列表(手机)
|
/// </summary>
|
[Route("GetMyProgressPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<MyRepairTaskFormProgressMobileDto> 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<MyRepairTaskFormProgressMobileDto>() { Total = total, List = vmList };
|
}
|
|
/// <summary>
|
/// 通过 ID 获取我的进行中详细(手机)
|
/// </summary>
|
[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 已完成
|
|
/// <summary>
|
/// 获取我的已完成的分页列表(手机)
|
/// </summary>
|
[Route("GetMyHasFinishedPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<MyRepairTaskFormHasFinishedMobileDto> 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<MyRepairTaskFormHasFinishedMobileDto>() { Total = total, List = vmList };
|
}
|
|
/// <summary>
|
/// 通过 ID 获取我的已完成详细(手机)
|
/// </summary>
|
[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
|
|
|
}
|
}
|