1
heshaofeng
2026-03-25 37454e625df68d40897112b2e8c2e3cf4d7163e3
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetailService.cs
@@ -37,10 +37,8 @@
        public PageGridData<StockInfoDetailWithPalletDto> GetPageData2(PageDataOptions options)
        {
            string wheres = ValidatePageOptions(options);
            var sugarQueryable = Db.Queryable<Dt_StockInfoDetail>().InnerJoin<Dt_StockInfo>((detail, item) => detail.StockId == item.Id)
                .Where((detail, item) => item.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt());
                .Where((detail, item) => item.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() || item.StockStatus == StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt());
            Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
            List<OrderByModel> orderByModels = new List<OrderByModel>();
@@ -84,6 +82,54 @@
                            {
                                sugarQueryable = sugarQueryable.Where((detail, item) => item.PalletCode.Contains(param.Value));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.MaterielCode.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.MaterielName).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.MaterielName.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.OrderNo).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.OrderNo.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.BatchNo.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.Barcode).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.Barcode.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.MaterielCode.Contains(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.Status).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.Status.Equals(queryValue));
                            }
                            if (param.Name.Equals(nameof(Dt_StockInfoDetail.WarehouseCode).FirstLetterToLower(), StringComparison.OrdinalIgnoreCase)
                                && !string.IsNullOrEmpty(param.Value?.ToString()))
                            {
                                string queryValue = param.Value.ToString().Trim();
                                sugarQueryable = sugarQueryable.Where((detail, item) => detail.WarehouseCode.Equals(queryValue));
                            }
                        }
                    }
                }
@@ -92,7 +138,6 @@
                }
            }          
            var data = sugarQueryable
             .WhereIF(!wheres.IsNullOrEmpty(), wheres)
             .OrderBy(orderByModels)
             .Select((detail, item) => new StockInfoDetailWithPalletDto
             {
@@ -120,7 +165,10 @@
                 Modifier = detail.Modifier,
                 ModifyDate = detail.ModifyDate,
                 PalletCode = item.PalletCode,
                 LocationCode = item.LocationCode
                 LocationCode = item.LocationCode,
                 ValidDate = detail.ValidDate,
             })
             .ToPageList(options.Page, options.Rows, ref totalCount);
@@ -129,6 +177,27 @@
        }
        public async Task<WebResponseContent> LockOrUpLockStockDetail(SaveModel saveModel)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var details = await BaseDal.QueryDataAsync(x => saveModel.DelKeys.Contains(x.Id));
                bool flag = Convert.ToBoolean(saveModel.Extra);
                details.ForEach(x => x.Status = flag ? StockStatusEmun.鎵嬪姩鍐荤粨.ObjToInt(): StockStatusEmun.鎵嬪姩瑙i攣.ObjToInt());
                await BaseDal.UpdateDataAsync(details);
                return content.OK(flag ? "鍐荤粨鎴愬姛!" : "瑙i攣鎴愬姛!");
            }
            catch (Exception ex)
            {
                return content.Error(ex.Message);
            }
        }
    }
}