DeviceManager/TsSFCDevice.Client.Launch/CheckForm/pageCheckFormView.cs
2024-08-02 10:52:45 +08:00

506 lines
18 KiB
C#

using DevExpress.XtraBars;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;
using DeviceRepair.Models;
using DeviceRepair.Models.Enum;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using TsSFCDevice.Client.Biz.Base.Utils;
using TsSFCDevice.Client.Biz.Impl;
namespace TsSFCDevice.Client.Launch.CheckForm
{
public partial class pageCheckFormView : DevExpress.XtraBars.Ribbon.RibbonForm
{
#region &
public EnumDeviceBelong Belong { get; set; } = EnumDeviceBelong.PM;
private string parChkFormName { get { return baripsChkFormName.EditValue + ""; } }
MaintenanceFormVersionInfo m_CurrentModel;
IList<MaintenanceFormVersionInfo> Datas;
int Counter = 0;
Dictionary<string, Image> Icons = new Dictionary<string, Image>
{
{ "Lock",DevExpress.Images.ImageResourceCache.Default.GetImageById(DevExpress.Images.DXImages.Cancel,DevExpress.Utils.Design.ImageSize.Size32x32,DevExpress.Utils.Design.ImageType.Colored) },
{ "UnLock",DevExpress.Images.ImageResourceCache.Default.GetImageById(DevExpress.Images.DXImages.Apply,DevExpress.Utils.Design.ImageSize.Size32x32,DevExpress.Utils.Design.ImageType.Colored) },
};
#endregion
#region
public pageCheckFormView() : this(EnumDeviceBelong.PM)
{
}
public pageCheckFormView(EnumDeviceBelong belong)
{
this.Belong = belong;
InitializeComponent();
}
#endregion
#region
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pageCheckFormView_Load(object sender, EventArgs e)
{
ribbon.AllowCustomization = false;
ribbon.AllowMinimizeRibbon = false;
// 关闭列头右键菜单
gvControl.OptionsMenu.EnableColumnMenu = false;
gvControl.OptionsBehavior.Editable = false;
gvControl.OptionsBehavior.ReadOnly = true;
gvControl.OptionsSelection.EnableAppearanceFocusedCell = false;
gvControl.OptionsScrollAnnotations.ShowSelectedRows = DevExpress.Utils.DefaultBoolean.False;
#region
switch (Belong)
{
case EnumDeviceBelong.AM:
AM_VisibilityControl();
break;
case EnumDeviceBelong.PM:
default:
PM_VisibilityControl();
break;
}
#endregion
}
void PM_VisibilityControl()
{
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_CheckFORM_Watch))
{
barSearch.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_CheckFORM_Add))
{
barInsert.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_CheckFORM_Edit))
{
barEdit.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_CheckFORM_Status))
{
barStatus.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_CheckFORM_Assig))
{
barAssig.Visibility = BarItemVisibility.Never;
}
}
void AM_VisibilityControl()
{
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.AM_CheckFORM_Watch))
{
barSearch.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.AM_CheckFORM_Add))
{
barInsert.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.AM_CheckFORM_Edit))
{
barEdit.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.AM_CheckFORM_Status))
{
barStatus.Visibility = BarItemVisibility.Never;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.AM_CheckFORM_Assig))
{
barAssig.Visibility = BarItemVisibility.Never;
}
}
/// <summary>
/// 搜索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barSearch_ItemClick(object sender, ItemClickEventArgs e)
{
InitializeGridData();
}
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barInsert_ItemClick(object sender, ItemClickEventArgs e)
{
string AuthCode = OperationAuthConstValue.PM_CheckFORM_Add;
switch (Belong)
{
case EnumDeviceBelong.AM:
AuthCode = OperationAuthConstValue.AM_CheckFORM_Add;
break;
case EnumDeviceBelong.PM:
default:
AuthCode = OperationAuthConstValue.PM_CheckFORM_Add;
break;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(AuthCode))
{
XtraMessageBoxHelper.Error("当前账号缺少此操作的权限!");
return;
}
pageFormVersionEdit view;
switch (Belong)
{
case EnumDeviceBelong.AM:
view = new pageFormVersionEdit(new MaintenanceFormVersionInfo { FormBelong = EnumDeviceBelong.AM.ToString() });
break;
case EnumDeviceBelong.PM:
default:
view = new pageFormVersionEdit();
break;
}
try
{
if (view.ShowDialog() == DialogResult.OK)
{
splashScreenManager1.ShowWaitForm();
try
{
//上传到webservice
APIResponseData apiResponseData = CommonRepository.Instance.UploadFile(view.CurrentModel.FormPath);
if (!apiResponseData.IsSuccess)
{
throw new ArgumentException(apiResponseData.Message);
}
view.CurrentModel.FormPath = apiResponseData.Data + "";
apiResponseData = CheckFormRepository.Instance.Insert_CheckForm_Data(view.CurrentModel);
if (!apiResponseData.IsSuccess)
{
throw new ArgumentException(apiResponseData.Message);
}
splashScreenManager1.TryCloseWait();
InitializeGridData();
XtraMessageBoxHelper.Info("操作成功!");
}
catch (Exception ex)
{
splashScreenManager1.TryCloseWait();
throw new Exception(ex.Message);
}
}
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
finally
{
view.Dispose();
}
}
/// <summary>
/// 修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barEdit_ItemClick(object sender, ItemClickEventArgs e)
{
string AuthCode = OperationAuthConstValue.PM_CheckFORM_Edit;
switch (Belong)
{
case EnumDeviceBelong.AM:
AuthCode = OperationAuthConstValue.AM_CheckFORM_Edit;
break;
case EnumDeviceBelong.PM:
default:
AuthCode = OperationAuthConstValue.PM_CheckFORM_Edit;
break;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(AuthCode))
{
XtraMessageBoxHelper.Error("当前账号缺少此操作的权限!");
return;
}
if (m_CurrentModel == null)
{
XtraMessageBoxHelper.Error("请选择要修改的数据!");
return;
}
try
{
using (pageFormVersionEdit view = new pageFormVersionEdit(m_CurrentModel))
{
if (view.ShowDialog() == DialogResult.OK)
{
splashScreenManager1.ShowWaitForm();
try
{
APIResponseData apiResponseData = CheckFormRepository.Instance.Change_CheckForm_Remark(view.CurrentModel);
if (!apiResponseData.IsSuccess)
{
throw new ArgumentException(apiResponseData.Message);
}
splashScreenManager1.TryCloseWait();
InitializeGridData();
XtraMessageBoxHelper.Info("操作成功!");
}
catch (Exception)
{
splashScreenManager1.TryCloseWait();
throw;
}
}
}
}
catch (Exception ex)
{
splashScreenManager1.TryCloseWait();
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 状态更改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barStatus_ItemClick(object sender, ItemClickEventArgs e)
{
string AuthCode = OperationAuthConstValue.PM_CheckFORM_Status;
switch (Belong)
{
case EnumDeviceBelong.AM:
AuthCode = OperationAuthConstValue.AM_CheckFORM_Status;
break;
case EnumDeviceBelong.PM:
default:
AuthCode = OperationAuthConstValue.PM_CheckFORM_Status;
break;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(AuthCode))
{
XtraMessageBoxHelper.Error("当前账号缺少此操作的权限!");
return;
}
if (m_CurrentModel == null)
{
XtraMessageBoxHelper.Error("请选择要操作的数据!");
return;
}
if (XtraMessageBoxHelper.Ask($"<size=16>确认<color=red><b>{(m_CurrentModel.FormStatus ? "" : "")}<b/><color/>点检表 <color=blue><b>:{m_CurrentModel.FormName}({m_CurrentModel.VersionCode} {m_CurrentModel.VersionRev})<b/><color/> 吗?") == DialogResult.OK)
{
try
{
splashScreenManager1.ShowWaitForm();
APIResponseData apiResponseData = CheckFormRepository.Instance.Change_Form_Status(m_CurrentModel.AutoID, (m_CurrentModel.FormStatus ? "G" : "A"));
if (!apiResponseData.IsSuccess)
{
throw new Exception(apiResponseData.Message);
}
var Item = (gvControl.DataSource as List<MaintenanceFormVersionInfo>).FirstOrDefault(x => x.AutoID == m_CurrentModel.AutoID);
if (Item != null)
{
Item.FormStatus = !Item.FormStatus;
}
gvControl.RefreshData();
gvControl_RowCellClick(this.gcControl, new DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs(new DevExpress.Utils.DXMouseEventArgs(MouseButtons.Left, 1, 1, 1, 1), gvControl.FocusedRowHandle, gcFormName));
splashScreenManager1.TryCloseWait();
}
catch (Exception ex)
{
splashScreenManager1.TryCloseWait();
XtraMessageBoxHelper.Error(ex.Message);
}
}
}
/// <summary>
/// 分配到设备
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barAssig_ItemClick(object sender, ItemClickEventArgs e)
{
string AuthCode = OperationAuthConstValue.PM_CheckFORM_Assig;
switch (Belong)
{
case EnumDeviceBelong.AM:
AuthCode = OperationAuthConstValue.AM_CheckFORM_Assig;
break;
case EnumDeviceBelong.PM:
default:
AuthCode = OperationAuthConstValue.PM_CheckFORM_Assig;
break;
}
if (!Utility.SystemRuntimeInfo.AuthValidate(AuthCode))
{
XtraMessageBoxHelper.Error("当前账号缺少此操作的权限!");
return;
}
if (m_CurrentModel == null)
{
XtraMessageBoxHelper.Error("请选择要操作的数据!");
return;
}
try
{
if (m_CurrentModel.FormStatus)
{
using (page_AssignDriveTree view = new page_AssignDriveTree(m_CurrentModel))
{
if (view.ShowDialog(this) == DialogResult.OK)
{
XtraMessageBoxHelper.Info("操作成功!");
return;
}
}
}
else
{
XtraMessageBoxHelper.Error("点检表已锁定,不可操作!");
return;
}
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message, "出错");
}
}
/// <summary>
/// 搜索内容清空
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ipsChkFormName_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
((sender as ButtonEdit)).EditValue = "";
}
/// <summary>
/// 单元格点击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvControl_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
m_CurrentModel = gvControl.GetRow(e.RowHandle) as MaintenanceFormVersionInfo;
if (m_CurrentModel != null)
{
barEdit.Enabled = m_CurrentModel.FormStatus;
barStatus.Enabled = true;
barAssig.Enabled = m_CurrentModel.FormStatus;
barStatus.Caption = m_CurrentModel.FormStatus ? "禁用" : "启用";
barStatus.ImageOptions.Image = m_CurrentModel.FormStatus ? Icons["Lock"] : Icons["UnLock"];
barStatus.ImageOptions.LargeImage = m_CurrentModel.FormStatus ? Icons["Lock"] : Icons["UnLock"];
}
}
/// <summary>
/// 自增长行号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvControl_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;
}
}
#endregion
#region
private void InitializeGridData()
{
try
{
splashScreenManager1.ShowWaitForm();
m_CurrentModel = null;
// 获取维修数据
switch (Belong)
{
case EnumDeviceBelong.AM:
Datas = CheckFormRepository.Instance.Get_AM_CheckForm_Datas(parChkFormName);
break;
case EnumDeviceBelong.PM:
Datas = CheckFormRepository.Instance.Get_PM_CheckForm_Datas(parChkFormName);
break;
default:
break;
}
gcControl.DataSource = Datas;
// 设置行号列宽度
Counter = (gvControl.DataSource as IList<MaintenanceFormVersionInfo>)?.Count ?? 0;
if (Counter > 0)
{
SizeF size = this.CreateGraphics().MeasureString(Datas.Count.ToString(), this.Font);
gvControl.IndicatorWidth = Convert.ToInt32(size.Width) + 20;
gvControl.FocusedRowHandle = 0;
gvControl_RowCellClick(gvControl, new RowCellClickEventArgs(new DevExpress.Utils.DXMouseEventArgs(MouseButtons.Left, 1, 1, 1, 1), 0, gcFormName));
}
splashScreenManager1.CloseWaitForm();
}
catch (Exception ex)
{
splashScreenManager1.CloseWaitForm();
throw new Exception(ex.Message);
}
}
#endregion
}
}