155 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			5.5 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 (result.Any())
 | 
						|
            {
 | 
						|
                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 "";
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |