From 26f0f84329828e976551e3ac9904eae01f98bea2 Mon Sep 17 00:00:00 2001
From: wbc <2597324127@qq.com>
Date: 星期一, 28 七月 2025 12:55:10 +0800
Subject: [PATCH] 工序排产

---
 DevApp/Gs.DevApp/DevFrm/WOM/Frm_WompbaGx.cs |  136 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 110 insertions(+), 26 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/WOM/Frm_WompbaGx.cs b/DevApp/Gs.DevApp/DevFrm/WOM/Frm_WompbaGx.cs
index b76ee61..b609ac1 100644
--- a/DevApp/Gs.DevApp/DevFrm/WOM/Frm_WompbaGx.cs
+++ b/DevApp/Gs.DevApp/DevFrm/WOM/Frm_WompbaGx.cs
@@ -8,6 +8,8 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.Data.SqlTypes;
+using System.Linq;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -46,6 +48,9 @@
             }, lbGuid);
             getPageList(1);
             pageBar1.PagerEvent += PageBar1_PagerEvent;
+            // 娣诲姞CustomRowCellEdit浜嬩欢澶勭悊锛屼负姣忚鎻愪緵鐙珛鐨勪笅鎷夋暟鎹�
+            // gvMx1.CustomRowCellEdit += GvMx1_CustomRowCellEdit;
+             gvMx1.ShownEditor += GvMx1_ShownEditor;
             //閫夊瓨缁勭粐锛堝彉鏄庣粏涓殑鐗╂枡鍜岃溅闂达級
             txt_erpSczz.EditChanged += (s, e) =>
             {
@@ -79,18 +84,27 @@
                         lst = ee.StringList;
                         var _obj = lst;
                         var strReturn = UtilityHelper.HttpPost("",
-                            "WompbaManager/SelectPbaToView",
+                            "WompbaGxManager/SelectPbaToView",
                             JsonConvert.SerializeObject(_obj));
                         var dt = UtilityHelper.ReturnToList(strReturn);
                         DataTable _newTable = dt.rtnData;
 
                    DataTable _oldTable = (DataTable)gcMx1.DataSource;
+
+                        // 娣诲姞鏂板垪瀛樺偍宸ュ簭鍒楄〃锛堝鏋滀笉瀛樺湪锛�
+                        if (!_oldTable.Columns.Contains("GxList"))
+                        {
+                            _oldTable.Columns.Add("GxList", typeof(List<CboItemEntity>));
+                        }
+
                         DataRow[] sourceRows = _newTable.Select();
                         for (int i = 0; i < sourceRows.Length; i++)
                         {
                             _oldTable.ImportRow(sourceRows[i]);
-                            //鏍规嵁缂栫爜鑾峰彇瀵瑰簲缁存姢宸ュ簭
-                            _getListSCGX(sourceRows[i]["itemId"].ToString());
+                            // 涓烘瘡琛岃幏鍙栧苟瀛樺偍瀵瑰簲鐨勫伐搴忓垪琛�
+                            var gxList = _getListSCGXForRow(sourceRows[i]["itemId"].ToString());
+                            int newRowIndex = _oldTable.Rows.Count - 1;
+                            _oldTable.Rows[newRowIndex]["GxList"] = gxList;
                         }
                         gcMx1.BindingContext = new BindingContext();
                         gcMx1.DataSource = _oldTable;
@@ -397,7 +411,8 @@
                         Bz = row["daa009"].ToString(),//澶囨敞
                         Blsj = row["prepareTime"].ToString(),//棰勮澶囨枡鏃堕棿
                         Pcsl = row["daa008"].ToString(),//鎺掍骇鏁伴噺
-                        Yjwgsj = row["mesEndProd"].ToString()//棰勮瀹屽伐鏃堕棿
+                        Yjwgsj = row["mesEndProd"].ToString(),//棰勮瀹屽伐鏃堕棿
+                        GxId  = row["daa030"].ToString()//宸ュ簭ID
                     });
                 }
             }
@@ -575,6 +590,7 @@
             var _sbSqlWhere = " and 1=1 and dpt_id=" + workGuid;
             var pgq = new PageQueryModel(1, 999999, "a.line_no", "asc", "", _sbSqlWhere.ToString());
             var json = JsonConvert.SerializeObject(pgq);
