using CommonFunc;
using CommonFunc.Tools;
using HandyControl.Tools.Extension;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
using XGL.Data.DBService;
using XGL.Models;
namespace XGLFinishPro.Views
{
///
/// ReportForm.xaml 的交互逻辑
///
public partial class ReportForm : Window
{
private bool IsEdit = false;
///
/// 数据库交互
///
FormingMachineService formingMachineService = new FormingMachineService();
private report editReport;
private List reports;
private readonly string OpenLineCheckBox = "OpenLineCheckBox";
private readonly string ReplaceLineCheckBox = "ReplaceLineCheckBox";
///
/// 上一任务不良品是否处理并放置在不合格品区域
///
private readonly string unqualified = "unqualified";
///
/// 涉及内容物转换,上一任务内容物是否清理干净
///
private readonly string clear = "clear";
///
/// 上一任务剩余包材/内容物是否做好防护、标识并放在指定位置
///
private readonly string residue = "residue";
///
/// 流水线是否清理干净,无与当班次生产无关的东西存处
///
private readonly string lineClear = "lineClear";
///
/// 作业员是否清楚当班次操作
///
private readonly string UserKnow = "UserKnow";
///
/// 该班次内容物、包材是否符合
///
private readonly string qualified = "qualified";
///
/// 班次现场使用的设备是否可以正常工作
///
private readonly string equipStatus = "equipStatus";
///
/// 该班次生产批号是否正确
///
private readonly string StampCorrect = "StampCorrect";
///
/// 不良品是否处理干净并放置在不合格品区域
///
private readonly string isClear = "isClear";
///
/// 剩余包材/内容物是否做好防护并放在指定位置
///
private readonly string positionCorrect = "positionCorrect";
///
/// 流水线是否清理干净
///
private readonly string isLineClear = "isLineClear";
///
/// 班次
///
private readonly string team = "team";
private bool Loading = true;
public ReportForm()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (var item in this.MainGrid.Children)
{
if (item is ComboBox comboBox)
{
comboBox.ItemsSource = new List { string.Empty, "√", "×" };
}
}
Canvas.SetLeft(canvasGrid, -1000);
this.Workshop.Text = string.Empty;
this.line.Text = string.Empty;
this.date.Text = string.Empty;
//this.Workshop.Text = Utils.GetAppSetting("SiteCode");
this.Workshop.Text = "黑蚊香";
try
{
this.Workshop.Text=formingMachineService.GetBaseEquipment(Utils.GetAppSetting("SiteCode"));
}
catch
{
}
this.line.Text = Utils.GetAppSetting("LineCode");
this.Name.Text = LoginUser.UserName;
for (int i = 1; i <= 6; i++)
{
if (FindName(team + i) is TextBlock text11)
{
text11.Text = string.Empty;
}
if (FindName(unqualified + i) is ComboBox text)
{
text.SelectedItem = string.Empty;
}
if (FindName(clear + i) is ComboBox text1)
{
text1.SelectedItem = string.Empty;
}
if (FindName(residue + i) is ComboBox text2)
{
text2.SelectedItem = string.Empty;
}
if (FindName(lineClear + i) is ComboBox text3)
{
text3.SelectedItem = string.Empty;
}
if (FindName(UserKnow + i) is ComboBox text4)
{
text4.SelectedItem = string.Empty;
}
if (FindName(qualified + i) is ComboBox text5)
{
text5.SelectedItem = string.Empty;
}
if (FindName(equipStatus + i) is ComboBox text6)
{
text6.SelectedItem = string.Empty;
}
if (FindName(StampCorrect + i) is ComboBox text7)
{
text7.SelectedItem = string.Empty;
}
if (FindName(isClear + i) is ComboBox text8)
{
text8.SelectedItem = string.Empty;
}
if (FindName(positionCorrect + i) is ComboBox text9)
{
text9.SelectedItem = string.Empty;
}
if (FindName(isLineClear + i) is ComboBox text10)
{
text10.SelectedItem = string.Empty;
}
}
IsEdit = false;
GetData();
IsEdit = false;
Loading = false;
}
private void ToggleButton_Click(object sender, RoutedEventArgs e)
{
if (((ToggleButton)sender).TemplatedParent is ComboBox comboBox)
{
comboBox.IsDropDownOpen = !comboBox.IsDropDownOpen;
}
}
private void GetData()
{
try
{
if (IsEdit)
{
MessageBoxResult messageBoxResult = MessageBox.Show("有未保存的数据,是否继续?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (messageBoxResult == MessageBoxResult.Cancel)
{
return;
}
}
IsEdit = false;
reports = formingMachineService.GetReportData(LoginUser.UserName);
Dispatcher.Invoke(() =>
{
this.date.Text = DateTime.Now.ToString("yyyy-MM-dd");
for (int i = 0; i < 6; i++)
{
if (FindName(unqualified + (i + 1)) is ComboBox text)
{
text.SelectedItem = reports[i].unqualified;
}
if (FindName(clear + (i + 1)) is ComboBox text1)
{
text1.SelectedItem = reports[i].clear;
}
if (FindName(residue + (i + 1)) is ComboBox text2)
{
text2.SelectedItem = reports[i].residue;
}
if (FindName(lineClear + (i + 1)) is ComboBox text3)
{
text3.SelectedItem = reports[i].lineClear;
}
if (FindName(UserKnow + (i + 1)) is ComboBox text4)
{
text4.SelectedItem = reports[i].UserKnow;
}
if (FindName(qualified + (i + 1)) is ComboBox text5)
{
text5.SelectedItem = reports[i].qualified;
}
if (FindName(equipStatus + (i + 1)) is ComboBox text6)
{
text6.SelectedItem = reports[i].equipStatus;
}
if (FindName(StampCorrect + (i + 1)) is ComboBox text7)
{
text7.SelectedItem = reports[i].StampCorrect;
}
if (FindName(isClear + (i + 1)) is ComboBox text8)
{
text8.SelectedItem = reports[i].isClear;
}
if (FindName(positionCorrect + (i + 1)) is ComboBox text9)
{
text9.SelectedItem = reports[i].positionCorrect;
}
if (FindName(isLineClear + (i + 1)) is ComboBox text10)
{
text10.SelectedItem = reports[i].isLineClear;
}
if (FindName(team + (i + 1)) is TextBlock text11)
{
text11.Text = reports[i].team == null ? string.Empty : reports[i].team == "2" ? "夜班" : "白班";
}
if (FindName(OpenLineCheckBox + (i + 1)) is CheckBox checkBox)
{
checkBox.IsChecked = (reports[i].OpenLineCheckBox == "√");
}
if (FindName(ReplaceLineCheckBox + (i + 1)) is CheckBox checkBox1)
{
checkBox1.IsChecked = (reports[i].ReplaceLineCheckBox == "√");
}
}
});
}
catch
{
}
}
private void AddGetData()
{
try
{
if (IsEdit)
{
MessageBoxResult messageBoxResult = MessageBox.Show("有未保存的数据,是否继续?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
if (messageBoxResult == MessageBoxResult.Cancel)
{
return;
}
}
IsEdit = false;
reports = formingMachineService.GetReportData(LoginUser.UserName);
reports.Insert(0, new report());
reports.Remove(reports.Last());
Dispatcher.Invoke(() =>
{
this.date.Text = DateTime.Now.ToString("yyyy-MM-dd");
for (int i = 0; i < 6; i++)
{
if (FindName(unqualified + (i + 1)) is ComboBox text)
{
text.SelectedItem = reports[i].unqualified;
}
if (FindName(clear + (i + 1)) is ComboBox text1)
{
text1.SelectedItem = reports[i].clear;
}
if (FindName(residue + (i + 1)) is ComboBox text2)
{
text2.SelectedItem = reports[i].residue;
}
if (FindName(lineClear + (i + 1)) is ComboBox text3)
{
text3.SelectedItem = reports[i].lineClear;
}
if (FindName(UserKnow + (i + 1)) is ComboBox text4)
{
text4.SelectedItem = reports[i].UserKnow;
}
if (FindName(qualified + (i + 1)) is ComboBox text5)
{
text5.SelectedItem = reports[i].qualified;
}
if (FindName(equipStatus + (i + 1)) is ComboBox text6)
{
text6.SelectedItem = reports[i].equipStatus;
}
if (FindName(StampCorrect + (i + 1)) is ComboBox text7)
{
text7.SelectedItem = reports[i].StampCorrect;
}
if (FindName(isClear + (i + 1)) is ComboBox text8)
{
text8.SelectedItem = reports[i].isClear;
}
if (FindName(positionCorrect + (i + 1)) is ComboBox text9)
{
text9.SelectedItem = reports[i].positionCorrect;
}
if (FindName(isLineClear + (i + 1)) is ComboBox text10)
{
text10.SelectedItem = reports[i].isLineClear;
}
if (FindName(team + (i + 1)) is TextBlock text11)
{
text11.Text = reports[i].team == null ? string.Empty : reports[i].team == "2" ? "夜班" : "白班";
}
if (FindName(OpenLineCheckBox + (i + 1)) is CheckBox checkBox)
{
checkBox.IsChecked = (reports[i].OpenLineCheckBox == "√");
}
if (FindName(ReplaceLineCheckBox + (i + 1)) is CheckBox checkBox1)
{
checkBox1.IsChecked = (reports[i].ReplaceLineCheckBox == "√");
}
}
});
}
catch
{
}
}
private void Add_Click(object sender, RoutedEventArgs e)
{
AddGetData();
}
private void Submit_Click(object sender, RoutedEventArgs e)
{
try
{
foreach (var report in reports)
{
if (!string.IsNullOrEmpty(report.Id))
{
formingMachineService.EditReport(report);
}
else
{
if (!string.IsNullOrEmpty(report.team))
{
report.Id = Guid.NewGuid().ToString();
formingMachineService.AddReport(report);
}
}
}
MessageBox.Show("提交成功!");
IsEdit = false;
GetData();
}
catch
{
MessageBox.Show("提交失败!");
}
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void Edit_Click(object sender, RoutedEventArgs e)
{
new AddReportFrom("Edit", editReport).ShowDialog();
GetData();
}
private void ContextMenu_Opened(object sender, RoutedEventArgs e)
{
//获取鼠标位置
Point mousePosition = Mouse.GetPosition(this);
Point top = this.TopLine.TransformToVisual(this).Transform(new Point(0, this.TopLine.Y1));
Point bottom = this.BottomLine.TransformToVisual(this).Transform(new Point(0, this.BottomLine.Y1));
if (mousePosition.Y > top.Y && mousePosition.Y < bottom.Y)
{
Point firstPoint = this.FirstLine.TransformToVisual(this).Transform(new Point(this.FirstLine.X1, 0));
Point secondPoint = this.SecondLine.TransformToVisual(this).Transform(new Point(this.SecondLine.X1, 0));
Point thirdLine = this.ThirdLine.TransformToVisual(this).Transform(new Point(this.ThirdLine.X1, 0));
Point fourthLine = this.FourthLine.TransformToVisual(this).Transform(new Point(this.FourthLine.X1, 0));
Point fifthLine = this.FifthLine.TransformToVisual(this).Transform(new Point(this.FifthLine.X1, 0));
Point sixthLine = this.SixthLine.TransformToVisual(this).Transform(new Point(this.SixthLine.X1, 0));
Point SeventhLine = this.SixthLine.TransformToVisual(this).Transform(new Point(this.SeventhLine.X1, 0));
if (mousePosition.X > firstPoint.X && mousePosition.X < SeventhLine.X)
{
this.EditButton.Visibility = Visibility.Visible;
if (mousePosition.X > firstPoint.X && mousePosition.X < secondPoint.X)
{
editReport = reports[0];
}
else if (mousePosition.X > secondPoint.X && mousePosition.X < thirdLine.X)
{
editReport = reports[1];
}
else if (mousePosition.X > thirdLine.X && mousePosition.X < fourthLine.X)
{
editReport = reports[2];
}
else if (mousePosition.X > fourthLine.X && mousePosition.X < fifthLine.X)
{
editReport = reports[3];
}
else if (mousePosition.X > fifthLine.X && mousePosition.X < sixthLine.X)
{
editReport = reports[4];
}
else if (mousePosition.X > sixthLine.X && mousePosition.X < SeventhLine.X)
{
editReport = reports[5];
}
if (string.IsNullOrEmpty(editReport.Id))
{
this.EditButton.Visibility = Visibility.Collapsed;
}
}
else
{
this.EditButton.Visibility = Visibility.Collapsed;
}
}
else
{
this.EditButton.Visibility = Visibility.Collapsed;
}
}
private void Window_Closed(object sender, EventArgs e)
{
}
private void ReplaceLineCheckBox1_Click(object sender, RoutedEventArgs e)
{
}
private void Window_MouseDown(object sender, MouseEventArgs e)
{
//获取鼠标位置
Point mousePosition = Mouse.GetPosition(this);
Point top = this.TopLine.TransformToVisual(this).Transform(new Point(0, this.TopLine.Y1));
Point bottom = this.BottomLine.TransformToVisual(this).Transform(new Point(0, this.BottomLine.Y1));
if (mousePosition.Y > top.Y && mousePosition.Y < bottom.Y)
{
Point firstPoint = this.FirstLine.TransformToVisual(this).Transform(new Point(this.FirstLine.X1, 0));
Point secondPoint = this.SecondLine.TransformToVisual(this).Transform(new Point(this.SecondLine.X1, 0));
Point thirdLine = this.ThirdLine.TransformToVisual(this).Transform(new Point(this.ThirdLine.X1, 0));
Point fourthLine = this.FourthLine.TransformToVisual(this).Transform(new Point(this.FourthLine.X1, 0));
Point fifthLine = this.FifthLine.TransformToVisual(this).Transform(new Point(this.FifthLine.X1, 0));
Point sixthLine = this.SixthLine.TransformToVisual(this).Transform(new Point(this.SixthLine.X1, 0));
Point SeventhLine = this.SeventhLine.TransformToVisual(this).Transform(new Point(this.SeventhLine.X1, 0));
if (mousePosition.X > firstPoint.X && mousePosition.X < SeventhLine.X)
{
Canvas.SetTop(canvasGrid, top.Y);
canvasGrid.Width = secondPoint.X - firstPoint.X;
canvasGrid.Height = bottom.Y - top.Y;
if (mousePosition.X > firstPoint.X && mousePosition.X < secondPoint.X)
{
editReport = reports[0];
if (!string.IsNullOrEmpty(editReport.Id))
{
//将坐标在firstPoint.X到secondPoint.X,bottom.Y到top.Y范围内的背景色变为绿色
Canvas.SetLeft(canvasGrid, firstPoint.X);
}
}
else if (mousePosition.X > secondPoint.X && mousePosition.X < thirdLine.X)
{
editReport = reports[1];
if (!string.IsNullOrEmpty(editReport.Id))
{
Canvas.SetLeft(canvasGrid, secondPoint.X);
}
}
else if (mousePosition.X > thirdLine.X && mousePosition.X < fourthLine.X)
{
editReport = reports[2];
if (!string.IsNullOrEmpty(editReport.Id))
{
Canvas.SetLeft(canvasGrid, thirdLine.X);
}
}
else if (mousePosition.X > fourthLine.X && mousePosition.X < fifthLine.X)
{
editReport = reports[3];
if (!string.IsNullOrEmpty(editReport.Id))
{
Canvas.SetLeft(canvasGrid, fourthLine.X);
}
}
else if (mousePosition.X > fifthLine.X && mousePosition.X < sixthLine.X)
{
editReport = reports[4];
if (!string.IsNullOrEmpty(editReport.Id))
{
Canvas.SetLeft(canvasGrid, fifthLine.X);
}
}
else if (mousePosition.X > sixthLine.X && mousePosition.X < SeventhLine.X)
{
editReport = reports[5];
if (!string.IsNullOrEmpty(editReport.Id))
{
Canvas.SetLeft(canvasGrid, sixthLine.X);
}
}
else
{
Canvas.SetLeft(canvasGrid, -1000);
}
}
else
{
Canvas.SetLeft(canvasGrid, -1000);
}
}
else
{
Canvas.SetLeft(canvasGrid, -1000);
}
}
private void ClickBox_Click(object sender, RoutedEventArgs e)
{
IsEdit = true;
if (sender is CheckBox checkBox)
{
if (checkBox.IsChecked ?? false)
{
if (checkBox.Name.Contains(OpenLineCheckBox))
{
object v = this.FindName(ReplaceLineCheckBox + checkBox.Name.Replace(OpenLineCheckBox, ""));
if (v is CheckBox replaceLineCheckBox)
{
replaceLineCheckBox.IsChecked = false;
report report = GetReport();
report.OpenLineCheckBox = "√";
}
}
else if (checkBox.Name.Contains(ReplaceLineCheckBox))
{
if (this.FindName(OpenLineCheckBox + checkBox.Name.Replace(ReplaceLineCheckBox, "")) is CheckBox openLineCheckBox)
{
openLineCheckBox.IsChecked = false;
report report = GetReport();
report.ReplaceLineCheckBox = "√";
}
}
}
}
}
private report GetReport()
{
try
{
//获取鼠标位置
Point mousePosition = Mouse.GetPosition(this);
Point top = this.TopLine.TransformToVisual(this).Transform(new Point(0, this.TopLine.Y1));
Point bottom = this.BottomLine.TransformToVisual(this).Transform(new Point(0, this.BottomLine.Y1));
if (mousePosition.Y > top.Y && mousePosition.Y < bottom.Y)
{
Point firstPoint = this.FirstLine.TransformToVisual(this).Transform(new Point(this.FirstLine.X1, 0));
Point secondPoint = this.SecondLine.TransformToVisual(this).Transform(new Point(this.SecondLine.X1, 0));
Point thirdLine = this.ThirdLine.TransformToVisual(this).Transform(new Point(this.ThirdLine.X1, 0));
Point fourthLine = this.FourthLine.TransformToVisual(this).Transform(new Point(this.FourthLine.X1, 0));
Point fifthLine = this.FifthLine.TransformToVisual(this).Transform(new Point(this.FifthLine.X1, 0));
Point sixthLine = this.SixthLine.TransformToVisual(this).Transform(new Point(this.SixthLine.X1, 0));
Point SeventhLine = this.SeventhLine.TransformToVisual(this).Transform(new Point(this.SeventhLine.X1, 0));
if (mousePosition.X > firstPoint.X && mousePosition.X < SeventhLine.X)
{
Canvas.SetTop(canvasGrid, top.Y);
canvasGrid.Width = secondPoint.X - firstPoint.X;
canvasGrid.Height = bottom.Y - top.Y;
if (mousePosition.X > firstPoint.X && mousePosition.X < secondPoint.X)
{
return reports[0];
}
else if (mousePosition.X > secondPoint.X && mousePosition.X < thirdLine.X)
{
return reports[1];
}
else if (mousePosition.X > thirdLine.X && mousePosition.X < fourthLine.X)
{
return reports[2];
}
else if (mousePosition.X > fourthLine.X && mousePosition.X < fifthLine.X)
{
return reports[3];
}
else if (mousePosition.X > fifthLine.X && mousePosition.X < sixthLine.X)
{
return reports[4];
}
else if (mousePosition.X > sixthLine.X && mousePosition.X < SeventhLine.X)
{
return reports[5];
}
else
{
return null;
}
}
else
{
return null;
}
}
else
{
return null;
}
}
catch
{
}
return null;
}
private void Refresh_Click(object sender, RoutedEventArgs e)
{
GetData();
}
private void SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (Loading)
{
return;
}
IsEdit = true;
report report = GetReport();
if (report != null)
{
if (string.IsNullOrEmpty(report.team))
{
report.team = LoginPage.team;
}
if (string.IsNullOrEmpty(report.NickName))
{
report.NickName = LoginUser.UserName;
}
if (sender is ComboBox comboBox)
{
if (comboBox.Name.Contains(unqualified))
{
report.unqualified = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(clear))
{
report.clear = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(residue))
{
report.residue = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(lineClear))
{
report.lineClear = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(UserKnow))
{
report.UserKnow = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(qualified))
{
report.qualified = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(equipStatus))
{
report.equipStatus = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(StampCorrect))
{
report.StampCorrect = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(isClear))
{
report.isClear = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(positionCorrect))
{
report.positionCorrect = comboBox.SelectedItem.ToString();
}
else if (comboBox.Name.Contains(isLineClear))
{
report.isLineClear = comboBox.SelectedItem.ToString();
}
}
}
}
}
}