添加称重系统

20260122
zhaojian 2 years ago
parent f8cd3171f9
commit 11b2bdb866

Binary file not shown.

@ -1 +1 @@
480a3b974159ff526098f6d65536fd513e8930601ce13afba64b502e068040c0
87734e5521f63693b47ee067c370e002346211d3

@ -9,3 +9,15 @@ D:\WorkSpace\KHD\Project\Lanju\Lanju-client\shangjian\RestartApp\obj\Debug\Resta
D:\WorkSpace\KHD\Project\Lanju\Lanju-client\shangjian\RestartApp\obj\Debug\RestartApp.csproj.CopyComplete
D:\WorkSpace\KHD\Project\Lanju\Lanju-client\shangjian\RestartApp\obj\Debug\RestartApp.exe
D:\WorkSpace\KHD\Project\Lanju\Lanju-client\shangjian\RestartApp\obj\Debug\RestartApp.pdb
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\RestartApp.exe.config
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\RestartApp.exe
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\RestartApp.pdb
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\HtmlAgilityPack.dll
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\HtmlAgilityPack.pdb
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\bin\Debug\HtmlAgilityPack.xml
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.csproj.AssemblyReference.cache
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.csproj.SuggestedBindingRedirects.cache
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.csproj.CoreCompileInputs.cache
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.csproj.CopyComplete
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.exe
E:\workspace\LanJu\榄菊上位机\shangjian\RestartApp\obj\Debug\RestartApp.pdb

@ -12,6 +12,7 @@ using System.Data.SqlClient;
using MySql.Data.MySqlClient;
using CommonFunc.Tools;
using XGL.Models.Model;
using XGL.Models;
namespace XGL.Dats.DBServiceFinishProd
{
@ -3377,10 +3378,58 @@ left join basedata_plcsetting f on a.PlcId5=f.Id
}
return Items;
}
public DataTable WeighingTask(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select qt.check_name,");
strSql.Append(" qct.check_type, ");
strSql.Append(" qct.check_no,");
strSql.Append(" qct.material_code,");
strSql.Append(" qct.material_name, ");
strSql.Append(" qct.income_time, ");
strSql.Append(" qctd.rule_name, ");
strSql.Append(" qctd.record_id, ");
strSql.Append(" qctd.actual_value ");
strSql.Append("from qc_check_task qct ");
strSql.Append("left join qc_check_type qt on qt.order_code = qct.check_type ");
strSql.Append("left join qc_check_task_detail qctd on qctd.belong_to = qct.record_id ");
strSql.Append("left join qc_check_type_project qctp on qctd.type_project_id = qctp.id");
if (!string.IsNullOrWhiteSpace(strWhere))
{
strSql.Append(" where 1=1 " + strWhere);
strSql.Append(" and qctp.weight = '1' and qctp.del_flag = '0' and qct.del_flag = '0' and qt.del_flag = '0' and qctd.del_flag = '0'");
}
else
{
strSql.Append(" where qctp.weight = '1' and qctp.del_flag = '0' and qct.del_flag = '0' and qt.del_flag = '0' and qctd.del_flag = '0'");
}
DataSet dtset= Utils.netClientDBHelper.getDataSet(strSql.ToString());
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
{
return dtset.Tables[0];
}
return null;
}
public void InsertCheckTaskDetail(string value,string where)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("UPDATE qc_check_task_detail ");
strSql.Append("SET actual_value =");
if (value==null)
{
strSql.Append("NULL");
}
else
{
strSql.Append($"'{value}'");
}
strSql.Append(" WHERE record_id =");
strSql.Append($"'{where}'");
int rowsAffected = Utils.netClientDBHelper.executeUpdate(strSql.ToString());
}
// /// <summary>
// /// 获取物料bom列表

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XGL.Models
{
public class CheckTaskDetailModel
{
public string record_id { get; set; }
public string belong_to { get; set; }
public string order_num { get; set; }
public string rule_name { get; set; }
public string property_code { get; set; }
public string check_mode { get; set; }
public string check_tool { get; set; }
public string unit_code { get; set; }
public string check_standard { get; set; }
public string actual_value { get; set; }
public string status { get; set; }
public string remark { get; set; }
public string attr1 { get; set; }
public string attr2 { get; set; }
public string attr3 { get; set; }
public string attr4 { get; set; }
public string create_by { get; set; }
public DateTime create_time { get; set; }
public string update_by { get; set; }
public DateTime update_time { get; set; }
public string factory_code { get; set; }
public string del_flag { get; set; }
public string project_id { get; set; }
public string project_no { get; set; }
public string type_project_id { get; set; }
public string defect_code { get; set; }
public string defect_quality { get; set; }
public string defect_name { get; set; }
}
}

