DeviceManager/DeviceRepairAndOptimization/Pages/Maintenance/page_MaintenanceView.cs
2024-06-11 01:33:11 +08:00

278 lines
9.5 KiB
C#

using DevExpress.XtraEditors;
using DeviceRepair.Models;
using DeviceRepairAndOptimization.Biz;
using DeviceRepairAndOptimization.Common;
using DeviceRepairAndOptimization.Pages.DriveMaintenance;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace DeviceRepairAndOptimization.Pages.Maintenance
{
public partial class page_MaintenanceView : FormBase
{
public page_MaintenanceView()
{
InitializeComponent();
}
/// <summary>
/// 当前勾选数据下标
/// </summary>
private int[] SelectedRows
{
get
{
return gridView1.GetSelectedRows();
}
}
private string FilterString
{
get
{
return txt_Filter.Text.Trim();
}
}
private void lb_Caption_Click(object sender, EventArgs e)
{
}
/// <summary>
/// 数据加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void page_MaintenanceView_Load(object sender, EventArgs e)
{
GridViewInitialize(gridView1);
gridView1.CustomDrawRowIndicator += GridView1_CustomDrawRowIndicator;
GetDatas();
}
/// <summary>
/// 自增长行号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void GridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString();
e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
e.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center;
}
}
/// <summary>
/// 行选择模式,且全部只读
/// </summary>
/// <param name="view"></param>
void GridViewInitialize(DevExpress.XtraGrid.Views.Grid.GridView view)
{
// 关闭列头右键菜单
view.OptionsMenu.EnableColumnMenu = false;
view.OptionsBehavior.Editable = false;
view.OptionsBehavior.ReadOnly = true;
view.OptionsSelection.EnableAppearanceFocusedCell = false;
view.OptionsScrollAnnotations.ShowSelectedRows = DevExpress.Utils.DefaultBoolean.False;
foreach (DevExpress.XtraGrid.Columns.GridColumn item in view.Columns)
{
item.OptionsColumn.AllowEdit = false;
item.OptionsColumn.AllowGroup = DevExpress.Utils.DefaultBoolean.True;
item.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
item.OptionsColumn.AllowShowHide = false;
}
}
/// <summary>
/// 数据加载
/// </summary>
void GetDatas()
{
APIResponseData result = PreserveManager.Instance.GetPreserveDatas(FilterString);
if (result.Code == -1)
{
XtraMessageBox.Show(result.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
List<View_MaintenanceRecordList> Datas = result.ToDeserializeObject<List<View_MaintenanceRecordList>>();
gridControl1.DataSource = Datas;
// 设置行号列宽度
SizeF size = this.CreateGraphics().MeasureString(Datas.Count.ToString(), this.Font);
gridView1.IndicatorWidth = Convert.ToInt32(size.Width) + 20;
}
/// <summary>
/// 查看
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Detail_Click(object sender, EventArgs e)
{
try
{
if (!GlobalInfo.HasRole("BIZ_MAINTENANCE_LOG_VIEW"))
{
XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限");
return;
}
if (SelectedRows.Length == 0)
{
XtraMessageBox.Show("请勾选要操作的数据", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
View_MaintenanceRecordList model = gridView1.GetRow(SelectedRows[0]) as View_MaintenanceRecordList;
page_MaintenancePdfView view = new page_MaintenancePdfView("详情", new int[] { model.AutoID });
view.ShowDialog();
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Print_Click(object sender, EventArgs e)
{
try
{
if (!GlobalInfo.HasRole("BIZ_MAINTENANCE_LOG_PRINT"))
{
XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限");
return;
}
if (SelectedRows.Length == 0)
{
XtraMessageBox.Show("请勾选要操作的数据", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
View_MaintenanceRecordList model = gridView1.GetRow(SelectedRows[0]) as View_MaintenanceRecordList;
page_MaintenancePdfView view = new page_MaintenancePdfView("打印", new int[] { model.AutoID }, true);
view.ShowDialog();
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 批量打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Prints_Click(object sender, EventArgs e)
{
try
{
if (!GlobalInfo.HasRole("BIZ_MAINTENANCE_LOG_PRINT"))
{
XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限");
return;
}
if (SelectedRows.Length == 0)
{
throw new Exception("请勾选要操作的数据");
}
List<int> ids = new List<int>();
foreach (int item in SelectedRows)
{
View_MaintenanceRecordList model = gridView1.GetRow(item) as View_MaintenanceRecordList;
ids.Add(model.AutoID);
}
page_MaintenancePdfView view = new page_MaintenancePdfView("打印", ids.ToArray(), true);
view.ShowDialog();
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 编辑保养记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_DriveMaintenanceEdit_Click(object sender, EventArgs e)
{
try
{
if (!GlobalInfo.HasRole("BIZ_MAINTENANCE_EDIT"))
{
XtraMessageBoxHelper.Error($"当前账号缺少此操作的权限");
return;
}
if (SelectedRows.Length == 0)
{
XtraMessageBox.Show("请勾选要操作的数据", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
View_MaintenanceRecordList model = gridView1.GetRow(SelectedRows[0]) as View_MaintenanceRecordList;
APIResponseData apiResponseData = DeviceManager.Instance.GetModelByEquipmentID(model.EquipmentNo);
if (!apiResponseData.IsSuccess)
throw new Exception(apiResponseData.Message);
DeviceInformationInfo entity = apiResponseData.ToDeserializeObject<DeviceInformationInfo>();
// 通过点检表主键ID获取点检表并保存到缓存目录
page_DriveMaintenance view = new page_DriveMaintenance(entity, model.PlanPrimaryID, model.AutoID, true);
DialogResult dr = view.ShowDialog();
if (dr == DialogResult.OK)
XtraMessageBoxHelper.Info("操作成功!");
else if (dr == DialogResult.Abort)
{
XtraMessageBoxHelper.Info(view.apiResponseData.Message);
}
}
catch (Exception ex)
{
GetDatas();
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 搜索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton1_Click(object sender, EventArgs e)
{
GetDatas();
}
private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
if (e.IsGetData && e.Column.FieldName == "Number")
{
e.Value = e.ListSourceRowIndex + 1; // 设置序号值
}
}
}
}