public async Task <BaseResponse <MaintenanceInfoResponse> > GetListAsync([FromQuery] MaintenanceInfoPageRequest request)
 {
     _logger.Info(new LogInfo()
     {
         Method = nameof(GetListAsync), Argument = new { request }, Description = "查询工单数据"
     });
     return(await _MaintenanceInfoService.GetPageListAsync(request));
 }
Example #2
0
        public async Task <MaintenanceInfoResponse> GetById(Guid id)
        {
            MaintenanceInfoPageRequest request = new MaintenanceInfoPageRequest();

            request.Id = id;
            var result = await this.GetPageListAsync(request);

            if (result?.Items?.Count > 0)
            {
                return(result.Items[0]);
            }
            return(null);
        }
Example #3
0
        /// <summary>
        /// 工单分页查询
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <BaseResponse <MaintenanceInfoResponse> > GetPageListAsync(MaintenanceInfoPageRequest request)
        {
            Tuple <List <MaintenanceInfoResponse>, int> result = await _MaintenanceInfoRep.GetPageListAsync(request);

            result.Item1?.ForEach(t =>
            {
                t.MaintenancTypeName   = t.MaintenancType.HasValue ? t.MaintenancType.Value.GetEnumDescription <EMaintenancType>() : string.Empty;
                t.MaintenancStatusName = t.MaintenancStatus.HasValue ? t.MaintenancStatus.Value.GetEnumDescription <EMaintenancStatus>() : string.Empty;
            });
            var retVal = Mapper.Map <BaseResponse <MaintenanceInfoResponse> >(result);

            return(retVal);
        }
        public async Task <Tuple <List <MaintenanceInfoResponse>, int> > GetPageListAsync(MaintenanceInfoPageRequest request)
        {
            StringBuilder     sbSql      = new StringBuilder();
            StringBuilder     sbCount    = new StringBuilder();
            DynamicParameters parameters = new DynamicParameters();

            sbSql.Append(@" SELECT * FROM maintenanceinfo m 
                            LEFT JOIN servicebusiness s ON m.RepairId = s.Id
                            LEFT JOIN attachment a ON m.Id = a.DataId AND a.IsDeleted = 0 AND a.DataType = 1 
                            WHERE 1=1 ");
            sbCount.Append(" SELECT COUNT(*) FROM maintenanceinfo m WHERE 1=1 ");
            var where = this.GetWhere(request, parameters);
            if (where?.Item1?.Length > 0)
            {
                sbSql.Append(where.Item1);
                sbCount.Append(where.Item1);
            }
            //添加排序
            sbSql.Append(" Order By m.CreationTime DESC ");
            if (request.Count.HasValue && request.Count.Value > 0)
            {
                sbSql.Append(" LIMIT @Skip,@Count ");
                parameters.Add("@Skip", request.Skip.Value);
                parameters.Add("@Count", request.Count.Value);
            }
            using (ReadConnection)
            {
                var lookup = new Dictionary <Guid, MaintenanceInfoResponse>();
                var query  = ReadConnection.Query <MaintenanceInfoResponse, ServiceBusiness, Attachment, List <MaintenanceInfoResponse> >(sbSql.ToString(), (a, c, b) =>
                {
                    if (!lookup.Keys.Contains(a.Id))
                    {
                        if (a != null && c != null)
                        {
                            a.ServiceBusiness = c;
                        }
                        lookup.Add(a.Id, a);
                        if (lookup[a.Id].Attachments == null)
                        {
                            lookup[a.Id].Attachments = new List <Attachment>();
                        }
                        lookup[a.Id].Attachments.Add(b);
                    }
                    else
                    {
                        lookup[a.Id].Attachments.Add(b);
                    }
                    return(lookup.Values.ToList());
                }, parameters);


                int r2 = 0;
                if (request.Count.HasValue && request.Count.Value > 0)
                {
                    r2 = await ReadConnection.QueryFirstAsync <int>(sbCount.ToString(), parameters);
                }
                return(new Tuple <List <MaintenanceInfoResponse>, int>(lookup.Values.ToList(), r2));
            }
        }