feat - 发卡器写入功能完善,前端样式修改

read_card
SoulStar 4 days ago
parent 5d2dbff2ac
commit 2ff635b052

@ -6,6 +6,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.134" />
<PackageReference Include="System.Text.Json" Version="10.0.5" />

@ -3,13 +3,15 @@ using System.Linq;
using System.Text;
using SQLite;
using SqlSugar;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SlnMesnac.Repository
{
///<summary>
///
///</summary>
public partial class real_readdata
public class real_readdata : ObservableObject
{
/// <summary>
/// Desc:
@ -75,12 +77,25 @@ namespace SlnMesnac.Repository
/// </summary>
public DateTime? writetime { get; set; }
private string _writestatus;
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public string writestatus { get; set; }
public string writestatus
{
get => _writestatus;
set
{
if (_writestatus != value)
{
SetProperty(ref _writestatus, value);
}
}
}
/// <summary>
/// Desc:

@ -172,13 +172,13 @@
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True"
Foreground="Black" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding objid}" Header="序号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding orderno}" Header="订单号" Width="1.2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding lineno}" Header="产线号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="1.1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding objid}" Header="序号" Width="100" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding orderno}" Header="订单号" Width="100" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding lineno}" Header="产线号" Width="100" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding readtime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="读取时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding writetime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="写入时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<!--<DataGridTextColumn Binding="{Binding readtime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="读取时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>-->
<DataGridTextColumn Binding="{Binding writetime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="写入时间" Width="180" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<!--<DataGridTextColumn Binding="{Binding writestatus}" Header="写入状态" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />-->
<DataGridTemplateColumn Header="写入状态" Width="1*">

@ -158,7 +158,8 @@ Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding
<TextBlock Text="{Binding RFIDConnectState,Mode=TwoWay}" FontSize="15" Style="{StaticResource RFIDCounnectStyle}" Margin="0,0,8,0"/>
<TextBlock Text="上次写入状态:" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
<TextBlock Text="{Binding LastWriteState,Mode=TwoWay}" FontSize="15" Style="{StaticResource SuccessTextStyle}" Margin="0,0,8,0"/>
<!--<TextBlock Text="成功" FontSize="15" Style="{StaticResource SuccessTextStyle}" Margin="0,0,8,0"/>-->
<TextBlock Text="状态:" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
<TextBlock Text="{Binding WorkState,Mode=TwoWay}" FontSize="15" Foreground="White" Margin="0,0,8,0"/>
</StackPanel>
@ -210,8 +211,8 @@ Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding
<Label Content="写入数量:" FontSize="15" Foreground="Black" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding WriteCount,Mode=TwoWay}" Width="100" Height="30" FontSize="15" Foreground="Black" Margin="0,0,0,0" />
<Button Content="生成编码" Width="100" Height="30" FontSize="15" Command="{Binding GenerateCodeCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="清除数据" Width="100" Height="30" FontSize="15" Command="{Binding ListClearCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="自动写入" Width="100" Height="30" FontSize="15" Command="{Binding AutoWriteCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="清除数据" Width="100" Height="30" FontSize="15" Command="{Binding ListClearCommand}" Background="OrangeRed" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<!--<Button Content="自动写入" Width="100" Height="30" FontSize="15" Command="{Binding AutoWriteCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>-->
</WrapPanel>
</Grid>
<!-- 数据表格绑定ViewModel中的历史记录 -->
@ -230,14 +231,14 @@ Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding serialno}" Header="编号" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding serialno}" Header="编号" Width="100" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="6*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding writestatus}" Header="状态" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTemplateColumn Header="操作" Width="2*">
<DataGridTextColumn Binding="{Binding writestatus}" Header="状态" Width="70" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTemplateColumn Header="操作" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="写入" Height="40" Width="100" Command="{Binding DataContext.RFIDWriteCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding}"/>
<Button Content="写入" Width="70" Height="30" FontSize="15" Background="DarkSeaGreen" Command="{Binding DataContext.RFIDWriteCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding}" Style="{StaticResource BUTTON_AGREE}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
@ -262,8 +263,8 @@ Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding
<Grid Grid.Row="0" >
<WrapPanel Orientation="Horizontal" ItemHeight="50">
<TextBlock Text="RFID写入记录" FontSize="15" VerticalAlignment="Center" Margin="10,0,0,0"/>
<Button Content="清除列表" Width="100" Height="30" FontSize="15" Command="{Binding HistoryClearCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="查看历史" Width="100" Height="30" FontSize="15" Command="{Binding HistoryPageCommand}" Background="#009999" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="清除列表" Width="100" Height="30" FontSize="15" Command="{Binding HistoryClearCommand}" Background="OrangeRed" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
<Button Content="查看历史" Width="100" Height="30" FontSize="15" Command="{Binding HistoryPageCommand}" Background="BlueViolet" Style="{StaticResource BUTTON_AGREE}" Margin="10,0,0,0"/>
</WrapPanel>
</Grid>
<!-- 数据表格绑定ViewModel中的历史记录 -->
@ -282,10 +283,10 @@ Content="查询" Width="200" Visibility="Hidden" FontSize="20" Command="{Binding
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding LineNumber}" Header="产线号" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding OriginalEPC}" Header="原始EPC" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding RFIDCode}" Header="RFID编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding WriteTime}" Header="写入时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding lineno}" Header="产线号" Width="70" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding writetime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="写入时间" Width="180" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>

