647556386
2026-01-13 3386c4e2a11ed345986a0b4af28e4a8630f84b41
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs
@@ -1,5 +1,6 @@
锘縰sing Microsoft.Extensions.Logging;
using SqlSugar;
using System.Text.RegularExpressions;
using WIDESEA_Common.AllocateEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
@@ -464,6 +465,9 @@
        public override PageGridData<Dt_AllocateOrder> GetPageData(PageDataOptions options)
        {
            string wheres = ValidatePageOptions(options);
            string pattern = @"orderNo like '[^']+'\s*and\s*";
            wheres = Regex.Replace(wheres, pattern, "", RegexOptions.IgnoreCase);
            //鑾峰彇鎺掑簭瀛楁
            Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
            List<OrderByModel> orderByModels = new List<OrderByModel>();
@@ -476,7 +480,7 @@
                };
                orderByModels.Add(orderByModel);
            }
            ISugarQueryable<Dt_AllocateOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_AllocateOrder>();
            int totalCount = 0;
            List<SearchParameters> searchParametersList = new List<SearchParameters>();
@@ -485,13 +489,32 @@
                try
                {
                    searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                    if (searchParametersList.Count > 0)
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_AllocateOrder.OrderNo).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.OrderNo.Contains(searchParameters.Value.ToString())
                            || x.UpperOrderNo.Contains(searchParameters.Value.ToString()) ||
                            x.Details.Any(d => d.Barcode == searchParameters.Value.ToString()) ||
                            x.Details.Any(d => d.BoxSN == searchParameters.Value.ToString()));
                        }
                        searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_AllocateOrder.OrderType).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.OrderType.Equals(searchParameters.Value.ToString()));
                        }
                        //var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                        //return new PageGridData<Dt_InboundOrder>(totalCount, dataList);
                    }
                    options.Filter = searchParametersList;
                }
                catch { }
            }
            var data = BaseDal.Db.Queryable<Dt_AllocateOrder>()
            var data = sugarQueryable1
                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
                .OrderBy(orderByModels)
                .OrderBy(orderByModels).Includes(x=>x.Details)
                .ToPageList(options.Page, options.Rows, ref totalCount);
            
            foreach (var item in data)
@@ -502,10 +525,14 @@
                {
                    item.OrderStatus = _InboundOrder.OrderStatus;
                    item.OrderType = _InboundOrder.OrderType;
                    item.Modifier = _InboundOrder.Operator;
                    item.ReturnToMESStatus = _InboundOrder.ReturnToMESStatus;
                }else if (OutboundOrder!=null)
                {
                    item.OrderStatus = OutboundOrder.OrderStatus;
                    item.OrderType = OutboundOrder.OrderType;
                    item.Modifier = OutboundOrder.Operator;
                    item.ReturnToMESStatus = OutboundOrder.ReturnToMESStatus;
                }
            }
            return new PageGridData<Dt_AllocateOrder>(totalCount, data);