@ -84,6 +84,7 @@
<Compile Include="basedata_nodesettingModel.cs" />
<Compile Include="basedata_orderplanModel.cs" />
<Compile Include="basedata_plcsettingModel.cs" />
<Compile Include="CheckTaskDetailModel.cs" />
<Compile Include="common_auth_moduleModel.cs" />
<Compile Include="common_auth_modulepermissionModel.cs" />
<Compile Include="common_auth_permissionModel.cs" />

@ -11,8 +11,8 @@
<add key="SiteCode" value="1000" />
<!--设备编码-->
<add key="DeviceCode" value="XL01" />
<!--上位机类型 0:工单准备1成型机\shoupei2烘房,3:人员登录-->
<add key="ClientMode" value="3" />
<!--上位机类型 0:工单准备1成型机\shoupei2烘房,3:人员登录,4:称重系统-->
<add key="ClientMode" value="4" />
<add key="SerialPort" value="COM5" />

@ -96,16 +96,16 @@ namespace XGLFinishPro.FormItem
this.Index.Content = dryingRoomUC;
}
else if (Utils.GetAppSetting("ClientMode").Equals("3"))
{
weighWindows weighWindows = new weighWindows();
this.Index.Content = weighWindows;
}
else
{
LanJu_User lanJu_User = new LanJu_User();
this.Index.Content = lanJu_User;
}
else if (Utils.GetAppSetting("ClientMode").Equals("4"))
{
weighWindows weighWindows = new weighWindows();
this.Index.Content = weighWindows;
}
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)

@ -16,9 +16,9 @@
<Setter Property="TextBlock.TextAlignment" Value="Center" />
<Setter Property="TextBlock.FontSize" Value="22" />
</Style>
<convert:MyValueConverter x:Key="MyConverter"/>
<!--<convert:MyValueConverter x:Key="MyConverter"/>
<convert:OrderInOutConverter x:Key="TaskCodeConverter"/>
<convert:BtnBackGroundColorConverter x:Key="ButtonContentToBackgroundColorConverter"/>
<convert:BtnBackGroundColorConverter x:Key="ButtonContentToBackgroundColorConverter"/>-->
<SolidColorBrush x:Key="EvenRowBackground" Color="#E0E0E0"/>
<SolidColorBrush x:Key="OddRowBackground" Color="#FFFFFF"/>
<Style x:Key="DataGridRowStyle" TargetType="DataGridRow">

