public void AddTransWithoutLock(uint areaid, uint lifterid, TransTypeE type, uint goodsid, uint stocksid, uint taketrackid, uint givetrackid, TransStatusE initstatus = TransStatusE.调度设备, uint carrierid = 0) { uint newid = PubMaster.Dic.GenerateID(DicTag.NewTranId); StockTrans trans = new StockTrans() { id = newid, area_id = areaid, TransStaus = initstatus, TransType = type, tilelifter_id = lifterid, goods_id = goodsid, stock_id = stocksid, take_track_id = taketrackid, give_track_id = givetrackid, create_time = DateTime.Now, carrier_id = carrierid, }; TransList.Add(trans); PubMaster.Mod.GoodSql.AddStockTrans(trans); SendMsg(trans); }
public List <uint> GetFerryTrackId(uint area_id, TransTypeE transType) { List <uint> list = new List <uint>(); switch (transType) { case TransTypeE.入库: list.AddRange(TrackList.FindAll(c => c.Type == TrackTypeE.摆渡车_入).Select(c => c.id)); break; case TransTypeE.出库: list.AddRange(TrackList.FindAll(c => c.Type == TrackTypeE.摆渡车_出).Select(c => c.id)); break; case TransTypeE.倒库: list.AddRange(TrackList.FindAll(c => c.Type == TrackTypeE.摆渡车_出).Select(c => c.id)); break; case TransTypeE.其他: break; default: break; } return(list); }
internal bool HaveInTiles(uint areaId, uint goodsId, TransTypeE tasktype, List <uint> tileids) { if (Monitor.TryEnter(_to, TimeSpan.FromSeconds(1))) { try { if (tileids != null && tileids.Count > 0) { return(TransList.Exists(c => !c.finish && c.area_id == areaId && c.TransType == tasktype && tileids.Contains(c.tilelifter_id))); } else { return(TransList.Exists(c => !c.finish && c.area_id == areaId && c.TransType == tasktype && c.goods_id == goodsId)); } } finally { Monitor.Exit(_to); } } return(true); }
public bool IsStopUsing(uint track_id, TransTypeE transType) { switch (transType) { case TransTypeE.入库: return(TrackList.Exists(c => c.id == track_id && (c.TrackStatus == TrackStatusE.停用 || c.TrackStatus == TrackStatusE.仅上砖))); case TransTypeE.出库: return(TrackList.Exists(c => c.id == track_id && (c.TrackStatus == TrackStatusE.停用 || c.TrackStatus == TrackStatusE.仅下砖))); default: return(TrackList.Exists(c => c.id == track_id && c.TrackStatus == TrackStatusE.停用)); } }
public void AddTrans(uint areaid, uint lifterid, TransTypeE type, uint goodsid, uint stocksid, uint taketrackid, uint givetrackid) { if (Monitor.TryEnter(_for, TimeSpan.FromSeconds(10))) { try { AddTransWithoutLock(areaid, lifterid, type, goodsid, stocksid, taketrackid, givetrackid); } finally { Monitor.Exit(_for); } } }
internal bool HaveInGoods(uint areaId, uint goodsId, TransTypeE tasktype) { if (Monitor.TryEnter(_to, TimeSpan.FromSeconds(1))) { try { return(TransList.Exists(c => !c.finish && c.area_id == areaId && c.TransType == tasktype && c.goods_id == goodsId)); } finally { Monitor.Exit(_to); } } return(true); }
public bool HaveTransWithGood(TransTypeE type, uint goodid, uint areaid) { return(TransList.Exists(c => c.TransType == type && c.goods_id == goodid && c.area_id == areaid)); }
public List <StockTrans> GetTransInType(TransTypeE type) { return(TransList.FindAll(c => !c.finish && c.TransType == type)); }