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