From ad1a9cd5ae489fbadc1ebfe754d3b71f65d43a1f Mon Sep 17 00:00:00 2001
From: cnf <3283105747@qq.com>
Date: 星期四, 20 十一月 2025 15:46:46 +0800
Subject: [PATCH] 委外任务单批量排产(审核)

---
 DevApp/Gs.DevApp/DevFrm/WW/Frm_ProductionOrder.cs |  175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 170 insertions(+), 5 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/WW/Frm_ProductionOrder.cs b/DevApp/Gs.DevApp/DevFrm/WW/Frm_ProductionOrder.cs
index 9acc51a..60d0b40 100644
--- a/DevApp/Gs.DevApp/DevFrm/WW/Frm_ProductionOrder.cs
+++ b/DevApp/Gs.DevApp/DevFrm/WW/Frm_ProductionOrder.cs
@@ -7,6 +7,8 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.Linq;
+using System.Text;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -255,24 +257,187 @@
         }
 
         /// <summary>
-        ///     瀹℃牳浜嬩欢
+        /// 瀹℃牳浜嬩欢
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void ToolBarMenu1_btnChkClick(object sender, EventArgs e)
         {
-            _toolCk(8);
+            ExecuteBatchOperation(8, "瀹℃牳");
         }
 
         /// <summary>
