清洁运输趋势列表和比例修改

This commit is contained in:
pangwenpeng 2024-08-05 17:37:00 +08:00
parent c68f032f59
commit 87e1822832
4 changed files with 104 additions and 12 deletions

View File

@ -22,7 +22,7 @@ namespace langguanApi.Controllers
_truckScalesService = truckScalesService; _truckScalesService = truckScalesService;
} }
/// <summary> /// <summary>
/// 获取清洁运输列表 /// 获取门禁列表
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
@ -106,7 +106,7 @@ namespace langguanApi.Controllers
#region #region
/// <summary> /// <summary>
/// 获取清洁运输(门禁和地磅组合,地磅获取总重量,后期会用地磅重量-车辆车辆) /// 获取清洁运输趋势列表(门禁和地磅组合,地磅获取总重量,后期会用地磅重量-车辆车辆)
/// </summary> /// </summary>
/// <param name="reqPage"></param> /// <param name="reqPage"></param>
/// <returns></returns> /// <returns></returns>

View File

@ -24,6 +24,49 @@
/// <summary> /// <summary>
/// 车牌类型 /// 车牌类型
/// </summary> /// </summary>
public string CarType { get; set; } public string CarType { get; set; }
/// <summary>
/// 排放类型
/// </summary>
public string Effluent { get; set; }
}
public class CleanTransportationAllDto
{
/// <summary>
/// 清洁运输总记录
/// </summary>
public List<CleanTransportationDto> cleans { get; set; }
/// <summary>
/// 国五百分比
/// </summary>
public string V5Percent { get; set; }
/// <summary>
/// 国五运输量百分比
/// </summary>
public string V5WeightPercent { get; set; }
/// <summary>
/// 国六百分比
/// </summary>
public string V6Percent { get; set; }
/// <summary>
/// 国六运输量百分比
/// </summary>
public string V6WeightPercent { get; set; }
/// <summary>
/// 电动百分比
/// </summary>
public string ElectricPrecent { get; set; }
/// <summary>
/// 电动运输量百分比
/// </summary>
public string ElectricWeightPrecent { get; set; }
/// <summary>
/// 其他百分比
/// </summary>
public string OtherPrecent { get; set; }
/// <summary>
/// 其他运输量百分比
/// </summary>
public string OtherWeightPrecent { get; set; }
} }
} }

View File

