diff --git a/shangjian/XGLFinishPro/Views/weighWindows.xaml b/shangjian/XGLFinishPro/Views/weighWindows.xaml
index 7ce90d2..32c9aa4 100644
--- a/shangjian/XGLFinishPro/Views/weighWindows.xaml
+++ b/shangjian/XGLFinishPro/Views/weighWindows.xaml
@@ -123,7 +123,7 @@
-
+
@@ -137,10 +137,7 @@
-
-
-
+
+
+
+
+
-
-
+
-
+
+
+
+
@@ -210,12 +216,22 @@
@@ -232,7 +248,7 @@
-
+
diff --git a/shangjian/XGLFinishPro/Views/weighWindows.xaml.cs b/shangjian/XGLFinishPro/Views/weighWindows.xaml.cs
index 9709f1c..954a30f 100644
--- a/shangjian/XGLFinishPro/Views/weighWindows.xaml.cs
+++ b/shangjian/XGLFinishPro/Views/weighWindows.xaml.cs
@@ -5,27 +5,16 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.IO.Ports;
-using System.Linq;
-using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Shapes;
using System.Windows.Threading;
using XGL.Dats.DBServiceFinishProd;
-using XGL.Models;
-using XGL.Models.Model.OrderPrepare;
-using System.Text.RegularExpressions;
using System.Configuration;
+using CommonFunc;
namespace XGLFinishPro.Views
{
@@ -34,7 +23,7 @@ namespace XGLFinishPro.Views
///
public partial class weighWindows : UserControl
{
- Dispatcher dispatcher;
+ Dispatcher dispatcher ;
FinishProdDBService userDbWareHouse = new FinishProdDBService();
static SerialPort serialPort;
public CheckTaskModel checkTaskModel = new CheckTaskModel();//当前选择的任务
@@ -50,17 +39,24 @@ namespace XGLFinishPro.Views
///
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
- var dataTable = userDbWareHouse.WeighingTask("");
+ try
+ {
+ var dataTable = userDbWareHouse.WeighingTask("");
- if (dataTable != null && dataTable.Rows.Count > 0)
- {
- // 绑定 DataTable 到 DataGrid
- WeighingTaskDateTable.ItemsSource = dataTable.DefaultView;
+ if (dataTable != null && dataTable.Rows.Count > 0)
+ {
+ // 绑定 DataTable 到 DataGrid
+ WeighingTaskDateTable.ItemsSource = dataTable.DefaultView;
+ }
+ else
+ {
+ // 清空 DataGrid
+ WeighingTaskDateTable.ItemsSource = null;
+ }
}
- else
+ catch (Exception ex)
{
- // 清空 DataGrid
- WeighingTaskDateTable.ItemsSource = null;
+ LogHelper.instance.log.Error("初始化发生异常:" + ex.Message);
}
}
///
@@ -85,7 +81,6 @@ namespace XGLFinishPro.Views
}
Button_Click_2(null, null);
}
-
///
/// 称重
///
@@ -93,95 +88,101 @@ namespace XGLFinishPro.Views
///
private void Button_Click_1(object sender, RoutedEventArgs e)
{
-
- if (jianyanwuliao.Text.IsNullOrEmpty() || jianyanjiedian.Text.IsNullOrEmpty() || renwubianhao.Text.IsNullOrEmpty() || guizemingcheng.Text.IsNullOrEmpty())
- {
- MessageBox.Show("数据不完整,无法称重!!");
- }
- else
- {
- // 获取当前应用程序的Dispatcher
- dispatcher = Application.Current.Dispatcher;
- // 创建一个新的SerialPort实例
- serialPort = new SerialPort();
- string portName = ConfigurationManager.AppSettings["weigh"];
- if (!string.IsNullOrEmpty(portName))
- {
- serialPort.PortName = portName;
- }
- // 设置串口号和波特率
- //serialPort.PortName = "COM12"; // 串口号根据实际情况设置
- serialPort.BaudRate = 9600; // 波特率根据实际情况设置
- // 设置其他串口参数,如数据位、校验位等
- serialPort.DataBits = 8;
- serialPort.Parity = Parity.None;
- serialPort.StopBits = StopBits.One;
- try
- {
- serialPort.Open();
- Console.WriteLine("串口已打开");
- lianjiezhuangtai.Text = "已连接";
- serialPort.Write(new byte[] { 0x1B, (byte)Signal.Print }, 0, 2);
- Task.Run(() => ReadDataInBackground());
- }
- catch (Exception ex)
- {
- Console.WriteLine("打开串口时出错:" + ex.Message);
- }
- Console.ReadLine(); // 阻塞主线程,保持程序运行
- }
-
- void ReadDataInBackground()
+ try
{
- try
+ if (jianyanwuliao.Text.IsNullOrEmpty() || jianyanjiedian.Text.IsNullOrEmpty() || renwubianhao.Text.IsNullOrEmpty() || guizemingcheng.Text.IsNullOrEmpty())
{
- while (true)
+ MessageBox.Show("数据不完整,无法称重!!");
+ }
+ else
+ {
+ // 获取当前应用程序的Dispatcher
+ dispatcher = Application.Current.Dispatcher;
+ // 创建一个新的SerialPort实例
+ serialPort = new SerialPort();
+ string portName = ConfigurationManager.AppSettings["weigh"];
+ if (!string.IsNullOrEmpty(portName))
{
- string data = serialPort.ReadExisting();
- Thread.Sleep(200);
- if (!string.IsNullOrEmpty(data))
- {
+ serialPort.PortName = portName;
+ }
+ // 设置串口号和波特率
+ //serialPort.PortName = "COM12"; // 串口号根据实际情况设置
+ serialPort.BaudRate = 9600; // 波特率根据实际情况设置
- Match match1 = Regex.Match(data, @"(\d+\.\d+)");
- string bb = match1.Groups[1].Value;
- upDateDate(bb);
- UpdateUI(bb);
- break; // 读到数据后跳出循环
+ // 设置其他串口参数,如数据位、校验位等
+ serialPort.DataBits = 8;
+ serialPort.Parity = Parity.None;
+ serialPort.StopBits = StopBits.One;
+ try
+ {
+ serialPort.Open();
+ Console.WriteLine("串口已打开");
+ lianjiezhuangtai.Text = "已连接";
+ serialPort.Write(new byte[] { 0x1B, (byte)Signal.Print }, 0, 2);
+ Task.Run(() => ReadDataInBackground());
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("打开串口时出错:" + ex.Message);
+ }
+ Console.ReadLine(); // 阻塞主线程,保持程序运行
+ }
+
+ void ReadDataInBackground()
+ {
+ try
+ {
+ while (true)
+ {
+ string data = serialPort.ReadExisting();
+ Thread.Sleep(200);
+ if (!string.IsNullOrEmpty(data))
+ {
+
+ Match match1 = Regex.Match(data, @"(\d+\.\d+)");
+ string bb = match1.Groups[1].Value;
+ upDateDate(bb);
+ UpdateUI(bb);
+ break; // 读到数据后跳出循环
+ }
}
}
- }
- catch (Exception ex)
- {
- Console.WriteLine("读取串口数据时出错:" + ex.Message);
- }
- finally
- {
- ClosePort();
- }
- }
- void UpdateUI(string data)
- {
- // 使用Dispatcher.Invoke确保在UI线程上执行更新操作
- dispatcher.Invoke(() =>
- {
- // 更新UI控件
- zhongliang.Text = data;
- });
- }
-
-
- void ClosePort()
- {
- if (serialPort != null && serialPort.IsOpen)
- {
- serialPort.Close();
- Console.WriteLine("串口已关闭");
- Dispatcher.Invoke(() =>
+ catch (Exception ex)
{
- lianjiezhuangtai.Text = "未连接";
+ Console.WriteLine("读取串口数据时出错:" + ex.Message);
+ }
+ finally
+ {
+ ClosePort();
+ }
+ }
+ void UpdateUI(string data)
+ {
+ // 使用Dispatcher.Invoke确保在UI线程上执行更新操作
+ dispatcher.Invoke(() =>
+ {
+ // 更新UI控件
+ zhongliang.Text = data;
});
}
+ void ClosePort()
+ {
+ if (serialPort != null && serialPort.IsOpen)
+ {
+ serialPort.Close();
+ Console.WriteLine("串口已关闭");
+ Dispatcher.Invoke(() =>
+ {
+ lianjiezhuangtai.Text = "未连接";
+ });
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+
+ LogHelper.instance.log.Error("称重发生异常:" + ex.Message);
}
}
///
@@ -190,26 +191,35 @@ namespace XGLFinishPro.Views
///
public void upDateDate(string Date)
{
- // 将数据保存
- CheckTaskModel newItem = new CheckTaskModel() { material_name = Date };
- Dispatcher.Invoke(() =>
+ try
{
- zhongDate.Items.Add(newItem);
- });
- if (string.IsNullOrEmpty(checkTaskModel.actual_value))
- {
- checkTaskModel.actual_value = $"[\"{Date}\"]";
- }
- else
- {
- // 去除字符串开头和结尾的方括号
- checkTaskModel.actual_value = checkTaskModel.actual_value.Trim(']');
+ // 将数据保存
+ CheckTaskModel newItem = new CheckTaskModel() { material_name = Date };
+ // 获取当前应用程序的Dispatcher
+ dispatcher = Application.Current.Dispatcher;
+ Dispatcher.Invoke(() =>
+ {
+ zhongDate.Items.Add(newItem);
+ });
+ if (string.IsNullOrEmpty(checkTaskModel.actual_value))
+ {
+ checkTaskModel.actual_value = $"[\"{Date}\"]";
+ }
+ else
+ {
+ // 去除字符串开头和结尾的方括号
+ checkTaskModel.actual_value = checkTaskModel.actual_value.Trim(']');
- // 在字符串末尾添加逗号和aaa的值
- checkTaskModel.actual_value += $", \"{Date}\"]";
+ // 在字符串末尾添加逗号和aaa的值
+ checkTaskModel.actual_value += $", \"{Date}\"]";
+ }
+ userDbWareHouse.InsertCheckTaskDetail(checkTaskModel.actual_value, checkTaskModel.record_id);//保存称重数据
+ Button_Click_2(null, null);
+ }
+ catch (Exception ex)
+ {
+ LogHelper.instance.log.Error("称重更新数据库发生异常:" + ex.Message);
}
- userDbWareHouse.InsertCheckTaskDetail(checkTaskModel.actual_value, checkTaskModel.record_id);//保存称重数据
- Button_Click_2(null, null);
}
///
/// 查询数据
@@ -219,41 +229,48 @@ namespace XGLFinishPro.Views
private void Button_Click_2(object sender, RoutedEventArgs e)
{
string wher = "";
- // 使用Dispatcher.Invoke确保在UI线程上执行更新操作
- dispatcher.Invoke(() =>
+ try
{
- // 更新UI控件
- if (!renwubianhao1.Text.IsNullOrEmpty())
+ // 获取当前应用程序的Dispatcher
+ dispatcher = Application.Current.Dispatcher;
+ // 使用Dispatcher.Invoke确保在UI线程上执行更新操作
+ dispatcher.Invoke(() =>
{
- wher += " and qct.check_no LIKE '%" + renwubianhao1.Text + "%'";
- }
- if (!jianyanjiedian1.Text.IsNullOrEmpty())
- {
- wher += " and qt.check_name LIKE '%" + jianyanjiedian1.Text + "%'";
- }
- if (!jianyanwuliao1.Text.IsNullOrEmpty())
- {
- wher += " and qct.material_name LIKE '%" + jianyanwuliao1.Text + "%'";
- }
- if (!dateStart.Text.IsNullOrEmpty())
- {
- wher += " and qct.income_time='" + dateStart.Text + "'";
- }
- var dataTable = userDbWareHouse.WeighingTask(wher);
- if (dataTable != null && dataTable.Rows.Count > 0)
- {
- // 绑定 DataTable 到 DataGrid
- WeighingTaskDateTable.ItemsSource = null;
- WeighingTaskDateTable.ItemsSource = dataTable.DefaultView;
- }
- else
- {
- // 清空 DataGrid
- WeighingTaskDateTable.ItemsSource = null;
- }
- });
-
-
+ // 更新UI控件
+ if (!renwubianhao1.Text.IsNullOrEmpty())
+ {
+ wher += " and qct.check_no LIKE '%" + renwubianhao1.Text + "%'";
+ }
+ if (!jianyanjiedian1.Text.IsNullOrEmpty())
+ {
+ wher += " and qt.check_name LIKE '%" + jianyanjiedian1.Text + "%'";
+ }
+ if (!jianyanwuliao1.Text.IsNullOrEmpty())
+ {
+ wher += " and qct.material_name LIKE '%" + jianyanwuliao1.Text + "%'";
+ }
+ if (!dateStart.Text.IsNullOrEmpty())
+ {
+ wher += " and qct.income_time='" + dateStart.Text + "'";
+ }
+ var dataTable = userDbWareHouse.WeighingTask(wher);
+ if (dataTable != null && dataTable.Rows.Count > 0)
+ {
+ // 绑定 DataTable 到 DataGrid
+ WeighingTaskDateTable.ItemsSource = null;
+ WeighingTaskDateTable.ItemsSource = dataTable.DefaultView;
+ }
+ else
+ {
+ // 清空 DataGrid
+ WeighingTaskDateTable.ItemsSource = null;
+ }
+ });
+ }
+ catch (Exception ex)
+ {
+ LogHelper.instance.log.Error("查询数据发生异常:" + ex.Message);
+ }
}
///
/// 表格双击事件
@@ -262,49 +279,55 @@ namespace XGLFinishPro.Views
///
private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
- // 获取选中行的索引
- int selectedIndex = WeighingTaskDateTable.SelectedIndex;
- if (zhongDate.Items.Count != 0)
+ try
{
- zhongDate.Items.Clear();
- zhongDate.ItemsSource = null;
- }
- // 检查是否选中了行
- if (selectedIndex >= 0 && selectedIndex < WeighingTaskDateTable.Items.Count)
- {
- // 获取选中行的数据项
- var selectedRow = WeighingTaskDateTable.Items[selectedIndex] as DataRowView;
-
- // 将选中行的数据项赋给控件
- jianyanwuliao.Text = selectedRow["material_name"].ToString();
- jianyanjiedian.Text = selectedRow["check_name"].ToString();
- renwubianhao.Text = selectedRow["check_no"].ToString();
- guizemingcheng.Text = selectedRow["rule_name"].ToString();
-
- checkTaskModel.check_name = selectedRow["check_name"].ToString();
- checkTaskModel.material_name = selectedRow["material_name"].ToString();
- checkTaskModel.check_no = selectedRow["check_no"].ToString();
- checkTaskModel.rule_name = selectedRow["rule_name"].ToString();
- checkTaskModel.material_code = selectedRow["material_code"].ToString();
- checkTaskModel.record_id = selectedRow["record_id"].ToString();
- checkTaskModel.actual_value = selectedRow["actual_value"].ToString();
- if (!selectedRow["actual_value"].ToString().IsNullOrEmpty())
+ // 获取选中行的索引
+ int selectedIndex = WeighingTaskDateTable.SelectedIndex;
+ if (zhongDate.Items.Count != 0)
{
- List stringList = JsonConvert.DeserializeObject>(selectedRow["actual_value"].ToString());
- if (stringList.Count != 0)
+ zhongDate.Items.Clear();
+ zhongDate.ItemsSource = null;
+ }
+ // 检查是否选中了行
+ if (selectedIndex >= 0 && selectedIndex < WeighingTaskDateTable.Items.Count)
+ {
+ // 获取选中行的数据项
+ var selectedRow = WeighingTaskDateTable.Items[selectedIndex] as DataRowView;
+
+ // 将选中行的数据项赋给控件
+ jianyanwuliao.Text = selectedRow["material_name"].ToString();
+ jianyanjiedian.Text = selectedRow["check_name"].ToString();
+ renwubianhao.Text = selectedRow["check_no"].ToString();
+ guizemingcheng.Text = selectedRow["rule_name"].ToString();
+
+ checkTaskModel.check_name = selectedRow["check_name"].ToString();
+ checkTaskModel.material_name = selectedRow["material_name"].ToString();
+ checkTaskModel.check_no = selectedRow["check_no"].ToString();
+ checkTaskModel.rule_name = selectedRow["rule_name"].ToString();
+ checkTaskModel.material_code = selectedRow["material_code"].ToString();
+ checkTaskModel.record_id = selectedRow["record_id"].ToString();
+ checkTaskModel.actual_value = selectedRow["actual_value"].ToString();
+ if (!selectedRow["actual_value"].ToString().IsNullOrEmpty())
{
- //List materialList = new List();
- foreach (var item in stringList)
+ List stringList = JsonConvert.DeserializeObject>(selectedRow["actual_value"].ToString());
+ if (stringList.Count != 0)
{
- //materialList.Add(new CheckTaskModel { material_name = item });
- zhongDate.Items.Add(new CheckTaskModel { material_name = item });
+ //List materialList = new List();
+ foreach (var item in stringList)
+ {
+ //materialList.Add(new CheckTaskModel { material_name = item });
+ zhongDate.Items.Add(new CheckTaskModel { material_name = item });
+ }
+ //zhongDate.Items.Add(materialList);
}
- //zhongDate.Items.Add(materialList);
}
}
}
-
+ catch (Exception ex)
+ {
+ LogHelper.instance.log.Error("表格双击事件发生异常:" + ex.Message);
+ }
}
///
/// 表格删除按钮
@@ -313,22 +336,29 @@ namespace XGLFinishPro.Views
///
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
- var button = sender as Button;
- var dataContext = button?.DataContext;
- if (dataContext != null && dataContext is CheckTaskModel)
+ try
{
- var item = (CheckTaskModel)dataContext;
- string materialName = item.material_name;
- // 从 DataGrid 的 ItemsSource 中移除该项
- zhongDate.Items.Remove(item); // 从 actual_value 中移除 materialName
- checkTaskModel.actual_value = RemoveMaterialNameFromActualValue(checkTaskModel.actual_value, materialName);
- if (checkTaskModel.actual_value=="[]")
+ var button = sender as Button;
+ var dataContext = button?.DataContext;
+ if (dataContext != null && dataContext is CheckTaskModel)
{
- checkTaskModel.actual_value = null;
+ var item = (CheckTaskModel)dataContext;
+ string materialName = item.material_name;
+ // 从 DataGrid 的 ItemsSource 中移除该项
+ zhongDate.Items.Remove(item); // 从 actual_value 中移除 materialName
+ checkTaskModel.actual_value = RemoveMaterialNameFromActualValue(checkTaskModel.actual_value, materialName);
+ if (checkTaskModel.actual_value == "[]")
+ {
+ checkTaskModel.actual_value = null;
+ }
+ userDbWareHouse.InsertCheckTaskDetail(checkTaskModel.actual_value, checkTaskModel.record_id);
+ Button_Click_2(null, null);
+ // 从数据源中移除该项
}
- userDbWareHouse.InsertCheckTaskDetail(checkTaskModel.actual_value, checkTaskModel.record_id);
- Button_Click_2(null, null);
- // 从数据源中移除该项
+ }
+ catch (Exception ex)
+ {
+ LogHelper.instance.log.Error(" 表格删除按钮发生异常:" + ex.Message);
}
}
private string RemoveMaterialNameFromActualValue(string actualValue, string materialName)
@@ -341,7 +371,6 @@ namespace XGLFinishPro.Views
private void pickerstart_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
-
}
}
public class motre
diff --git a/shangjian/XGLFinishPro/XGLFinishPro.csproj.user b/shangjian/XGLFinishPro/XGLFinishPro.csproj.user
index 865c607..51efb67 100644
--- a/shangjian/XGLFinishPro/XGLFinishPro.csproj.user
+++ b/shangjian/XGLFinishPro/XGLFinishPro.csproj.user
@@ -2,5 +2,12 @@
+
+
+
+
+
+ zh-CN
+ false
\ No newline at end of file