@ -133,6 +133,22 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
}
}
/// <summary>
/// 工作状态
/// </summary>
private string _workState;
public string WorkState
{
get => _workState;
set
{
if (_workState != value)
{
SetProperty(ref _workState, value);
}
}
}
/// <summary>
/// RFID连接状态
/// </summary>
@ -262,6 +278,8 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
Items.Add(rfid.FilterData);
}
WorkState = "空闲";
Log.Information("RFID输送带系统启动");
}
@ -284,7 +302,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
PreparedWriteList.Add(new real_readdata()
{
objid = Guid.NewGuid().ToString(),
//objid = Guid.NewGuid().ToString(),
orderno = OrderNo,
lineno = LineNo,
bindno = BindNo,
@ -348,6 +366,8 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
/// </summary>
/// <param name="obj"></param>
private void RFIDWrite(object obj)
{
try
{
//获取设备编号
if (string.IsNullOrEmpty(QueryIsCheck.ToString().Trim()))
@ -369,7 +389,13 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
List<DeviceInfoConfig> DeviceInfos = appConfig.deviceInfoConfig.Where(x => x.Collectid == appConfig.StationCode && x.Name == QueryIsCheck.ToString().Trim() && x.Deleteflag == 0).ToList();
rfidList.FirstOrDefault(x => x.deviceid == DeviceInfos[0].Deviceid).Set_BeginIdentify().GetAwaiter().GetResult();
//rfidList.FirstOrDefault(x => x.deviceid == iCombineId)
WorkState = "盘点中";
}
catch (Exception ex)
{
Log.Error($"手动写入异常:{ex.Message}");
}
}
/// <summary>
@ -390,6 +416,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
return;
}
WorkState = "写入中";
//写入 三次重写
bool writeflag = await rfidList.FirstOrDefault(x => x.deviceid == iCombineId).Set_Write(tagInfos[0].EPC, NowReadData.rfidascii);
if (!writeflag)
@ -405,40 +432,36 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
Log.Error($"第三次写入失败");
MessageBox.Show("三次写入失败,请重新开始盘点");
LastWriteState = "失败";
//rfidList.FirstOrDefault(x => x.deviceid == iCombineId).Set_BeginIdentify().GetAwaiter().GetResult();
WorkState = "空闲";
return;
}
}
}
WorkState = "空闲";
NowReadData.rfidepc = tagInfos[0].EPCstring;
NowReadData.writetime = DateTime.Now;
NowReadData.writestatus = "已写入";
var a = dataService.Helper.Insert(NowReadData);
//刷新界面
//Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).RfidASCII = Encoding.ASCII.GetString(tagInfos[0].EPC);
//Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//RefreshEventArgs(iCombineId, tagInfos);
NowReadData.objid = Guid.NewGuid().ToString();
dataService.Helper.Insert(NowReadData);
int.TryParse(NowReadData.serialno, out int no);
App.Current.Dispatcher.Invoke(() =>
{
TempRecordList.Add(NowReadData);
PreparedWriteList[no - 1].writestatus = "已写入";
});
await Task.Run(async () =>
{
await Task.Delay(1000);
await rfidList.FirstOrDefault(x => x.deviceid == iCombineId)!.Set_BeginIdentify();
});
NowReadData = null!;
LastWriteState = "成功";
}
catch (Exception e)
{
Log.Error($"读结果准备写入时异常:{e.Message}");
}
finally
{
}
}
private void LoadDeviceInfo()

Loading…
Cancel
Save