@ -11,7 +11,7 @@
/// </summary> /// </summary>
public int TransportType { get; set; } public int TransportType { get; set; }
/// <summary> /// <summary>
/// 排放标准 /// 排放标准(0-7是国1-7D电动 X无排放阶段
/// </summary> /// </summary>
public string effluent { get; set; } public string effluent { get; set; }
/// <summary> /// <summary>
@ -128,6 +128,10 @@
public class TransportDto : Transport public class TransportDto : Transport
{ {
public string CarColorString { get; set; } public string CarColorString { get; set; }
public string TransportTypeString { get; set; }
public string TimeString { get; set; }
} }
public enum CarColor public enum CarColor
{ {

View File

@ -54,6 +54,8 @@ namespace langguanApi.Service
{ {
var entity = item.Adapt<TransportDto>(); var entity = item.Adapt<TransportDto>();
entity.CarColorString = GetColorString(item.CarColor); entity.CarColorString = GetColorString(item.CarColor);
entity.TransportTypeString = item.TransportType == 1 ? "进场" : "出场";
entity.TimeString = item.Time.ToString();
result.Add(entity); result.Add(entity);
} }
} }
@ -88,7 +90,8 @@ namespace langguanApi.Service
/// <returns></returns> /// <returns></returns>
public async Task<object> GetTransport(transportReqPage input) public async Task<object> GetTransport(transportReqPage input)
{ {
var result = new List<CleanTransportationDto>(); var result = new CleanTransportationAllDto();
result.cleans = new List<CleanTransportationDto>();
//获取门禁数据 //获取门禁数据
Expression<Func<Transport, bool>> exp = filter => filter.TransportType == 1 && filter.IsDelete == false; Expression<Func<Transport, bool>> exp = filter => filter.TransportType == 1 && filter.IsDelete == false;
var list = (await base.GetListWithExp(exp)).ToList(); var list = (await base.GetListWithExp(exp)).ToList();
@ -100,27 +103,39 @@ namespace langguanApi.Service
var transport = list.FirstOrDefault(p => p.CarNumber == item.CarNumber); var transport = list.FirstOrDefault(p => p.CarNumber == item.CarNumber);
if (transport != null) if (transport != null)
{ {
result.Add(new CleanTransportationDto() result.cleans.Add(new CleanTransportationDto()
{ {
CarColor = GetColorString(transport.CarColor), CarColor = GetColorString(transport.CarColor),
CarNumber = transport.CarNumber, CarNumber = transport.CarNumber,
CarType = transport.CarType, CarType = transport.CarType,
Time = transport.Time.ToString(), Time = transport.Time.ToString(),
Weight = item.Weight Weight = item.Weight,
}); Effluent = GetEffluentString(transport.effluent)
});
} }
} }
if (result.Any()) if (result.cleans.Any())
{ {
if (!string.IsNullOrWhiteSpace(input.startTime)) if (!string.IsNullOrWhiteSpace(input.startTime))
{ {
result.Where(p => Convert.ToDateTime(p.Time) >= Convert.ToDateTime(input.startTime)).ToList(); result.cleans.Where(p => Convert.ToDateTime(p.Time) >= Convert.ToDateTime(input.startTime)).ToList();
} }
if (!string.IsNullOrWhiteSpace(input.endTime)) if (!string.IsNullOrWhiteSpace(input.endTime))
{ {
result.Where(p => Convert.ToDateTime(p.Time) <= Convert.ToDateTime(input.endTime)).ToList(); result.cleans.Where(p => Convert.ToDateTime(p.Time) <= Convert.ToDateTime(input.endTime)).ToList();
} }
result = result.Skip(input.current - 1).Take(input.pageSize).ToList(); result.cleans = result.cleans.Skip(input.current - 1).Take(input.pageSize).ToList();
}
if (result.cleans.Any())
{
result.V5Percent =((double)result.cleans.Count(p => p.Effluent == "国五") / result.cleans.Count()).ToString();
result.V5WeightPercent = (result.cleans.Where(p => p.Effluent == "国五").Sum(p=>p.Weight) / result.cleans.Sum(p=>p.Weight)).ToString("0.00");
result.V6Percent = ((double)result.cleans.Count(p => p.Effluent == "国六") / result.cleans.Count()).ToString("0.00");
result.V6WeightPercent = (result.cleans.Where(p => p.Effluent == "国六").Sum(p => p.Weight) / result.cleans.Sum(p => p.Weight)).ToString("0.00");
result.ElectricPrecent = ((double)result.cleans.Count(p => p.Effluent == "电动") / result.cleans.Count()).ToString("0.00");
result.ElectricWeightPrecent = (result.cleans.Where(p => p.Effluent == "电动").Sum(p => p.Weight) / result.cleans.Sum(p => p.Weight)).ToString("0.00");
result.OtherPrecent = ((double)result.cleans.Count(p => p.Effluent != "电动" && p.Effluent != "国五" && p.Effluent != "国六") / result.cleans.Count()).ToString("0.00");
result.OtherWeightPrecent = (result.cleans.Where(p => p.Effluent != "电动" && p.Effluent != "国五" && p.Effluent != "国六").Sum(p => p.Weight) / result.cleans.Sum(p => p.Weight)).ToString("0.00");
} }
return result; return result;
} }
@ -150,5 +165,35 @@ namespace langguanApi.Service
return ""; return "";
} }
} }
/// <summary>
/// 排放标准(0-7是国1-7D电动 X无排放阶段
/// </summary>
/// <param name="effluent"></param>
/// <returns></returns>
public string GetEffluentString(string effluent)
{
switch (effluent)
{
case "1":
return "国一";
case "2":
return "国二";
case "3":
return "国三";
case "4":
return "国四";
case "5":
return "国五";
case "6":
return "国六";
case "D":
return "电动";
case "X":
return "无排放阶段";
default:
return "";
}
}
} }
} }