/// <summary> /// 获取组织架构节点 /// </summary> /// <param name="organize"></param> /// <param name="ltVehicle"></param> /// <returns></returns> private VVehicleTreeItemList GetTreeItem(VVehicleGroupWithRelation organize, IList<EVehicle> ltVehicle) { VVehicleTreeItemList item = new VVehicleTreeItemList(); if (organize.Self != null) { item.Value = organize.Self.GroupID.ToString(); item.Text = organize.Self.GroupName; item.NodeType = (organize.Self.ParentGroupID.HasValue ? 2 : 0); //0表示Root,2表示VehicleGroup item.Parent = organize.Self.ParentGroupID.HasValue ? organize.Self.ParentGroupID.Value.ToString() : ""; item.TenantCode = organize.Self.TenantCode; List<VVehicleTreeItemList> children = new List<VVehicleTreeItemList>(); //添加车辆子节点列表 children.AddRange(GetTreeItems(organize, ltVehicle)); item.VehicleNum = children.Count(); //添加组织架构子节点列表 children.AddRange(GetTreeItems(organize.ChildList, ltVehicle)); item.Children = children; } return item; }
/// <summary> /// 获取车辆节点列表 /// </summary> /// <param name="organization"></param> /// <param name="ltVehicle"></param> /// <returns></returns> private List<VVehicleTreeItemList> GetTreeItems(VVehicleGroupWithRelation organization, IList<EVehicle> ltVehicle) { List<VVehicleTreeItemList> list = new List<VVehicleTreeItemList>(); if (ltVehicle != null) { list = ltVehicle.Where(o => o.GroupID == organization.Self.GroupID) .Select(o => new VVehicleTreeItemList() { Value = o.VehicleCode.ToString(), Text = o.LicenceNumber, GroupID = o.GroupID, Parent = o.GroupID.ToString(), DeviceNo = o.DeviceNo, GPSCode = o.GPSCode, GPSTypeID = o.GPSTypeID, GPSTypeName = o.GPSTypeName, NodeType = 1, //1表示Vehicle SIMNo = o.SIMNo, TenantCode = o.TenantCode, IconType = o.IconType }) .ToList<VVehicleTreeItemList>(); } return list; }
//子机构树 private VVehicleGroupWithRelation GetOrganizeChildTree(IList<EVehicleGroup> ltOrganize, EVehicleGroup rootOrganize) { VVehicleGroupWithRelation relation = new VVehicleGroupWithRelation(); if (rootOrganize != null) { relation.Self = ConvertToVM(rootOrganize); } relation.ChildList = new List<VVehicleGroupWithRelation>(); var listChild = ltOrganize.Where(s => s.ParentGroupID == rootOrganize.GroupID); foreach (EVehicleGroup organize in listChild) { VVehicleGroupWithRelation organizeChildTree = this.GetOrganizeChildTree(ltOrganize, organize); relation.ChildList.Add(organizeChildTree); } return relation; }