Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
        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.停用));
            }
        }
Exemplo n.º 5
0
 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);
         }
     }
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
 public bool HaveTransWithGood(TransTypeE type, uint goodid, uint areaid)
 {
     return(TransList.Exists(c => c.TransType == type && c.goods_id == goodid && c.area_id == areaid));
 }
Exemplo n.º 8
0
 public List <StockTrans> GetTransInType(TransTypeE type)
 {
     return(TransList.FindAll(c => !c.finish && c.TransType == type));
 }