From c963d77cdc1c95b276299b407cf4a7263600ceaf Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期二, 11 十一月 2025 15:08:41 +0800
Subject: [PATCH] 1、采购入库新增克重

---
 DevApp/Gs.DevApp/DevFrm/QC/MesQcExceptional.cs |  427 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 397 insertions(+), 30 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/QC/MesQcExceptional.cs b/DevApp/Gs.DevApp/DevFrm/QC/MesQcExceptional.cs
index d2c2e0f..603a583 100644
--- a/DevApp/Gs.DevApp/DevFrm/QC/MesQcExceptional.cs
+++ b/DevApp/Gs.DevApp/DevFrm/QC/MesQcExceptional.cs
@@ -6,30 +6,38 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.Diagnostics;
 using System.Threading.Tasks;
 using System.Windows.Forms;
-
+ 
+ 
 namespace Gs.DevApp.DevFrm.QC
 {
     public partial class MesQcExceptional : DevExpress.XtraEditors.XtraForm
     {
         string _webServiceName = "MesQcExceptionalManager/";
         List<FilterEntity> _filterList = new List<FilterEntity>();
-
+ 
         public void Initialize(string param)
         {
             // 浣跨敤param杩涜鍒濆鍖栧伐浣�
             Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 0);
             getModel(param);
         }
-
+ 
         public MesQcExceptional()
         {
             InitializeComponent();
             this.toolBarMenu1.btnLoadClick += ToolBarMenu1_btnLoadClick;
             this.toolBarMenu1.btnQueryClick += ToolBarMenu1_btnQueryClick;
-            toolBarMenu1.btnChkClick += ToolBarMenu1_btnChkClick;
+         
             toolBarMenu1.btnLogClick += ToolBarMenu1_btnLogClick;
+            this.toolBarMenu1.btnEdtClick += ToolBarMenu1_btnEdtClick;
+            this.toolBarMenu1.btnSaveClick += ToolBarMenu1_btnSaveClick;
+            toolBarMenu1.btnFChkClick += ToolBarMenu1_btnFChkClick;
+            toolBarMenu1.btnChkClick += ToolBarMenu1_btnChkClick;
+            this.toolBarMenu1.btnEscClick += ToolBarMenu1_btnEscClick;
+ 
             this.toolBarMenu1.getXmlConfig();
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameterMx(gvMx1);
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, picCheckBox, this, "chkStatus", "", (value) =>
@@ -45,6 +53,10 @@
             }, lbGuid);
             getPageList(1);
             pageBar1.PagerEvent += PageBar1_PagerEvent;
+ 
+            
+ 
+ 
         }
        
         private void GridView1_ColumnFilterChanged(object sender, EventArgs e)
@@ -89,7 +101,7 @@
             frm.UpdateParent += Frm_UpdateParent;
             frm.ShowDialog();
         }
-
+ 
         /// <summary>
         /// 鏌ヨ鍥炶皟
         /// </summary>
@@ -100,7 +112,7 @@
             _filterList = e.FilterList;
             getPageList(1);
         }
-
+ 
         /// <summary>
         /// 鍒锋柊浜嬩欢
         /// </summary>
@@ -124,7 +136,7 @@
             }
         }
         /// <summary>
-        ///     瀹℃牳浜嬩欢
+        /// 瀹℃牳浜嬩欢
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
@@ -132,7 +144,169 @@
         {
             _toolCk(1);
         }
