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