Пример #1
0
        public void Refresh(bool refr_1 = true, bool refr_2 = true, bool refr_3 = true, bool refr_4 = true)
        {
            if (refr_1)
            {
                AreaList.Clear();
                AreaList.AddRange(PubMaster.Mod.AreaSql.QueryAreaList());
            }

            if (refr_2)
            {
                AreaDevList.Clear();
                AreaDevList.AddRange(PubMaster.Mod.AreaSql.QueryAreaDeviceList());
            }

            if (refr_3)
            {
                AreaTraList.Clear();
                AreaTraList.AddRange(PubMaster.Mod.AreaSql.QueryAreaTrackList());
            }

            if (refr_4)
            {
                AreaDevTraList.Clear();
                AreaDevTraList.AddRange(PubMaster.Mod.AreaSql.QueryAreaDeviceTrackList());
            }
        }
Пример #2
0
        /// <summary>
        /// 倒库专用:找到上砖摆渡轨道
        /// </summary>
        /// <param name="trans"></param>
        /// <returns></returns>
        public List <uint> GetFerryTrackSortIds(StockTrans trans, bool istrackid)
        {
            List <uint>       list   = new List <uint>();
            List <AreaDevice> ferrys = AreaDevList.FindAll(c => c.area_id == trans.area_id && c.DevType == DeviceTypeE.摆渡);

            if (ferrys != null && ferrys.Count > 0)
            {
                foreach (AreaDevice device in ferrys)
                {
                    if (AreaDevTraList.Exists(c => c.device_id == device.device_id &&
                                              c.area_id == device.area_id &&
                                              c.track_id == trans.give_track_id))
                    {
                        if (istrackid)
                        {
                            uint trackid = PubMaster.Device.GetFerryTrackId(device.device_id);
                            if (trackid > 0)
                            {
                                list.Add(trackid);
                            }
                        }
                        else
                        {
                            list.Add(device.device_id);
                        }
                    }
                }
            }

            return(list);
        }
Пример #3
0
        /// <summary>
        /// 获取摆渡车ID或摆渡车轨道的ID
        /// </summary>
        /// <param name="trans"></param>
        /// <param name="istrackid"></param>
        /// <returns></returns>
        public List <uint> GetFerryWithTrackInOut(DeviceTypeE ferrytype, uint areaid, uint taketrackid, uint givetrackid, uint cartrackid, bool istrackid)
        {
            List <uint>       list   = new List <uint>();
            List <AreaDevice> ferrys = AreaDevList.FindAll(c => c.area_id == areaid && c.DevType == ferrytype);

            if (ferrys != null && ferrys.Count > 0)
            {
                bool takematch, givematch, carmatch;
                foreach (AreaDevice device in ferrys)
                {
                    takematch = taketrackid == 0 || AreaDevTraList.Exists(c => c.device_id == device.device_id &&
                                                                          c.area_id == device.area_id &&
                                                                          c.track_id == taketrackid);
                    givematch = givetrackid == 0 || AreaDevTraList.Exists(c => c.device_id == device.device_id &&
                                                                          c.area_id == device.area_id &&
                                                                          c.track_id == givetrackid);
                    carmatch = cartrackid == 0 || AreaDevTraList.Exists(c => c.device_id == device.device_id &&
                                                                        c.area_id == device.area_id &&
                                                                        c.track_id == cartrackid);

                    if (takematch && givematch && carmatch)
                    {
                        if (istrackid)
                        {
                            uint trackid = PubMaster.Device.GetFerryTrackId(device.device_id);
                            if (trackid > 0)
                            {
                                list.Add(trackid);
                            }
                        }
                        else
                        {
                            list.Add(device.device_id);
                        }
                    }
                }
            }

            return(list);
        }
Пример #4
0
 internal List <uint> GetAreaTileIds(uint areaid)
 {
     return(AreaDevList.FindAll(c => c.area_id == areaid &&
                                (c.DevType == DeviceTypeE.砖机 || c.DevType == DeviceTypeE.砖机))
            .Select(c => c.device_id).ToList());
 }
Пример #5
0
 public uint GetAreaId(uint id)
 {
     return(AreaDevList.Find(c => c.device_id == id)?.area_id ?? 0);
 }
Пример #6
0
 public List <AreaDevice> GetAreaDevList(uint area_id, DeviceTypeE devtype)
 {
     return(AreaDevList.FindAll(c => c.area_id == area_id && c.DevType == devtype));
 }
Пример #7
0
 public List <AreaDevice> GetAreaDevList(uint area_id)
 {
     return(AreaDevList.FindAll(c => c.area_id == area_id));
 }
Пример #8
0
 public bool IsFerryInArea(uint filterareaid, uint iD)
 {
     return(AreaDevList.Exists(c => c.area_id == filterareaid && c.device_id == iD));
 }
Пример #9
0
 public List <AreaDevice> GetAreaDevListWithType(DeviceTypeE devtype)
 {
     return(AreaDevList.FindAll(c => c.DevType == devtype));
 }