+        /// <summary>
+        ///     鍙嶅鏍�
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        /// <exception cref="NotImplementedException"></exception>
+        private void ToolBarMenu1_btnFChkClick(object sender, EventArgs e)
+        {
+            _toolCk(0);
+        }
+        /// <summary>
+        /// 鍙栨秷浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void ToolBarMenu1_btnEscClick(object sender, EventArgs e)
+        {
+            Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 1);
+        }
+        /// <summary>
+        /// 淇敼浜嬩欢
+        /// </summary>
+        /// <param name="sender">浜嬩欢鍙戦�佽��</param>
+        /// <param name="e">浜嬩欢鍙傛暟</param>
+        private void ToolBarMenu1_btnEdtClick(object sender, EventArgs e)
+        {
+            // 璁剧疆褰撳墠鎿嶄綔妯″紡涓虹紪杈戠姸鎬�
+             toolBarMenu1.currentAction = "edit";
+            // 瀹氫箟鍙橀噺瀛樺偍閫変腑琛岀殑鍞竴鏍囪瘑鍜屽悕绉�
+            string rowGuid = "", rowName = "";
+            // 浠庡綋鍓嶆椿鍔ㄨ〃鏍间腑鑾峰彇閫変腑琛岀殑鍏抽敭淇℃伅
+            // 鍙傛暟璇存槑锛�
+            // - xtraTabControl1锛氭爣绛鹃〉鎺т欢锛岀敤浜庣‘瀹氬綋鍓嶆椿鍔ㄩ〉
+            // - lbGuid锛氭樉绀篏UID鐨勬爣绛炬帶浠�
+            // - txt_releaseNo锛氭樉绀哄彂甯冪紪鍙风殑鏂囨湰妗�
+            // - gridView1锛氫富琛ㄦ牸瑙嗗浘
+            // - "releaseNo"锛氳鑾峰彇鐨勫垪鍚�
+            (rowGuid, rowName) = UtilityHelper.GetCurrentRow(xtraTabControl1, lbGuid, txt_fBillNo, gridView1, "fBillNo");
+            // 楠岃瘉鏄惁閫変腑鏈夋晥琛�
+            if (string.IsNullOrEmpty(rowGuid))
+            {
+                // 鏈�変腑鏃舵彁绀虹敤鎴峰苟缁堟鎿嶄綔
+                ToolBox.MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
+                return;
+            }
+            // 瀵艰埅鍒扮紪杈戦〉闈�(绗�4涓爣绛鹃〉锛岀储寮曚粠0寮�濮�)
+            Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 3);
+            // 鏍规嵁褰撳墠娲诲姩鏍囩椤垫墽琛屼笉鍚岀殑鍒濆鍖栭�昏緫
+            if (xtraTabControl1.SelectedTabPageIndex == 1)
+            {
+                // 濡傛灉鏄壒瀹氭爣绛鹃〉(绗�2椤�)锛屽姞杞藉畬鏁存暟鎹ā鍨�
+                // 鍙傛暟璇存槑锛�
+                // - rowGuid锛氶�変腑琛岀殑鍞竴鏍囪瘑
+                getModel(rowGuid);
+            }
+            else
+            {
+                // 鍏朵粬鏍囩椤电殑缂栬緫妯″紡鍒濆鍖�
+                // 鍒涘缓闇�瑕佺壒娈婂鐞嗙殑琛ㄦ牸瑙嗗浘鍒楄〃
+                List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
+                gvList.Add(gvMx1); // 娣诲姞鏄庣粏琛ㄨ鍥�1
+ 
+                // 鍚敤缂栬緫妯″紡涓嬬殑鎵�鏈夋帶浠�
+                // 鍙傛暟璇存槑锛�
+                // - this.layoutMx1.Controls锛氳鍚敤鐨勬帶浠跺鍣�
+                // - true锛氬惎鐢ㄦ爣蹇�
+                // - gvList锛氶渶瑕佺壒娈婂鐞嗙殑琛ㄦ牸瑙嗗浘鍒楄〃
+                UtilityHelper.ChangeEnableByControl(this.layoutMx1.Controls, true, gvList);
+               
+            
+            }
+        }
+ 
+        /// <summary>
+        /// 淇濆瓨 -鎸夐挳鐐瑰嚮浜嬩欢 澶勭悊寮傚父鍗曟槑缁嗙殑淇濆瓨閫昏緫
+        /// </summary>
+        /// <param name="sender">浜嬩欢鍙戦�佽��</param>
+        /// <param name="e">浜嬩欢鍙傛暟</param>
+        private void ToolBarMenu1_btnSaveClick(object sender, EventArgs e)
+        {
+            // 1. 鍒濆鍖栦繚瀛樼姸鎬�
+            toolBarMenu1.isSetBtn = false; // 绂佺敤宸ュ叿鏍忔寜閽姸鎬佽缃�
+            // 2. 鏋勫缓璇锋眰瀵硅薄
+            var _obj = new
+            {
+                guid = UtilityHelper.ToGuid(lbGuid.Text.Trim()), //涓昏〃涓诲缓
+                list = new List<dynamic>(),  // 鏄庣粏鏁版嵁鍒楄〃
+            };
+            // 3. 鏁版嵁楠岃瘉涓庡噯澶�
+            gvMx1.CloseEditor();    // 鍏抽棴娲诲姩缂栬緫鍣�
+            gvMx1.PostEditor();     // 鎻愪氦缂栬緫鐨勫��
+            gvMx1.UpdateCurrentRow(); // 鏇存柊褰撳墠琛屾暟鎹�
+            // 楠岃瘉鏄庣粏鏄惁涓虹┖
+            if (gvMx1.DataRowCount <= 0)
+            {
+                MsgHelper.ShowError("鏄庣粏涓嶈兘涓虹┖锛岃閫夋嫨浣犵殑寮傚父鍗曟槑缁嗭紒");
+                return;
+            }
+            // 4. 鏀堕泦鏄庣粏鏁版嵁
+            for (var i = 0; i < gvMx1.DataRowCount; i++)
+            {
+ 
+                var row = gvMx1.GetDataRow(i);
+                if (row != null)
+                {
+                    // 鑾峰彇褰撳墠鏄庣粏琛岀殑GUID
+                    Guid? _guid = UtilityHelper.ToGuid(row["guid"].ToString());
+                    // 娣诲姞鏄庣粏椤瑰埌璇锋眰瀵硅薄
+                    // 璇存槑锛�
+                    // 鈶� 鏃ч�昏緫浣跨敤 row["process"].ToString()锛屽悗鍙板彧瑕佹妸鍒楀悕鏀规垚 processName/gs003 鎴栧瓨鍦ㄥぇ灏忓啓宸紓锛屽氨浼氭姏鍑� 鈥淐olumn 'process' does not belong to table鈥� 寮傚父锛�
+                    // 鈶� GetRowString 浼氬湪 DataTable 涓寜涓嶅尯鍒嗗ぇ灏忓啓鐨勬柟寮忛�愪釜鍖归厤鍊欓�夊垪鍚嶏紝骞舵妸 DBNull/null 缁熶竴杞崲涓虹┖瀛楃涓诧紝鍏煎涓嶅悓鎺ュ彛涓庡巻鍙叉暟鎹紱
+                    // 鈶� 瀛楁鍒楄〃鎻愪緵澶氫釜鍊欓�夊�硷紙process/processName/processDesc/processWay/gs003锛夛紝纭繚鍚庣瀛楁鍛藉悕璋冩暣鏃朵粛鑳芥垚鍔熶繚瀛樸��
+                    _obj.list.Add(new
+                    {
+                        Guid = _guid,
+                        BatchQty = GetRowString(row, "batchQty"),       // 鎵规鏁伴噺
+                        //GfRkqty = GetRowString(row, "gfRkqty"),         // 鍚堟牸鍏ュ簱鏁�
+                        //LfRkqtyz = GetRowString(row, "lfRkqty"),        // 涓存斁鍏ュ簱鏁�
+                        HandResult = GetRowString(row, "handResult"),        // 閫夊埆鎰忚
+                        ChooseType = GetRowString(row, "chooseType"),        // 寮傚父绫诲埆
+                        Process = GetRowString(row, "process"),        // 閫�鏂欐柟寮�
 
+                    });
+                }
+            }
+            // 5. 鍙戦�佷繚瀛樿姹�
+            try
+            {
+                // 搴忓垪鍖栧璞″苟璋冪敤WebService
+                string strJson = UtilityHelper.HttpPost("", _webServiceName + "EditModel", JsonConvert.SerializeObject(_obj));
+                // 瑙f瀽杩斿洖缁撴灉
+                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+                // 6. 澶勭悊淇濆瓨鎴愬姛閫昏緫
+                if (_rtn.rtnCode > 0)
+                {
+                    // 鏇存柊涓昏〃GUID
+                    lbGuid.Text = _rtn.rtnData.outGuid;
+                    // 鎭㈠宸ュ叿鏍忕姸鎬�
+                    toolBarMenu1.isSetBtn = true;
+                    // 绂佺敤缂栬緫鎺т欢
+                    List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
+                    gvList.Add(gvMx1);
+                    UtilityHelper.ChangeEnableByControl(this.layoutMx1.Controls, false, gvList);
+                    // 閲嶇疆鎿嶄綔鐘舵��
+                    toolBarMenu1.currentAction = "";
+                    // 銆愭柊澧炲埛鏂伴�昏緫銆戜繚瀛樻垚鍔熷悗绔嬪嵆鍒锋柊褰撳墠妯″瀷鏁版嵁鍜屽垪琛�
+                    // 鍒锋柊褰撳墠鍗曟嵁璇︽儏
+                    getModel(lbGuid.Text.Trim());
+                    // 鍒锋柊鍒楄〃椤垫暟鎹�
+                    getPageList(this.pageBar1.CurrentPage); 
+ 
+                    // 璺宠浆鍒版煡鐪嬬粨鏋滈〉闈�
+                    Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 6);
+                }
+            }
+            catch (Exception ex)
+            {
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
+ 
+ 
         /// <summary>
         /// 
         /// </summary>
@@ -140,11 +314,7 @@
         /// <param name="pageSize">姣忛〉鍑犳潯</param>
         private void getPageList(int curPage)
         {
-            gcMain1.DataSource = null;
-            System.Text.StringBuilder _sbSqlWhere = new System.Text.StringBuilder();
-            _sbSqlWhere.Append(" and arn.ReceiveOrgId in");
-            _sbSqlWhere.Append(ToolBox.UtilityHelper.GetOrgWhere());
-            _sbSqlWhere.Append(UtilityHelper.GetSearchWhere(_filterList));
+            gcMain1.DataSource = null; var _sbSqlWhere = UtilityHelper.GetSearchWhere(_filterList);
             PageQueryModel pgq = new PageQueryModel(curPage, this.pageBar1.RowsCount, "create_date", "asc", "", _sbSqlWhere.ToString());
             string json = JsonConvert.SerializeObject(pgq);
             try
@@ -177,78 +347,275 @@
             }
             catch (Exception ex)
             {
-                ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
         }
+      
+        
         /// <summary>
-        /// 璇诲彇瀹炰綋
+        /// 璇诲彇瀹炰綋鏁版嵁锛堟牴鎹敮涓�鏍囪瘑GUID鍔犺浇璇︽儏锛屽苟灏嗘暟鎹粦瀹氬埌鐣岄潰鎺т欢锛�
+        /// 鍔熻兘锛氫粠鏈嶅姟绔幏鍙栨寚瀹氳川閲忔帶鍒跺紓甯歌褰曠殑璇︾粏淇℃伅锛屽寘鎷富鏁版嵁鍜屾槑缁嗘暟鎹紝
+        ///       骞舵牴鎹搷浣滅姸鎬侊紙鏌ョ湅/缂栬緫锛夎缃晫闈㈡帶浠剁殑鍙紪杈戞��
         /// </summary>
-        /// <param name="strGuid"></param>
+        /// <param name="strGuid">瀹炰綋鐨勫敮涓�鏍囪瘑锛圙UID鏍煎紡鐨勪富閿紝鐢ㄤ簬瀹氫綅鍏蜂綋璁板綍锛�</param>
         private void getModel(string strGuid)
         {
+            // 瀹氫箟鍙橀噺鏍囪褰撳墠鏄惁涓虹紪杈戠姸鎬侊紙榛樿闈炵紪杈戠姸鎬侊級
             bool isEdit = false;
+ 
+            // 鑻ュ綋鍓嶅伐鍏锋爮鎿嶄綔鏄�"鏂板"锛坅dd锛夛紝鏃犻渶鍔犺浇宸叉湁鏁版嵁锛岀洿鎺ヨ繑鍥�
+            // 鍘熷洜锛氭柊澧炵姸鎬佷笅搴旀樉绀虹┖鐧借〃鍗曪紝鑰岄潪鍔犺浇鍘嗗彶鏁版嵁
             if (toolBarMenu1.currentAction == "add") return;
+ 
+            // 鑻ュ綋鍓嶅伐鍏锋爮鎿嶄綔鏄�"缂栬緫"锛坋dit锛夛紝灏嗙紪杈戠姸鎬佹爣璁颁负true
+            // 鍚庣画鐣岄潰鎺т欢鐨勫彲缂栬緫鎬у皢鍩轰簬姝ゅ彉閲忓垽鏂�
             if (toolBarMenu1.currentAction == "edit") isEdit = true;
+ 
+            // 鏍¢獙鍙傛暟锛氳嫢鏈紶鍏ユ湁鏁堢殑GUID锛堢敤鎴锋湭閫夋嫨浠讳綍琛岋級锛屾彁绀虹敤鎴峰苟缁堟鎵ц
             if (string.IsNullOrEmpty(strGuid))
             {
-                MsgHelper.ShowError("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
+                // 寮瑰嚭璀﹀憡鎻愮ず妗嗭紝寮曞鐢ㄦ埛鍏堥�夋嫨鎿嶄綔琛�
+                MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
                 return;
             }
+ 
+            // 鏋勫缓璇锋眰鍙傛暟瀵硅薄锛氫互鍖垮悕绫诲舰寮忓皝瑁呰鏌ヨ鐨勫疄浣撲富閿紙GUID锛�
+            // 璇ュ弬鏁板皢鐢ㄤ簬鍚戞湇鍔$璇锋眰瀵瑰簲鐨勫疄浣撴暟鎹�
             var _obj = new
             {
-                guid = strGuid,//涓诲缓
+                guid = strGuid,// 涓婚敭瀛楁锛屾湇鍔$閫氳繃姝ゅ�煎畾浣嶅叿浣撹褰�
             };
+ 
             try
             {
+                // 璋冪敤HTTP宸ュ叿绫诲彂閫丳OST璇锋眰锛岃幏鍙栨湇鍔$杩斿洖鐨凧SON鏁版嵁
+                // 鍙傛暟璇存槑锛�
+                //   绗竴涓弬鏁帮細绌哄瓧绗︿覆锛堝熀纭�URL鍙兘鍦║tilityHelper鍐呴儴棰勮锛�
+                //   绗簩涓弬鏁帮細鎺ュ彛璺緞锛堢粨鍚坃webServiceName鍓嶇紑锛屽畬鏁磋矾寰勪负"MesQcExceptionalManager/GetModel"锛�
+                //   绗笁涓弬鏁帮細灏嗘煡璇㈠弬鏁板簭鍒楀寲涓篔SON瀛楃涓�
                 string strJson = UtilityHelper.HttpPost("", _webServiceName + "GetModel", JsonConvert.SerializeObject(_obj));
+ 
+                // 灏嗘湇鍔$杩斿洖鐨凧SON瀛楃涓茶浆鎹负閫氱敤杩斿洖妯″瀷锛圧eturnModel锛�
+                // ReturnModel鍖呭惈鐘舵�佺爜锛坮tnCode锛夈�佹秷鎭紙rtnMsg锛夈�佹暟鎹紙rtnData锛変笁涓牳蹇冨瓧娈�
                 ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
+ 
+                // 妫�鏌ユ湇鍔$杩斿洖鐘舵�侊細rtnCode > 0 琛ㄧず璇锋眰鎴愬姛锛堜笟鍔″眰闈㈢殑鎴愬姛锛�
                 if (_rtn.rtnCode > 0)
                 {
+                    // 鎻愬彇杩斿洖鏁版嵁涓殑瀹炰綋璇︽儏锛坉ynamic绫诲瀷鍙姩鎬佽闂瓧娈碉紝鏃犻渶棰勫厛瀹氫箟瀹炰綋绫伙級
                     dynamic dy = _rtn.rtnData;
+ 
+                    // 鍦ㄧ晫闈㈢殑lbGuid鏍囩涓婃樉绀哄綋鍓嶅疄浣撶殑GUID锛堢敤浜庢爣璇嗗綋鍓嶆搷浣滅殑璁板綍锛�
                     lbGuid.Text = strGuid;
+ 
+                    // 鍒涘缓缃戞牸瑙嗗浘鍒楄〃锛屽寘鍚渶瑕佸鐞嗙殑鏄庣粏缃戞牸瑙嗗浘gvMx1
+                    // 鍚庣画灏嗛�氳繃宸ュ叿鏂规硶缁熶竴璁剧疆杩欎簺缃戞牸鐨勫睘鎬э紙濡傚彲缂栬緫鎬э級
                     List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
                     gvList.Add(gvMx1);
+ 
+                    // 璋冪敤宸ュ叿鏂规硶鎵归噺璁剧疆鐣岄潰鎺т欢鐨勫�煎拰鍙紪杈戠姸鎬�
+                    // 鍙傛暟璇存槑锛�
+                    //   this.layoutMx1.Controls锛氬竷灞�瀹瑰櫒涓殑鎵�鏈夋帶浠讹紙鏂囨湰妗嗐�佷笅鎷夋绛夛級
+                    //   dy锛氭湇鍔$杩斿洖鐨勫疄浣撴暟鎹紙鐢ㄤ簬涓烘帶浠惰祴鍊硷級
+                    //   isEdit锛氭槸鍚︿负缂栬緫鐘舵�侊紙鎺у埗鎺т欢鏄惁鍙紪杈戯級
+                    //   gvList锛氶渶瑕佸悓姝ヨ缃殑缃戞牸瑙嗗浘鍒楄〃
                     UtilityHelper.SetValueByObj(this.layoutMx1.Controls, dy, isEdit, gvList);
+ 
+ 
+                    // 瑙f瀽鏈嶅姟绔繑鍥炵殑JSON锛屾彁鍙栨槑缁嗘暟鎹垪琛紙瀛樺偍鍦╮tnData涓嬬殑list瀛楁涓級
+                    // 浣跨敤JObject瑙f瀽JSON锛屼究浜庢彁鍙栧祵濂楃粨鏋勭殑鏁版嵁
                     JObject _job = JObject.Parse(strJson);
                     JArray array = new JArray();
+                    // 閬嶅巻list鏁扮粍涓殑鎵�鏈夊厓绱狅紝娣诲姞鍒版柊鐨凧Array涓紙绛涢�夋槑缁嗘暟鎹級
                     foreach (var a in _job["rtnData"]["list"])
                     {
                         array.Add(a);
                     }
+ 
+                    // 灏嗘槑缁嗘暟鎹殑JSON鏁扮粍杞崲涓篋ataTable锛堥�傚悎浣滀负缃戞牸鎺т欢鐨勬暟鎹簮锛�
                     DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
+                    EnsureProcessColumn(dt);
+ 
+                    // 鑻ユ槑缁嗘暟鎹瓨鍦紙DataTable琛屾暟>0锛�
                     if (dt.Rows.Count > 0)
                     {
+                        // 涓虹綉鏍兼帶浠秅cMx1璁剧疆鏂扮殑缁戝畾涓婁笅鏂囷紙BindingContext锛�
+                        // 鐩殑锛氶伩鍏嶄笌鍏朵粬鎺т欢鍏变韩缁戝畾涓婁笅鏂囧鑷寸殑鏁版嵁鍒锋柊鍐茬獊
                         gcMx1.BindingContext = new BindingContext();
+                        // 灏嗘槑缁嗘暟鎹粦瀹氬埌缃戞牸鎺т欢gcMx1锛坓cMx1鏄疓ridControl锛実vMx1鏄叾瀵瑰簲鐨勮鍥撅級
                         gcMx1.DataSource = dt;
+                        // 寮哄埗鍒濆鍖栫綉鏍兼帶浠讹紙纭繚鍒楄缃�佹牱寮忕瓑鐢熸晥锛�
                         gcMx1.ForceInitialize();
+                        // 鑷姩璋冩暣缃戞牸鍒楀锛屼娇鍒楀唴瀹瑰畬鍏ㄦ樉绀猴紙浼樺寲瑙嗚鏁堟灉锛�
                         gvMx1.BestFitColumns();
-
+                        // 璋冪敤宸ュ叿鏂规硶璁剧疆缃戞牸甯冨眬锛堝闄愬埗鏈�澶у垪瀹斤紝閬垮厤鍒楄繃瀹藉鑷寸晫闈㈡贩涔憋級
                         Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx1);
                     }
+                    // 鑻ユ槑缁嗘暟鎹笉瀛樺湪锛堟棤璁板綍锛�
                     else
                     {
+                        // 璋冪敤宸ュ叿鏂规硶璁剧疆榛樿鐨勭綉鏍肩粨鏋勶紙濡傜┖琛ㄦ椂鏄剧ず鍒楁爣棰樹絾鏃犳暟鎹锛�
                         Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx1, gvMx1);
                     }
                 }
+                // 鏈嶅姟绔繑鍥炲け璐ョ姸鎬侊紙rtnCode <= 0锛夛紝鏄剧ず鏈嶅姟绔繑鍥炵殑閿欒娑堟伅
                 else
-                    ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + _rtn.rtnMsg);
+                    ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
             }
