From e4c662a16cbecd88e64bfeea677ef2a0c97ab771 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期四, 11 十二月 2025 23:22:47 +0800
Subject: [PATCH] 蓝宝自动调拨相关更新

---
 DevApp/Gs.DevApp/DevFrm/WOM/Frm_Wompba.cs |  255 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 255 insertions(+), 0 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/WOM/Frm_Wompba.cs b/DevApp/Gs.DevApp/DevFrm/WOM/Frm_Wompba.cs
index 360aeb4..65875ce 100644
--- a/DevApp/Gs.DevApp/DevFrm/WOM/Frm_Wompba.cs
+++ b/DevApp/Gs.DevApp/DevFrm/WOM/Frm_Wompba.cs
@@ -54,6 +54,8 @@
 
             getPageList(1);
             pageBar1.PagerEvent += PageBar1_PagerEvent;
+           
+            
             //閫夊瓨缁勭粐锛堝彉鏄庣粏涓殑鐗╂枡鍜岃溅闂达級
             txt_erpSczz.EditChanged += (s, e) =>
             {
@@ -61,6 +63,7 @@
                 if (string.IsNullOrEmpty(_orgId))
                     return;
                 txt_pba013.getSuppler(_orgId, _cjBm);
+                _getListDepot(_orgId);
             };
             // 閫夋嫨杞﹂棿锛堝彉鏄庣粏涓骇绾匡級
             txt_pba013.EditChanged += (s, e) =>
@@ -96,6 +99,10 @@
                         {
                             _oldTable.ImportRow(sourceRows[i]);
                         }
+                        // 纭繚鑷姩璋冩嫧鐩稿叧鍒楀瓨鍦紝渚夸簬涓嬫媺璧嬪��
+                        if (!_oldTable.Columns.Contains("dbDepotId")) _oldTable.Columns.Add("dbDepotId", typeof(string));
+                        if (!_oldTable.Columns.Contains("depotName")) _oldTable.Columns.Add("depotName", typeof(string));
+                        if (!_oldTable.Columns.Contains("dbDepotSections")) _oldTable.Columns.Add("dbDepotSections", typeof(string));
                         gcMx1.BindingContext = new BindingContext();
                         gcMx1.DataSource = _oldTable;
                         gvMx1.CloseEditor();
@@ -112,6 +119,28 @@
                 };
                 frm.ShowDialog();
             };
+            gvMx1.ShowingEditor += (s, e) =>
+            {
+                if (gvMx1.FocusedColumn == gvMx1DepotSections)
+                {
+                    string depotId = gvMx1.GetRowCellValue(gvMx1.FocusedRowHandle, "dbDepotId")?.ToString();
+                    _getListDepotSections(depotId);
+                }
+            };
+
+            gvMx1.CellValueChanged += (s, e) =>
+            {
+                if (e.RowHandle < 0) return;
+                if (e.Column == gvMx1DepotName)
+                {
+                    var depotId = gvMx1.GetRowCellValue(e.RowHandle, "dbDepotId")?.ToString();
+                    // 娓呯┖搴撲綅骞舵牴鎹粨搴揑D鍔犺浇搴撲綅涓嬫媺
+                    gvMx1.SetRowCellValue(e.RowHandle, "dbDepotSections", null);
+                    _getListDepotSections(depotId);
+                }
+            };
+
+            
         }
         private void GridView1_ColumnFilterChanged(object sender, EventArgs e)
         {
@@ -281,6 +310,7 @@
                 MsgHelper.ShowError("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
                 return;
             }
+            toolBarMenu1.currentAction = "edit";
             Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 3);
             if (xtraTabControl1.SelectedTabPageIndex == 1)
             {
@@ -291,6 +321,12 @@
                 List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
                 gvList.Add(gvMx1);
                 UtilityHelper.ChangeEnableByControl(this.layoutMx1.Controls, true, gvList);
+                gvMx1DepotName.OptionsColumn.ReadOnly = false;
+                gvMx1DepotName.OptionsColumn.AllowEdit = true;
+                gvMx1DepotSections.OptionsColumn.ReadOnly = false;
+                gvMx1DepotSections.OptionsColumn.AllowEdit = true;
+                if (btnBatchSetDepotSections != null)
+                    btnBatchSetDepotSections.Enabled = true;
             }
             //2025/07/12鍔犱笂淇敼鐘舵�佷笅涓嶈兘淇敼
             txt_erpSczz.IsReadly = true;