-        ///     鍙嶅鏍�
+        /// 鍙嶅鏍�
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
-        /// <exception cref="NotImplementedException"></exception>
         private void ToolBarMenu1_btnFChkClick(object sender, EventArgs e)
         {
-            _toolCk(9);
+            ExecuteBatchOperation(9, "鍙嶅鏍�");
+        }
+
+        /// <summary>
+        /// 鎵归噺鎵ц鎿嶄綔
+        /// </summary>
+        /// <param name="inFieldValue">鎿嶄綔绫诲瀷鍊�</param>
+        /// <param name="operationName">鎿嶄綔鍚嶇О</param>
+        private void ExecuteBatchOperation(int inFieldValue, string operationName)
+        {
+            gridView1.PostEditor();
+            gridView1.UpdateCurrentRow();
+            DataTable dt = this.gcMain1.DataSource as DataTable;
+
+            // 鏀堕泦鎵�鏈夐�変腑鐨刧uid
+            List<string> selectedGuids = new List<string>();
+            foreach (DataRow dr in dt.Rows)
+            {
+                string checkBox = dr["chkInt"].ToString();
+                string _guid = dr["guid"].ToString();
+                if (Gs.DevApp.ToolBox.UtilityHelper.ToCheck(checkBox))
+                {
+                    selectedGuids.Add(_guid);
+                }
+            }
+
+            // 濡傛灉娌℃湁閫変腑鐨勮褰曪紝鐩存帴杩斿洖
+            if (selectedGuids.Count == 0)
+            {
+                MsgHelper.ShowError("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�");
+                return;
+            }
+
+            // 纭瀵硅瘽妗�
+            if (!MsgHelper.AskQuestion($"浣犻�夋嫨浜� {selectedGuids.Count} 鏉¤褰曪紝纭畾{operationName}鍚楋紵"))
+                return;
+
+            // 鎵ц鎵归噺鎿嶄綔
+            BatchExecuteOperation(selectedGuids, inFieldValue, operationName);
+        }
+
+        /// <summary>
+        /// 鎵归噺鎵ц鎿嶄綔骞剁粺涓�杩斿洖缁撴灉
+        /// </summary>
+        private void BatchExecuteOperation(List<string> guids, int inFieldValue, string operationName)
+        {
+            List<string> successMessages = new List<string>();
+            List<string> errorMessages = new List<string>();
+            string lastSuccessGuid = string.Empty;
+
+            foreach (string rowGuid in guids)
+            {
+                if (string.IsNullOrEmpty(rowGuid))
+                {
+                    errorMessages.Add("閬囧埌绌篏UID锛岃烦杩囧鐞�");
+                    continue;
+                }
+
+                try
+                {
+                    var _obj = new
+                    {
+                        guid = rowGuid,
+                        inFieldValue = inFieldValue,
+                    };
+
+                    var strJson = UtilityHelper.HttpPost("",
+                        _webServiceName + "EditModelSubmit",
+                        JsonConvert.SerializeObject(_obj));
+                    var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+
+                    if (_rtn.rtnCode > 0 && _rtn.rtnData.outSum * 1 > 0)
+                    {
+                        successMessages.Add($"璁板綍 {rowGuid}锛歿_rtn.rtnData.outMsg}");
+                        lastSuccessGuid = rowGuid;
+
+                        // 鏇存柊鐣岄潰
+                        UpdateUI(rowGuid, inFieldValue);
+                    }
+                    else
+                    {
+                        errorMessages.Add($"璁板綍 {rowGuid}锛歿_rtn.rtnData.outMsg}");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    errorMessages.Add($"璁板綍 {rowGuid}锛氬鐞嗗け璐� - {ex.Message}");
+                }
+            }
+
+            // 缁熶竴鏄剧ず缁撴灉
+            ShowBatchResult(successMessages, errorMessages, operationName, lastSuccessGuid);
+        }
+
+        /// <summary>
+        /// 鏇存柊鐣岄潰
+        /// </summary>
+        private void UpdateUI(string rowGuid, int inFieldValue)
+        {
+            if (xtraTabControl1.SelectedTabPageIndex == 1)
+            {
+                getModel(lbGuid.Text.Trim());
+                int rowHandle = gridView1.LocateByValue(1, gridView1.Columns["guid"], rowGuid);
+                gridView1.FocusedRowHandle = rowHandle;
+                UtilityHelper.SetCheckIco(gridView1, "auditStatusChk", "auditor", "auditDate", picCheckBox, this, (inFieldValue == 8 ? 1 : 0).ToString());
+            }
+            else
+            {
+                getPageList(this.pageBar1.CurrentPage);
+                int rowHandle = gridView1.LocateByValue("guid", rowGuid);
+                gridView1.FocusedRowHandle = rowHandle;
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず鎵归噺鎿嶄綔缁撴灉
+        /// </summary>
+        private void ShowBatchResult(List<string> successMessages, List<string> errorMessages, string operationName, string lastSuccessGuid)
+        {
+            StringBuilder resultMessage = new StringBuilder();
+            resultMessage.AppendLine($"{operationName}鎿嶄綔瀹屾垚锛�");
+            resultMessage.AppendLine($"鎴愬姛锛歿successMessages.Count} 鏉�");
+            resultMessage.AppendLine($"澶辫触锛歿errorMessages.Count} 鏉�");
+
+            if (successMessages.Count > 0)
+            {
+                resultMessage.AppendLine();
+                resultMessage.AppendLine("鎴愬姛璁板綍锛�");
+                foreach (var msg in successMessages.Take(5)) // 鍙樉绀哄墠5鏉℃垚鍔熶俊鎭�
+                {
+                    resultMessage.AppendLine($"  鉁� {msg}");
+                }
+                if (successMessages.Count > 5)
+                {
+                    resultMessage.AppendLine($"  ... 杩樻湁 {successMessages.Count - 5} 鏉℃垚鍔熻褰�");
+                }
+            }
+
+            if (errorMessages.Count > 0)
+            {
+                resultMessage.AppendLine();
+                resultMessage.AppendLine("澶辫触璁板綍锛�");
+                foreach (var msg in errorMessages.Take(5)) // 鍙樉绀哄墠5鏉¢敊璇俊鎭�
+                {
+                    resultMessage.AppendLine($"  鉁� {msg}");
+                }
+                if (errorMessages.Count > 5)
+                {
+                    resultMessage.AppendLine($"  ... 杩樻湁 {errorMessages.Count - 5} 鏉″け璐ヨ褰�");
+                }
+            }
+
+            // 鏍规嵁缁撴灉绫诲瀷鏄剧ず涓嶅悓鐨勬秷鎭
+            if (errorMessages.Count == 0)
+            {
+                MsgHelper.ShowInformation(resultMessage.ToString());
+            }
+            else if (successMessages.Count == 0)
+            {
+                MsgHelper.ShowError(resultMessage.ToString());
+            }
+            else
+            {
+                MsgHelper.ShowError(resultMessage.ToString());
+            }
         }
 
         /// <summary>

--
Gitblit v1.9.3