using System; using System.Collections.Generic; using System.Linq; using HH.MData; using System.Text; using System.Threading.Tasks; using HH.WMS.Entitys.Algorithm; using MongoDB.Driver; using MongoDB.Driver.Builders; using HH.WMS.Entitys.Basic; using MongoDB.Bson; namespace HH.WMS.DAL.Basic { /// /// 用户读取mongodb中的仓库数据 /// public class TN_WMS_STAOCKDAL:BaseDAL { #region 所有仓库 /// /// 所有仓库 /// /// public List GetStockList() { return MongoDBSingleton.Instance.FindAll("TN_AB_STOCK"); } #endregion #region 根据库区编码返回仓库实体 /// /// 根据库区编码返回仓库实体 /// /// /// /// [HanHe(LT)] CREATED 2018/5/21 public List GetListStock(string stockCode, string pageSize, string pageIndex) { List entity = new List(); SortByDocument sortBy = new SortByDocument(); sortBy.Add("CN_S_STOCK_CODE", -1); IMongoQuery query = null; if (!string.IsNullOrEmpty(stockCode)) { query = Query.Matches("CN_S_STOCK_CODE", stockCode); } entity = MongoDBSingleton.Instance.Find(query, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK"); return entity; } #endregion #region 根据仓库和库区编码获得库区结构 /// /// 根据仓库和库区编码获得库区结构 /// /// 仓库编号 /// 库区编号 /// /// [HanHe(LT)] CREATED 2018/11/30 public List GetStructList(string stockCode,string areaCode) { var query = Query.And(Query.EQ("CN_S_STOCK_CODE", stockCode), Query.EQ("CN_S_AREA_CODE", areaCode)); //仓库结构 List lstStruct = MongoDBSingleton.Instance.Find(query, "TN_AB_B_STOCK_STRUCTURE"); return lstStruct; } #endregion public List GetAreaList(int pageIndex, int pageSize, string areaName, out int total) { List entity = new List(); SortByDocument sortBy = new SortByDocument(); sortBy.Add("CN_S_AREA_CODE", -1); IMongoQuery query = null; if (!string.IsNullOrEmpty(areaName)) { query = Query.Matches("CN_S_AREA_NAME", areaName); } // query = Query.And(Query.EQ("CN_S_STOCK_CODE", stockCode)); total = Convert.ToInt32(MongoDBSingleton.Instance.FindCount(query, "TN_AB_B_STOCK_AREA")); entity = MongoDBSingleton.Instance.Find(query, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_B_STOCK_AREA"); return entity; } public List GetSHLocationArea(string areaClass) { List listLogic = new List(); var query = Query.EQ("CN_S_AREA_CLASS", areaClass); listLogic = MongoDBSingleton.Instance.Find(query, "TN_AB_B_STOCK_AREA"); return listLogic; } public List GetSHLocation(List arrAreaCode) { List locationList = new List(); var arrLogic = arrAreaCode.ConvertAll(x => x); var query = Query.In("CN_S_AREA_CODE", arrLogic); locationList = MongoDBSingleton.Instance.Find(query, "TN_AB_STOCK_LOCATION"); return locationList; } public List GetLocationInfo(int pageIndex, int pageSize, string areaCode, string roadWay, string row, string locationNo, string state, out int total) { List locationList = new List(); List querys = new List(); if (!string.IsNullOrEmpty(areaCode)) { querys.Add(Query.EQ("CN_S_AREA_CODE", areaCode)); } if (!string.IsNullOrEmpty(state)) { querys.Add(Query.EQ("CN_S_STATUS", state)); } if (!string.IsNullOrEmpty(roadWay)) { querys.Add(Query.Matches("CN_S_ROADWAY", "/^" + roadWay + "/")); } if (!string.IsNullOrEmpty(row)) { querys.Add(Query.Matches("CN_S_ROW", "/^" + row + "/")); } if (!String.IsNullOrEmpty(locationNo)) { querys.Add(Query.Matches("CN_S_LOCATION_CODE", "/" + locationNo + "/")); } SortByDocument sortBy = new SortByDocument(); if (querys.Count > 0) { IMongoQuery query = Query.And(querys); sortBy.Add("CN_S_AREA_CODE", -1); sortBy.Add("CN_S_LOCATION_CODE", -1); total = Convert.ToInt32( MongoDBSingleton.Instance.FindCount(query, "TN_AB_STOCK_LOCATION")); locationList = MongoDBSingleton.Instance.Find(query, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK_LOCATION"); } else { total = Convert.ToInt32( MongoDBSingleton.Instance.FindCount(null, "TN_AB_STOCK_LOCATION")); sortBy.Add("CN_S_AREA_CODE", -1); sortBy.Add("CN_S_LOCATION_CODE", -1); locationList = MongoDBSingleton.Instance.Find(null, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK_LOCATION"); } return locationList; } } }