152 lines
5.4 KiB
C#
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 "";
|
|
}
|
|
}
|
|
}
|
|
}
|