@ -5,10 +5,58 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:XGLFinishPro.Views"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:localDate="clr-namespace:XGLFinishPro.Tools"
Loaded="UserControl_Loaded"
mc:Ignorable="d"
Height="800" Width="1920">
<Grid Margin="0" Background="#404040">
<UserControl.Resources>
<!--日历样式-->
<Style TargetType="CalendarDayButton" x:Key="CalendarDayBtnStyle">
<Setter Property="FontSize" Value="18"></Setter>
</Style>
<Style x:Key="calendarWithGotToTodayStyle"
TargetType="{x:Type Calendar}">
<Setter Property="CalendarDayButtonStyle"
Value="{StaticResource CalendarDayBtnStyle}"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<Border>
<StackPanel Orientation="Vertical">
<StackPanel x:Name="PART_Root"
HorizontalAlignment="Center" Background="#FF878787">
<CalendarItem x:Name="PART_CalendarItem"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Style="{TemplateBinding CalendarItemStyle}"
Height="{TemplateBinding Height}"
/>
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="52"></ColumnDefinition>
<ColumnDefinition Width="26"></ColumnDefinition>
<ColumnDefinition Width="52"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock x:Name="PART_GoToday"
Width="40" Height="20"
Text="今天" FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Cursor="Hand" Foreground="#FFFFFFFF" />
<TextBlock Grid.Column="2" x:Name="PART_GoClear"
Width="40" Height="20"
Text="清空" FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center" Cursor="Hand" Foreground="#FFFFFFFF" />
</Grid>
</StackPanel>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid Margin="0" Background="Transparent">
<Border Background="White" Margin="10" BorderThickness="2" CornerRadius="4">
<Grid >
@ -27,7 +75,7 @@
<Label Background="White" BorderThickness="0" Content="称重" FontSize="14" HorizontalContentAlignment="Center" Margin="88,0,1631,285" Grid.Column="1" Panel.ZIndex="1" Grid.RowSpan="2"/>
<Label BorderThickness="0" Background="White" Content="称重历史" FontSize="14" HorizontalContentAlignment="Center" Margin="1319,0,420,292" Grid.Column="1" Panel.ZIndex="1" Grid.RowSpan="2"/>
<Label BorderThickness="0" Background="Red" Foreground="Black" Content="必须先选择检验规则后才能点称重,称重及上传" HorizontalContentAlignment="Center" Margin="450,283,1105,8" FontSize="10" Grid.Column="1" Panel.ZIndex="1" Grid.Row="1" Grid.RowSpan="2"/>
<Label BorderThickness="0" Background="Red" Foreground="Black" Content="必须先选择检验规则后才能点称重,称重及上传" HorizontalContentAlignment="Center" Margin="450,288,1105,3" FontSize="10" Grid.Column="1" Panel.ZIndex="1" Grid.Row="1" Grid.RowSpan="2"/>
<Grid Grid.Column="1" Margin="0,10,0,1" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="494*"/>
@ -46,42 +94,72 @@
</Grid.RowDefinitions>
<Label Content="1号称重设备" FontSize="14" Grid.Row="1" Margin="15,10,1078,53" Grid.RowSpan="2"></Label>
<Border BorderThickness="1" CornerRadius="4" BorderBrush="#404040" Width="70" Grid.Row="1" HorizontalAlignment="Left" Margin="132,14,0,6">
<TextBlock Text="连接" Name="lianjiezhuangtai" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock Text="连接" Name="lianjiezhuangtai" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</Border>
<Label Content="检验物料:" FontSize="14" Grid.Row="2" Margin="15,0,1082,0" ></Label>
<Border Grid.Row="2" Margin="132,6,711,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,0,1" HorizontalAlignment="Left" Width="360" ></TextBox>
<TextBox Name="jianyanwuliao" BorderThickness="0" Margin="1,1,0,1" HorizontalAlignment="Left" Width="360" ></TextBox>
</Border>
<Label Content="检验节点:" FontSize="14" Grid.Row="2" Margin="649,10,455,0" ></Label>
<Border Grid.Row="2" Margin="755,6,84,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
<TextBox Name="jianyanjiedian" BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
</Border>
<Label Content="任务编号:" FontSize="14" Grid.Row="3" Margin="15,6,1082,0" ></Label>
<Border Grid.Row="3" Margin="132,6,711,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" Width="360" ></TextBox>
<TextBox Name="renwubianhao" BorderThickness="0" Margin="1,1,1,1" Width="360" ></TextBox>
</Border>
<Label Content="规则属性:" FontSize="14" Grid.Row="3" Margin="649,10,455,0" ></Label>
<!--<Label Content="规则属性:" FontSize="14" Grid.Row="3" Margin="649,10,455,0" ></Label>
<Border Grid.Row="3" Margin="755,6,84,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
<TextBox Name="guizeshuxing" BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
</Border>-->
<Label Content="规则名称:" FontSize="14" Grid.Row="3" Margin="649,10,455,0" ></Label>
<Border Grid.Row="3" Margin="755,6,84,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox Name="guizemingcheng" BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
</Border>
<Label Content="规则名称:" FontSize="14" Grid.Row="4" Margin="15,6,1082,0" ></Label>
<Border Grid.Row="4" Margin="132,6,711,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
<Label Content="重 量(g):" FontSize="14" Grid.Row="4" Margin="15,6,1082,0" ></Label>
<Border Grid.Row="4" Margin="132,6,711,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox Name="zhongliang" BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
</Border>
<Label Content="重 量(g):" FontSize="14" Grid.Row="4" Margin="649,10,455,0" ></Label>
<Border Grid.Row="4" Margin="755,6,84,6" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" Width="360"></TextBox>
<Border BorderThickness="1" CornerRadius="3" BorderBrush="#404040" Background="#2F82E7" Grid.Row="5" Height="32" Margin="88,0,304,8" Width="80">
<Button Content="称 重" BorderThickness="0" FontSize="16" Foreground="White" Background="#2F82E7" Click="Button_Click_1"/>
</Border>
<Border BorderThickness="1" CornerRadius="3" BorderBrush="#404040" Grid.Row="5" Height="32" Margin="88,8,304,8" Width="80">
<Button Content="称重" BorderThickness="0" Background="Transparent" Margin="0,1,0,-1"/>
</Border>
<Border BorderThickness="1" CornerRadius="3" BorderBrush="#404040" Grid.Row="5" Height="32" Margin="200,1,1,1" Width="80">
<Button Content="去皮" BorderThickness="0" Background="Transparent"></Button>
<Border BorderThickness="1" CornerRadius="3" BorderBrush="#404040" Background="#2F82E7" Grid.Row="5" Height="32" Margin="200,-5,1,1" Width="80">
<Button Content="去皮" BorderThickness="0" FontSize="16" Foreground="White" Background="#2F82E7"/>
</Border>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#404040" Grid.Column="2" >
<Border BorderThickness="1" BorderBrush="#404040" Grid.Column="2" >
<DataGrid Margin="0,20,0,0" Name="zhongDate" >
<DataGrid.Resources>
<!-- 列名居中样式 -->
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="18"/>
</Style>
<!-- 内容居中样式 -->
<Style TargetType="DataGridCell" >
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<!--<DataGridTextColumn Binding="{Binding RowNumber}" Width="*" IsReadOnly="True" Header="序号" />-->
<DataGridTextColumn Binding="{Binding material_name}" Width="0.8*" IsReadOnly="True" Header="重量(g)" />
<DataGridTemplateColumn Width="0.2*" Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="删除" Click="DeleteButton_Click" Height="35" Width="60" Background="Aqua"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Border>
</Grid>
<Grid Grid.Row="3" Grid.Column="1">
@ -93,39 +171,76 @@
</Grid.RowDefinitions>
<Label BorderThickness="0" Background="White" Content="检验任务" FontSize="14" HorizontalContentAlignment="Center" Grid.Column="0" Panel.ZIndex="0" Grid.Row="0" Margin="69,-12,1588,99"/>
<Label Content="任务编号:" FontSize="14" Grid.Row="0" Margin="10,22,1750,56" ></Label>
<Border Grid.Row="0" Margin="112,20,1471,56" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" ></TextBox>
<Border Grid.Row="0" Margin="112,19,1471,55" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox Name="renwubianhao1" BorderThickness="0" Margin="1,1,1,1" ></TextBox>
</Border>
<Label Content="检验日期:" FontSize="14" Grid.Row="0" Margin="400,22,1357,56" ></Label>
<!--<Border Grid.Row="0" Margin="505,20,1066,56" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">-->
<hc:DatePicker x:Name="datepickerWorkDate" Grid.Row="0" Margin="505,20,1066,56"/>
<!--</Border>-->
<Border Margin="505,18,1066,0" Height="40" VerticalAlignment="Top" BorderThickness="1" BorderBrush="#404040" CornerRadius="4">
<localDate:UserDatePicker x:Name="dateStart" FontSize="18" BorderThickness="0" AlternativeCalendarStyle="{StaticResource calendarWithGotToTodayStyle}" SelectedDateFormat="Short" IsTodayHighlighted="True" VerticalContentAlignment="Center" Margin="0,0,0,-1" />
</Border>
<Label Content="检验节点:" FontSize="14" Grid.Row="0" Margin="10,68,1750,10" ></Label>
<Border Grid.Row="0" Margin="112,64,1471,10" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" ></TextBox>
<TextBox Name="jianyanjiedian1" BorderThickness="0" Margin="1,1,1,1" ></TextBox>
</Border>
<Label Content="检验物料:" FontSize="14" Grid.Row="0" Margin="400,68,1357,0" Height="36" VerticalAlignment="Top" ></Label>
<Border Grid.Row="0" Margin="505,64,1066,10" BorderBrush="#404040" BorderThickness="1" CornerRadius="4">
<TextBox BorderThickness="0" Margin="1,1,1,1" ></TextBox>
<TextBox Name="jianyanwuliao1" BorderThickness="0" Margin="1,1,1,1" ></TextBox>
</Border>
<Border BorderThickness="1" CornerRadius="4" BorderBrush="#404040" Grid.Row="0" Height="32" Margin="867,23,910,59" Width="80">
<Button Content="查询" BorderThickness="0" Background="Transparent"/>
<Border BorderThickness="1" CornerRadius="4" BorderBrush="#404040" Background="#2F82E7" Grid.Row="0" Height="32" Margin="867,23,910,59" Width="80">
<Button Content="查询" BorderThickness="0" FontSize="16" Foreground="White" Background="#2F82E7" Click="Button_Click_2"/>
</Border>
<Border BorderThickness="1" CornerRadius="4" BorderBrush="#404040" Grid.Row="0" Height="32" Margin="867,66,910,16" Width="80">
<Button Content="重置" BorderThickness="0" Background="Transparent"/>
<Border BorderThickness="1" CornerRadius="4" BorderBrush="#404040" Background="#2F82E7" Grid.Row="0" Height="32" Margin="867,66,910,16" Width="80">
<Button Content="重置" BorderThickness="0" FontSize="16" Foreground="White" Background="#2F82E7" Click="Button_Click"/>
</Border>
<DataGrid Grid.Row="1" Margin="10">
<DataGrid Grid.Row="1" Margin="10" Name="WeighingTaskDateTable" AutoGenerateColumns="False"
CanUserAddRows="False" CanUserDeleteRows="False"
CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False"
MouseDoubleClick="DataGrid_MouseDoubleClick" >
<DataGrid.Resources>
<!-- 列名居中样式 -->
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="18"/>
</Style>
<!-- 内容居中样式 -->
<Style TargetType="DataGridCell" >
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
</Style>
</DataGrid.Resources>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding id}" Width="*" Header="序号" />
<DataGridTextColumn Binding="{Binding MaterialCode}" Width="*" Header="检验节点" />
<DataGridTextColumn Binding="{Binding CreateTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}" Width="*" Header="检验日期" />
<DataGridTextColumn Binding="{Binding MaterialType}" Width="*" Header="任务编号" />
<DataGridTextColumn Binding="{Binding MaterialName}" Width="*" Header="检验物料" />
<DataGridTextColumn Binding="{Binding MaterialType}" Width="*" Header="物料描述" />
<!--<DataGridTextColumn Binding="{Binding RowNumber}" Width="*" IsReadOnly="True" Header="序号" />-->
<DataGridTextColumn Binding="{Binding check_name}" Width="*" IsReadOnly="True" Header="检验节点"/>
<DataGridTextColumn Binding="{Binding income_time,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}" IsReadOnly="True" Width="*" Header="检验日期" />
<DataGridTextColumn Binding="{Binding check_no}" Width="*" IsReadOnly="True" Header="任务编号" />
<DataGridTextColumn Binding="{Binding material_code}" Width="*" IsReadOnly="True" Header="检验物料" />
<DataGridTextColumn Binding="{Binding rule_name}" Width="*" IsReadOnly="True" Header="规则名称" />
<DataGridTextColumn Binding="{Binding material_name}" Width="*" IsReadOnly="True" Header="物料描述" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Border>
</Grid>

