using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsAreas;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Domain.WmsPlaces;
using CMS.Plugin.HIAWms.Domain.WmsStores;
using CmsQueryExtensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
namespace CMS.Plugin.HIAWms.Application.Implements
{
///
/// 枚举类型接口实现
///
public class WmsEnumAppService : CMSPluginAppService, IWmsEnumAppService
{
private readonly IWmsStoreRepository _storeRepository;
private readonly IWmsAreaRepository _wmsAreaRepository;
private readonly IWmsPlaceRepository _wmsPlaceRepository;
private readonly IWmsMaterialRepository _wmsMaterialRepository;
public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository)
{
_storeRepository = storeRepository;
_wmsAreaRepository = wmsAreaRepository;
_wmsPlaceRepository = wmsPlaceRepository;
_wmsMaterialRepository = wmsMaterialRepository;
}
public List GetEnumDataList(WmsEnumInput enumInput)
{
return EnumHelper.GetEnumItems(enumInput.EnumName);
}
///
/// 获取仓库列表
///
///
public async Task> GetStreList()
{
var list = await _storeRepository.GetListForSelectAsync();
if (list == null || list.Count <= 0) { return new List(); }
var result = list.Select(x => new WmsStoreForAreaOutpur
{
StoreCode = x.StoreCode,
StoreName = x.StoreName,
}).ToList();
return result;
}
///
/// 库区列表
///
///
public async Task> GetAreaListAsync()
{
var list = await _wmsAreaRepository.GetListForSelectAsync();
if (list == null || list.Count <= 0) { return new List(); }
var result = list.Select(x=>new AreaForListOuptut
{
AreaName = x.AreaName,
AreaNo = x.AreaNo,
}).ToList();
return result;
}
///
/// 巷道列表
///
///
public async Task> GetAisleListAsync()
{
var list = await _wmsPlaceRepository.GetAisleListForSelectAsync();
if (list == null || list.Count <= 0) { return new List(); }
var result = list.Select(x => new PlaceAisleForListOuptut
{
Aisle = x.Aisle,
AisleName = $"第{x.Aisle}巷道",
}).ToList();
return result;
}
///
/// 获取机型
///
///
public async Task> GetMaterialModeListAsync()
{
var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
if (materialList == null || materialList.Count <= 0) return new List(); ;
return materialList.Select(material => new MaterialModelOutput
{
MaterialModel = material.MaterialModel,
MaterialModelDesc = material.MaterialModel
}).ToList();
}
///
/// 获取库区列表
///
///
///
public async Task> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
{
var placeList = await _wmsPlaceRepository.GetPlaceListForSelectAsync(placeType);
if (placeList == null || placeList.Count <= 0) return new List(); ;
return placeList.Select(place => new PlaceListOutput
{
PlaceNo = place.PlaceNo,
PlaceNoDesc = place.PlaceNo
}).ToList();
}
}
}