From 547436626cfe9cb01ae95b0bde9886b9cf46a9f2 Mon Sep 17 00:00:00 2001
From: qinchulong <qinchulong@hnkhzn.com>
Date: 星期日, 02 三月 2025 23:51:05 +0800
Subject: [PATCH] 第一版完成

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
index 9226319..6a6a56d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
@@ -1,7 +1,6 @@
-锘�
-
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+锘縰sing AutoMapper;
 using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Core.BaseServices;
@@ -16,12 +15,17 @@
     /// <summary>
     /// 璐т綅淇℃伅涓氬姟鎺ュ彛瀹炵幇灞�
     /// </summary>
-    public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
+    public class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
     {
         public IRepository<Dt_LocationInfo> Repository => BaseDal;
+        private readonly IRepository<dt_storagemode> _dt_storagemode;
+        private readonly IMapper _mapper;
+        //private readonly Idt_ErrormsginfoService _ErrormsginfoService;
 
-        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal) : base(BaseDal)
+        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal)
         {
+            _dt_storagemode = storagemode;
+            _mapper = mapper;
         }
 
         public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
@@ -91,6 +95,43 @@
             }
         }
 
+        /// <summary>
+        /// 鏍规嵁閫夋嫨鐨勫叆搴撹鍒欏垎閰嶈揣浣�
+        /// </summary>
+        /// <param name="InMode"></param>
+        /// <returns></returns>
+        public Dt_LocationInfo GetInLocation(int InMode) 
+        {
+            Dt_LocationInfo location = new Dt_LocationInfo();
+            try
+            {
+                var mode = _dt_storagemode.QueryFirst(v=>v.Id==1);
+                if (mode.storagemode==(int)StorageModeEnum.Out)
+                {
+                    var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free).OrderBy(v=>v.Row).ToList();
+                    if (locations.Count<=0) 
+                    {
+                        throw new Exception($"鍑哄簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
+                    }
+                    location = locations[0];
+                }
+                else if(mode.storagemode == (int)StorageModeEnum.In)
+                {
+                    var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free).OrderByDescending(v => v.Row).ToList();
+                    if (locations.Count <= 0)
+                    {
+                        throw new Exception($"鍏ュ簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
+                    }
+                    location = locations[0];
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+            return location;
+        }
+
         public WebResponseContent GetLocationConfigs(int layer)
         {
             try

--
Gitblit v1.9.3