@@ -375,6 +411,29 @@
                         MsgHelper.ShowError("棰勮瀹屽伐鏃堕棿涓嶈兘涓虹┖锛�");
                         return;
                     }
+                    var _isCheckObj = row["isCheck"];
+                    bool _isAuto = false;
+                    if (_isCheckObj is bool _b) _isAuto = _b;
+                    else
+                    {
+                        var _s = _isCheckObj == null ? "" : _isCheckObj.ToString();
+                        _isAuto = _s == "1" || string.Equals(_s, "true", System.StringComparison.OrdinalIgnoreCase);
+                    }
+                    if (_isAuto)
+                    {
+                        var _depotId = row["dbDepotId"] == null ? "" : row["dbDepotId"].ToString();
+                        var _depotSections = row["dbDepotSections"] == null ? "" : row["dbDepotSections"].ToString();
+                        if (string.IsNullOrWhiteSpace(_depotId))
+                        {
+                            MsgHelper.ShowError("鑷姩璋冩嫧浠撳簱涓嶈兘涓虹┖锛�");
+                            return;
+                        }
+                        if (string.IsNullOrWhiteSpace(_depotSections))
+                        {
+                            MsgHelper.ShowError("鑷姩璋冩嫧搴撲綅涓嶈兘涓虹┖锛�");
+                            return;
+                        }
+                    }
                     _obj.list.Add(new
                     {
                         Guid = _guid,
@@ -385,6 +444,10 @@
                         Yjwgsj = row["mesEndProd"].ToString(),//棰勮瀹屽伐鏃堕棿
                         Pcsl = row["daa008"].ToString(),//鎺掍骇鏁伴噺
                         Bz = row["daa009"].ToString(),//澶囨敞
+                        IsZddb = row["isCheck"].ToString(),//鏄惁鑷姩璋冩嫧
+                        DepotId = row["dbDepotId"].ToString(),//浠撳簱ID
+                        DepotSections = row["dbDepotSections"].ToString()//浠撳簱搴撲綅
+
                     });
                 }
             }
@@ -402,6 +465,8 @@
                     gvList.Add(gvMx1);
                     UtilityHelper.ChangeEnableByControl(this.layoutMx1.Controls, false, gvList);
                     toolBarMenu1.currentAction = "";
+                    if (btnBatchSetDepotSections != null)
+                        btnBatchSetDepotSections.Enabled = false;
                     Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 6);
                 }
                 else
@@ -411,6 +476,105 @@
             {
                 ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
             }
