From cf877c780cb964b8b1d8eefec521c46d76130836 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 30 六月 2025 14:37:44 +0800
Subject: [PATCH] 更新超时信息相关接口和服务 - 修改 `Dt_OutTime.vue` 中的 `url` 字段。 - 更新 `AssemblyInformationalVersion` 属性值。 - 新增 `IStockInfoTimeoutRepository` 和 `IStockInfoTimeoutService` 接口。 - 实现 `StockInfoTimeoutRepository` 和 `StockInfoTimeoutService` 类。 - 在 `Dt_TaskService.cs` 中添加必要的 `using` 语句。 - 新增 `StockInfoTimeoutController` 控制器。

---
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoTimeoutController.cs                                          |   13 ++++
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoTimeoutService.cs                                              |   88 +++++++++++++++++++++++++++++
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                                                         |    1 
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoTimeoutService.cs                                             |    5 +
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs   |    2 
 CodeManagement/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue                                                                 |    2 
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs |    2 
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Stock/IStockInfoTimeoutRepository.cs                                       |    6 ++
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Stock/StockInfoTimeoutRepository.cs                                         |    9 +++
 9 files changed, 125 insertions(+), 3 deletions(-)

diff --git a/CodeManagement/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue b/CodeManagement/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
index 4473a3f..7cf35e1 100644
--- a/CodeManagement/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
+++ b/CodeManagement/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
@@ -21,7 +21,7 @@
             footer: "Foots",
             cnName: '瓒呮椂淇℃伅',
             name: 'stock/Dt_BillGroupStock',
