From 580702fa490f4e2222f5ccc65182932d33dd849c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BD=AC?= <1226835003@qq.com>
Date: Wed, 1 Nov 2023 22:59:14 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A7=E9=81=93=E5=87=BA?=
=?UTF-8?q?=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IService_New/IBaseSpaceInfoServices.cs | 23 +++++
.../Service_New/BaseSpaceInfoServices.cs | 98 +++++++++++++++++++
2 files changed, 121 insertions(+)
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