+            
             try
             {
                 var strReturn = UtilityHelper.HttpPost("", "MesWorkshopLineManager/GetListPage", json);
@@ -610,50 +626,118 @@
 
 
         /// <summary>
-        /// 褰撳墠浜у搧甯﹀嚭鐢熶骇宸ュ簭
+        /// 涓烘寚瀹氳鑾峰彇鐢熶骇宸ュ簭鍒楄〃
         /// </summary>
         /// <param name="itemID"></param>
-        private void _getListSCGX(string itemID)
+        /// <returns></returns>
+        private List<CboItemEntity> _getListSCGXForRow(string itemID)
         {
-            repSCGX.Items.Clear();
+            var gxList = new List<CboItemEntity>();
             if (string.IsNullOrEmpty(itemID))
-                return;
-            var _sbSqlWhere = " and 1=1 and t.id=" + itemID;
-            var pgq = new PageQueryModel(1, 999999, "a.line_no", "asc", "", _sbSqlWhere.ToString());
-            var json = JsonConvert.SerializeObject(pgq);
+                return gxList;
+                
+            var _sbSqlWhere = " and 1=1 and a.item_id =" + itemID;
+            var pgq = new PageQueryModel(1, 999999, "a.GUID", "asc", "", _sbSqlWhere.ToString());
+            var requestData = new
+            {
+                Paging = pgq,       // 鍒嗛〉鍙傛暟
+                ItemInfo = new { itemid = itemID }  // 棰濆鍙傛暟
+            };
+            var json = JsonConvert.SerializeObject(requestData);
+
             try
             {
-                var strReturn = UtilityHelper.HttpPost("", "MesWorkshopLineManager/GetListPage", json);
+                var strReturn = UtilityHelper.HttpPost("", _webServiceName + "SelectPbaGx", json);
                 var dd = UtilityHelper.ReturnToTablePage(strReturn);
                 DataTable dt = dd.rtnData.list;
                 foreach (DataRow dr in dt.Rows)
                 {
-                    repSCGX.Items.Add((new CboItemEntity(dr["id"].ToString(), dr["name"].ToString())));
+                    gxList.Add(new CboItemEntity(dr["gxId"].ToString(), dr["gxName"].ToString()));
                 }
             }
             catch (Exception ex)
             {
                 MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
+            return gxList;
         }
-        private void repSCGX_SelectedIndexChanged(object sender, EventArgs e)
+
+      
+
+        /// <summary>
+        /// 褰撶紪杈戝櫒鏄剧ず鏃跺姩鎬佽缃笅鎷夋暟鎹�
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void GvMx1_ShownEditor(object sender, EventArgs e)
         {
-            ComboBoxEdit comboBox = sender as ComboBoxEdit;
-            if (comboBox != null)
+            GridView view = sender as GridView;
+
+            // 妫�鏌ユ槸鍚︿负缂栬緫鐘舵��
+            if (toolBarMenu1.currentAction != "edit" && toolBarMenu1.currentAction != "add")
+                return;
+
+            if (view.FocusedColumn.FieldName == "daa030ProcName")
             {
-                GridView myView = (gcMx1.MainView as GridView);
-                int dataIndex = myView.GetDataSourceRowIndex(myView.FocusedRowHandle);
-                CboItemEntity _itm = comboBox.EditValue as CboItemEntity;
-                string _val = _itm.Value.ToString();
-                string _txt = _itm.Text.ToString();
-                gvMx1.CloseEditor();
-                gvMx1.PostEditor();
-                gvMx1.UpdateCurrentRow();
-                gvMx1.SetRowCellValue(dataIndex, "daa030ProcName", _txt);
-                gvMx1.SetRowCellValue(dataIndex, "daa030", _val);
+                var dataRow = view.GetDataRow(view.FocusedRowHandle);
+                if (dataRow != null && dataRow["GxList"] != null)
+                {
+                    var gxList = dataRow["GxList"] as List<CboItemEntity>;
+                    if (gxList != null)
+                    {
+                        var comboEdit = view.ActiveEditor as ComboBoxEdit;
+                        if (comboEdit != null)
+                        {
+                            // 娓呯┖Items
+                            comboEdit.Properties.Items.Clear();
+
+                            // 鍙坊鍔燭ext瀛楃涓诧紝涓嶆坊鍔犳暣涓璞�
+                            foreach (var item in gxList)
+                            {
+                                comboEdit.Properties.Items.Add(item.Text);
+                            }
+
+                            // 瀛樺偍鏄犲皠鍏崇郴鍒癟ag涓�
+                            comboEdit.Tag = gxList;
+
+                            // 缁戝畾閫夋嫨浜嬩欢
+                            comboEdit.SelectedIndexChanged -= ComboEdit_SelectedIndexChanged;
+                            comboEdit.SelectedIndexChanged += ComboEdit_SelectedIndexChanged;
+                        }
+                    }
+                }
             }
         }
 
+        /// <summary>
+        /// 澶勭悊涓嬫媺閫夋嫨浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ComboEdit_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            var comboBox = sender as ComboBoxEdit;
+            if (comboBox != null && comboBox.Tag is List<CboItemEntity> gxList)
+            {
+                var selectedText = comboBox.Text;
+                var selectedItem = gxList.FirstOrDefault(x => x.Text == selectedText);
+
+                if (selectedItem != null)
+                {
+                    var myView = (gcMx1.MainView as GridView);
+                    int dataIndex = myView.GetDataSourceRowIndex(myView.FocusedRowHandle);
+
+                    myView.CloseEditor();
+                    myView.PostEditor();
+                    myView.UpdateCurrentRow();
+                    myView.SetRowCellValue(dataIndex, "daa030ProcName", selectedItem.Text);
+                    myView.SetRowCellValue(dataIndex, "daa030", selectedItem.Value);
+                }
+            }
+        }
+
+
+
 
         /// <summary>
         /// 宸ュ叿鏉′簨浠�

--
Gitblit v1.9.3