| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | |
| | |
| | | } |
| | | |
| | | /// <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; |
| | | |
| | | // 收集所有选中的guid |
| | | 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("遇到空GUID,跳过处理"); |
| | | 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> |