duheng
2025-04-02 af5eeb8797d88e142410a9e82e84291355e7c336
WinFrmUI/PBS.WinFrmUI.WE/WaterWE/WaterEquivalentMgr.cs
@@ -82,7 +82,7 @@
        #endregion 事件
        //设置
        //新增
        private async void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (!this.catalogueCtrl1.IsLeafNode())
@@ -96,18 +96,17 @@
                MessageBoxHelper.ShowWarning("请选择数据行!");
                return;
            }
            var dlg = new EditWaterWEDlg();
            var dlg = new AddWaterWEDlg();
            var model = await new PBS.BLL.WE.CatalogueMapping().GetByCatalogueID(catalogueID);
            PBS.Vmo.WE.ItemVmo itemVmo = null;
            if (model != null)
            if (model != null && model.Count >= 1)
            {
                //itemVmo = await new PBS.BLL.WE.Item().GetByID(model);
                itemVmo = await new PBS.BLL.WE.Item().GetByID(model.First().ItemID);
            }
            dlg.SetBindingData(itemVmo, catalogueID);
            dlg.ReloadDataEvent += async (item, catalogue, mappingList) =>
            {
                //现在默认只能增加,不能编辑
                if (itemVmo == null)
                if (item == null)
                {
                    var id = await _bll.Insert(item);
                    if (id > 0)
@@ -137,32 +136,54 @@
                }
                else
                {
                    var bol = await _bll.Update(item);
                    if (bol)
                    mappingList.ForEach(x => x.ItemID = item.ID);
                    var mappingBol = await new PBS.BLL.WE.UtensilMapping().Inserts(mappingList);
                    if (mappingBol)
                    {
                        var del = await new PBS.BLL.WE.UtensilMapping().DeleteAllByItemID(item.ID);
                        if (del)
                        var utensilList = await new PBS.BLL.WE.UtensilMapping().GetByItemID(item.ID);
                        // _allBindingList.Clear();
                        foreach (var mapping in utensilList)
                        {
                            mappingList.ForEach(x => x.ItemID = item.ID);
                            var mappingBol = await new PBS.BLL.WE.UtensilMapping().Inserts(mappingList);
                            if (mappingBol)
                            var existingItem = _allBindingList.Find(x => x.utensilMappingVmo.ID == mapping.ID);
                            if (existingItem == null)
                            {
                                _allBindingList.Clear();
                                foreach (var mapping in mappingList)
                                {
                                    var utensil = await new PBS.BLL.WE.Utensil().GetByID(mapping.UtensilID);
                                    _allBindingList.Add(new ItemViewModel(item, mapping, utensil.Name));
                                }
                                this.itemViewModelBindingSource.ResetBindings(false);
                                return true;
                                var utensil = await new PBS.BLL.WE.Utensil().GetByID(mapping.UtensilID);
                                _allBindingList.Add(new ItemViewModel(item, mapping, utensil.Name));
                            }
                            return false;
                        }
                        this.itemViewModelBindingSource.ResetBindings(false);
                        return true;
                    }
                    return false;
                }
            };
            dlg.ShowDialog();
        }
        //编辑
        private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (vm == null)
            {
                TipFormHelper.ShowWarn("请选择数据行!");
                return;
            }
            var dlg = new EditWaterWEDlg();
            dlg.SetBindingData(vm.utensilMappingVmo);
            dlg.ReloadDataEvent += async (vmo) =>
            {
                var bol = await new BLL.WE.UtensilMapping().Update(vmo);
                if (bol)
                {
                    var utensil = await new PBS.BLL.WE.Utensil().GetByID(vmo.UtensilID);
                    vm.Reset(vmo, utensil.Name);
                    return true;
                };
                return false;
            };
            dlg.ShowDialog();
        }
@@ -172,33 +193,20 @@
            var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
            if (vm == null)
            {
                MessageBoxHelper.ShowWarning("请选择数据行!");
                TipFormHelper.ShowWarn("请选择数据行!");
                return;
            }
            if (MessageBoxHelper.IsClickOk($"确认删除数据行?"))
                return;
            if (await _bll.DeleteByID(vm.ID))
            if (await new BLL.WE.UtensilMapping().DeleteByID(vm.utensilMappingVmo.ID))
            {
                MessageBoxHelper.ShowSuccess("删除成功!");
                TipFormHelper.ShowSucceed("删除成功!");
                // 先记录要删除的元素
                var itemsToRemove = new List<ItemViewModel>();
                foreach (var item in _allBindingList)
                {
                    if (item.Name == vm.Name)
                    {
                        itemsToRemove.Add(item);
                    }
                }
                _allBindingList.Remove(vm);
                // 统一删除记录的元素
                foreach (var item in itemsToRemove)
                {
                    _allBindingList.Remove(item);
                }
                this.itemViewModelBindingSource.ResetBindings(false);
            }
            else MessageBoxHelper.ShowError($"删除失败!");
            else TipFormHelper.ShowSucceed($"删除失败!");
        }
        //详细信息
@@ -211,7 +219,7 @@
                return;
            }
            var dlg = new EditWaterWEDlg();
            var dlg = new AddWaterWEDlg();
            dlg.SetInfoDisplay(vm);
            dlg.ShowDialog();
        }