-            url: "/Task/GetTimeout",
+            url:"/StockInfoTimeout/",
             sortName: "createDate"
         });
         const editFormFields = ref({
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs
index bb5f60b..41c5d5e 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs
@@ -14,7 +14,7 @@
 [assembly: System.Reflection.AssemblyCompanyAttribute("WIDESEA_IStoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+12b786bdece4bde3716279ff386b58d776090bdb")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+37b28e4f6b8c865c1df06543f124fd1c1ba244d9")]
 [assembly: System.Reflection.AssemblyProductAttribute("WIDESEA_IStoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyTitleAttribute("WIDESEA_IStoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Stock/IStockInfoTimeoutRepository.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Stock/IStockInfoTimeoutRepository.cs
new file mode 100644
index 0000000..ffa1ef1
--- /dev/null
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/Stock/IStockInfoTimeoutRepository.cs
@@ -0,0 +1,6 @@
+锘縩amespace WIDESEA_IStorageBasicRepository
+{
+    public interface IStockInfoTimeoutRepository : IRepository<DtStockInfo>
+    {
+    }
+}
\ No newline at end of file
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoTimeoutService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoTimeoutService.cs
new file mode 100644
index 0000000..e3d5578
--- /dev/null
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoTimeoutService.cs
@@ -0,0 +1,5 @@
+锘縩amespace WIDESEA_IStorageBasicService;
+
+public interface IStockInfoTimeoutService : IService<DtStockInfo>
+{
+}
\ No newline at end of file
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs
index f0d3fea..8bba8fa 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs
@@ -14,7 +14,7 @@
 [assembly: System.Reflection.AssemblyCompanyAttribute("WIDESEA_StoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
 [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+12b786bdece4bde3716279ff386b58d776090bdb")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+37b28e4f6b8c865c1df06543f124fd1c1ba244d9")]
 [assembly: System.Reflection.AssemblyProductAttribute("WIDESEA_StoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyTitleAttribute("WIDESEA_StoragIntegrationRepository")]
 [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Stock/StockInfoTimeoutRepository.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Stock/StockInfoTimeoutRepository.cs
new file mode 100644
index 0000000..667d5cd
--- /dev/null
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Stock/StockInfoTimeoutRepository.cs
@@ -0,0 +1,9 @@
+锘縩amespace WIDESEA_StorageBasicRepository
+{
+    public class StockInfoTimeoutRepository : RepositoryBase<DtStockInfo>, IStockInfoTimeoutRepository
+    {
+        public StockInfoTimeoutRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
\ No newline at end of file
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoTimeoutService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoTimeoutService.cs
new file mode 100644
index 0000000..5007d2d
--- /dev/null
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoTimeoutService.cs
@@ -0,0 +1,88 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Cache;
+
+namespace WIDESEA_StorageBasicServices.Stock
+{
+    public class StockInfoTimeoutService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoTimeoutService
+    {
+
+        private readonly ISimpleCacheService _simpleCacheService;
+        private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
+        public StockInfoTimeoutService(IStockInfoRepository BaseDal, ISimpleCacheService simpleCacheService, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository) : base(BaseDal)
+        {
+            _simpleCacheService = simpleCacheService;
+            _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
+        }
+
+        public override PageGridData<DtStockInfo> GetPageData(PageDataOptions options)
+        {
+            string wheres = ValidatePageOptions(options);
+            //鑾峰彇鎺掑簭瀛楁
+            Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
+            List<OrderByModel> orderByModels = new List<OrderByModel>();
+            foreach (var item in orderbyDic)
+            {
+                OrderByModel orderByModel = new()
+                {
+                    FieldName = item.Key,
+                    OrderByType = item.Value
+                };
+                orderByModels.Add(orderByModel);
+            }
+
+
+            int totalCount = 0;
+            List<SearchParameters> searchParametersList = new List<SearchParameters>();
+            if (!string.IsNullOrEmpty(options.Wheres))
+            {
+                try
+                {
+                    searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+                    options.Filter = searchParametersList;
+                }
+                catch { }
+            }
+
+            Expression<Func<DtStockInfo, bool>> locationStatus = null;
+            Expression<Func<DtStockInfo, bool>> roadwayNo = null;
+            Expression<Func<DtStockInfo, bool>> materielCode = null;
+            foreach (var item in searchParametersList)
+            {
+                if (item.Name.Contains("locationStatus"))
+                {
+                    locationStatus = x => x.LocationInfo.LocationStatus == Convert.ToInt32(item.Value);
+                }
+                else if (item.Name.Contains("roadwayNo"))
+                {
+                    roadwayNo = x => x.LocationInfo.RoadwayNo.Contains(item.Value);
+                }
+                else if (item.Name.Contains("materielCode"))
+                {
+                    materielCode = x => x.StockInfoDetails.Any(d => d.MaterielCode.Contains(item.Value));
+                }
+            }
+
+            var now = DateTime.Now;
+            // 浣跨敤Subtract鏂规硶
+            var threeHoursAgo = now.Subtract(TimeSpan.FromHours(3));
+
+            var data = BaseDal.Db.Queryable<DtStockInfo>()
+                .Includes(x => x.StockInfoDetails)
+                .Includes(x => x.LocationInfo)
+                .Where(x => x.OutboundTime < threeHoursAgo)
+                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
+                .WhereIF(locationStatus != null, locationStatus)
+                .WhereIF(roadwayNo != null, roadwayNo)
+                .WhereIF(materielCode != null, materielCode)
+                .OrderBy(orderByModels)
+                .ToPageList(options.Page, options.Rows, ref totalCount);
+            return new PageGridData<DtStockInfo>(totalCount, data);
+        }
+    }
+}
\ No newline at end of file
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index 6418cb3..7095436 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -2,6 +2,7 @@
 using Masuit.Tools;
 using SixLabors.Fonts.Tables.AdvancedTypographic;
 using SqlSugar;
+using System.Linq.Expressions;
 using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using WIDESEA_Cache;
diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoTimeoutController.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoTimeoutController.cs
new file mode 100644
index 0000000..37193de
--- /dev/null
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoTimeoutController.cs
@@ -0,0 +1,13 @@
+锘縰sing WIDESEA_IStorageBasicService;
+
+namespace WIDESEA_WMSServer.Controllers;
+
+[Route("api/StockInfoTimeout")]
+[ApiController]
+public class StockInfoTimeoutController : ApiBaseController<IStockInfoTimeoutService, DtStockInfo>
+{
+    public StockInfoTimeoutController(IStockInfoTimeoutService service) : base(service)
+    {
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.9.3