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
|
{
|
/// <summary>
|
/// 用户读取mongodb中的仓库数据
|
/// </summary>
|
public class TN_WMS_STAOCKDAL:BaseDAL
|
{
|
|
#region 所有仓库
|
/// <summary>
|
/// 所有仓库
|
/// </summary>
|
/// <returns></returns>
|
public List<TN_AB_STOCKEntity> GetStockList()
|
{
|
return MongoDBSingleton.Instance.FindAll<TN_AB_STOCKEntity>("TN_AB_STOCK");
|
}
|
#endregion
|
|
#region 根据库区编码返回仓库实体
|
/// <summary>
|
/// 根据库区编码返回仓库实体
|
/// </summary>
|
/// <param name="itemCode"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(LT)] CREATED 2018/5/21</history>
|
public List<TN_AB_STOCKEntity> GetListStock(string stockCode, string pageSize, string pageIndex)
|
{
|
List<TN_AB_STOCKEntity> entity = new List<TN_AB_STOCKEntity>();
|
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<TN_AB_STOCKEntity>(query, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK");
|
return entity;
|
}
|
#endregion
|
|
#region 根据仓库和库区编码获得库区结构
|
/// <summary>
|
/// 根据仓库和库区编码获得库区结构
|
/// </summary>
|
/// <param name="stockCode">仓库编号</param>
|
/// <param name="areaCode">库区编号</param>
|
/// <returns></returns>
|
/// <history>[HanHe(LT)] CREATED 2018/11/30</history>
|
public List<AutoBomStockStructreEntity> GetStructList(string stockCode,string areaCode)
|
{
|
var query = Query.And(Query.EQ("CN_S_STOCK_CODE", stockCode), Query.EQ("CN_S_AREA_CODE", areaCode));
|
//仓库结构
|
List<AutoBomStockStructreEntity> lstStruct = MongoDBSingleton.Instance.Find<AutoBomStockStructreEntity>(query, "TN_AB_B_STOCK_STRUCTURE");
|
|
return lstStruct;
|
}
|
#endregion
|
|
public List<AutoBomStockAreaEntity> GetAreaList(int pageIndex, int pageSize, string areaName, out int total)
|
{
|
List<AutoBomStockAreaEntity> entity = new List<AutoBomStockAreaEntity>();
|
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<AutoBomStockAreaEntity>(query, "TN_AB_B_STOCK_AREA"));
|
entity = MongoDBSingleton.Instance.Find<AutoBomStockAreaEntity>(query, Convert.ToInt32(pageIndex), Convert.ToInt32(pageSize), sortBy, "TN_AB_B_STOCK_AREA");
|
return entity;
|
}
|
|
public List<AutoBomStockAreaEntity> GetSHLocationArea(string areaClass)
|
{
|
List<AutoBomStockAreaEntity> listLogic = new List<AutoBomStockAreaEntity>();
|
var query = Query.EQ("CN_S_AREA_CLASS", areaClass);
|
listLogic = MongoDBSingleton.Instance.Find<AutoBomStockAreaEntity>(query, "TN_AB_B_STOCK_AREA");
|
|
return listLogic;
|
}
|
|
public List<AutoBomLocationEntity> GetSHLocation(List<string> arrAreaCode)
|
{
|
List<AutoBomLocationEntity> locationList = new List<AutoBomLocationEntity>();
|
var arrLogic = arrAreaCode.ConvertAll<BsonValue>(x => x);
|
var query = Query.In("CN_S_AREA_CODE", arrLogic);
|
locationList = MongoDBSingleton.Instance.Find<AutoBomLocationEntity>(query, "TN_AB_STOCK_LOCATION");
|
return locationList;
|
}
|
|
public List<AutoBomLocationEntity> GetLocationInfo(int pageIndex, int pageSize, string areaCode, string roadWay,
|
string row, string locationNo, string state, out int total)
|
{
|
List<AutoBomLocationEntity> locationList = new List<AutoBomLocationEntity>();
|
List<IMongoQuery> querys = new List<IMongoQuery>();
|
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<AutoBomStockAreaEntity>(query,
|
"TN_AB_STOCK_LOCATION"));
|
locationList = MongoDBSingleton.Instance.Find<AutoBomLocationEntity>(query, Convert.ToInt32(pageIndex),
|
Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK_LOCATION");
|
}
|
else
|
{
|
total = Convert.ToInt32(
|
MongoDBSingleton.Instance.FindCount<AutoBomStockAreaEntity>(null,
|
"TN_AB_STOCK_LOCATION"));
|
sortBy.Add("CN_S_AREA_CODE", -1);
|
sortBy.Add("CN_S_LOCATION_CODE", -1);
|
locationList = MongoDBSingleton.Instance.Find<AutoBomLocationEntity>(null, Convert.ToInt32(pageIndex),
|
Convert.ToInt32(pageSize), sortBy, "TN_AB_STOCK_LOCATION");
|
|
}
|
|
return locationList;
|
}
|
}
|
}
|