+            // 鎹曡幏鎵ц杩囩▼涓殑寮傚父锛堝缃戠粶閿欒銆丣SON瑙f瀽澶辫触绛夛級
             catch (Exception ex)
             {
-                ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+                // 鏄剧ず寮傚父淇℃伅锛屼究浜庤皟璇曞拰鐢ㄦ埛鍙嶉
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+            }
+        }
+        /// <summary>
+        /// 缁熶竴灏佽 DataRow 瀛楁璇诲彇閫昏緫锛氭寜鐓у�欓�夊垪鍚嶅垪琛ㄤ緷娆℃煡鎵剧湡瀹炲垪锛屽拷鐣ュぇ灏忓啓骞惰閬� DBNull銆�
+        /// </summary>
+        /// <param name="row">褰撳墠寰幆鍒扮殑 DataRow锛岃嫢涓� null 鐩存帴杩斿洖绌哄瓧绗︿覆銆�</param>
+        /// <param name="columnCandidates">鎸変紭鍏堢骇鎺掑垪鐨勫�欓�夊垪鍚嶉泦鍚堬紙渚嬪 process/processName/gs003锛夈��</param>
+        /// <returns>鍖归厤鍒扮殑鍒楀�硷紱鑻ユ墍鏈夊�欓�夊垪鍧囦笉瀛樺湪鎴栧�间负 DBNull锛屽垯杩斿洖 string.Empty銆�</returns>
+        /// <remarks>
+        /// MesQcExceptional 鐨勪繚瀛樺姩浣滀緷璧栬鏂规硶锛屼互鍏煎鍚庣鎺ュ彛瀛楁鏀瑰悕鎴栧ぇ灏忓啓宸紓锛岄伩鍏嶅啀娆″嚭鐜� 鈥淐olumn 'process' does not belong to table鈥� 寮傚父銆�
+        /// </remarks>
+        private static string GetRowString(DataRow row, params string[] columnCandidates)
+        {
+            if (row == null || row.Table == null || columnCandidates == null)
+                return string.Empty;
+
+            foreach (var candidate in columnCandidates)
+            {
+                if (string.IsNullOrEmpty(candidate))
+                    continue;
+                var match = FindMatchingColumn(row.Table, candidate);
+                if (!string.IsNullOrEmpty(match))
+                    return NormalizeValue(row[match]);
+            }
+
+            return string.Empty;
+        }
+
+        private static string FindMatchingColumn(DataTable table, string columnName)
+        {
+            if (table == null || string.IsNullOrEmpty(columnName))
+                return null;
+
+            foreach (DataColumn column in table.Columns)
+            {
+                if (string.Equals(column.ColumnName, columnName, StringComparison.OrdinalIgnoreCase))
+                    return column.ColumnName;
+            }
+
+            return null;
+        }
+
+        private static string FindFirstAvailableColumn(DataTable table, params string[] candidates)
+        {
+            if (table == null || candidates == null)
+                return null;
+
+            foreach (var candidate in candidates)
+            {
+                var match = FindMatchingColumn(table, candidate);
+                if (!string.IsNullOrEmpty(match))
+                    return match;
+            }
+
+            return null;
+        }
+
+        private static bool HasColumnExact(DataTable table, string columnName)
+        {
+            if (table == null || string.IsNullOrEmpty(columnName))
+                return false;
+
+            foreach (DataColumn column in table.Columns)
+            {
+                if (string.Equals(column.ColumnName, columnName, StringComparison.Ordinal))
+                    return true;
+            }
+
+            return false;
+        }
+
+        private static void CopyColumn(DataTable table, string sourceColumnName, string targetColumnName)
+        {
+            if (table == null || string.IsNullOrEmpty(sourceColumnName) || string.IsNullOrEmpty(targetColumnName))
+                return;
+
+            if (!HasColumnExact(table, targetColumnName))
+                table.Columns.Add(targetColumnName, typeof(string));
+
+            foreach (DataRow row in table.Rows)
+            {
+                row[targetColumnName] = NormalizeValue(row[sourceColumnName]);
             }
         }
 
