using langguanApi.Extensions.AutoDI; using langguanApi.Model; using Mapster; using System.Linq.Expressions; namespace langguanApi.Service { /// /// TransportService 运输服务 /// [ServiceInjection(InjectionType.Transient)] public class TransportService : BaseService { private TruckScalesService _truckScalesService; public TransportService(IConfiguration config, TruckScalesService truckScalesService) : base(config, nameof(Transport)) { _truckScalesService = truckScalesService; } /// /// 新增运输 /// /// /// public async Task addTransport(AddTransport input) { var entity = input.Adapt(); entity.effluent = input.EmissionLevel; entity.imgUrl=input.EntryExitPictureUrl; entity.TransportType = input.EntryDirection; return await base.CreateAsync(entity); } /// /// 首页统计 /// /// public async Task GetIndexCount() { return null; } /// /// 分页取数据 /// /// /// public async Task GetPage(reqpage input) { Expression> exp = filter => filter.CarNumber.Contains(input.key) && filter.IsDelete == false; var list = await base.GetListWithExp(exp); var result = new List(); if (list.Any()) { foreach (var item in list) { var entity = item.Adapt(); entity.CarColorString = GetColorString(item.CarColor); result.Add(entity); } } return result.Skip(input.current - 1).Take(input.pageSize); } /// /// 获取清洁运输统计数字 /// /// public async Task GetCount() { Expression> exp = filter => filter.TransportType == 1; var comeCount = await base.Count(exp); exp = filter => filter.TransportType == 2; var outCount = await base.Count(exp); return new ApiResult() { code = 0, data = new { comeCount, outCount, inCount = comeCount - outCount, AddCount = 0 } }; } /// /// 获取清洁运输列表(门禁和地磅组合) /// /// /// public async Task GetTransport(transportReqPage input) { var result = new List(); //获取门禁数据 Expression> exp = filter => filter.TransportType == 1 && filter.IsDelete == false; var list = (await base.GetListWithExp(exp)).ToList(); //获取地磅数据 var TruckScaleslist = _truckScalesService.GetTruckScalesList().Result; //合并数据 foreach (var item in TruckScaleslist) { var transport = list.FirstOrDefault(p => p.CarNumber == item.CarNumber); if (transport != null) { result.Add(new CleanTransportationDto() { CarColor = GetColorString(transport.CarColor), CarNumber = transport.CarNumber, CarType = transport.CarType, Time = transport.Time.ToString(), Weight = item.Weight }); } } if (!string.IsNullOrWhiteSpace(input.startTime)) { result.Where(p => Convert.ToDateTime(p.Time) >= Convert.ToDateTime(input.startTime)).ToList(); } if (!string.IsNullOrWhiteSpace(input.endTime)) { result.Where(p => Convert.ToDateTime(p.Time) <=Convert.ToDateTime(input.endTime)).ToList(); } result = result.Skip(input.current - 1).Take(input.pageSize).ToList(); return result; } /// /// 获取车辆颜色 /// /// /// public string GetColorString(int color) { switch (color) { case 1: return CarColor.蓝色.ToString(); case 2: return CarColor.绿色.ToString(); case 3: return CarColor.黄色.ToString(); case 4: return CarColor.白色.ToString(); case 5: return CarColor.黑色.ToString(); case 6: return CarColor.黄绿.ToString(); default: return ""; } } } }