From 7606da8535ffd2457e1d88d2951f6c2aa6d86541 Mon Sep 17 00:00:00 2001
From: CaesarBao <445720029@qq.com>
Date: Thu, 12 Dec 2024 10:46:07 +0800
Subject: [PATCH] =?UTF-8?q?LY5=E6=BA=90=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../.idea/.gitignore                          |  13 +
 .idea/.idea.MaterialTraceability/.idea/.name  |   1 +
 .../.idea/encodings.xml                       |   4 +
 .../.idea/indexLayout.xml                     |   8 +
 .../.idea.MaterialTraceability/.idea/vcs.xml  |   6 +
 .../UpLoadBusiness.cs                         |   2 +-
 MaterialTraceabilityUI/App.config             |   2 +-
 .../DieCuttingProcess.xaml.cs                 |  30 +-
 .../MaterialTraceabilityUI.csproj             |   7 +
 MaterialTraceabilityUI/SplitSfc.xaml.cs       |  10 +-
 .../ViewModel/MainWindowViewModel.cs          |   4 +
 MaterialTraceabilityUI/WriteInfo.xaml.cs      |   7 +-
 MaterialTraceabilityUI/intaglioPage.xaml      | 255 +++++++
 MaterialTraceabilityUI/intaglioPage.xaml.cs   | 685 ++++++++++++++++++
 MaterialTraceabilityUI/secondPage.xaml.cs     |   5 +-
 15 files changed, 1016 insertions(+), 23 deletions(-)
 create mode 100644 .idea/.idea.MaterialTraceability/.idea/.gitignore
 create mode 100644 .idea/.idea.MaterialTraceability/.idea/.name
 create mode 100644 .idea/.idea.MaterialTraceability/.idea/encodings.xml
 create mode 100644 .idea/.idea.MaterialTraceability/.idea/indexLayout.xml
 create mode 100644 .idea/.idea.MaterialTraceability/.idea/vcs.xml
 create mode 100644 MaterialTraceabilityUI/intaglioPage.xaml
 create mode 100644 MaterialTraceabilityUI/intaglioPage.xaml.cs

