Browse Source

revise waferhistory view,revise reservoir alarm bug

chenzk 3 weeks ago
parent
commit
ab386b06ec

+ 2 - 0
CyberX8_MainPages/ViewModels/WaferHistoryDBViewModel.cs

@@ -424,6 +424,8 @@ namespace CyberX8_MainPages.ViewModels
 
                     item.Status = dbData.Rows[i]["status"].ToString();
 
+                    item.Reason = dbData.Rows[i]["reason"].ToString();
+
                     sql = $"SELECT * FROM \"wafer_move_history\" where \"wafer_data_guid\" = '{item.ID}' and  \"arrive_time\" >= '{whItem.StartTime:yyyy/MM/dd HH:mm:ss.fff}' and \"arrive_time\" <= '{whItem.EndTime:yyyy/MM/dd HH:mm:ss.fff}' order by \"arrive_time\" ASC limit 1000;";
                     DataTable dbDataMovement = QueryDataClient.Instance.Service.QueryData(sql);
 

+ 7 - 43
CyberX8_MainPages/Views/WaferHistoryDBView.xaml

@@ -55,61 +55,25 @@
                 <DataGrid ItemsSource="{Binding Wafers}"   IsReadOnly="True"  AutoGenerateColumns="False" RowHeight="25" 
                           CanUserAddRows="False" CanUserResizeRows="False" CanUserResizeColumns="True" FontFamily="Arial" FontSize="14" >
                     <DataGrid.Columns>
-                        <DataGridTextColumn Header="Lot ID" Width="100*" Binding="{Binding LotID}" />
-                        <DataGridTextColumn Header="Slot ID" Width="100*" Binding="{Binding SlotID}" />
+                        <DataGridTextColumn Header="Lot ID" Width="60*" Binding="{Binding LotID}" />
+                        <DataGridTextColumn Header="Slot ID" Width="50*" Binding="{Binding SlotID}" />
                         <DataGridTextColumn Header="Arrive Time" Width="150*" Binding="{Binding StartTime,Converter={StaticResource HideMinTimeConvert}}" />
                         <DataGridTextColumn Header="Remove Time" Width="150*" Binding="{Binding EndTime,Converter={StaticResource HideMinTimeConvert}}" />
                         <DataGridTextColumn Header="Duration" Width="75*" Binding="{Binding Duration}" />
                         <DataGridTextColumn Header="Sequence" Width="200*" Binding="{Binding Sequence}" />
-                        <DataGridTextColumn Header="Status" Width="200*" Binding="{Binding Status}" />
-                        <DataGridTemplateColumn Header="Chart" Width="100*">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <Button Content="To Chart" IsEnabled="{Binding EndTime,Converter={StaticResource MinTime2BoolConverter }}" Margin="0" Height="22" VerticalContentAlignment="Center" FontSize="12">
-                                        <i:Interaction.Triggers>
-                                            <i:EventTrigger EventName="Click">
-                                                <i:InvokeCommandAction Command="{Binding DataContext.ToChartCommand,ElementName=root}" CommandParameter="{Binding }" />
-                                            </i:EventTrigger>
-                                        </i:Interaction.Triggers>
-                                    </Button>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
+                        <DataGridTextColumn Header="Status" Width="100*" Binding="{Binding Status}" />
+                        <DataGridTextColumn Header="Reason" Width="200*" Binding="{Binding Reason}"/>
+
                     </DataGrid.Columns>
                 </DataGrid>
             </Grid>
 
             <Grid x:Key="MovementLayout">
                 <Grid.RowDefinitions>
-                    <RowDefinition Height="20*"/>
                     <RowDefinition Height="50*"/>
+                    <RowDefinition Height="20*"/>
                 </Grid.RowDefinitions>
-                <DataGrid  ItemsSource="{Binding Recipes}" IsReadOnly="True" AutoGenerateColumns="False"  RowHeight="25" 
-                               CanUserAddRows="False" CanUserResizeRows="False" CanUserResizeColumns="True" FontFamily="Arial" FontSize="14" >
-                    <DataGrid.Columns>
-                        <DataGridTextColumn Header="Name"  Width="200*"  Binding="{Binding Recipe}" />
-                        <DataGridTextColumn Header="StartTime"   Width="150*" Binding="{Binding StartTime,Converter={StaticResource HideMinTimeConvert}}" />
-                        <DataGridTextColumn Header="EndTime"  Width="150*"  Binding="{Binding EndTime,Converter={StaticResource HideMinTimeConvert}}" />
-                        <DataGridTextColumn Header="Chamber"  Width="100*"  Binding="{Binding Chamber}" />
-                        <DataGridTextColumn Header="SettingTime"  Width="150*"  Binding="{Binding SettingTime}" />
-                        <DataGridTextColumn Header="ActualTime"  Width="150*"  Binding="{Binding ActualTime}" />
-                        <DataGridTemplateColumn Header="Chart" Width="100*">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <Button Content="To Chart" Margin="0" Height="22" VerticalContentAlignment="Center" FontSize="12">
-                                        <i:Interaction.Triggers>
-                                            <i:EventTrigger EventName="Click">
-                                                <i:InvokeCommandAction Command="{Binding DataContext.ToChartCommand,ElementName=root}" CommandParameter="{Binding}" />
-                                            </i:EventTrigger>
-                                        </i:Interaction.Triggers>
-                                    </Button>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                    </DataGrid.Columns>
-                </DataGrid>
-
-                <TabControl Grid.Row="1">
+                <TabControl Grid.Row="0">
                     <TabItem Header="Movements">
                         <DataGrid  ItemsSource="{Binding Movements}" IsReadOnly="True" AutoGenerateColumns="False"  RowHeight="25" 
                                    CanUserAddRows="False" CanUserResizeRows="False" CanUserResizeColumns="True" FontFamily="Arial" FontSize="14">

