public QueryResult QueryWarehouse(WarehouseQueryFilter request) { int totalCount; var dataTable = ObjectFactory <IWarehouseQueryDA> .Instance.QueryWarehouse(request, out totalCount); return(new QueryResult() { Data = dataTable, TotalCount = totalCount }); }
/// <summary> /// 查询仓库 /// </summary> /// <returns></returns> public virtual DataTable QueryWarehouse(WarehouseQueryFilter filter, out int totalCount) { PagingInfoEntity pagingEntity = new PagingInfoEntity(); pagingEntity.SortField = SortFieldMapping(filter.PageInfo.SortBy); pagingEntity.MaximumRows = filter.PageInfo.PageSize; pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize; CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("Inventory_QueryWarehouseListByCondition");//说明:EC_Central产品化时 调用的 SQL为:Inventory_QueryWarehouse 现在是中蛋定制化 不存在渠道仓库所以保持同IPP一致 using (var sb = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "a.SysNo ASC")) { bool isSysNo = false; //编号格式验证 if (filter.SysNo != null && Regex.IsMatch(filter.SysNo, @"^[,\. ]*\d+[\d,\. ]*$")) { filter.SysNo = String.Join(",", filter.SysNo.Split(new char[] { '.', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries)); isSysNo = true; } else { filter.SysNo = null; } if (filter.WarehouseID != null && Regex.IsMatch(filter.WarehouseID, @"^[, ]*\w+[\w-#, ]*$")) { filter.WarehouseID = "'" + String.Join("','", filter.WarehouseID.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries)) + "'"; isSysNo = true; } else { filter.WarehouseID = null; } if (isSysNo) { sb.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.AND); sb.ConditionConstructor.AddSubQueryCondition(QueryConditionRelationType.AND, "a.SysNo", QueryConditionOperatorType.In, filter.SysNo); sb.ConditionConstructor.AddSubQueryCondition(QueryConditionRelationType.AND, "a.StockID", QueryConditionOperatorType.In, filter.WarehouseID); sb.ConditionConstructor.EndGroupCondition(); } sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.StockName", DbType.String, "@WarehouseName", QueryConditionOperatorType.LeftLike, filter.WarehouseName); //sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, // "a.WarehouseOwnerSysNo", DbType.Int32, "@WarehouseOwnerSysNo", // QueryConditionOperatorType.Equal, filter.OwnerSysNo); //if (!filter.OwnerSysNo.HasValue && filter.OwnerSysNo!=0) //{ // sb.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND // , " ((a.WarehouseOwnerSysNo IN ( SELECT a.SysNo FROM OverseaInventoryManagement.dbo.WarehouseOwner a WITH(NOLOCK)WHERE a.OwnerType=1)) OR a.WarehouseOwnerSysNo IS NULL)"); //} sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.[Status]", DbType.Int32, "@WarehouseStatus", QueryConditionOperatorType.Equal, filter.WarehouseStatus); //sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, // "a.[WarehouseType]", DbType.Int32, "@WarehouseType", // QueryConditionOperatorType.Equal, filter.WarehouseType); //sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, // "a.[WarehouseArea]", DbType.Int32, "@WarehouseArea", // QueryConditionOperatorType.Equal, filter.WarehouseArea); sb.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "a.CompanyCode", DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode); EnumColumnList enumColumnList = new EnumColumnList(); enumColumnList.Add("WarehouseStatus", typeof(ValidStatus)); cmd.CommandText = sb.BuildQuerySql(); var resultData = cmd.ExecuteDataTable(enumColumnList); totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount")); return(resultData); } }