+        /// <summary>
+        /// 鍦ㄧ粦瀹� gvMx1 鏄庣粏鍓嶇‘淇� DataTable 涓瓨鍦ㄥ悕涓� process 鐨勫垪锛�
+        /// 1. 浼樺厛澶嶇敤涓嶅尯鍒嗗ぇ灏忓啓鍖归厤鍒扮殑鍚屽悕鍒楋紝淇濊瘉 GridColumn23 鐨勭粦瀹氫笉鍙楀奖鍝嶏紱
+        /// 2. 鑻ユ棤鍚屽悕鍒楋紝鍒欏皾璇曚娇鐢ㄥ父瑙佸埆鍚嶏紙processName/processDesc/processWay/gs003锛夊鍒剁敓鎴愶紱
+        /// 3. 鑻ヤ粛鏃犳硶瀹氫綅鏈夋晥鍒楋紝鍒欏垱寤虹┖鐨� process 鍒楋紝閬垮厤鍓嶇璁块棶鏃舵姏鍑哄垪涓嶅瓨鍦ㄥ紓甯搞��
+        /// </summary>
+        /// <param name="table">鎺ュ彛杩斿洖鐨勬槑缁� DataTable銆�</param>
+        private static void EnsureProcessColumn(DataTable table)
+        {
+            if (table == null)
+                return;
+
+            var existing = FindMatchingColumn(table, "process");
+            if (!string.IsNullOrEmpty(existing))
+            {
+                if (!HasColumnExact(table, "process"))
+                    CopyColumn(table, existing, "process");
+                return;
+            }
+
+            var fallback = FindFirstAvailableColumn(table, "processName", "processDesc", "processWay", "gs003");
+            if (string.IsNullOrEmpty(fallback))
+            {
+                if (!HasColumnExact(table, "process"))
+                    table.Columns.Add("process", typeof(string));
+                return;
+            }
+
+            CopyColumn(table, fallback, "process");
+        }
+
+        private static string NormalizeValue(object value)
+        {
+            return value == null || value == DBNull.Value ? string.Empty : value.ToString();
+        }
         /// <summary>
         /// 宸ュ叿鏉′簨浠�
         /// </summary>
         /// <param name="inFieldValue"></param>
         /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="inFieldValue"></param>
