lixiaojun
2023-03-20 14801a2e40bc79833c41151a37fe4cb0acbc5c7f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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;
        }
 
 
 
 
    }
}