diff --git a/Admin.Core.IService/IService_New/IBaseSpaceInfoServices.cs b/Admin.Core.IService/IService_New/IBaseSpaceInfoServices.cs
index b36c816d..1dfaad60 100644
--- a/Admin.Core.IService/IService_New/IBaseSpaceInfoServices.cs
+++ b/Admin.Core.IService/IService_New/IBaseSpaceInfoServices.cs
@@ -16,5 +16,28 @@ namespace Admin.Core.IService
///
///
Task InStoreGetSpaceInfoByMaterialType(string store, string materialType);
+
+ ///
+ /// 出库通过物料类型获取指定货道
+ ///
+ ///
+ ///
+ ///
+ Task OutStoreGetSpaceInfoByMaterialCode(string store, string materialCode);
+
+ ///
+ /// 通过货道编号获取货道信息
+ ///
+ ///
+ ///
+ ///
+ Task GetSpaceInfoBySpaceCode(string store, string spaceCode);
+
+ ///
+ /// 更新货道信息
+ ///
+ ///
+ ///
+ Task UpdateSpaceInfo(BaseSpaceInfo spaceInfo);
}
}
\ No newline at end of file
diff --git a/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs b/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs
index e34ba6dd..d7b85453 100644
--- a/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs
+++ b/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs
@@ -16,6 +16,9 @@ using Admin.Core.Model.Sys;
namespace Admin.Core.Service
{
+ /**
+ * 货道
+ **/
public class BaseSpaceInfoServices : BaseServices, IBaseSpaceInfoServices
{
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(BaseSpaceInfoServices));
@@ -105,7 +108,102 @@ namespace Admin.Core.Service
logHelper.Info("入库过滤未获取到匹配的货道信息");
}
return spaceInfo;
+ }
+ #endregion
+
+ #region 出库通过物料类型获取指定货道
+ ///
+ /// 出库通过物料类型获取指定货道
+ ///
+ ///
+ ///
+ ///
+ public async Task OutStoreGetSpaceInfoByMaterialCode(string store, string materialType)
+ {
+ BaseSpaceInfo spaceInfo = null;
+ List spaceInfos;
+ try
+ {
+ //Expression> exp = s1 => true;
+ spaceInfos = await _baseSpaceInfoRepository.QueryAsync(x => x.StoreCode == store && x.MaterialType == materialType && x.SpaceStatus == 1 && x.SpaceStock > 0);//相同型号、启用状态、库存不为空的货道信息
+
+ logHelper.Info($"根据仓库{store};物料:{materialType};获取到的货道信息:{spaceInfos.ToJson()}");
+ logHelper.Info($"仓库{store};物料:{materialType};匹配的入库货道信息:{spaceInfos.ToJson()}");
+ }
+ catch (Exception ex)
+ {
+ logHelper.Error("出库通过物料类型获取货道信息异常", ex);
+ }
+ return spaceInfo;
+ }
+ #endregion
+
+ #region 出库过滤逻辑
+ ///
+ /// 出库过滤逻辑
+ ///
+ ///
+ public BaseSpaceInfo outStoreFilter(List spaceInfos)
+ {
+ BaseSpaceInfo spaceInfo = null;
+ if (spaceInfos.Count > 0)
+ {
+ //获取库存最少的货道(优先清空货道)
+ spaceInfo = spaceInfos.Where(x => x.SpaceStock > 0).OrderBy(x => x.SpaceStock).First();
+ }
+ else
+ {
+ logHelper.Info("出库过滤未获取到匹配的货道信息");
+ }
+
+ return spaceInfo;
+ }
+ #endregion
+
+ #region 通过货道编号获取货道信息
+ ///
+ /// 通过货道编号获取货道信息
+ ///
+ ///
+ ///
+ ///
+ public async Task GetSpaceInfoBySpaceCode(string store, string spaceCode)
+ {
+ BaseSpaceInfo spaceInfo = null;
+ try
+ {
+ spaceInfo = await _baseSpaceInfoRepository.FirstAsync(x => x.StoreCode == store && x.SpaceCode == spaceCode);
+ }
+ catch (Exception ex)
+ {
+ logHelper.Error("通过货道编号获取货道信息异常", ex);
+ }
+ return spaceInfo;
+ }
+ #endregion
+
+ #region 更新货道信息
+ ///
+ /// 更新货道信息
+ ///
+ ///
+ ///
+ public async Task UpdateSpaceInfo(BaseSpaceInfo spaceInfo)
+ {
+ bool result = false;
+ try
+ {
+ result = await _baseSpaceInfoRepository.UpdateAsync(spaceInfo);
+ }
+ catch (Exception ex)
+ {
+ logHelper.Error("更新货道信息异常", ex);
+ }
+ return result;
}
#endregion
+
+
+
}
}
\ No newline at end of file