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")]
[ApiDescriptionSettings("Repair", Name = "维修单", Order = 900)]
public class RepairTaskForm_Controller : IDynamicApiController
{
private readonly IHttpContextAccessor _httpContextAccessor;
///
///
///
public RepairTaskForm_Controller(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
///
/// 指派
///
[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;
}
///
/// 验收通过
///
[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;
}
///
/// 获取完工分页列表
///
[Route("GetFinishedPageList@V1.0")]
[HttpGet]
public PageListOutput 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() { 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();
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() { Total = total, List = vmList };
}
///
/// 获取进度分页列表
///
[Route("GetProgressPageList@V1.0")]
[HttpGet]
public PageListOutput 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() { 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();
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() { Total = total, List = vmList };
}
///
/// 通过 ID 获取详细
///
[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 requestLogList = null;
List 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;
}
}
}