DeviceManager/TsSFCDevice.Client.Launch/page_PlanDialog.cs

200 lines
7.4 KiB
C#
Raw Permalink Normal View History

2024-07-27 01:44:19 +00:00
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Tile;
using DeviceRepair.Models;
2024-08-02 02:52:45 +00:00
using DeviceRepair.Models.Enum;
2024-07-27 01:44:19 +00:00
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Windows.Forms;
using TsSFCDevice.Client.Biz.Base.Utils;
using TsSFCDevice.Client.Biz.Impl;
using TsSFCDevice.Client.Launch.Preserve;
namespace TsSFCDevice.Client.Launch
{
public partial class page_PlanDialog : Form
{
public List<View_CurrentMonthPlanTips> Datas { get; set; }
public page_PlanDialog()
{
SetStyle(ControlStyles.UserPaint, true);
InitializeComponent();
}
/// <summary>
/// 程序加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void page_PlanDialog_Load(object sender, EventArgs e)
{
DataBind();
if (Datas == null || Datas.Count == 0)
this.Close();
gridControl1.DataSource = Datas;
}
void DataBind()
{
#region
IList<View_CurrentMonthPlanTips> lst = PlanRepository.Instance.Get_PM_PLAN_CurrentMonth();
Datas = lst.ToList();
#endregion
//如果tips数据为空则跳过
if (lst == null || lst.Count == 0)
this.DialogResult = DialogResult.OK;
gridControl1.DataSource = Datas;
}
private void btn_Ignore_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
Rectangle tang = this.ClientRectangle; //获取窗口矩形 为了下面得到窗口的宽高
Graphics g3 = e.Graphics; //新建一个画布
Color c3 = Color.FromArgb(183, 183, 183); //声明一个 颜色
Pen p3 = new Pen(c3); //新建一支画笔
g3.SmoothingMode = SmoothingMode.HighQuality; //抗锯齿 使得线条变柔顺 在画斜线或者曲线的时候使用
g3.InterpolationMode = InterpolationMode.HighQualityBicubic; //使得画出来的效果高质量
g3.CompositingQuality = CompositingQuality.HighQuality; //高质量画图
g3.DrawLine(p3, 0, 0, 0, tang.Height - 1); //在00tang.Width - 1, 0这两点间画一条直线
g3.DrawLine(p3, 0, tang.Height - 1, tang.Width - 1,
tang.Height -
1); //注意必须减1 不然显示不出来 因为 如果假设窗口的高度是3像素 我们知道00位置代表 窗口最左上角的像素点 那么最左下角的像素点应该是02 而不是03 因为012 已经三个像素点了
g3.DrawLine(p3, tang.Width - 1, tang.Height - 1, tang.Width - 1, 0);
g3.DrawLine(p3, tang.Width - 1, 0, 0, 0);
//操作栏 上 边框线
g3.DrawLine(p3, tang.Width - 1, tableLayoutPanel1.Height - 60, 0, tableLayoutPanel1.Height - 60); //上
}
/// <summary>
/// 标题栏 - 鼠标拖动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lb_Caption_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Win32ApiHelper.ReleaseCapture();
Win32ApiHelper.PostMessage((int)this.Handle, 0x0112, 0xf017, 0);
}
}
private void simpleButton1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
this.Close();
}
private void tileView1_ContextButtonClick(object sender, DevExpress.Utils.ContextItemClickEventArgs e)
{
switch (e.Item.Name)
{
//忽略一条数据
case "btn_Igore":
ItemIgore((TileViewItem)e.DataItem);
break;
//保养一条数据
case "btn_Maintenance":
ItemMaintenence((TileViewItem)e.DataItem);
break;
default:
break;
}
}
/// <summary>
/// 忽略该条保修集合
/// </summary>
/// <param name="item"></param>
void ItemIgore(TileViewItem item)
{
int handle = item.RowHandle;
View_CurrentMonthPlanTips dmp = (View_CurrentMonthPlanTips)tileView1.GetRow(handle);
Datas.Remove(dmp);
if (Datas.Count == 0)
{
DialogResult = DialogResult.OK;
this.Close();
}
tileView1.RefreshData();
gridControl1.RefreshDataSource();
}
/// <summary>
/// 保养一条数据
/// </summary>
/// <param name="item"></param>
void ItemMaintenence(TileViewItem item)
{
try
{
if (!Utility.SystemRuntimeInfo.AuthValidate(OperationAuthConstValue.PM_PRESERVE_Add))
{
throw new Exception($"当前账号缺少此操作的权限");
}
int handle = item.RowHandle;
View_CurrentMonthPlanTips dmp = (View_CurrentMonthPlanTips)tileView1.GetRow(handle);
2024-08-05 09:21:06 +00:00
/* 保养类型 */
EnumDeviceBelong Belong = dmp.MaintenanceType.Equals("Daily", StringComparison.OrdinalIgnoreCase) ? EnumDeviceBelong.AM : EnumDeviceBelong.PM;
2024-07-27 01:44:19 +00:00
if (dmp != null)
{
this.Hide();
//获取设备信息
DeviceInformationInfo entity = Utility.SystemRuntimeInfo.CurrentDeviceCaches.FirstOrDefault(x => x.EquipmentID.Equals(dmp.EquipmentID, StringComparison.CurrentCultureIgnoreCase));
2024-08-05 09:21:06 +00:00
if (entity == null || (Belong == EnumDeviceBelong.AM ? entity.MaintenanceAMFormVersion : entity.MaintenanceFormVersion) == 0)
2024-07-27 01:44:19 +00:00
{
2024-08-05 09:21:06 +00:00
XtraMessageBoxHelper.Error("该设备未绑定点检表,请先绑定点检表。");
2024-07-27 01:44:19 +00:00
this.Show();
return;
}
2024-08-05 09:21:06 +00:00
page_DriveMaintenance view = new page_DriveMaintenance(entity, Belong, dmp.AutoID);
2024-07-27 01:44:19 +00:00
if (dmp.MaintenanceType == EnumMaintenanceType.Daily.ToString())
{
view.DaylyMaintenanceDate = DateTime.Today;
}
DialogResult dr = view.ShowDialog(this);
if (dr == DialogResult.OK)
{
ItemIgore(item);
XtraMessageBoxHelper.Info("操作成功!");
}
else if (dr == DialogResult.Abort)
{
XtraMessageBoxHelper.Info(view.apiResponseData.Message);
}
this.Show();
}
else
{
2024-08-05 09:21:06 +00:00
XtraMessageBoxHelper.Error("未能获取到设备信息,请重试。");
2024-07-27 01:44:19 +00:00
this.Show();
}
}
catch (Exception ex)
{
2024-08-05 09:21:06 +00:00
XtraMessageBoxHelper.Error(ex.Message);
2024-07-27 01:44:19 +00:00
this.Show();
}
}
}
}