From 51e66d3bc5ef0fe491800ccdce292a8d58300efa Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期日, 22 十二月 2024 12:33:41 +0800
Subject: [PATCH] 单泵曲线匹配修改

---
 WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs |  412 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 336 insertions(+), 76 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs
index 46f4ea6..3d14b0f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/22-cooling/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs
@@ -1,112 +1,61 @@
 锘縰sing DevExpress.Utils;
 using DevExpress.Utils.Design;
+using DevExpress.Utils.DragDrop;
+using DevExpress.XtraEditors;
+using DevExpress.XtraTreeList;
+using DevExpress.XtraTreeList.Nodes;
+using HStation.Vmo;
 using System.ComponentModel;
+using System.Windows.Media.Imaging;
+using Yw;
 
 namespace HStation.WinFrmUI
 {
     public partial class AssetsCoolingSeriesMgrTreeCtrl : DevExpress.XtraEditors.XtraUserControl
     {
         /// <summary>
-        /// 
+        ///
         /// </summary>
         public AssetsCoolingSeriesMgrTreeCtrl()
         {
             InitializeComponent();
             this.treeList1.InitialDefaultSettings();
             this.layoutControl1.SetupLayoutControl();
+            this.barBtnAdd.ItemClick += BarBtnAdd_ItemClick;
+            this.barBtnEdit.ItemClick += BarBtnEdit_ItemClick;
+            this.barBtnDelete.ItemClick += BarBtnDelete_ItemClick;
+            this.barBtnInfo.ItemClick += BarBtnInfo_ItemClick;
         }
 
         /// <summary>
         /// 鑱氱劍鏀瑰彉浜嬩欢
         /// </summary>
-        public event Action<SimpleTreeViewModel> FocusedChangedEvent;
+        public event Action<AssetsCoolingSeriesVmo> FocusedChangedEvent;
 
         /// <summary>
         /// 鎵�鏈夌粦瀹氬垪琛�
         /// </summary>
-        private List<SimpleTreeViewModel> _allBindingList = null;
+        private List<AssetsCoolingSeriesMgrViewModel> _allBindingList = null;
 
         /// <summary>
-        /// 缁戝畾鏁版嵁
+        /// 鍒濆鍖栨暟鎹�
         /// </summary>
-        public void SetBindingData(List<SimpleTreeViewModel> allList)
+        public async void InitialData()
         {
-            _allBindingList = new List<SimpleTreeViewModel>();
+            var overlay = this.ShowOverlay();
+            var allList = await BLLFactory<HStation.BLL.AssetsCoolingSeries>.Instance.GetAll();
+            _allBindingList = new List<AssetsCoolingSeriesMgrViewModel>();
             allList?.ForEach(x =>
             {
-                _allBindingList.Add(x);
+                var vm = new AssetsCoolingSeriesMgrViewModel(x);
+                _allBindingList.Add(vm);
             });
             this.treeList1.DataSource = _allBindingList;
             this.treeList1.ForceInitialize();
-        }
-
-        /// <summary>
-        /// 鍏ㄩ儴灞曞紑
-        /// </summary>
-        public void ExpandAll()
-        {
             this.treeList1.ExpandAll();
+            overlay.Close();
+            SetDragEnable(this.barCkDrag.Checked);
         }
-
-        /// <summary>
-        /// 鍏ㄩ儴鎶樺彔
-        /// </summary>
-        public void CollapseAll()
-        {
-            this.treeList1.CollapseAll();
-        }
-
-        /// <summary>
-        /// 鏄剧ず鏍戠嚎
-        /// </summary>
-        public bool ShowTreeLines
-        {
-            get { return this.barCkTreeLine.Checked; }
-            set { this.barCkTreeLine.Checked = value; }
-        }
-
-        /// <summary>
-        /// 鏄剧ず鎼滅储妗�
-        /// </summary>
-        public void ShowSearchControl()
-        {
-            this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
-        }
-
-        /// <summary>
-        /// 鍏抽棴鎼滅储妗�
-        /// </summary>
-        public void CloseSearchControl()
-        {
-            this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
-        }
-
-        /// <summary>
-        /// 閫夋嫨鍥剧墖鍒楄〃
-        /// </summary>
-        [DefaultValue(null)]
-        [TypeConverter(typeof(ImageCollectionImagesConverter))]
-        public object SelectImageList
-        {
-            get
-            {
-                return this.treeList1.SelectImageList;
-            }
-            set
-            {
-                this.treeList1.SelectImageList = value;
-            }
-        }
-
-        /// <summary>
-        /// 宸ュ叿鏉″彲瑙佹��
-        /// </summary>
-        public bool ToolBarVisible
-        {
-            get { return this.bar1.Visible; }
-            set { this.bar1.Visible = value; }
-        }
-
 
         //鍏ㄩ儴灞曞紑
         private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -138,11 +87,322 @@
         //鑱氱劍鑺傜偣鏀瑰彉
         private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
         {
-            var vm = this.treeList1.GetDataRecordByNode(e.Node) as SimpleTreeViewModel;
-            this.FocusedChangedEvent?.Invoke(vm);
+            var vm = this.treeList1.GetDataRecordByNode(e.Node) as AssetsCoolingSeriesMgrViewModel;
+            if (vm != null)
+            {
+                this.FocusedChangedEvent?.Invoke(vm.Vmo);
+            }
         }
 
+        //鍒锋柊
+        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            InitialData();
+        }
 
+        //鍙抽敭鑿滃崟
+        private void treeList1_MouseClick(object sender, MouseEventArgs e)
+        {
+            if (e.Button != MouseButtons.Right)
+            {
+                return;
+            }
+            _calcHitInfo = this.treeList1.CalcHitInfo(e.Location);
+            this.popupMenu1.ShowPopup(MousePosition);
+        }
 
+        private TreeListHitInfo _calcHitInfo = null;
+
+        //鍙抽敭鑿滃崟寮瑰嚭鍓嶉獙璇�
+        private void popupMenu1_BeforePopup(object sender, CancelEventArgs e)
+        {
+            if (_calcHitInfo == null)
+            {
+                return;
+            }
+            if (_calcHitInfo.InRow)
+            {
+                this.barBtnAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                this.barBtnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                this.barBtnDelete.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                this.barBtnInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+            }
+            else
+            {
+                this.barBtnAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
+                this.barBtnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
+                this.barBtnDelete.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
+                this.barBtnInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
+            }
+        }
+
+        //鑾峰彇褰撳墠
+        private AssetsCoolingSeriesMgrViewModel GetCurrentViewModel()
+        {
+            if (_allBindingList == null)
+            {
+                TipFormHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒");
+                return null;
+            }
+            if (_allBindingList.Count < 1)
+            {
+                TipFormHelper.ShowInfo("鏃犳暟鎹紒");
+                return null;
+            }
+            var vm = this.treeList1.GetCurrentViewModel(_allBindingList);
+            if (vm == null)
+            {
+                TipFormHelper.ShowWarn("璇烽�夋嫨鏁版嵁琛岋紒");
+                return null;
+            }
+            return vm;
+        }
+
+        //娣诲姞
+        private void Add()
+        {
+            if (_allBindingList == null)
+            {
+                TipFormHelper.ShowError("鏁版嵁鍒濆鍖栧け璐ワ紒");
+                return;
+            }
+            if (_calcHitInfo == null)
+            {
+                return;
+            }
+            long parentId = 0;
+            if (_calcHitInfo.InRow)
+            {
+                var vm = this.treeList1.GetCurrentViewModel(_allBindingList);
+                if (vm != null)
+                {
+                    parentId = vm.ID;
+                }
+            }
+            var dlg = new AddAssetsCoolingSeriesDlg();
+            dlg.ReloadDataEvent += (rhs) =>
+            {
+                var vm = new AssetsCoolingSeriesMgrViewModel(rhs);
+                _allBindingList.Add(vm);
+                this.treeList1.RefreshDataSource();
+                TipFormHelper.ShowSucceed("娣诲姞鎴愬姛锛�");
+            };
+            dlg.SetBindingData(parentId);
+            dlg.ShowDialog();
+        }
+
+        //缂栬緫
+        private void Edit()
+        {
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            var dlg = new EditAssetsCoolingSeriesDlg();
+            dlg.ReloadDataEvent += (rhs) =>
+            {
+                vm.Reset(rhs);
+                this.treeList1.RefreshNode(this.treeList1.FocusedNode);
+                TipFormHelper.ShowSucceed("鏇存柊鎴愬姛");
+            };
+            dlg.SetBindingData(vm.Vmo);
+            dlg.ShowDialog();
+        }
+
+        //鍒犻櫎
+        private async void Delete()
+        {
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            var result = XtraMessageBox.Show("璇烽棶纭鍒犻櫎褰撳墠鏁版嵁鍚楋紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes;
+            if (!result)
+            {
+                return;
+            }
+            var bol = await BLLFactory<HStation.BLL.AssetsCoolingSeries>.Instance.DeleteByID(vm.ID);
+            if (!bol)
+            {
+                TipFormHelper.ShowError("鍒犻櫎澶辫触锛�");
+                return;
+            }
+            _allBindingList.Remove(vm);
+            this.treeList1.RefreshDataSource();
+            TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛锛�");
+        }
+
+        //鏌ョ湅
+        private void View()
+        {
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            var dlg = new ViewAssetsCoolingSeriesDlg();
+            dlg.SetBindingData(vm.Vmo);
+            dlg.ShowDialog();
+        }
+
+        //娣诲姞
+        private void BarBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            Add();
+        }
+
+        //缂栬緫
+        private void BarBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            Edit();
+        }
+
+        //璇︾粏淇℃伅
+        private void BarBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            View();
+        }
+
+        //鍒犻櫎
+        private void BarBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            Delete();
+        }
+
+        #region 鎷栨嫿
+
+        private async void dragDropEvents1_DragDrop(object sender, DevExpress.Utils.DragDrop.DragDropEventArgs e)
+        {
+            var nodes = e.Data as List<TreeListNode>;
+            if (nodes == null || nodes.Count < 1)
+            {
+                e.Handled = true;
+                return;
+            }
+            var sourceNode = nodes[0];
+            var sourceNodeObj = this.treeList1.GetDataRecordByNode(sourceNode) as AssetsCoolingSeriesMgrViewModel;
+            if (sourceNodeObj == null)
+            {
+                e.Handled = true;
+                return;
+            }
+            var destNode = this.treeList1.GetNodeByCP(e.Location);
+            if (destNode == null)
+            {
+                e.Handled = true;
+                return;
+            }
+            var destNodeObj = this.treeList1.GetDataRecordByNode(destNode) as AssetsCoolingSeriesMgrViewModel;
+            if (destNode == null)
+            {
+                e.Handled = true;
+                return;
+            }
+
+            long id = sourceNodeObj.ID;
+            long parentId = 0;
+            int sortCode = 0;
+
+            var sorters = new List<Yw.Vmo.Sorter>();
+
+            if (e.InsertType == InsertType.Before)
+            {
+                parentId = destNodeObj.ParentID;
+                sortCode = destNodeObj.SortCode;
+                _allBindingList.ForEach(x =>
+                {
+                    if (x.ParentID == destNodeObj.ParentID)
+                    {
+                        if (x.SortCode >= destNodeObj.SortCode)
+                        {
+                            if (x != sourceNodeObj)
+                            {
+                                sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 });
+                            }
+                        }
+                    }
+                });
+            }
+            else if (e.InsertType == InsertType.After)
+            {
+                parentId = destNodeObj.ParentID;
+                sortCode = destNodeObj.SortCode + 1;
+                _allBindingList.ForEach(x =>
+                {
+                    if (x.ParentID == destNodeObj.ParentID)
+                    {
+                        if (x.SortCode > destNodeObj.SortCode)
+                        {
+                            if (x != sourceNodeObj)
+                            {
+                                sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 });
+                            }
+                        }
+                    }
+                });
+            }
+            else if (e.InsertType == InsertType.AsChild)
+            {
+                parentId = destNodeObj.ID;
+                var allChildList = _allBindingList.Where(x => x.ParentID == destNodeObj.ParentID).ToList();
+                sortCode = allChildList.Count < 1 ? 1 : allChildList.Max(x => x.SortCode) + 1;
+            }
+            else
+            {
+                e.Handled = true;
+                return;
+            }
+
+            var bll = BLLFactory<HStation.BLL.AssetsCoolingSeries>.Instance;
+            var bol = await bll.UpdateTreeSortCode(id, parentId, sortCode);
+            if (!bol)
+            {
+                e.Handled = true;
+                return;
+            }
+            if (sorters != null && sorters.Count > 0)
+            {
+                bol = await bll.UpdateSorter(sorters);
+                if (!bol)
+                {
+                    e.Handled = true;
+                    return;
+                }
+            }
+
+            _allBindingList.ForEach(x =>
+            {
+                if (x.ID == id)
+                {
+                    x.ParentID = parentId;
+                    x.SortCode = sortCode;
+                }
+                if (sorters.Count > 0)
+                {
+                    var sorter = sorters.Find(t => t.ID == x.ID);
+                    if (sorter != null)
+                    {
+                        x.SortCode = sorter.SortCode;
+                    }
+                }
+            });
+        }
+
+        //鎷栨嫿鎺掑簭
+        private void barCkDrag_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.SetDragEnable(this.barCkDrag.Checked);
+        }
+
+        //璁剧疆鎷栧姩鍙敤鎬�
+        private void SetDragEnable(bool allowDrag)
+        {
+            var be = this.behaviorManager1.GetBehavior<DevExpress.Utils.DragDrop.DragDropBehavior>(this.treeList1);
+            be.Properties.AllowDrag = allowDrag;
+        }
+
+        #endregion 鎷栨嫿
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3