+        }
+
+        private void btnBatchSetDepotSections_Click(object sender, EventArgs e)
+        {
+            var selected = gvMx1.GetSelectedRows();
+            if (selected == null || selected.Length == 0)
+            {
+                MsgHelper.ShowError("璇峰厛鍦ㄦ渶宸︿晶閫夋嫨闇�瑕佹壒閲忚祴鍊肩殑琛岋紒");
+                return;
+            }
+            // 棰勫姞杞戒粨搴撳垪琛�
+            string orgId = txt_erpSczz.GetId();
+            _getListDepot(orgId);
+            // 鏋勫缓寮规
+            var dlg = new DevExpress.XtraEditors.XtraForm();
+            dlg.Text = "鎵归噺璧嬪�艰嚜鍔ㄨ皟鎷ㄥ簱浣�";
+            dlg.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+            dlg.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            dlg.MaximizeBox = false;
+            dlg.MinimizeBox = false;
+            dlg.Width = 420;
+            dlg.Height = 220;
+
+            var lblDepot = new DevExpress.XtraEditors.LabelControl() { Text = "浠撳簱鍚嶇О锛�", Left = 15, Top = 20, Width = 80 };
+            var cboDepot = new DevExpress.XtraEditors.ComboBoxEdit() { Left = 100, Top = 16, Width = 280 };
+            cboDepot.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
+            foreach (var item in this.rptDepotName.Items)
+            {
+                cboDepot.Properties.Items.Add(item);
+            }
+
+            var lblSection = new DevExpress.XtraEditors.LabelControl() { Text = "搴撲綅锛�", Left = 15, Top = 60, Width = 80 };
+            var cboSection = new DevExpress.XtraEditors.ComboBoxEdit() { Left = 100, Top = 56, Width = 280 };
+            cboSection.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
+
+            var chkAuto = new DevExpress.XtraEditors.CheckEdit() { Left = 15, Top = 96, Width = 200, Text = "鍚屾椂鍕鹃�夎嚜鍔ㄨ皟鎷ㄦ爣璇�", Checked = true };
+
+            var btnOk = new DevExpress.XtraEditors.SimpleButton() { Left = 200, Top = 130, Width = 80, Text = "纭畾" };
+            var btnCancel = new DevExpress.XtraEditors.SimpleButton() { Left = 300, Top = 130, Width = 80, Text = "鍙栨秷" };
+
+            cboDepot.SelectedIndexChanged += (s, ev) =>
+            {
+                var itm = cboDepot.EditValue as CboItemEntity;
+                var depotId = itm == null ? null : itm.Value?.ToString();
+                _getListDepotSections(depotId);
+                cboSection.Properties.Items.Clear();
+                foreach (var sec in this.rptDepotSections.Items)
+                {
+                    cboSection.Properties.Items.Add(sec);
+                }
+                cboSection.EditValue = null;
+            };
+
+            btnCancel.Click += (s, ev) => { dlg.DialogResult = System.Windows.Forms.DialogResult.Cancel; dlg.Close(); };
+            btnOk.Click += (s, ev) =>
+            {
+                var depotItem = cboDepot.EditValue as CboItemEntity;
+                var sectionItem = cboSection.EditValue as CboItemEntity;
+                if (depotItem == null)
+                {
+                    MsgHelper.ShowError("璇烽�夋嫨浠撳簱鍚嶇О锛�");
+                    return;
+                }
+                if (sectionItem == null)
+                {
+                    MsgHelper.ShowError("璇烽�夋嫨搴撲綅锛�");
+                    return;
+                }
+                var depotId = depotItem.Value?.ToString();
+                var depotName = depotItem.Text?.ToString();
+                var sectionCode = sectionItem.Text?.ToString();
+
+                gvMx1.BeginUpdate();
+                foreach (var handle in selected)
+                {
+                    if (handle < 0) continue;
+                    gvMx1.SetRowCellValue(handle, "dbDepotId", depotId);
+                    gvMx1.SetRowCellValue(handle, "depotName", depotName);
+                    gvMx1.SetRowCellValue(handle, "dbDepotSections", sectionCode);
+                    gvMx1.SetRowCellValue(handle, "isCheck", true);
+                }
+                gvMx1.EndUpdate();
+                gvMx1.CloseEditor();
+                gvMx1.PostEditor();
+                gvMx1.UpdateCurrentRow();
+
+                dlg.DialogResult = System.Windows.Forms.DialogResult.OK;
+                dlg.Close();
+            };
+
+            dlg.Controls.Add(lblDepot);
+            dlg.Controls.Add(cboDepot);
+            dlg.Controls.Add(lblSection);
+            dlg.Controls.Add(cboSection);
+            dlg.Controls.Add(chkAuto);
+            dlg.Controls.Add(btnOk);
+            dlg.Controls.Add(btnCancel);
+
+            dlg.ShowDialog(this);
         }
 
         /// <summary>
@@ -497,11 +661,16 @@
                     DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
                     if (dt.Rows.Count > 0)
                     {
+                        if (!dt.Columns.Contains("DbDepotId")) dt.Columns.Add("DbDepotId", typeof(string));
+                        if (!dt.Columns.Contains("DepotName")) dt.Columns.Add("DepotName", typeof(string));
+                        if (!dt.Columns.Contains("DbDepotSections")) dt.Columns.Add("DbDepotSections", typeof(string));
                         gcMx1.BindingContext = new BindingContext();
                         gcMx1.DataSource = dt;
                         gcMx1.ForceInitialize();
                         gvMx1.BestFitColumns();
                         Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx1);
