lg_backend/langguanApi/Service/TransportService.cs

152 lines
5.4 KiB
C#

using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using Mapster;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// TransportService 运输服务
/// </summary>
[ServiceInjection(InjectionType.Transient)]
public class TransportService : BaseService<Transport>
{
private TruckScalesService _truckScalesService;
public TransportService(IConfiguration config, TruckScalesService truckScalesService) : base(config, nameof(Transport))
{
_truckScalesService = truckScalesService;
}
/// <summary>
/// 新增运输
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<Transport> addTransport(AddTransport input)
{
var entity = input.Adapt<Transport>();
entity.effluent = input.EmissionLevel;
entity.imgUrl=input.EntryExitPictureUrl;
entity.TransportType = input.EntryDirection;
return await base.CreateAsync(entity);
}
/// <summary>
/// 首页统计
/// </summary>
/// <returns></returns>
public async Task<object> GetIndexCount()
{
return null;
}
/// <summary>
/// 分页取数据
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<object> GetPage(reqpage input)
{
Expression<Func<Transport, bool>> exp = filter => filter.CarNumber.Contains(input.key) && filter.IsDelete == false;
var list = await base.GetListWithExp(exp);
var result = new List<TransportDto>();
if (list.Any())
{
foreach (var item in list)
{
var entity = item.Adapt<TransportDto>();
entity.CarColorString = GetColorString(item.CarColor);
result.Add(entity);
}
}
return result.Skip(input.current - 1).Take(input.pageSize);
}
/// <summary>
/// 获取清洁运输统计数字
/// </summary>
/// <returns></returns>
public async Task<ApiResult> GetCount()
{
Expression<Func<Transport, bool>> 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
}
};
}
/// <summary>
/// 获取清洁运输列表(门禁和地磅组合)
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<object> GetTransport(transportReqPage input)
{
var result = new List<CleanTransportationDto>();
//获取门禁数据
Expression<Func<Transport, bool>> 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;
}
/// <summary>
/// 获取车辆颜色
/// </summary>
/// <param name="color"></param>
/// <returns></returns>
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 "";
}
}
}
}