+ 6 - 6
CyberX8_RT/Devices/Reservoir/ReservoirDiReplenHelper.cs

@@ -54,7 +54,7 @@ namespace CyberX8_RT.Devices.Reservoir
                 //超过时间
                 if (DateTime.Now.Subtract(_persistentValue.PeriodStartTime).TotalMinutes >= diValveMaxOnTimePeriod * 60)
                 {
-                    LOG.WriteLog(eEvent.INFO_RESERVOIR, _module, $"Time is over conifg's DIValveMaxOnTimePeriod:{diValveMaxOnTimePeriod} hour. Restart timer");
+                    LOG.WriteLog(eEvent.INFO_RESERVOIR, _module, $"Time is over config DIValveMaxOnTimePeriod:{diValveMaxOnTimePeriod} hour. Restart timer");
                     timeOutAction(false);
                     _persistentValue.PeriodStartTime = DateTime.Now;
                     _persistentValue.TotalReplen = 0;
@@ -80,7 +80,7 @@ namespace CyberX8_RT.Devices.Reservoir
                 if (result)
                 {
                     timeOutAction(true);
-                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over conifg's DIValveMaxOnTime:{diValveMaxOnTime} min");
+                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over config DIValveMaxOnTime:{diValveMaxOnTime} min");
                     _persistentValue.LastTotalReplen = _persistentValue.TotalReplen;
                     _persistentValue.IsDiReplenOn = false;
                     ReservoirsPersistentManager.Instance.UpdatePersistentValue(_module);
@@ -119,8 +119,8 @@ namespace CyberX8_RT.Devices.Reservoir
                 bool result = direplenOffAction("", null);
                 if (result)
                 {
-                    AlarmListManager.Instance.AddWarn(_module, $"", $"{_module} Direplen time over conifg's DIValveMaxOnTimePerFill:{diValveMaxOnTimePerFill} min");
-                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over conifg's DIValveMaxOnTimePerFill:{diValveMaxOnTimePerFill} min");
+                    AlarmListManager.Instance.AddWarn(_module, $"", $"{_module} Direplen time over config DIValveMaxOnTimePerFill:{diValveMaxOnTimePerFill} min");
+                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over conifg DIValveMaxOnTimePerFill:{diValveMaxOnTimePerFill} min");
                     //补水超时关闭总的补水阀
                     SystemFacilities systemFacilities = DEVICE.GetDevice<SystemFacilities>("System.Facilities");
                     if (systemFacilities != null)
@@ -141,8 +141,8 @@ namespace CyberX8_RT.Devices.Reservoir
                 if (result)
                 {
                     timeOutAction(true);
-                    AlarmListManager.Instance.AddWarn(_module, $"", $"{_module} Direplen time over conifg's DIValveMaxOnTime:{diValveMaxOnTime} min");
-                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over conifg's DIValveMaxOnTime:{diValveMaxOnTime} min");
+                    AlarmListManager.Instance.AddWarn(_module, $"", $"{_module} Direplen time over config DIValveMaxOnTime:{diValveMaxOnTime} min");
+                    LOG.WriteLog(eEvent.WARN_RESERVOIR, _module, $"Direplen time over conifg DIValveMaxOnTime:{diValveMaxOnTime} min");
                     _persistentValue.LastTotalReplen = _persistentValue.TotalReplen;
                     _persistentValue.IsDiReplenOn = false;
                     ReservoirsPersistentManager.Instance.UpdatePersistentValue(_module);

+ 2 - 0
Framework/Common/CommonData/HistoryDataItem.cs

@@ -176,6 +176,8 @@ namespace MECF.Framework.Common.CommonData
 
         [DataMember]
         public string Status { get; set; }
+        [DataMember]
+        public string Reason { get; set; }
         public DateTime? ProcessStartTime { get; set; }
         [DataMember]
         public DateTime? ProcessEndTime { get; set; }