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")]
|
[ApiDescriptionSettings("Repair", Name = "维修单", Order = 900)]
|
public class RepairTaskForm_Controller : IDynamicApiController
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
/// <summary>
|
///
|
/// </summary>
|
public RepairTaskForm_Controller(IHttpContextAccessor httpContextAccessor)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
}
|
|
/// <summary>
|
/// 指派
|
/// </summary>
|
[Route("Assign@V1.0")]
|
[HttpPut]
|
public bool Assign([Required] RepairTaskAssignInput input)
|
{
|
var bol = new Service.RepairTaskForm().Assign(input.CorpID, input.ID, input.AssignUserID, input.Note, UserManager.UserID, DateTime.Now);
|
return bol;
|
}
|
|
/// <summary>
|
/// 验收通过
|
/// </summary>
|
[Route("Success@V1.0")]
|
[HttpPut]
|
public bool Success([Required] RepairTaskSuccessInput input)
|
{
|
var bol = new Service.RepairTaskForm().Success(input.CorpID,input.ID,input.Note,UserManager.UserID,DateTime.Now);
|
return bol;
|
}
|
|
/// <summary>
|
/// 获取完工分页列表
|
/// </summary>
|
[Route("GetFinishedPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<RepairTaskFormFinishedDto> GetFinishedPageList([FromQuery][Required] GetRepairTaskFormFinishedPageListInput input)
|
{
|
int total = 0;
|
var list = new Service.RepairTaskForm().GetPageList
|
(input.CorpID, input.BelongType, input.BelongID, input.ProductID, input.RepairUserID,Model.Repair.eTaskStatus.Finished, input.Urgency, input.FormNo, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total);
|
if (list == null || list.Count < 1)
|
return new PageListOutput<RepairTaskFormFinishedDto>() { Total = 0, List = null };
|
var logList = new Service.RepairTaskLog().GetByFormIds(input.CorpID,list.Select(x=>x.Item1.ID).Distinct().ToList());
|
var productList = new Service.Product().GetByIds(input.CorpID, list.Select(x => x.Item1.ProductID).Distinct().ToList());
|
var vmList = new List<RepairTaskFormFinishedDto>();
|
foreach (var item in list)
|
{
|
var itemLogList = logList?.Where(x => x.FormID == item.Item1.ID).OrderBy(x => x.OperateTime).ToList();
|
var product = productList?.Find(x => x.ID == item.Item1.ProductID);
|
var vm = new RepairTaskFormFinishedDto(item.Item1,itemLogList,item.Item2, product);
|
vmList.Add(vm);
|
}
|
return new PageListOutput<RepairTaskFormFinishedDto>() { Total = total, List = vmList };
|
}
|
|
/// <summary>
|
/// 获取进度分页列表
|
/// </summary>
|
[Route("GetProgressPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<RepairTaskFormProgressDto> GetProgressPageList([FromQuery][Required] GetRepairTaskFormProgressPageListInput input)
|
{
|
int total = 0;
|
var list = new Service.RepairTaskForm().GetPageList
|
(input.CorpID, input.BelongType, input.BelongID, input.ProductID, input.RepairUserID,null, input.Urgency, input.FormNo, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total);
|
if (list == null || list.Count < 1)
|
return new PageListOutput<RepairTaskFormProgressDto>() { Total = 0, List = null };
|
var logList = new Service.RepairTaskLog().GetByFormIds(input.CorpID, list.Select(x => x.Item1.ID).Distinct().ToList());
|
var productList = new Service.Product().GetByIds(input.CorpID, list.Select(x => x.Item1.ProductID).Distinct().ToList());
|
var vmList = new List<RepairTaskFormProgressDto>();
|
foreach (var item in list)
|
{
|
var itemLogList = logList?.Where(x => x.FormID == item.Item1.ID).OrderBy(x => x.OperateTime).ToList();
|
var product = productList?.Find(x => x.ID == item.Item1.ProductID);
|
var vm = new RepairTaskFormProgressDto(item.Item1, itemLogList, item.Item2, product);
|
vmList.Add(vm);
|
}
|
return new PageListOutput<RepairTaskFormProgressDto>() { Total = total, List = vmList };
|
}
|
|
/// <summary>
|
/// 通过 ID 获取详细
|
/// </summary>
|
[Route("GetDetailByID@V1.0")]
|
[HttpGet]
|
public RepairTaskFormDetailDto GetDetailByID([FromQuery][Required] IDUnderCorpInput input)
|
{
|
var taskForm = new Service.RepairTaskForm().GetByID(input.CorpID,input.ID);
|
var taskLogList=new Service.RepairTaskLog().GetByFormID(input.CorpID,input.ID);
|
var taskFileList = new Service.RepairTaskLogFile().GetByFormID(input.CorpID,input.ID);
|
var product = new Service.Product().GetByID(input.CorpID,taskForm.ProductID);
|
Model.RepairRequestForm requestForm = null;
|
List<Model.RepairRequestLog> requestLogList = null;
|
List<Model.RepairRequestFile> requestFileList = null;
|
if (taskForm.RequestID != null)
|
{
|
requestForm = new Service.RepairRequestForm().GetByID(input.CorpID,taskForm.RequestID.Value);
|
requestLogList = new Service.RepairRequestLog().GetByFormID(input.CorpID, taskForm.RequestID.Value);
|
requestFileList=new Service.RepairRequestFile().GetByFormID(input.CorpID,taskForm.RequestID.Value);
|
}
|
var vm = new RepairTaskFormDetailDto(taskForm,taskLogList,taskFileList,product, requestForm, requestLogList, requestFileList);
|
return vm;
|
}
|
|
|
|
|
}
|
}
|