using CentralControl.App_Code; using CommonFunc; using CommonFunc.Tools; using HandyControl.Controls; using HandyControl.Tools.Extension; using MaterialDesignThemes.Wpf; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; 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 Xceed.Wpf.Toolkit.Primitives; using XGL.Data.DBService; using XGL.Models; using XGL.Models.Model.OrderPrepare; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ExplorerBar; using ComboBox = System.Windows.Controls.ComboBox; using MessageBox = System.Windows.MessageBox; using TextBox = System.Windows.Controls.TextBox; namespace XGLFinishPro.Views { /// /// LanJu_First_Inspection_Reprot.xaml 的交互逻辑 /// public partial class LanJu_First_Inspection_Reprot : System.Windows.Window { private string leftbelong_to = string.Empty; private string rightbelong_to = string.Empty; FormingMachineService dbService = new FormingMachineService(); private static double LineWidth = 65; private static double LineHeight = 30; private static double MainLineWidth = 80; private static double MainLineHeight = 50; string deviceCode = Utils.GetAppSetting("DeviceCode"); private string LProductName = string.Empty; private string product_code = string.Empty; private bool isUpdate = false; private List DefaultTypeDic = new List() { string.Empty, "√", "x" }; private List leftData; private List rightData; private readonly List _hours = new List() { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23" }; private List list = new List(); private readonly List _minutes = new List { "00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55" }; private string workId = string.Empty; private string date = string.Empty; private string shiftName = string.Empty; private string shiftCode = LoginUser.ShiftCode; public LanJu_First_Inspection_Reprot() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { try { //this.RightNickName.Text = LoginUser.UserName; this.LeftNickName.Text = LoginUser.UserName; try { this.LeftCheckDate.SelectedDate = DateTime.Parse(LoginUser.WorkDate); shiftName = dbService.GetShiftById(shiftCode); } catch { } //this.RightCheckDate.Text = DateTime.Parse(this.LeftCheckDate.Text).AddDays(1).ToString("yyyy/MM/dd"); this.LeftLine.Text = dbService.GetBaseEquipment(Utils.GetAppSetting("DeviceCode")); //this.RightLine.Text = this.LeftLine.Text; product_code = string.Empty; } catch { } LoadData(); } private void LoadData(bool addLine = false) { try { isUpdate = true; list.Clear(); DataTable dataTable = dbService.GetProOrderWorkorder(workId); if (dataTable == null || dataTable.Rows.Count == 0) { Console.WriteLine("[Error] 未获取到工单信息,workId: " + workId); LogHelper.instance.log.Error("[Error] 未获取到工单信息,workId: " + workId); } else { if (dataTable.Rows.Count > 0) { product_code = dataTable.Rows[0]["product_code"].ToString(); } } var leftHearList = dbService.GetSelfCheckInfo("first_inspection_left").OrderBy(t => t.dict_sort).ToList(); if (leftHearList == null || !leftHearList.Any()) { Console.WriteLine("[Error] 未获取到左侧检查信息。"); LogHelper.instance.log.Error("[Error] 未获取到左侧检查信息。"); } var leftMainList = dbService.GetSelfCheckInfo("first_inspection_left_info").OrderBy(t => t.dict_sort).ToList(); if (leftMainList == null || !leftMainList.Any()) { Console.WriteLine("[Error] 未获取到左侧主检查信息。"); LogHelper.instance.log.Error("[Error] 未获取到左侧主检查信息。"); } var rightHearList = dbService.GetSelfCheckInfo("first_inspection_right").OrderBy(t => t.dict_sort).ToList(); if (rightHearList == null || !rightHearList.Any()) { Console.WriteLine("[Error] 未获取到右侧检查信息。"); LogHelper.instance.log.Error("[Error] 未获取到右侧检查信息。"); } var rightMainList = dbService.GetSelfCheckInfo("first_inspection_right_info").OrderBy(t => t.dict_sort).ToList(); if (rightMainList == null || !rightMainList.Any()) { Console.WriteLine("[Error] 未获取到右侧主检查信息。"); LogHelper.instance.log.Error("[Error] 未获取到右侧主检查信息。"); } GetMesTableSeft(); leftData = dbService.GetMesTableSelfDetial(leftbelong_to, 6); if (leftData == null || !leftData.Any()) { Console.WriteLine("[Error] 未获取到左侧详细检查数据。"); LogHelper.instance.log.Error("[Error] 未获取到左侧详细检查数据。"); } rightData = dbService.GetMesTableSelfDetial(rightbelong_to, 6); if (rightData == null || !rightData.Any()) { Console.WriteLine("[Error] 未获取到右侧详细检查数据。"); LogHelper.instance.log.Error("[Error] 未获取到右侧详细检查数据。"); } if (addLine) { int leftLine = leftData.Max(t => t.table_line) + 1; leftData.ForEach(t => { t.index++; }); leftData.Insert(0, new MesTableSelfDetialModel() { index = 0 }); leftData.RemoveAll(t => t.index == 6); int rightLine = rightData.Max(t => t.table_line) + 1; rightData.ForEach(t => { t.index++; }); rightData.Insert(0, new MesTableSelfDetialModel() { index = 0 }); rightData.RemoveAll(t => t.index == 6); } for (var i = 0; i < 7; i++) { foreach (var item in leftHearList) { bool hasData = leftData.Where(t => t.index == i && t.info_name == item.dict_label).Any(); if (!hasData) { int tableLine = 0; MesTableSelfDetialModel mesTableSelfDetialModel = leftData.Where(t => t.index == i).Where(t => t.table_line != 0).FirstOrDefault(); if (mesTableSelfDetialModel != null) { tableLine = mesTableSelfDetialModel.table_line; } else { try { tableLine = leftData.Max(t => t.table_line) + 1; } catch { } } leftData.Add(new MesTableSelfDetialModel() { index = i, table_line = tableLine, info_name = item.dict_label, info_code = leftHearList.FirstOrDefault(t => t.dict_label == item.dict_label)?.dict_code, }); list.Add(new ConveterData() { label = item.dict_label, value = MD5Provider.Hash(item.dict_label), }); } } foreach (var item in rightHearList) { bool hasData = rightData.Where(t => t.index == i && t.info_name == item.dict_label).Any(); if (!hasData) { int tableLine = 0; MesTableSelfDetialModel mesTableSelfDetialModel = rightData.Where(t => t.index == i).Where(t => t.table_line != 0).FirstOrDefault(); if (mesTableSelfDetialModel != null) { tableLine = mesTableSelfDetialModel.table_line; } else { try { tableLine = rightData.Max(t => t.table_line) + 1; } catch { } } rightData.Add(new MesTableSelfDetialModel() { index = i, table_line = tableLine, info_name = item.dict_label, info_code = rightHearList.FirstOrDefault(t => t.dict_label == item.dict_label)?.dict_code, }); list.Add(new ConveterData() { label = item.dict_label, value = MD5Provider.Hash(item.dict_label), }); } } } var leftDic = new Dictionary>(); foreach (var item in leftData) { if (item.info_name == null || leftDic.Keys.Contains(item.info_name)) { continue; } var mesTableSelfDetialModels = leftData.Where(t => t.info_name == item.info_name).ToList(); var dictionary = mesTableSelfDetialModels.ToDictionary(t => t.index); leftDic.Add(item.info_name, dictionary); } var rightDic = new Dictionary>(); foreach (var item in rightData) { if (item.info_name == null || rightDic.Keys.Contains(item.info_name)) { continue; } var mesTableSelfDetialModels = rightData.Where(t => t.info_name == item.info_name).ToList(); var dictionary = mesTableSelfDetialModels.ToDictionary(t => t.index); rightDic.Add(item.info_name, dictionary); } list.ForEach(t => t.value.Remove(9, 11)); list.ForEach(t => t.value = t.value.Insert(0, "A")); MakeHeaderData(this.Left); //MakeHeaderData(this.Right); var leftTypeDic = new Dictionary>(); foreach (var item in leftHearList) { var defaultDic = leftMainList.Where(t => string.IsNullOrEmpty(t.remark)).Select(t => t.dict_value).ToList(); var typeDic = leftMainList.Where(t => t.remark == item.dict_label).Select(t => t.dict_value).ToList(); defaultDic.AddRange(typeDic); if (!leftTypeDic.ContainsKey(item.dict_label)) { leftTypeDic.Add(item.dict_label, defaultDic); } } var rightTypeDic = new Dictionary>(); foreach (var item in rightHearList) { var defaultDic = rightMainList.Where(t => string.IsNullOrEmpty(t.remark)).Select(t => t.dict_value).ToList(); var typeDic = rightMainList.Where(t => t.remark == item.dict_label).Select(t => t.dict_value).ToList(); defaultDic.AddRange(typeDic); if (!rightTypeDic.ContainsKey(item.dict_label)) { rightTypeDic.Add(item.dict_label, defaultDic); } } MainValueData(this.Left, leftHearList, leftDic, leftTypeDic); //MainValueData(this.Right, rightHearList, rightDic, rightTypeDic); UpdateUi(this.Left); //UpdateUi(this.Right); isUpdate = false; } catch (Exception ex) { LogHelper.instance.log.Error("[Error] 加载数据异常!" + ex.Message); } } private MesTableSelf leftmesTableSelf; private void GetMesTableSeft() { leftmesTableSelf = dbService.GetMesTableSelf(deviceCode, LProductName, this.LeftCheckDate.Text, "ConversionReportLeft"+ shiftName); if (leftmesTableSelf == null) { if (!string.IsNullOrEmpty(LProductName)) { leftmesTableSelf = new MesTableSelf() { id = Guid.NewGuid().ToString(), line_code = deviceCode, product_name = LProductName, check_date = this.LeftCheckDate.Text, product_code = product_code, factory_code = Utils.GetAppSetting("SiteCode"), del_flag = "0", product_date = this.LeftCheckDate.Text, bz = string.Empty, report_name = "ConversionReportLeft"+ shiftName }; } dbService.InsertMesTableSelf(leftmesTableSelf); } //7c9070ea-75f9-42ad-bf6b-3638f4745141 leftbelong_to = leftmesTableSelf.id; //MesTableSelf rightmesTableSelf = dbService.GetMesTableSelf(deviceCode, LProductName, this.RightCheckDate.Text, "ConversionReportRight"); //if (rightmesTableSelf == null) //{ // rightmesTableSelf = new MesTableSelf() // { // id = Guid.NewGuid().ToString(), // line_code = deviceCode, // product_name = LProductName, // //check_date = this.RightCheckDate.Text, // product_code = product_code, // factory_code = Utils.GetAppSetting("SiteCode"), // del_flag = "0", // //product_date = this.RightCheckDate.Text, // bz = string.Empty, // report_name = "ConversionReportRight" // }; // dbService.InsertMesTableSelf(rightmesTableSelf); //} //rightbelong_to = rightmesTableSelf.id; } private void MainValueData(Grid grid, List HearListDic, Dictionary> data, Dictionary> typeList) { List hearList = HearListDic.Select(t => t.dict_label).ToList(); for (var i = 2; i < hearList.Count + 2; i++) { grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.0, GridUnitType.Star) }); var line = new Line() { Name = $"{grid.Name}XLine{i + 1}", X1 = 1.0, VerticalAlignment = VerticalAlignment.Bottom, Stroke = Brushes.Black, StrokeThickness = 1.0, Stretch = Stretch.Fill, }; if (i == 2) { var line2 = new Line() { Name = $"{grid.Name}XLine{i}", X1 = 1.0, VerticalAlignment = VerticalAlignment.Top, Stroke = Brushes.Black, StrokeThickness = 1.0, Stretch = Stretch.Fill, }; Grid.SetRow(line2, i); Grid.SetColumnSpan(line2, 99); grid.Children.Add(line2); } Grid.SetRow(line, i); Grid.SetColumnSpan(line, 99); grid.Children.Add(line); string key = hearList.ToList()[i - 2]; bool hasType = typeList.TryGetValue(key, out var type); if (data.TryGetValue(key, out var value)) { for (var j = 0; j < value.Count; j++) { if (j > 6) { continue; } string Hour = "00"; string Minute = "00"; try { if (value[j].check_time_s != null) { string[] startTime = value[j].check_time_s.Split(':'); Hour = startTime[0]; Minute = startTime[1]; } foreach (var item in grid.Children) { if (item is StackPanel stackPanel) { foreach (var child in stackPanel.Children) { if (child is ComboBox comboBox2) { if (comboBox2.Name.Contains($"Hour{j + 1}") && comboBox2.SelectedIndex == 0) { comboBox2.SelectedItem = Hour; } if (comboBox2.Name.Contains($"Minute{j + 1}") && comboBox2.SelectedIndex == 0) { comboBox2.SelectedItem = Minute; } } } } } } catch { } var textBlock = new TextBlock() { Text = key.Replace("___", "/"), VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, FontSize = 20, TextWrapping = TextWrapping.Wrap, }; Grid.SetRow(textBlock, i); Grid.SetColumn(textBlock, 0); grid.Children.Add(textBlock); } for (var j = 1; j <= 6; j++) { string SelectedItem = string.Empty; if (value.TryGetValue(j - 1, out var model)) { SelectedItem = model.check_result; } if (key.Contains("灌装量")) { TextBox textBox = new TextBox() { Name = $"{grid.Name}{list.First(t => t.label == key).value}{j}", Text = SelectedItem, Width = MainLineWidth, Height = MainLineHeight, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, FontSize = 20, TextWrapping = TextWrapping.Wrap, AcceptsReturn = true, }; textBox.LostFocus += TextBox_LostFocus; Grid.SetRow(textBox, i); Grid.SetColumn(textBox, j); grid.Children.Add(textBox); } else { ComboBox comboBox = new ComboBox() { Name = $"{grid.Name}{list.First(t => t.label == key).value}{j}", ItemsSource = hasType ? type.Distinct() : DefaultTypeDic.Distinct(), SelectedItem = SelectedItem, Width = MainLineWidth, Height = MainLineHeight }; comboBox.SelectionChanged += SelectionChanged; Grid.SetRow(comboBox, i); Grid.SetColumn(comboBox, j); grid.Children.Add(comboBox); } } } } List batchCodes = dbService.GetBatchCode(workId); foreach (var item in this.Left.Children) { if (item is ComboBox box) { string label = list.Where(t => t.value == box.Name.Substring(0, box.Name.Length - 1).Replace("Left", "").Replace("Right", "")).First().label; if (label.Contains("日期码") || label.Contains("生产批号")) { box.ItemsSource = batchCodes.Distinct(); } } } foreach (var item in this.Right.Children) { if (item is ComboBox box) { string v = box.Name.Substring(0, box.Name.Length - 1); string label = list.Where(t => t.value == box.Name.Substring(0, box.Name.Length - 1).Replace("Left", "").Replace("Right", "")).First().label; if (label.Contains("日期码") || label.Contains("生产批号")) { box.ItemsSource = batchCodes.Distinct(); } } } } private void TextBox_LostFocus(object sender, RoutedEventArgs e) { try { if (isUpdate) { return; } if (sender is TextBox textBox) { string name = textBox.Name.Replace("Left", "").Replace("Right", ""); string index = name.Substring(name.Length - 1, 1); string key = list.First(t => t.value == name.Substring(0, name.Length - 1)).label; var mesTableSelfDetialModel = leftData.Where(t => t.info_name == key && t.index == int.Parse(index) - 1).FirstOrDefault(); if (mesTableSelfDetialModel != null) { if (string.IsNullOrEmpty(mesTableSelfDetialModel.id)) { mesTableSelfDetialModel.id = Guid.NewGuid().ToString(); mesTableSelfDetialModel.belong_to = leftbelong_to; } mesTableSelfDetialModel.check_result = textBox.Text; } } } catch { } } private void UpdateUi(Grid grid) { Dispatcher.Invoke(() => { double width = grid.GetValidWidth(); double widthCount = grid.ColumnDefinitions.Count; var lineWidth = width / widthCount; double height = grid.GetValidHeight(); double heightCount = grid.RowDefinitions.Count; var lineHeight = height / heightCount; foreach (var item in grid.Children) { if (item is ComboBox comboBox) { comboBox.Width = lineWidth - 10; comboBox.Height = lineHeight - 10; if (string.IsNullOrEmpty(LProductName)) { comboBox.IsEnabled = false; } else { comboBox.IsEnabled = !leftmesTableSelf.IsFinal; } } if (item is TextBox textBox) { textBox.Width = lineWidth - 10; textBox.Height = lineHeight - 10; if (string.IsNullOrEmpty(LProductName)) { textBox.IsReadOnly = false; } else { textBox.IsEnabled = !leftmesTableSelf.IsFinal; } } } this.Commit.Visibility = leftmesTableSelf.IsFinal ? Visibility.Collapsed : Visibility.Visible; this.IsFinalSubmit.Visibility = this.Commit.Visibility; this.Add.Visibility = this.Commit.Visibility; }); } private void ToggleButton_Click(object sender, RoutedEventArgs e) { if (((ToggleButton)sender).TemplatedParent is ComboBox comboBox) { comboBox.IsDropDownOpen = !comboBox.IsDropDownOpen; } } private void MakeHeaderData(Grid grid) { grid.Children.Clear(); grid.ColumnDefinitions.Clear(); grid.RowDefinitions.Clear(); for (var i = 0; i <= 7; i++) { if (i != 7) { grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1.0, GridUnitType.Star) }); } } for (var i = 0; i <= 2; i++) { if (i != 2) { grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.0, GridUnitType.Star) }); } } for (var i = 0; i <= 7; i++) { var line = new Line() { Name = $"{grid.Name}YLine{i}", Y1 = 1.0, HorizontalAlignment = i == 7 ? HorizontalAlignment.Right : HorizontalAlignment.Left, Stroke = Brushes.Black, StrokeThickness = 1.0, Stretch = Stretch.Fill, }; Grid.SetColumn(line, i); Grid.SetRowSpan(line, 99); grid.Children.Add(line); } for (var i = 0; i <= 2; i++) { var line = new Line() { Name = $"{grid.Name}XLine{i}", X1 = 1.0, VerticalAlignment = i == 2 ? VerticalAlignment.Bottom : VerticalAlignment.Top, Stroke = Brushes.Black, StrokeThickness = 1.0, Stretch = Stretch.Fill, }; Grid.SetRow(line, i); if (i == 1) { Grid.SetColumn(line, 1); Grid.SetColumnSpan(line, 99); } Grid.SetColumnSpan(line, 99); grid.Children.Add(line); } var productBlock = new TextBlock() { Text = "项目", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, FontSize = 20 }; Grid.SetColumn(productBlock, 0); Grid.SetRow(productBlock, 0); Grid.SetRowSpan(productBlock, 2); grid.Children.Add(productBlock); double timeHeight = LineHeight; double timeWidth = LineWidth; for (var i = 1; i <= 6; i++) { var hearBlock = new TextBlock() { Text = "检查时间", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, FontSize = 20 }; Grid.SetColumn(hearBlock, i); Grid.SetRow(hearBlock, 0); grid.Children.Add(hearBlock); #region 头部 var stackPanel = new StackPanel() { Orientation = Orientation.Horizontal, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 0, 0, 0) }; var startHour = new ComboBox() { Name = $"{grid.Name}Hour{i}", ItemsSource = _hours, SelectedIndex = 0, FontSize = 15, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(0, 0, 0, 0) }; startHour.SelectionChanged += SelectionChanged; stackPanel.Children.Add(startHour); var startBlock = new TextBlock() { Text = ":", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, FontSize = 20 }; stackPanel.Children.Add(startBlock); var startMinute = new ComboBox() { Name = $"{grid.Name}Minute{i}", ItemsSource = _minutes, SelectedIndex = 0, FontSize = 15, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(0, 0, 0, 0) }; startMinute.SelectionChanged += SelectionChanged; stackPanel.Children.Add(startMinute); Grid.SetColumn(stackPanel, i); Grid.SetRow(stackPanel, 1); grid.Children.Add(stackPanel); #endregion } } private void SelectionChanged(object sender, SelectionChangedEventArgs e) { try { if (isUpdate) { return; } if (sender is ComboBox comboBox) { string name = comboBox.Name.Replace("Left", "").Replace("Right", ""); string index = name.Substring(name.Length - 1, 1); string Hour = "00"; string Minute = "00"; if (comboBox.Name.Contains("Hour") || comboBox.Name.Contains("Minute")) { if (comboBox.Name.Contains("Left")) { foreach (var item in Left.Children) { if (item is StackPanel stackPanel) { foreach (var child in stackPanel.Children) { if (child is ComboBox childComboBox) { if (childComboBox.Name.Contains("Hour") && childComboBox.Name.Contains(index)) { Hour = childComboBox.SelectedItem.ToString(); } else if (childComboBox.Name.Contains("Minute") && childComboBox.Name.Contains(index)) { Minute = childComboBox.SelectedItem.ToString(); } } } } } leftData.Where(t => t.index == int.Parse(index) - 1).ForEach(t => { t.check_time_s = Hour + ":" + Minute; }); } else if (comboBox.Name.Contains("Left")) { foreach (var item in Right.Children) { if (item is StackPanel stackPanel) { foreach (var child in stackPanel.Children) { if (child is ComboBox childComboBox) { if (childComboBox.Name.Contains("Hour") && childComboBox.Name.Contains(index)) { Hour = childComboBox.SelectedItem.ToString(); } else if (childComboBox.Name.Contains("Minute") && childComboBox.Name.Contains(index)) { Minute = childComboBox.SelectedItem.ToString(); } } } } } rightData.Where(t => t.index == int.Parse(index) - 1).ForEach(t => { t.check_time_s = Hour + ":" + Minute; }); } } else { string key = list.First(t => t.value == name.Substring(0, name.Length - 1)).label; if (comboBox.Name.Contains("Left")) { var mesTableSelfDetialModel = leftData.Where(t => t.info_name == key && t.index == int.Parse(index) - 1).FirstOrDefault(); if (mesTableSelfDetialModel != null) { if (string.IsNullOrEmpty(mesTableSelfDetialModel.id)) { mesTableSelfDetialModel.id = Guid.NewGuid().ToString(); mesTableSelfDetialModel.belong_to = leftbelong_to; } mesTableSelfDetialModel.check_result = comboBox.SelectedItem.ToString(); } string hour = string.Empty; string minute = string.Empty; foreach (var item in Left.Children) { if (item is StackPanel stackPanel) { foreach (var child in stackPanel.Children) { if (child is ComboBox childComboBox) { if (childComboBox.Name.Contains("Hour") && childComboBox.Name.Contains(index)) { hour = childComboBox.SelectedItem.ToString(); } else if (childComboBox.Name.Contains("Minute") && childComboBox.Name.Contains(index)) { minute = childComboBox.SelectedItem.ToString(); } } } } } leftData.Where(t => t.index == int.Parse(index) - 1).ForEach(t => { t.check_time_s = hour + ":" + minute; }); } else if (comboBox.Name.Contains("Left")) { var mesTableSelfDetialModel = rightData.Where(t => t.info_name == key && t.index == int.Parse(index)).FirstOrDefault(); if (mesTableSelfDetialModel != null) { if (string.IsNullOrEmpty(mesTableSelfDetialModel.id)) { mesTableSelfDetialModel.id = Guid.NewGuid().ToString(); mesTableSelfDetialModel.belong_to = rightbelong_to; } mesTableSelfDetialModel.check_result = comboBox.SelectedItem.ToString(); } string hour = string.Empty; string minute = string.Empty; foreach (var item in Left.Children) { if (item is StackPanel stackPanel) { foreach (var child in stackPanel.Children) { if (child is ComboBox childComboBox) { if (childComboBox.Name.Contains("Hour") && childComboBox.Name.Contains(index)) { hour = childComboBox.SelectedItem.ToString(); } else if (childComboBox.Name.Contains("Minute") && childComboBox.Name.Contains(index)) { minute = childComboBox.SelectedItem.ToString(); } } } } } rightData.Where(t => t.index == int.Parse(index) - 1).ForEach(t => { t.check_time_s = hour + ":" + minute; }); } } } } catch { } } private void Refresh_Click(object sender, RoutedEventArgs e) { LoadData(); } private void Add_Click(object sender, RoutedEventArgs e) { LoadData(true); } private void Submit_Click(object sender, RoutedEventArgs e) { bool isSuccess = false; string isFinal = "0"; if (sender is Button button) { isFinal = button.Content == "最终提交" ? "1" : "0"; } if (isFinal == "1") { var result = MessageBox.Show("是否将报表最终提交?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question); if(result != MessageBoxResult.Yes) { return; } } var tempLeftData = dbService.GetMesTableSelfDetial(leftbelong_to, 6); var tempRightData = dbService.GetMesTableSelfDetial(rightbelong_to, 6); leftData.ForEach(t => { t.info_name = t.info_name.Replace("___", "/"); }); rightData.ForEach(t => { t.info_name = t.info_name.Replace("___", "/"); }); foreach (var item in leftData) { int resultLeft = 0; if (item.table_line == 0) { item.table_line = 1; } if (string.IsNullOrEmpty(item.id)) { continue; } var mesTableSelfDetialModel = tempLeftData.FirstOrDefault(t => t.id == item.id); if (mesTableSelfDetialModel == null) { resultLeft = dbService.InsertMesTableSelfDetial(item); } else { resultLeft = dbService.UpdateMesTableSelfDetial(item); } if (resultLeft > 0) { isSuccess = true; } } foreach (var item in rightData) { int resultRight = 0; if (item.table_line == 0) { item.table_line = 1; } if (string.IsNullOrEmpty(item.id)) { continue; } var mesTableSelfDetialModel = tempRightData.FirstOrDefault(t => t.id == item.id); if (mesTableSelfDetialModel == null) { resultRight = dbService.InsertMesTableSelfDetial(item); } else { resultRight = dbService.UpdateMesTableSelfDetial(item); } if (resultRight > 0) { isSuccess = true; } } dbService.UpdateMesTableSelf(leftbelong_to, "", LoginUser.UserName, isFinal); //dbService.UpdateMesTableSelf(rightbelong_to, "", LoginUser.UserName); if (isSuccess) { MessageBox.Show("保存成功!"); } else { MessageBox.Show("保存失败!"); LogHelper.instance.log.Error("[Error] 保存失败!"); } LoadData(); } private void Close_Click(object sender, RoutedEventArgs e) { this.Close(); } //private void LeftCheckDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e) //{ // if (sender is DatePicker date) // { // this.LeftCheckDate.Text = date.SelectedDate.Value.ToString("yyyy/MM/dd"); // //this.RightCheckDate.Text = DateTime.Parse(this.LeftCheckDate.Text).AddDays(1).ToString("yyyy/MM/dd"); // LoadData(); // } //} private void LeftCheckDate_SelectedDateChanged_1(object sender, SelectionChangedEventArgs e) { try { this.date = this.LeftCheckDate.SelectedDate.Value.ToString("yyyy-MM-dd"); DataTable dataTable = dbService.GetProOrderWorkorder(deviceCode, date); List orderWorks = new List(); if (dataTable == null || dataTable.Rows.Count == 0) { LogHelper.instance.log.Error("没有查询到工单信息!"); MessageBox.Show("没有查询到工单信息!"); } else { foreach (DataRow row in dataTable.Rows) { if (orderWorks.Where(t => t.WorkName == row["product_name"].ToString()).Any()) { continue; } orderWorks.Add(new OrderWork() { WorkId = row["workorder_id"].ToString(), WorkName = row["product_name"].ToString(), }); } } this.LeftProductName.ItemsSource = orderWorks.Distinct(); this.LeftProductName.Items.Refresh(); this.workId = string.Empty; this.LProductName = string.Empty; LoadData(); } catch (Exception ex) { LogHelper.instance.log.Error("首检记录获取工单出现异常!" + ex.Message); } } private void LeftProductName_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (sender is ComboBox comboBox) { if (comboBox.SelectedItem is OrderWork orderWork) { this.workId = orderWork.WorkId; this.LProductName = orderWork.WorkName; } } LoadData(); } } }