@ -1,18 +1,30 @@
using System;
using Google.Protobuf.WellKnownTypes;
using HandyControl.Tools.Extension;
using Newtonsoft.Json;
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;
namespace XGLFinishPro.Views
{
/// <summary>
@ -20,15 +32,378 @@ namespace XGLFinishPro.Views
/// </summary>
public partial class weighWindows : UserControl
{
Dispatcher dispatcher;
FinishProdDBService userDbWareHouse = new FinishProdDBService();
static SerialPort serialPort;
public CheckTaskModel checkTaskModel = new CheckTaskModel();//当前选择的任务
string CurrentWeighingData;
public weighWindows()
{
InitializeComponent();
}
/// <summary>
/// 初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
var dataTable = userDbWareHouse.WeighingTask("");
if (dataTable != null && dataTable.Rows.Count > 0)
{
// 绑定 DataTable 到 DataGrid
WeighingTaskDateTable.ItemsSource = dataTable.DefaultView;
}
else
{
// 清空 DataGrid
WeighingTaskDateTable.ItemsSource = null;
}
}
/// <summary>
/// 重置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click(object sender, RoutedEventArgs e)
{
jianyanwuliao.Text = null;
jianyanjiedian.Text = null;
renwubianhao.Text = null;
guizemingcheng.Text = null;
zhongliang.Text = null;
renwubianhao1.Text = null;
jianyanjiedian1.Text = null;
jianyanwuliao1.Text = null;
if (zhongDate.Items.Count != 0)
{
zhongDate.Items.Clear();
zhongDate.ItemsSource = null;
}
Button_Click_2(null, null);
}
/// <summary>
/// 称重
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
// 设置串口号和波特率
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
{
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(data);
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(() =>
{
lianjiezhuangtai.Text = "未连接";
});
}
}
}
/// <summary>
/// 称重更新数据库
/// </summary>
/// <param name="Date"></param>
public void upDateDate(string Date)
{
// 将数据保存
CheckTaskModel newItem = new CheckTaskModel() { material_name = Date };
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}\"]";
}
userDbWareHouse.InsertCheckTaskDetail(checkTaskModel.actual_value, checkTaskModel.record_id);//保存称重数据
Button_Click_2(null, null);
}
/// <summary>
/// 查询数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click_2(object sender, RoutedEventArgs e)
{
string wher = "";
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;
}
}
/// <summary>
/// 表格双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
// 获取选中行的索引
int selectedIndex = WeighingTaskDateTable.SelectedIndex;
if (zhongDate.Items.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<string> stringList = JsonConvert.DeserializeObject<List<string>>(selectedRow["actual_value"].ToString());
if (stringList.Count != 0)
{
//List<CheckTaskModel> materialList = new List<CheckTaskModel>();
foreach (var item in stringList)
{
//materialList.Add(new CheckTaskModel { material_name = item });
zhongDate.Items.Add(new CheckTaskModel { material_name = item });
}
//zhongDate.Items.Add(materialList);
}
}
}
}
/// <summary>
/// 表格删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
var dataContext = button?.DataContext;
if (dataContext != null && dataContext is CheckTaskModel)
{
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);
// 从数据源中移除该项
}
}
private string RemoveMaterialNameFromActualValue(string actualValue, string materialName)
{
// 解析 actualValue移除 materialName并返回更新后的值
var list = JsonConvert.DeserializeObject<List<string>>(actualValue);
list.Remove(materialName);
return JsonConvert.SerializeObject(list);
}
private void pickerstart_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
}
}
public class motre
{
public string material_name { get; set; }
}
public class CheckTaskModel
{
/// <summary>
/// 检验节点名称
/// </summary>
public string check_name { get; set; }
//public string CheckType { get; set; }
/// <summary>
/// 检验任务号
/// </summary>
public string check_no { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string material_code { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string material_name { get; set; }
/// <summary>
/// 检验日期
/// </summary>
public DateTime income_time { get; set; }
/// <summary>
/// 序号
/// </summary>
public string RowNumber { get; set; }
/// <summary>
/// 检测项ID
/// </summary>
public string record_id { get; set; }
/// <summary>
/// 检测项称量结果
/// </summary>
public string actual_value { get; set; }
/// <summary>
/// 检测项名称
/// </summary>
public string rule_name { get; set; }
}
public enum Signal
{
/// <summary>
/// 打印
/// </summary>
Print = 0x70,
/// <summary>
/// 校准
/// </summary>
Calibration = 0x71,
/// <summary>
/// 计数
/// </summary>
Count = 0x72,
/// <summary>
/// 单位转换
/// </summary>
UnitConvert = 0x73,
/// <summary>
/// 去皮重
/// </summary>
Tare = 0x74
}
}

Loading…
Cancel
Save