+                        if (btnBatchSetDepotSections != null)
+                            btnBatchSetDepotSections.Enabled = isEdit;
                     }
                     else
                     {
@@ -603,6 +772,92 @@
             }
         }
 
+        private void rptDepotName_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            ComboBoxEdit comboBox = sender as ComboBoxEdit;
+            if (comboBox != null)
+            {
+                GridView myView = (gcMx1.MainView as GridView);
+                int dataIndex = myView.GetDataSourceRowIndex(myView.FocusedRowHandle);
+                CboItemEntity _itm = comboBox.EditValue as CboItemEntity;
+                if (_itm == null) return;
+                string depotId = _itm.Value.ToString();
+                string depotName = _itm.Text.ToString();
+                gvMx1.CloseEditor();
+                gvMx1.PostEditor();
+                gvMx1.UpdateCurrentRow();
+                gvMx1.SetRowCellValue(dataIndex, "dbDepotId", depotId);
+                gvMx1.SetRowCellValue(dataIndex, "depotName", depotName);
+                // 娓呯┖搴撲綅骞舵牴鎹粨搴揑D鍔犺浇搴撲綅鍒楄〃
+                gvMx1.SetRowCellValue(dataIndex, "dbDepotSections", null);
+                _getListDepotSections(depotId);
+            }
+        }
+
+        private void rptDepotSections_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            ComboBoxEdit comboBox = sender as ComboBoxEdit;
+            if (comboBox != null)
+            {
+                GridView myView = (gcMx1.MainView as GridView);
+                int dataIndex = myView.GetDataSourceRowIndex(myView.FocusedRowHandle);
+                CboItemEntity _itm = comboBox.EditValue as CboItemEntity;
+                if (_itm == null) return;
+                string sectionCode = _itm.Text.ToString();
+                gvMx1.CloseEditor();
+                gvMx1.PostEditor();
+                gvMx1.UpdateCurrentRow();
+                gvMx1.SetRowCellValue(dataIndex, "dbDepotSections", sectionCode);
+            }
+        }
+
+        private void _getListDepot(string orgId)
+        {
+            try
+            {
+                var pgq = new PageQueryModel(1, 999999, "org.FNumber asc ,a.depot_code", "asc", "", " and is_ng='A'" + (string.IsNullOrEmpty(orgId) ? "" : (" and a.FSubsidiary='" + orgId + "'")));
+                var json = JsonConvert.SerializeObject(pgq);
+                var strReturn = UtilityHelper.HttpPost("", "MesDepotsManager/GetListPage", json);
+                var rtn = UtilityHelper.ReturnToTablePage(strReturn);
+                var dt = rtn.rtnData.list;
+                this.rptDepotName.Items.Clear();
+                foreach (System.Data.DataRow dr in dt.Rows)
+                {
+                    this.rptDepotName.Items.Add(new CboItemEntity(dr["depotId"].ToString(), dr["depotName"].ToString()));
+                }
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
+
+        private void _getListDepotSections(string depotId)
+        {
+            try
+            {
+                if (string.IsNullOrEmpty(depotId))
+                {
+                    this.rptDepotSections.Items.Clear();
+                    return;
+                }
+                var pgq = new PageQueryModel(1, 999999, "b.xh", "asc", "", " and is_ng='A' and a.depot_id='" + depotId + "'" );
+                var json = JsonConvert.SerializeObject(pgq);
+                var strReturn = UtilityHelper.HttpPost("", "MesDepotSectionsManager/GetListPage", json);
+                var rtn = UtilityHelper.ReturnToTablePage(strReturn);
+                var dt = rtn.rtnData.list;
+                this.rptDepotSections.Items.Clear();
+                foreach (System.Data.DataRow dr in dt.Rows)
+                {
+                    this.rptDepotSections.Items.Add(new CboItemEntity(dr["depotSectionCode"].ToString(), dr["depotSectionCode"].ToString()));
+                }
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
+
         /// <summary>
         ///  鏂板鏂规硶锛氬垪琛ㄦ樉绀�
         /// </summary>

--
Gitblit v1.9.3