84 lines
2.5 KiB
C#
84 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace DeiNiu.wms.Data.Model
|
|
{
|
|
public class ObjectsFactory
|
|
{
|
|
|
|
private static Dictionary<string, DeiNiu.Data.BaseObject.BaseModel_Imp> modelCache = new Dictionary<string, DeiNiu.Data.BaseObject.BaseModel_Imp>();
|
|
private static Dictionary<string, WmsOutPickDetail> OutDetailCache = new Dictionary<string, WmsOutPickDetail>();
|
|
private static Dictionary<string, WmsGoods> goodsCache = new Dictionary<string, WmsGoods>();
|
|
|
|
|
|
public static DeiNiu.Data.BaseObject.BaseModel_Imp getModel(string className)
|
|
{
|
|
if (modelCache.ContainsKey(className)){
|
|
|
|
return modelCache[className];
|
|
|
|
}else{
|
|
|
|
return null;
|
|
}
|
|
}
|
|
public static void putModel(string className,DeiNiu.Data.BaseObject.BaseModel_Imp modelImp )
|
|
{
|
|
modelCache[className] = modelImp;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取的缓存商品可能没有批号信息
|
|
/// </summary>
|
|
/// <param name="goodsId"></param>
|
|
/// <param name="isForceRefresh"></param>
|
|
/// <returns></returns>
|
|
public static WmsGoods getGoods(string goodsId,bool isForceRefresh = false)
|
|
{
|
|
WmsGoods goods ;
|
|
if(isForceRefresh || !goodsCache.Keys.Contains(goodsId)){
|
|
goods = new WmsGoods(goodsId);
|
|
goodsCache[goodsId] = goods;
|
|
}else{
|
|
goods = goodsCache[goodsId];
|
|
}
|
|
|
|
return goods;
|
|
}
|
|
|
|
public static void putGoods(WmsGoods goods){
|
|
goodsCache[goods.goodsId] = goods;
|
|
|
|
}
|
|
|
|
public static void putOutDetail(WmsOutPickDetail outDetail)
|
|
{
|
|
OutDetailCache[outDetail.goodsId + outDetail.batch] = outDetail;
|
|
putGoods(outDetail.goods);
|
|
}
|
|
/// <summary>
|
|
/// 取有生产日期批号信息的缓存商品出库明细
|
|
/// 不存在则返回一个新初始化的商品出库明细
|
|
/// </summary>
|
|
/// <param name="goodsId"></param>
|
|
/// <param name="batch"></param>
|
|
/// <returns></returns>
|
|
public static WmsOutPickDetail getOutDetail(string goodsId, string batch)
|
|
{
|
|
string key = goodsId + batch;
|
|
|
|
if (OutDetailCache.Keys.Contains(key))
|
|
{
|
|
WmsOutPickDetail outd = OutDetailCache[key];
|
|
OutDetailCache.Remove(key); // remove the cache
|
|
return outd;
|
|
}
|
|
|
|
return new WmsOutPickDetail();
|
|
}
|
|
|
|
}
|
|
}
|