namespace HStation.WinFrmUI.Assets { public partial class PackageManageMainPage : DocumentPage { public PackageManageMainPage() { InitializeComponent(); this.PageTitle.Caption = "成套设备"; this.gridView1.SetNormalView(); this.gridView1.RegistCustomDrawRowIndicator(); this.gridView2.SetNormalView(); this.gridView2.RegistCustomDrawRowIndicator(); this.gridView2.OptionsBehavior.Editable = true; this.gridView2.OptionsBehavior.ReadOnly = false; this.PageTitle.HeaderSvgImage = this.svgImageCollection1[0]; this.PageTitle.SvgImageSize = new Size(24, 24); this.EquipmentTreeListCtrl1.ReloadEvent += EquipmentTreeListCtrl1_ReloadEvent; } private BLL.AssetsPackageMain _bll = null; private List _allBindingList = new(); private List _allEquipmentList = new(); private BLL.AssetsPackagePumpMapping _mappingBll = new(); private string _manufacturerName; //初始化数据 public override void InitialDataSource() { _bll = new BLL.AssetsPackageMain(); this.EquipmentTreeListCtrl1.SetBindingData(); this.kitViewModelBindingSource.DataSource = _allBindingList; this.kitViewModelBindingSource.ResetBindings(false); this.equipmentViewModelBindingSource1.DataSource = _allEquipmentList; } private async void EquipmentTreeListCtrl1_ReloadEvent(long SeriesID) { Vmo.AssetsManufacturerVmo manufacturer = new(); var alllist = await _bll.GetBySeriesID(SeriesID); var mapping = await new BLL.AssetsPackageSeriesManufacturerMapping().GetBySeriesID(SeriesID); if (mapping != null) { manufacturer = await new BLL.AssetsManufacturer().GetByID(mapping.ManufacturerID); } _allBindingList.Clear(); if (alllist != null) { foreach (var item in alllist) { _allBindingList.Add(new PackageViewModel(item, manufacturer.Name)); } } _manufacturerName = manufacturer.Name; this.kitViewModelBindingSource.ResetBindings(false); } //添加 private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new AddAssetsPackageMainDlg(); var series = this.EquipmentTreeListCtrl1.GetCurrentSeries(); if (series == null) { MessageBoxHelper.ShowWarning("请先选择系列!"); return; } dlg.SetBindingData(series.ID); dlg.ReloadDataEvent += async (rhs, allMappingList) => { rhs.PumpTotal = allMappingList.Count; var id = await _bll.Insert(rhs); if (id > 0) { rhs.ID = id; _allBindingList.Add(new PackageViewModel(await _bll.GetByID(id), _manufacturerName)); foreach (var item in allMappingList) { var model = new Vmo.AssetsPackagePumpMappingVmo(); model.PumpMainID = item.PumpID; model.EquipmentMainID = id; await _mappingBll.Insert(model); } for (int i = 0; i < _allBindingList.Count; i++) { if (_allBindingList[i].ID == id) { this.gridView1.FocusedRowHandle = i; } } this.kitViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //编辑 private async void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allBindingList); if (vm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditAssetsPackageMainDlg(); var Equipment = await _bll.GetByID(vm.ID); if (Equipment == null) return; dlg.SetBindingData(Equipment); dlg.ReloadDataEvent += async (rhs, allMappingList) => { rhs.PumpTotal = allMappingList.Count; if (await _bll.Update(rhs)) { vm.Reset(rhs); this.kitViewModelBindingSource.ResetBindings(false); await _mappingBll.DeleteByKitID(vm.ID); foreach (var item in allMappingList) { var model = new Vmo.AssetsPackagePumpMappingVmo(); model.PumpMainID = item.PumpID; model.EquipmentMainID = vm.ID; await _mappingBll.Insert(model); } GridView1_FocusedRowChanged(null, null); return true; } return false; }; dlg.ShowDialog(); } //删除 private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示")) return; var result = await _bll.DeleteByID(currentVm.ID); if (result) { _allBindingList.Remove(currentVm); await _mappingBll.DeleteByKitID(currentVm.ID); this.kitViewModelBindingSource.ResetBindings(false); this.equipmentViewModelBindingSource1.ResetBindings(false); TipFormHelper.ShowSucceed("删除成功!"); } else { TipFormHelper.ShowSucceed("删除失败!"); return; } } //编辑属性 private async void BarBtnEidtProp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditPackagePartPropDlg(); var model = await _bll.GetByID(currentVm.ID); if (model == null) return; dlg.SetBindingData(model); dlg.ReloadEvent += async (part, content, map) => { var bll = new BLL.AssetsPackagePartMain(); var id = await bll.InsertEx(part, content, map); if (id > 0) { return true; } return false; }; dlg.ShowDialog(); } //成套设备选择变换事件 private async void GridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { _allEquipmentList.Clear(); var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm != null) { var allList = await new BLL.AssetsPackagePumpMapping().GetByKitID(currentVm.ID); if (allList != null) { foreach (var item in allList) { var pump = await new BLL.AssetsPumpMain().GetByID(item.PumpMainID); _allEquipmentList.Add(new EquipmentViewModel(item, pump, currentVm.ID)); } } } this.equipmentViewModelBindingSource1.ResetBindings(false); } private async void gridView2_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { var currentVm = this.gridView2.GetCurrentViewModel(_allEquipmentList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var mapping = new Vmo.AssetsPackagePumpMappingVmo(); mapping.ID = currentVm.ID; mapping.PumpMainID = currentVm.PumpID; mapping.PumpOtherName = currentVm.Name; mapping.EquipmentMainID = currentVm.KitID; await _mappingBll.Update(mapping); } } }