diff --git a/.idea/.idea.MaterialTraceability/.idea/.gitignore b/.idea/.idea.MaterialTraceability/.idea/.gitignore
new file mode 100644
index 0000000..b6f6378
--- /dev/null
+++ b/.idea/.idea.MaterialTraceability/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/modules.xml
+/contentModel.xml
+/.idea.MaterialTraceability.iml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.MaterialTraceability/.idea/.name b/.idea/.idea.MaterialTraceability/.idea/.name
new file mode 100644
index 0000000..4b03732
--- /dev/null
+++ b/.idea/.idea.MaterialTraceability/.idea/.name
@@ -0,0 +1 @@
+MaterialTraceability
\ No newline at end of file
diff --git a/.idea/.idea.MaterialTraceability/.idea/encodings.xml b/.idea/.idea.MaterialTraceability/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.MaterialTraceability/.idea/encodings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
+</project>
\ No newline at end of file
diff --git a/.idea/.idea.MaterialTraceability/.idea/indexLayout.xml b/.idea/.idea.MaterialTraceability/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.MaterialTraceability/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/.idea.MaterialTraceability/.idea/vcs.xml b/.idea/.idea.MaterialTraceability/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.MaterialTraceability/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/MaterialTraceability.Business/UpLoadBusiness.cs b/MaterialTraceability.Business/UpLoadBusiness.cs
index f5175b5..30d5faf 100644
--- a/MaterialTraceability.Business/UpLoadBusiness.cs
+++ b/MaterialTraceability.Business/UpLoadBusiness.cs
@@ -404,7 +404,7 @@ namespace MaterialTraceability.Business
                 LogHelper.Info(String.Format("{0}设备信息:{1}", resource, JsonChange.ModeToJson(deviceInfo)));
                 if (deviceInfo.materialType == 1)
                 {
-                    return true;
+                    return false;
                 }
                 else
                 {
diff --git a/MaterialTraceabilityUI/App.config b/MaterialTraceabilityUI/App.config
index dee26ad..049ee2f 100644
--- a/MaterialTraceabilityUI/App.config
+++ b/MaterialTraceabilityUI/App.config
@@ -40,7 +40,7 @@
 		<add key="WriteDbm" value="10" />
 		<add key="AnalysisFlag" value="1" />
 		<add key="userName" value="Admin" />
-		<add key="roleId" value="Admin" />
+		<add key="roleId" value="1" />
 		<add key="tagAmount" value="3" />
 		<add key="readTime" value="10" />
 	</appSettings>
diff --git a/MaterialTraceabilityUI/DieCuttingProcess.xaml.cs b/MaterialTraceabilityUI/DieCuttingProcess.xaml.cs
index 3cae7b0..8ed1bdc 100644
--- a/MaterialTraceabilityUI/DieCuttingProcess.xaml.cs
+++ b/MaterialTraceabilityUI/DieCuttingProcess.xaml.cs
@@ -961,9 +961,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void UpLeftFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId"))&& !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
@@ -991,9 +992,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void UpRightFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
@@ -1022,9 +1024,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void DownLeftFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
@@ -1053,9 +1056,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void DownRightFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
@@ -1216,9 +1220,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void LeftFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
@@ -1236,9 +1241,10 @@ namespace MaterialTraceabilityUI
         /// <param name="e"></param>
         private void RightFinish_Cilck(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {
diff --git a/MaterialTraceabilityUI/MaterialTraceabilityUI.csproj b/MaterialTraceabilityUI/MaterialTraceabilityUI.csproj
index d02fe24..cf70b37 100644
--- a/MaterialTraceabilityUI/MaterialTraceabilityUI.csproj
+++ b/MaterialTraceabilityUI/MaterialTraceabilityUI.csproj
@@ -132,6 +132,9 @@
     <Compile Include="DieCuttingProcess.xaml.cs">
       <DependentUpon>DieCuttingProcess.xaml</DependentUpon>
     </Compile>
+    <Compile Include="intaglioPage.xaml.cs">
+      <DependentUpon>intaglioPage.xaml</DependentUpon>
+    </Compile>
     <Compile Include="SplitSfc.xaml.cs">
       <DependentUpon>SplitSfc.xaml</DependentUpon>
     </Compile>
@@ -187,6 +190,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="intaglioPage.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="SplitSfc.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
diff --git a/MaterialTraceabilityUI/SplitSfc.xaml.cs b/MaterialTraceabilityUI/SplitSfc.xaml.cs
index 2ad02b0..6db9414 100644
--- a/MaterialTraceabilityUI/SplitSfc.xaml.cs
+++ b/MaterialTraceabilityUI/SplitSfc.xaml.cs
@@ -692,9 +692,10 @@ namespace MaterialTraceabilityUI
         {
             string eaStr = "";
 
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
                 return;
             }
 
@@ -770,9 +771,10 @@ namespace MaterialTraceabilityUI
         private void Complete_Click(object sender, RoutedEventArgs e)
         {
 
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
                 return;
             }
 
diff --git a/MaterialTraceabilityUI/ViewModel/MainWindowViewModel.cs b/MaterialTraceabilityUI/ViewModel/MainWindowViewModel.cs
index 7622e7f..01897ac 100644
--- a/MaterialTraceabilityUI/ViewModel/MainWindowViewModel.cs
+++ b/MaterialTraceabilityUI/ViewModel/MainWindowViewModel.cs
@@ -65,6 +65,10 @@ namespace MaterialTraceabilityUI.ViewModel
                 {
                     param = "DieCuttingProcess";
                 }
+                if (process.Contains("AB"))
+                {
+                    param = "intaglioPage";
+                }
             }
 
             Type type = Type.GetType("MaterialTraceabilityUI." + param.ToString());
diff --git a/MaterialTraceabilityUI/WriteInfo.xaml.cs b/MaterialTraceabilityUI/WriteInfo.xaml.cs
index 498544a..bc62bff 100644
--- a/MaterialTraceabilityUI/WriteInfo.xaml.cs
+++ b/MaterialTraceabilityUI/WriteInfo.xaml.cs
@@ -57,14 +57,15 @@ namespace MaterialTraceabilityUI
         private void Button_Click(object sender, RoutedEventArgs e)
         {
 
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 2 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
                 return; 
             }
             string rfidCode = this.rfidCode.Text.ToString();
             LogHelperBusiness.LogInfo("手动写入RFID条码信息:"+ rfidCode);
-            if (StringExtension.IsBlank(rfidCode) || rfidCode.Length != 14)
+            if (StringExtension.IsBlank(rfidCode))
             {
                 MessageBox.Show("请输入正确的RFID条码信息");
                 return;
diff --git a/MaterialTraceabilityUI/intaglioPage.xaml b/MaterialTraceabilityUI/intaglioPage.xaml
new file mode 100644
index 0000000..7aa7bf4
--- /dev/null
+++ b/MaterialTraceabilityUI/intaglioPage.xaml
@@ -0,0 +1,255 @@
+<UserControl x:Class="MaterialTraceabilityUI.intaglioPage"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+             xmlns:local="clr-namespace:MaterialTraceabilityUI"
+             mc:Ignorable="d" 
+             d:DesignHeight="560" d:DesignWidth="1280"
+             Background="#F0F7FF" Loaded="UserControl_Loaded">
+    <Border CornerRadius="15">
+        <Grid>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="70*"/>
+                <RowDefinition Height="50*"/>
+            </Grid.RowDefinitions>
+
+            <StackPanel Grid.Row="0" Margin="0,0,0,162.5" Grid.RowSpan="2">
+                <Grid>
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="73*"/>
+                        <ColumnDefinition Width="27*"/>
+                    </Grid.ColumnDefinitions>
+                    <StackPanel Grid.Column="0" Height="310" Orientation="Horizontal" HorizontalAlignment="Left" Background="AliceBlue">
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="100"/>
+                                <RowDefinition Height="100"/>
+                                <RowDefinition Height="100"/>
+                            </Grid.RowDefinitions>
+                            <UniformGrid Columns="4" Margin="0,5">
+                                <Border x:Name="upMaterial" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="upMaterial_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="放卷位" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="upMaterial_SFC" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="upMaterial_RFID" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="upMaterial_EA" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+
+                                <Border Margin="5,0"  Width="170" MouseDown="upMaterial_MouseDown">
+
+                                </Border>
+
+                                <Border  Margin="5,0"  Width="170" MouseDown="upMaterial_MouseDown">
+
+                                </Border>
+
+                            </UniformGrid>
+                            <UniformGrid Columns="4" Grid.Row="1" Margin="0,5">
+                                <Border x:Name="down_1" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0" Width="220" MouseDown="down_1_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷1A轴内侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_1" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_1" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_1" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_2" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="down_2_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷1A轴外侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_2" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_2" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_2" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_3" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0,5,-0.333"  Width="220" Height="91" VerticalAlignment="Bottom" MouseDown="down_3_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷2A轴内侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_3" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_3" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_3" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_4" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="down_4_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷2A轴外侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_4" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_4" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_4" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                            </UniformGrid>
+                            <UniformGrid Columns="4" Grid.Row="2" Margin="0,5">
+                                <Border x:Name="down_5" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0" Width="220" MouseDown="down_5_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷1B轴内侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_5" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_5" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_5" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_6" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="down_6_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷1B轴外侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_6" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_6" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_6" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_7" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="down_7_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷2B轴内侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_7" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_7" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_7" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                                <Border x:Name="down_8" BorderThickness="1,1,1,1" BorderBrush="#DBE6FA" Background="#F0F7FF" CornerRadius="5" Margin="5,0"  Width="220" MouseDown="down_8_MouseDown">
+                                    <StackPanel  Margin="5,5">
+                                        <TextBlock Text="收卷2B轴外侧" FontSize="15" Foreground="#666867" HorizontalAlignment="Center"/>
+                                        <TextBlock x:Name="Down_SFC_8" Text="SFC:" FontSize="13" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2" FontWeight="Bold"/>
+                                        <TextBlock x:Name="Down_RFID_8" Text="RFID:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                        <TextBlock x:Name="Down_EA_8" Text="EA:" TextWrapping="Wrap" Foreground="#5985EA" Margin="0,2"/>
+                                    </StackPanel>
+                                </Border>
+                            </UniformGrid>
+                        </Grid>
+                    </StackPanel>
+
+                    <StackPanel Grid.Column="1" Height="310" Width="340" x:Name="rightLog" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top">
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="160"/>
+                                <RowDefinition Height="160"/>
+                            </Grid.RowDefinitions>
+                            <StackPanel>
+                                <Grid>
+                                    <Grid.RowDefinitions>
+                                        <RowDefinition Height="30"/>
+                                        <RowDefinition Height="130"/>
+                                    </Grid.RowDefinitions>
+                                    <StackPanel Margin="0,5,0,0" Width="340"  Orientation="Horizontal" HorizontalAlignment="Left" Background="#007dfa">
+                                        <RadioButton Content="MES日志" Margin="5,0" Style="{StaticResource NavRadioButtonStyle}" FontSize="15" Foreground="White" IsChecked="True" VerticalAlignment="Center" CommandParameter="OrderRecordControl" Command="{Binding RecordChangeContentCommand}"/>
+                                    </StackPanel>
+
+                                    <StackPanel Grid.Row="1">
+                                        <ListBox x:Name="MesLog" Foreground="Gray" HorizontalAlignment="Left" Height="120" VerticalAlignment="Center" Width="340" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0"/>
+                                    </StackPanel>
+                                </Grid>
+                            </StackPanel>
+
+                            <StackPanel Grid.Row="1" Margin="0,0,0,0">
+                                <Grid>
+                                    <Grid.ColumnDefinitions>
+                                        <ColumnDefinition Width="17*"/>
+                                        <ColumnDefinition Width="53*"/>
+                                    </Grid.ColumnDefinitions>
+                                    <Grid.RowDefinitions>
+                                        <RowDefinition Height="30"/>
+                                        <RowDefinition Height="130"/>
+                                    </Grid.RowDefinitions>
+                                    <StackPanel Margin="0,5,0,0" Width="340"  Orientation="Horizontal" HorizontalAlignment="Left" Background="#007dfa" Grid.ColumnSpan="2">
+                                        <RadioButton Content="PLC日志" Margin="5,0" Style="{StaticResource NavRadioButtonStyle}" FontSize="15" Foreground="White" IsChecked="True" VerticalAlignment="Center" CommandParameter="MesLogControl" Command="{Binding LogChangeContentCommand}"/>
+                                    </StackPanel>
+
+                                    <StackPanel Grid.Row="1" Grid.ColumnSpan="2">
+                                        <ListBox x:Name="PlcLog" Foreground="Gray" HorizontalAlignment="Left" Height="115" VerticalAlignment="Center" Width="340" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0"/>
+                                    </StackPanel>
+                                </Grid>
+                            </StackPanel>
+                        </Grid>
+                    </StackPanel>
+                </Grid>
+            </StackPanel>
+
+            <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Bottom">
+                <Grid>
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="20*"/>
+                        <ColumnDefinition Width="55*"/>
+                        <ColumnDefinition Width="450"/>
+                    </Grid.ColumnDefinitions>
+                    <StackPanel Grid.Column="0" Height="210" Background="White" Margin="0,5,0,10" Orientation="Horizontal" HorizontalAlignment="Left" >
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="30"/>
+                                <RowDefinition Height="180"/>
+                            </Grid.RowDefinitions>
+                            <StackPanel Margin="0,0,0,0" Width="275"  Orientation="Horizontal" HorizontalAlignment="Left" Background="#007dfa">
+                                <RadioButton Content="设备状态" Margin="5,0" Style="{StaticResource NavRadioButtonStyle}" FontSize="15" Foreground="White" IsChecked="True" VerticalAlignment="Center" CommandParameter="MesLogControl" Command="{Binding LogChangeContentCommand}"/>
+                            </StackPanel>
+
+                            <StackPanel Height="180" Grid.Row="1" Margin="0,25,0,0" Orientation="Horizontal" VerticalAlignment="Center">
+                                <Grid>
+                                    <Grid.ColumnDefinitions>
+                                        <ColumnDefinition Width="309*"/>
+                                        <ColumnDefinition Width="41*"/>
+                                    </Grid.ColumnDefinitions>
+                                    <Grid.RowDefinitions>
+                                        <RowDefinition Height="50"/>
+                                        <RowDefinition Height="50"/>
+                                    </Grid.RowDefinitions>
+                                    <UniformGrid Columns="1" Margin="25,5,0,0" Grid.ColumnSpan="2">
+                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+                                            <Border Width="30" Height="30" CornerRadius="15">
+                                                <Border.Background>
+                                                    <ImageBrush x:Name="TestBImage" ImageSource="Assets/Images/失败-01.png"/>
+                                                </Border.Background>
+                                            </Border>
+                                            <TextBlock x:Name="TestTB" Text="放卷位设备" VerticalAlignment="Center" Foreground="Red" FontSize="15" Margin="10,0"/>
+                                        </StackPanel>
+                                    </UniformGrid>
+                                    <UniformGrid Columns="1" Grid.Row="1" Margin="25,5,0,0" Grid.ColumnSpan="2">
+                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
+                                            <Border Width="30" Height="30" CornerRadius="15">
+                                                <Border.Background>
+                                                    <ImageBrush x:Name="TestCImage" ImageSource="Assets/Images/失败-01.png"/>
+                                                </Border.Background>
+                                            </Border>
+                                            <TextBlock x:Name="TestTC" Text="收卷位设备" VerticalAlignment="Center" Foreground="Red" FontSize="15" Margin="10,0"/>
+                                        </StackPanel>
+                                    </UniformGrid>
+                                </Grid>
+                            </StackPanel>
+                        </Grid>
+                    </StackPanel>
+
+                    <StackPanel Grid.Column="1" Height="210" Background="White" Margin="5,5,5,10" HorizontalAlignment="Center">
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="30"/>
+                                <RowDefinition Height="180"/>
+                            </Grid.RowDefinitions>
+                            <StackPanel Margin="0,0,0,0" Width="555"  Orientation="Horizontal" HorizontalAlignment="Left" Background="#007dfa">
+                                <RadioButton Content="RFID日志" Margin="5,0" Style="{StaticResource NavRadioButtonStyle}" FontSize="15" Foreground="White" IsChecked="True" VerticalAlignment="Center" CommandParameter="MesLogControl" Command="{Binding LogChangeContentCommand}"/>
+                            </StackPanel>
+
+                            <StackPanel Grid.Row="1" x:Name="listbox">
+                                <ListBox x:Name="RfidLog" Foreground="Gray" HorizontalAlignment="Left" Height="{Binding Path=ActualHeight,ElementName=listbox}" VerticalAlignment="Center" Width="555" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0"/>
+                            </StackPanel>
+                        </Grid>
+                    </StackPanel>
+
+                    <StackPanel Grid.Column="2" Width="450" Height="210" Background="White" Margin="5,5,0,10" HorizontalAlignment="Center">
+                        <Grid>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="30"/>
+                                <RowDefinition Height="180"/>
+                            </Grid.RowDefinitions>
+                            <StackPanel Margin="0,0,0,0" Width="450"  Orientation="Horizontal" HorizontalAlignment="Left" Background="#007dfa">
+                                <RadioButton Content="报警日志" Margin="5,0" Style="{StaticResource NavRadioButtonStyle}" FontSize="15" Foreground="White" IsChecked="True" VerticalAlignment="Center" CommandParameter="MesLogControl" Command="{Binding LogChangeContentCommand}"/>
+                            </StackPanel>
+
+                            <StackPanel Grid.Row="1">
+                                <ListBox x:Name="AlarmLog" Foreground="Red" HorizontalAlignment="Left" Height="{Binding Path=ActualHeight,ElementName=listbox}" VerticalAlignment="Center" Width="450" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0"/>
+                            </StackPanel>
+                        </Grid>
+                    </StackPanel>
+                </Grid>
+            </StackPanel>
+             
+        </Grid>
+    </Border>
+
+</UserControl>
diff --git a/MaterialTraceabilityUI/intaglioPage.xaml.cs b/MaterialTraceabilityUI/intaglioPage.xaml.cs
new file mode 100644
index 0000000..18c9c20
--- /dev/null
+++ b/MaterialTraceabilityUI/intaglioPage.xaml.cs
@@ -0,0 +1,685 @@
+using MaterialTraceability.Business;
+using MaterialTraceability.Business.Impl;
+using MaterialTraceability.Entity.DAO;
+using MaterialTraceability.Entity.DTO;
+using MaterialTraceability.Entity.Enum;
+using MaterialTraceability.SqlSugar;
+using MaterialTraceability.SqlSugar.ServiceImpl;
+using MaterialTraceabilityUI.Common;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Threading;
+using System.Windows.Controls;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+
+namespace MaterialTraceabilityUI
+{
+    /// <summary>
+    /// firstPage.xaml 的交互逻辑
+    /// </summary>
+    public partial class intaglioPage : UserControl
+    {
+        private EquipBusiness equipBusiness = new EquipBusiness();
+
+        private IBaseServices<RecordLogInfo> logInfoServices = new BaseServices<RecordLogInfo>();
+        private IBaseServices<ProShaftInfo> shftInfoService = new BaseServices<ProShaftInfo>();
+
+        private UpLoadBusiness loadBusiness = UpLoadBusiness.Instance;
+        private AppConfigDto appConfig = AppConfigDto.Instance;
+        public intaglioPage()
+        {
+            InitializeComponent();
+            try
+            {
+                if (appConfig.processId.Contains("LY"))
+                {
+                    MainBusiness.LogRefreshEvent += LogRefresh;
+                    LYSignalReadBusiness.LogRefreshEvent += LogRefresh;
+                    LYSignalReadBusiness.ViewModelRefreshEvent += ProductionParam;
+                    UserControlInit();
+
+                    refreshThread();
+                }
+            }
+            catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面异常",ex);
+            }
+        }
+
+        public void ProductionParam(ViewModelDto viewModelDto)
+        {
+            if (viewModelDto.rfidInfo != null)
+            {
+                Action action;
+                switch (viewModelDto.rfidInfo.position)
+                {
+                    case 0 :
+                        action = () =>
+                        {
+                            this.upMaterial_SFC.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        upMaterial_SFC.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.upMaterial_RFID.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        upMaterial_RFID.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.upMaterial_EA.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        upMaterial_EA.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 1:
+                        action = () =>
+                        {
+                            this.Down_SFC_1.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_1.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_1.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_1.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_1.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_1.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 2:
+                        action = () =>
+                        {
+                            this.Down_SFC_2.Text = "SFC:" + viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_2.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_2.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_2.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_2.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_2.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 5:
+                        action = () =>
+                        {
+                            this.Down_SFC_3.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_3.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_3.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_3.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_3.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_3.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 6:
+                        action = () =>
+                        {
+                            this.Down_SFC_4.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_4.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_4.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_4.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_4.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_4.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 4:
+                        action = () =>
+                        {
+                            this.Down_SFC_5.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_5.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_5.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_5.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_5.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_5.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 3:
+                        action = () =>
+                        {
+                            this.Down_SFC_6.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_6.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_6.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_6.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_6.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_6.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 8:
+                        action = () =>
+                        {
+                            this.Down_SFC_7.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_7.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_7.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_7.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_7.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_7.Dispatcher.BeginInvoke(action);
+                        break;
+                    case 7:
+                        action = () =>
+                        {
+                            this.Down_SFC_8.Text = "SFC:"+viewModelDto.rfidInfo.sfc;
+                        };
+                        Down_SFC_8.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_RFID_8.Text = "RFID:"+viewModelDto.rfidInfo.rfid;
+                        };
+                        Down_RFID_8.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            this.Down_EA_8.Text = "EA:"+viewModelDto.rfidInfo.ea;
+                        };
+                        Down_EA_8.Dispatcher.BeginInvoke(action);
+                        break;
+                    default:
+                        break;
+                }
+                
+            }
+        }
+
+        private void refreshThread()
+        {
+            System.Timers.Timer timer = new System.Timers.Timer(1000 * 30);
+            timer.Elapsed += new System.Timers.ElapsedEventHandler(refreshEquipStatus);
+            timer.AutoReset = true;
+            timer.Enabled = true;
+            timer.Start();
+        }
+
+        private void refreshEquipStatus(object source, System.Timers.ElapsedEventArgs e)
+        {
+            try
+            {
+                equipBusiness.CheckEquipState();
+
+                UpdateDeviceStatus();
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面refreshEquipStatus异常",ex);
+            }
+        }
+
+        private void UpdateDeviceStatus()
+        {
+            Action action;
+
+            try
+            {
+                var equipInfo = equipBusiness.Equiplist.Where(x => x.positionId == 0).FirstOrDefault();
+                if (equipInfo != null)
+                {
+                    if (equipInfo.IsConnect)
+                    {
+                        action = () =>
+                        {
+                            this.TestTB.Foreground = Brushes.Green;
+                        };
+                        TestTB.Dispatcher.BeginInvoke(action);
+
+                        action = () =>
+                        {
+                            string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
+                            BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
+                            this.TestBImage.ImageSource = bitmapImage;
+                        };
+                        TestBImage.Dispatcher.BeginInvoke(action);
+                    }
+                    else
+                    {
+                        action = () =>
+                        {
+                            this.TestTB.Foreground = Brushes.Red;
+                        };
+                        TestTB.Dispatcher.BeginInvoke(action);
+
+                        action = () =>
+                        {
+                            string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
+                            BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
+                            this.TestBImage.ImageSource = bitmapImage;
+                        };
+                        TestBImage.Dispatcher.BeginInvoke(action);
+                    }
+                }
+
+                var equipInfo2 = equipBusiness.Equiplist.Where(x => x.positionId == 1).FirstOrDefault();
+                if (equipInfo2 != null)
+                {
+                    if (equipInfo2.IsConnect)
+                    {
+                        action = () =>
+                        {
+                            this.TestTC.Foreground = Brushes.Green;
+                        };
+                        TestTC.Dispatcher.BeginInvoke(action);
+                        action = () =>
+                        {
+                            string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/正常.png";
+                            BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
+                            this.TestCImage.ImageSource = bitmapImage;
+                        };
+                        TestCImage.Dispatcher.BeginInvoke(action);
+                    }
+                    else
+                    {
+                        action = () =>
+                        {
+                            this.TestTC.Foreground = Brushes.Red;
+                        };
+                        TestTC.Dispatcher.BeginInvoke(action);
+
+                        action = () =>
+                        {
+                            string imageUrl = "pack://application:,,,/MaterialTraceabilityUI;component/Assets/Images/失败-01.png";
+                            BitmapImage bitmapImage = new BitmapImage(new Uri(imageUrl));
+                            this.TestCImage.ImageSource = bitmapImage;
+                        };
+                        TestCImage.Dispatcher.BeginInvoke(action);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelperBusiness.LogError("设备状态刷新异常", ex);
+            }
+        }
+
+        public void UserControlInit()
+        {
+            //List<int> downNumberItem = new List<int>() { 3, 6, 9 };
+            //this.downNumber.ItemsSource = downNumberItem;
+            //this.downNumber.SelectedItem = Convert.ToInt32(ConfigHelper.GetConfig("downNumber"));
+
+            //查询前五个小时的数据
+            //DateTime beginTime = DateTime.Now.AddHours(-5);
+            //&& Convert.ToDateTime(x.bindTime) > beginTime
+            try
+            {
+                LogRefresh(LogType.RfidLog, "冷压RFID物料追溯系统初始化");
+                Expression<Func<ProShaftInfo, bool>> exp = s1 => true;
+                exp = exp.And(x => x.processId == appConfig.processId);
+                List<ProShaftInfo> shaftInfos = shftInfoService.Query(exp).Result;
+
+                if (shaftInfos == null || shaftInfos.Count == 0)
+                {
+                    LogRefresh(LogType.RfidLog, "程序初始化数据为空");
+                    return;
+                }
+
+                shaftInfos.ForEach(x =>
+                {
+                    ProductionParam(new ViewModelDto()
+                    {
+                        rfidInfo = new RfidInfoDto()
+                        {
+                            rfid = x.bindRfid,
+                            sfc = x.bindSfc,
+                            ea = x.bindEaValue,
+                            position = Convert.ToInt32(x.positionId)
+                        },
+                        plcStatus = true,
+                    });
+                });
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("冷压界面异常,UserControlInit",ex);
+            }
+        }
+
+        public void LogRefresh(LogType logType, string massage)
+        {
+            try
+            {
+                string info = massage;
+                string logTypeStr = "";
+                int isAlarm = 0;
+
+                if (logType == LogType.MesLog)
+                {
+                    logTypeStr = "MES";
+                    ListBoxItemAdd(this.MesLog, massage);
+                }
+
+                if (logType == LogType.PlcLog)
+                {
+                    logTypeStr = "PLC";
+                    ListBoxItemAdd(this.PlcLog, massage);
+                }
+
+                if (logType == LogType.RfidLog)
+                {
+                    logTypeStr = "RFID";
+                    ListBoxItemAdd(this.RfidLog, massage);
+                }
+
+                if (logType == LogType.AlarmLog)
+                {
+                    logTypeStr = "Alarm";
+                    isAlarm = 1;
+                    ListBoxItemAdd(this.AlarmLog, massage);
+                    loadBusiness.SaveLogRecord(0, massage);
+                }
+
+                logInfoServices.Add(new RecordLogInfo()
+                {
+                    id = System.Guid.NewGuid().ToString("N"),
+                    processId = "LY_A",
+                    machineId = ConfigurationManager.AppSettings["machineId"].ToString(),
+                    alarmType = logTypeStr,
+                    alarmInfo = info,
+                    isAlarm = isAlarm,
+                    recordTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                });
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面LogRefresh异常",ex);
+            }
+        }
+
+        private List<LogInfoItem> logInfos = new List<LogInfoItem>();
+        /// <summary>
+        /// ListBox刷新
+        /// </summary>
+        /// <param name="listBox"></param>
+        /// <param name="massage"></param>
+        private void ListBoxItemAdd(ListBox listBox, string massage)
+        {
+            try
+            {
+                LogHelperBusiness.ViewLog(massage);
+                logInfos.Add(new LogInfoItem()
+                {
+                    listBox = listBox,
+                    recordTime = DateTime.Now,
+                    message = String.Format("{0} {1}", DateTime.Now.ToString("MM-dd HH:mm:ss"), massage)
+                });
+
+                while(logInfos.Count > 120)
+                {
+                    logInfos.RemoveAt(0);
+                }
+
+                Action action;
+
+                action = () =>
+                {
+                    listBox.Items.Clear();
+
+                    var infoList = logInfos.ToArray();
+
+                    var strArray = infoList.Where(x => x.listBox == listBox).OrderByDescending(x => x.recordTime).ToList();
+
+                    if (strArray != null)
+                    {
+                        foreach (var str in strArray)
+                        {
+                            SplitByLen(str.message, 50).ForEach(x =>
+                            {
+                                listBox.Items.Add(x);
+                            });
+                        }
+                    }
+                };
+
+                listBox.Dispatcher.BeginInvoke(action);
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面ListBoxItemAdd异常", ex);
+            }
+        }
+
+        public static List<string> SplitByLen(string str, int separatorCharNum)
+        {
+            try
+            {
+                string tempStr = str;
+                List<string> strList = new List<string>();
+                if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)
+                {
+                    strList.Add(str);
+                    return strList;
+                }
+
+                int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));
+
+                for (int i = 0; i < iMax; i++)
+                {
+                    string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);
+                    strList.Add(currMsg);
+                    if (tempStr.Length > separatorCharNum)
+                    {
+                        tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);
+                    }
+                }
+
+                return strList;
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面SplitByLen异常", ex);
+                return null;
+            }
+        }
+
+        private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
+        {
+            UpdateDeviceStatus();
+        }
+
+        /// <summary>
+        /// 放卷位
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void upMaterial_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            try
+            {
+                WriteInfo write = new WriteInfo(appConfig.processId, 0);
+                write.ShowDialog();
+
+                refreshMaterialInfo(appConfig.processId, "0");
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面upMaterial_MouseDown异常", ex);
+            }
+        }
+
+        /// <summary>
+        /// 收卷1轴内侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_1_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 1);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷1轴外侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_2_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 2);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷1B轴外侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_6_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 3);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷1B轴内侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_5_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 4);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷2A轴内侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_3_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 5);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷2A轴外侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_4_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 6);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷2B轴外侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_8_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 7);
+            //write.ShowDialog();
+        }
+
+        /// <summary>
+        /// 收卷2B轴内侧
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void down_7_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
+        {
+            //WriteInfo write = new WriteInfo(appConfig.processId, 8);
+            //write.ShowDialog();
+        }
+
+        public void refreshMaterialInfo(string processId, string position)
+        {
+            //DateTime beginTime = DateTime.Now.AddHours(-5);
+            try
+            {
+                Expression<Func<ProShaftInfo, bool>> exp = s1 => true;
+                exp = exp.And(x => x.processId == appConfig.processId);
+                Expression<Func<ProShaftInfo, object>> order = s1 => s1.bindTime;
+                ProShaftInfo shaftInfo = shftInfoService.QueryFirst(exp, order, false).Result;
+                if (shaftInfo == null)
+                {
+                    //ListBoxItemAdd(this.RfidLog, "获取卷轴数据为空");
+                    return;
+                }
+                Action action;
+                switch (Convert.ToInt32(shaftInfo.positionId))
+                {
+                    case 0:
+                        action = () =>
+                        {
+                            this.upMaterial_RFID.Text = "RFID:" + shaftInfo.bindRfid;
+                        };
+                        upMaterial_RFID.Dispatcher.BeginInvoke(action);
+
+                        action = () =>
+                        {
+                            this.upMaterial_SFC.Text = "SFC:" + shaftInfo.bindSfc;
+                        };
+                        upMaterial_SFC.Dispatcher.BeginInvoke(action);
+
+                        action = () =>
+                        {
+                            this.upMaterial_EA.Text = "EA:" + shaftInfo.bindEaValue;
+                        };
+                        upMaterial_EA.Dispatcher.BeginInvoke(action);
+                        break;
+                    default:
+                        break;
+                }
+            }catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("界面refreshMaterialInfo异常", ex);
+            }
+        }
+
+        /// <summary>
+        /// 设置拆分数量
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void addDownNumber_Click(object sender, System.Windows.RoutedEventArgs e)
+        {
+            try
+            {
+                //string downNumberItem = this.downNumber.SelectedItem.ToString();
+                //ConfigHelper.UpdateAppConfig("downNumber", downNumberItem);
+                //string info = ConfigHelper.GetConfig("downNumber");
+                //if(downNumberItem == info)
+                //{
+                //    LogHelperBusiness.LogInfo("设置拆分数量成功,设置为:" + downNumberItem + "卷");
+                //    ListBoxItemAdd(this.RfidLog, "设置拆分数量成功,设置为:" + downNumberItem + "卷");
+                //}
+            }
+            catch(Exception ex)
+            {
+                LogHelperBusiness.LogError("设置拆分数量异常", ex);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/MaterialTraceabilityUI/secondPage.xaml.cs b/MaterialTraceabilityUI/secondPage.xaml.cs
index c951b08..97bd757 100644
--- a/MaterialTraceabilityUI/secondPage.xaml.cs
+++ b/MaterialTraceabilityUI/secondPage.xaml.cs
@@ -120,9 +120,10 @@ namespace MaterialTraceabilityUI
 
         private void Split_Click(object sender, RoutedEventArgs e)
         {
-            if (!"1".Equals(ConfigHelper.GetConfig("roleId")) && !"2".Equals(ConfigHelper.GetConfig("roleId")))
+            int roleId = Convert.ToInt32(ConfigHelper.GetConfig("roleId"));
+            if (roleId > 3 || roleId == 0)
             {
-                System.Windows.MessageBox.Show("请登录系统管理账号进行操作");
+                System.Windows.MessageBox.Show($"请登录系统管理账号进行操作,当前用户角色ID:{roleId}");
             }
             else
             {