+ 
         private void _toolCk(int _inFieldValue)
         {
+            //toolBarMenu1.guidKey = "";
+            //string rowGuid, rowName;
+            //(rowGuid, rowName) = UtilityHelper.GetCurrentRow(xtraTabControl1,
+            //    lbGuid, txt_fBillNo, gridView1, "fBillNo");
+            //toolBarMenu1.guidKey = rowGuid;
+            //if (string.IsNullOrEmpty(rowGuid))
+            //{
+            //    MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
+            //    return;
+            //}
+            //if (!MsgHelper.AskQuestion("浣犻�夋嫨浜嗐��" + rowName + "銆戯紝纭畾鎿嶄綔鍚楋紵"))
+            //    return;
+            //var frm = new MesQcExceptionalShow(rowGuid);
+            //frm.UpdateParent += (s, e) =>
+            //{
+            //    int rowHandle = gridView1.LocateByValue(1, gridView1.Columns["guid"], rowGuid);
+            //    gridView1.FocusedRowHandle = rowHandle;
+            //    UtilityHelper.SetCheckIco(gridView1, "chkStatus", "checkBy", "checkDate", picCheckBox, this, _inFieldValue.ToString());
+            //};
+            //frm.ShowDialog();
+            //return;
             string strMsg = "";
             switch (_inFieldValue)
             {
@@ -276,13 +643,12 @@
             };
             try
             {
-                var strJson = UtilityHelper.HttpPost("",
-                    _webServiceName + "EditModelSubmit",
-                    JsonConvert.SerializeObject(_obj));
+                var strJson = UtilityHelper.HttpPost("",  _webServiceName + "EditModelSubmit", JsonConvert.SerializeObject(_obj));
                 var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+                MsgHelper.Warning(_rtn.rtnData.outMsg.ToString());
+ 
                 if (_rtn.rtnCode > 0 && _rtn.rtnData.outSum * 1 > 0)
                 {
-                    MsgHelper.ShowInformation(_rtn.rtnData.outMsg.ToString());
                     if (xtraTabControl1.SelectedTabPageIndex == 1)
                     {
                         getModel(lbGuid.Text.Trim());
@@ -291,13 +657,14 @@
                     gridView1.FocusedRowHandle = rowHandle;
                     UtilityHelper.SetCheckIco(gridView1, "chkStatus", "checkUser", "checkDate", picCheckBox, this, _inFieldValue.ToString());
                 }
-                else
-                    MsgHelper.ShowError(_rtn.rtnData.outMsg.ToString());
             }
             catch (Exception ex)
             {
-                MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+                MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
         }
+ 
+         
+ 
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3