@@ -20,6 +20,7 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<None Remove="Fonts\80号-萌趣小鱼体.ttf" /> | <None Remove="Fonts\80号-萌趣小鱼体.ttf" /> | ||||
<None Remove="Fonts\font\iconfont.ttf" /> | |||||
<None Remove="Fonts\iconfont.ttf" /> | <None Remove="Fonts\iconfont.ttf" /> | ||||
<None Remove="Fonts\MT\iconfont.ttf" /> | <None Remove="Fonts\MT\iconfont.ttf" /> | ||||
<None Remove="Fonts\naicha.ttf" /> | <None Remove="Fonts\naicha.ttf" /> | ||||
@@ -233,6 +234,7 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<Resource Include="Fonts\80号-萌趣小鱼体.ttf" /> | <Resource Include="Fonts\80号-萌趣小鱼体.ttf" /> | ||||
<Resource Include="Fonts\font\iconfont.ttf" /> | |||||
<Resource Include="Fonts\iconfont.ttf" /> | <Resource Include="Fonts\iconfont.ttf" /> | ||||
<Resource Include="Fonts\MT\iconfont.ttf" /> | <Resource Include="Fonts\MT\iconfont.ttf" /> | ||||
<Resource Include="Fonts\naicha.ttf" /> | <Resource Include="Fonts\naicha.ttf" /> | ||||
@@ -38,10 +38,10 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||||
private void AddData() | private void AddData() | ||||
{ | { | ||||
Global.userManager.userInfos.Add(new UserInfo() {Id= IdProcess(), Permission = Permission.管理员, UserName = "admin", Password = "admin" }); ; | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), Permission = Permission.操作员, UserName = "czy", Password = "123456" }); | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), Permission = Permission.观察员, UserName = "gcy", Password = "654321" }); | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), Permission = Permission.技术员, UserName = "jsy", Password = "88888888" }); | |||||
Global.userManager.userInfos.Add(new UserInfo() {Id= IdProcess(), permission = Permission.管理员, UserName = "admin", Password = "admin" }); ; | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), permission = Permission.操作员, UserName = "czy", Password = "123456" }); | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), permission = Permission.观察员, UserName = "gcy", Password = "654321" }); | |||||
Global.userManager.userInfos.Add(new UserInfo() { Id = IdProcess(), permission = Permission.技术员, UserName = "jsy", Password = "88888888" }); | |||||
SaveUser(); | SaveUser(); | ||||
} | } | ||||
@@ -6,6 +6,7 @@ using System.Collections.ObjectModel; | |||||
using System.Text; | using System.Text; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using System.Windows; | using System.Windows; | ||||
using BPASmartClient.Model; | |||||
namespace BPASmartClient.CustomResource.Pages.Model | namespace BPASmartClient.CustomResource.Pages.Model | ||||
{ | { | ||||
@@ -16,22 +17,26 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||||
public static readonly object runLock = new object(); | public static readonly object runLock = new object(); | ||||
public static readonly object userlock = new object(); | public static readonly object userlock = new object(); | ||||
public static readonly object alarmlock = new object(); | |||||
private MessageLog() { } | private MessageLog() { } | ||||
public Action<string> UserLog { get; set; } | public Action<string> UserLog { get; set; } | ||||
public Action<string> RunLog { get; set; } | public Action<string> RunLog { get; set; } | ||||
public Action<string> AlarmLog { get; set; } | |||||
public ObservableCollection<RunLog> runLogs { get; set; } = new ObservableCollection<RunLog>(); | public ObservableCollection<RunLog> runLogs { get; set; } = new ObservableCollection<RunLog>(); | ||||
public ObservableCollection<UserLog> userLogs { get; set; } = new ObservableCollection<UserLog>(); | public ObservableCollection<UserLog> userLogs { get; set; } = new ObservableCollection<UserLog>(); | ||||
public ObservableCollection<Alarm> alarmLogs { get; set; } = new ObservableCollection<Alarm>(); | |||||
public void LogSave() | public void LogSave() | ||||
{ | { | ||||
Sqlite<UserLog>.GetInstance.Save(); | Sqlite<UserLog>.GetInstance.Save(); | ||||
Sqlite<RunLog>.GetInstance.Save(); | Sqlite<RunLog>.GetInstance.Save(); | ||||
Sqlite<Alarm>.GetInstance.Save(); | |||||
} | } | ||||
public void ShowUserLog(string info) | public void ShowUserLog(string info) | ||||
@@ -42,7 +47,7 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||||
{ | { | ||||
Date = DateTime.Now.ToString("yyyy-MM-dd"), | Date = DateTime.Now.ToString("yyyy-MM-dd"), | ||||
Time = DateTime.Now.ToString("HH:mm:ss"), | Time = DateTime.Now.ToString("HH:mm:ss"), | ||||
Permission = Global.userInfo.Permission.ToString(), | |||||
Permission = Global.userInfo.permission.ToString(), | |||||
UserName = Global.userInfo.UserName, | UserName = Global.userInfo.UserName, | ||||
LogInfo = info | LogInfo = info | ||||
}; | }; | ||||
@@ -67,9 +72,25 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||||
RunLog?.Invoke(info); | RunLog?.Invoke(info); | ||||
} | } | ||||
} | } | ||||
int AlarmID; | |||||
public void ShowAlarmLog(string info, string AlarmNumber="_", AlarmLevel level= AlarmLevel.一般报警) | |||||
{ | |||||
lock (alarmlock) | |||||
{ | |||||
AlarmID++; | |||||
Alarm alarmLog = new Alarm() | |||||
{ | |||||
NumId = AlarmID, | |||||
Date = DateTime.Now.ToString("yyyy-MM-dd"), | |||||
Time = DateTime.Now.ToString("HH:mm:ss"), | |||||
Info = info, | |||||
Value = AlarmNumber, | |||||
Grade = (level)+"" | |||||
}; | |||||
Sqlite<Alarm>.GetInstance.Base.Add(alarmLog); | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { alarmLogs.Insert(0, alarmLog); })); | |||||
AlarmLog?.Invoke(info); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -10,9 +10,14 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||||
{ | { | ||||
public class UserInfo:ObservableObject | public class UserInfo:ObservableObject | ||||
{ | { | ||||
public Permission permission { get; set; } | |||||
public string UserName { get; set; } | |||||
public string Password { get; set; } | |||||
public string Id { get { return _id; }set { _id = value;OnPropertyChanged(); } } | |||||
private string _id; | |||||
public Permission permission { get { return _perimission; } set { _perimission = value;OnPropertyChanged(); } } | |||||
private Permission _perimission; | |||||
public string UserName { get { return _userName; } set { _userName = value;OnPropertyChanged(); } } | |||||
private string _userName; | |||||
public string Password { get { return _password; } set { _password = value;OnPropertyChanged(); } } | |||||
private string _password; | |||||
public List<string> CardId { get; set; } = new List<string>(); | public List<string> CardId { get; set; } = new List<string>(); | ||||
} | } | ||||
@@ -342,7 +342,7 @@ | |||||
<DataGridTextColumn FontSize="16" IsReadOnly="false" Width="0.2*" Binding="{Binding UserName}" ElementStyle="{StaticResource dgCell}"> | <DataGridTextColumn FontSize="16" IsReadOnly="false" Width="0.2*" Binding="{Binding UserName}" ElementStyle="{StaticResource dgCell}"> | ||||
<DataGridTextColumn.Header> | <DataGridTextColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" FontSize="24" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock FontFamily="../../Fonts/font/#iconfont" Foreground="Orange" Text="" FontSize="20" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="Account" /> | <TextBlock Text="Account" /> | ||||
</StackPanel> | </StackPanel> | ||||
</DataGridTextColumn.Header> | </DataGridTextColumn.Header> | ||||
@@ -365,21 +365,29 @@ | |||||
<DataGridTextColumn FontSize="16" IsReadOnly="False" Width="0.2*" Binding="{Binding Password}" ElementStyle="{StaticResource dgCell}" > | <DataGridTextColumn FontSize="16" IsReadOnly="False" Width="0.2*" Binding="{Binding Password}" ElementStyle="{StaticResource dgCell}" > | ||||
<DataGridTextColumn.Header> | <DataGridTextColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock FontFamily="../../Fonts/font/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="Password"/> | <TextBlock Text="Password"/> | ||||
</StackPanel> | </StackPanel> | ||||
</DataGridTextColumn.Header> | </DataGridTextColumn.Header> | ||||
</DataGridTextColumn> | </DataGridTextColumn> | ||||
<DataGridTextColumn FontSize="16" IsReadOnly="True" Width="0.2*" Binding="{Binding CardId}" ElementStyle="{StaticResource dgCell}"> | |||||
<DataGridTextColumn.Header> | |||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | |||||
<TextBlock FontFamily="../../Fonts/font/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="NFC"/> | |||||
</StackPanel> | |||||
</DataGridTextColumn.Header> | |||||
</DataGridTextColumn> | |||||
<DataGridTemplateColumn Width="0.2*"> | <DataGridTemplateColumn Width="0.2*"> | ||||
<DataGridTemplateColumn.Header> | <DataGridTemplateColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock FontFamily="../../Fonts/font/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="Authority"/> | <TextBlock Text="Authority"/> | ||||
</StackPanel> | </StackPanel> | ||||
</DataGridTemplateColumn.Header> | </DataGridTemplateColumn.Header> | ||||
<DataGridTemplateColumn.CellTemplate> | <DataGridTemplateColumn.CellTemplate> | ||||
<DataTemplate> | <DataTemplate> | ||||
<ComboBox Text="{Binding Permission}" Template="{DynamicResource ComboBoxTemplate}" ItemsSource="{Binding DataContext.Authorities, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" IsEditable="False" Foreground="Cyan" VerticalContentAlignment="Center" Width="auto" FontSize="16" HorizontalContentAlignment="Center" > | |||||
<ComboBox Text="{Binding permission}" Template="{DynamicResource ComboBoxTemplate}" SelectedItem="{Binding permission}" Tag="{Binding Id}" ItemsSource="{Binding DataContext.Authorities, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" SelectionChanged="ComboBox_SelectionChanged" IsEditable="False" Foreground="SkyBlue" VerticalContentAlignment="Center" Width="auto" FontSize="16" HorizontalContentAlignment="Center" > | |||||
<ComboBox.ItemContainerStyle> | <ComboBox.ItemContainerStyle> | ||||
<Style TargetType="{x:Type ComboBoxItem}"> | <Style TargetType="{x:Type ComboBoxItem}"> | ||||
<Setter Property="FontSize" Value="16"/> | <Setter Property="FontSize" Value="16"/> | ||||
@@ -395,7 +403,7 @@ | |||||
<DataGridTemplateColumn.Header> | <DataGridTemplateColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock FontFamily="../../Fonts/font/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="Operate"/> | <TextBlock Text="Operate"/> | ||||
</StackPanel> | </StackPanel> | ||||
</DataGridTemplateColumn.Header> | </DataGridTemplateColumn.Header> | ||||
@@ -410,7 +418,7 @@ | |||||
<Button Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" | <Button Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" | ||||
CommandParameter="{Binding UserName}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Foreground="Cyan" Content="Save" Margin="5,0"></Button> | CommandParameter="{Binding UserName}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Foreground="Cyan" Content="Save" Margin="5,0"></Button> | ||||
<!--<Button Command="{Binding DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Update" Grid.Column="1" Margin="5,0"></Button>--> | <!--<Button Command="{Binding DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Update" Grid.Column="1" Margin="5,0"></Button>--> | ||||
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Account}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0"></Button> | |||||
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0"></Button> | |||||
</Grid> | </Grid> | ||||
</DataTemplate> | </DataTemplate> | ||||
</DataGridTemplateColumn.CellTemplate> | </DataGridTemplateColumn.CellTemplate> | ||||
@@ -1,4 +1,6 @@ | |||||
using System; | |||||
using BPASmartClient.CustomResource.Pages.Enums; | |||||
using BPASmartClient.CustomResource.Pages.ViewModel; | |||||
using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
using System.Text; | using System.Text; | ||||
@@ -24,5 +26,21 @@ namespace BPASmartClient.CustomResource.Pages.View | |||||
{ | { | ||||
InitializeComponent(); | InitializeComponent(); | ||||
} | } | ||||
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) | |||||
{ | |||||
ComboBox cbo = sender as ComboBox; | |||||
var id = cbo.Tag; | |||||
var per = cbo.SelectedItem; | |||||
if (id == null) | |||||
{ | |||||
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p => p.Id == id); | |||||
if (a != null && per != null) | |||||
{ | |||||
a.permission = (Permission)Enum.Parse(typeof(Permission), per.ToString()); | |||||
} | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -100,7 +100,7 @@ | |||||
<DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID"> | <DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID"> | ||||
<DataGridTemplateColumn.CellTemplate> | <DataGridTemplateColumn.CellTemplate> | ||||
<DataTemplate> | <DataTemplate> | ||||
<TextBox Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" IsReadOnly="False" Style="{StaticResource textboxStyle}"></TextBox> | |||||
<TextBox Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" IsReadOnly="True" Style="{StaticResource textboxStyle}"></TextBox> | |||||
</DataTemplate> | </DataTemplate> | ||||
</DataGridTemplateColumn.CellTemplate> | </DataGridTemplateColumn.CellTemplate> | ||||
</DataGridTemplateColumn> | </DataGridTemplateColumn> | ||||
@@ -64,13 +64,13 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
} | } | ||||
}); | }); | ||||
AlarmInfos = AlarmHelper<AlarmInfo>.Alarms; | |||||
AlarmInfos = MessageLog.GetInstance.alarmLogs; | |||||
} | } | ||||
private void GetHistoryAlarm() | private void GetHistoryAlarm() | ||||
{ | { | ||||
var data = Sqlite<BPASmartClient.Model.Alarm>.GetInstance.GetData(); | |||||
var data = Sqlite<Alarm>.GetInstance.GetData(); | |||||
if (data != null) | if (data != null) | ||||
{ | { | ||||
HistoryAlarm.Clear(); | HistoryAlarm.Clear(); | ||||
@@ -133,9 +133,5 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
public ObservableCollection<Alarm> AlarmInfos { get; set; } | public ObservableCollection<Alarm> AlarmInfos { get; set; } | ||||
public ObservableCollection<Alarm> HistoryAlarm { get; set; } = new ObservableCollection<Alarm>(); | public ObservableCollection<Alarm> HistoryAlarm { get; set; } = new ObservableCollection<Alarm>(); | ||||
} | } | ||||
} | } |
@@ -60,22 +60,22 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
var res = Global.userManager.userInfos.FirstOrDefault(p => p.UserName == UserName && p.Password == Password); | var res = Global.userManager.userInfos.FirstOrDefault(p => p.UserName == UserName && p.Password == Password); | ||||
if (res != null) | if (res != null) | ||||
{ | { | ||||
Global.userInfo.Permission = res.Permission; | |||||
Global.userInfo.permission = res.permission; | |||||
Global.userInfo.UserName = res.UserName; | Global.userInfo.UserName = res.UserName; | ||||
Global.userInfo.Password = res.Password; | Global.userInfo.Password = res.Password; | ||||
for (int i = 0; i < MenuManage.GetInstance.menuModels.Count; i++) | for (int i = 0; i < MenuManage.GetInstance.menuModels.Count; i++) | ||||
{ | { | ||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuPermission.Contains(res.Permission)) | |||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuPermission.Contains(res.permission)) | |||||
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Visible; | MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Visible; | ||||
else | else | ||||
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed; | MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed; | ||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.FirstOrDefault(p => p.SubMenuPermission.Contains(res.Permission)) == null) | |||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.FirstOrDefault(p => p.SubMenuPermission.Contains(res.permission)) == null) | |||||
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed; | MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed; | ||||
for (int m = 0; m < MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.Count; m++) | for (int m = 0; m < MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.Count; m++) | ||||
{ | { | ||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuPermission.Contains(res.Permission)) | |||||
if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuPermission.Contains(res.permission)) | |||||
MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Visible; | MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Visible; | ||||
else | else | ||||
MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Collapsed; | MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Collapsed; | ||||
@@ -106,7 +106,7 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
/// </summary> | /// </summary> | ||||
public string ControlButText { get { return _mControlButText; } set { _mControlButText = value; OnPropertyChanged(); } } | public string ControlButText { get { return _mControlButText; } set { _mControlButText = value; OnPropertyChanged(); } } | ||||
private string _mControlButText = "报警复位"; | private string _mControlButText = "报警复位"; | ||||
/// <summary> | /// <summary> | ||||
/// 开始时间 | /// 开始时间 | ||||
/// </summary> | /// </summary> | ||||
@@ -17,10 +17,12 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
{ | { | ||||
internal class UserManageViewModel:ObservableObject | internal class UserManageViewModel:ObservableObject | ||||
{ | { | ||||
private static UserManageViewModel _instance; | |||||
public static UserManageViewModel GetInstance => _instance ??= new UserManageViewModel(); | |||||
public ObservableCollection<UserInfo> usersInfo { get; set; } = new ObservableCollection<UserInfo>(); | public ObservableCollection<UserInfo> usersInfo { get; set; } = new ObservableCollection<UserInfo>(); | ||||
//public List<Permission> Authorities { get; set; } = new List<Permission>() { Permission.管理员, Permission.操作员, Permission.观察员, Permission.技术员 }; | |||||
public List<string> Authorities { get; set; } = new List<string>(); | public List<string> Authorities { get; set; } = new List<string>(); | ||||
public RelayCommand<string> SaveCommand { get; set; } | public RelayCommand<string> SaveCommand { get; set; } | ||||
public RelayCommand<string> DeleteCommand { get; set; } | public RelayCommand<string> DeleteCommand { get; set; } | ||||
public UserManageViewModel() | public UserManageViewModel() | ||||
@@ -28,6 +30,7 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
var userManager = JsonConvert.DeserializeObject<UserManager>(File.ReadAllText("up.hbl").AESDecrypt()); | var userManager = JsonConvert.DeserializeObject<UserManager>(File.ReadAllText("up.hbl").AESDecrypt()); | ||||
usersInfo = userManager.userInfos; | usersInfo = userManager.userInfos; | ||||
AddAuthorities(); | AddAuthorities(); | ||||
SaveCommand = new RelayCommand<string>((str) => | SaveCommand = new RelayCommand<string>((str) => | ||||
{ | { | ||||
if (str != string.Empty && str != null) | if (str != string.Empty && str != null) | ||||
@@ -39,9 +42,15 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
var res = usersInfo.FirstOrDefault(p => p.UserName == str); | |||||
if (res.Id == null || res.Id == string.Empty) | |||||
{ | |||||
res.Id = IdProcess(); | |||||
} | |||||
Global.userManager.userInfos = usersInfo; | Global.userManager.userInfos = usersInfo; | ||||
File.WriteAllText("up.hbl", JsonConvert.SerializeObject(Global.userManager).AESEncrypt()); | File.WriteAllText("up.hbl", JsonConvert.SerializeObject(Global.userManager).AESEncrypt()); | ||||
MessageBox.Show("保存成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | MessageBox.Show("保存成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | ||||
} | } | ||||
} | } | ||||
@@ -50,7 +59,7 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
{ | { | ||||
if (str != string.Empty && str != null) | if (str != string.Empty && str != null) | ||||
{ | { | ||||
var userInfo = usersInfo.FirstOrDefault(p => p.UserName == str); | |||||
var userInfo = usersInfo.FirstOrDefault(p => p.Id == str); | |||||
if (userInfo != null) | if (userInfo != null) | ||||
{ | { | ||||
if (usersInfo.Remove(userInfo)) | if (usersInfo.Remove(userInfo)) | ||||
@@ -67,6 +76,27 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel | |||||
}); | }); | ||||
} | } | ||||
public string IdProcess() | |||||
{ | |||||
erp: | |||||
string id = Guid.NewGuid().ToString(); | |||||
if (usersInfo.Count > 0) | |||||
{ | |||||
var res = usersInfo.FirstOrDefault(p => p.Id == id); | |||||
if (res != null) | |||||
{ | |||||
goto erp; | |||||
} | |||||
else | |||||
{ | |||||
return id; | |||||
} | |||||
} | |||||
return id; | |||||
} | |||||
private void AddAuthorities() | private void AddAuthorities() | ||||
{ | { | ||||
foreach (Permission aut in System.Enum.GetValues(typeof(Permission))) | foreach (Permission aut in System.Enum.GetValues(typeof(Permission))) | ||||
@@ -146,8 +146,38 @@ namespace BPASmartClient.Modbus | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
string head = "4"+(Convert.ToInt32(address.Substring(1, 1)) - 1).ToString(); | |||||
string tail = address.Substring(2, 3); | |||||
string head = (Convert.ToInt32(address.Substring(1, 1))).ToString(); | |||||
int num = Convert.ToInt32(address.Substring(2, 3)); | |||||
int len = num.ToString().Length; | |||||
string tail=string.Empty; | |||||
switch (len) | |||||
{ | |||||
case 1: | |||||
if ((Convert.ToInt32(address.Substring(4, 1))).ToString().Length > 1) | |||||
{ | |||||
tail = "0" + (Convert.ToInt32(address.Substring(4, 1))).ToString(); | |||||
} | |||||
else | |||||
{ | |||||
tail = "00" + (Convert.ToInt32(address.Substring(4, 1))).ToString(); | |||||
} | |||||
break; | |||||
case 2: | |||||
if ((Convert.ToInt32(address.Substring(3, 2))).ToString().Length >2) | |||||
{ | |||||
tail =(Convert.ToInt32(address.Substring(3, 2))).ToString(); | |||||
} | |||||
else | |||||
{ | |||||
tail = "0" + (Convert.ToInt32(address.Substring(3, 2))).ToString(); | |||||
} | |||||
break; | |||||
case 3: | |||||
tail = (Convert.ToInt32(address.Substring(2, 3))).ToString(); | |||||
break; | |||||
} | |||||
address = head + tail; | address = head + tail; | ||||
return Convert.ToInt32(address); | return Convert.ToInt32(address); | ||||
} | } | ||||
@@ -175,6 +205,8 @@ namespace BPASmartClient.Modbus | |||||
} | } | ||||
} | } | ||||
//public object ReadHC(stri) | |||||
public object Read(string address, ushort len = 1, byte slaveAddress = 1) | public object Read(string address, ushort len = 1, byte slaveAddress = 1) | ||||
{ | { | ||||
if (address == null || tcpClient == null) return default(object); | if (address == null || tcpClient == null) return default(object); | ||||
@@ -29,14 +29,18 @@ namespace BPASmartClient.DosingSystem | |||||
base.OnStartup(e); | base.OnStartup(e); | ||||
MenuInit(); | MenuInit(); | ||||
DataInit(); | DataInit(); | ||||
DeviceInquire.GetInstance.Init();//配料机设备上线监听,设备列表初始化 | |||||
MainView mv = new MainView(); | MainView mv = new MainView(); | ||||
//mv.Show(); | //mv.Show(); | ||||
LoginView lv = new LoginView(); | LoginView lv = new LoginView(); | ||||
var res = lv.ShowDialog(); | var res = lv.ShowDialog(); | ||||
if (res != null && res == true) | |||||
if (res != null && res == true) | |||||
{ | |||||
MessageLog.GetInstance.ShowUserLog("用户登录"); | |||||
mv.Show(); | mv.Show(); | ||||
DeviceInquire.GetInstance.Init(); | |||||
} | |||||
else | else | ||||
mv.Close(); | mv.Close(); | ||||
MainWindow = mv; | MainWindow = mv; | ||||
@@ -16,27 +16,27 @@ namespace BPASmartClient.DosingSystem.Model | |||||
/// <summary> | /// <summary> | ||||
/// 料仓重量反馈起始地址 | /// 料仓重量反馈起始地址 | ||||
/// </summary> | /// </summary> | ||||
public static string WeightFeedback { get; set; } = "LW204"; | |||||
public static string WeightFeedback { get; set; } = "LW52";//LW204 | |||||
/// <summary> | /// <summary> | ||||
/// 重量设置地址 | /// 重量设置地址 | ||||
/// </summary> | /// </summary> | ||||
public static string WeightSet { get; set; } = "LW200"; | |||||
public static string WeightSet { get; set; } = "LW21";//LW200 | |||||
/// <summary> | /// <summary> | ||||
/// 启动信号地址 | /// 启动信号地址 | ||||
/// </summary> | /// </summary> | ||||
public static string Start { get; set; } = "LW210"; | |||||
public static string Start { get; set; } = "LW20";//LW210 | |||||
/// <summary> | /// <summary> | ||||
/// 下料重量反馈地址 | /// 下料重量反馈地址 | ||||
/// </summary> | /// </summary> | ||||
public static string CutWeightFeedback { get; set; } = "LW202"; | |||||
public static string CutWeightFeedback { get; set; } = "LW54";//LW202 | |||||
/// <summary> | /// <summary> | ||||
/// 设备运行状态地址 | /// 设备运行状态地址 | ||||
/// </summary> | /// </summary> | ||||
public static string RunStatus { get; set; } = "LW206"; | |||||
public static string RunStatus { get; set; } = "LW51";//LW206 | |||||
} | } | ||||
@@ -1,5 +1,4 @@ | |||||
using BPASmartClient.Helper; | using BPASmartClient.Helper; | ||||
using BPASmartClient.Message; | |||||
using BPASmartClient.Modbus; | using BPASmartClient.Modbus; | ||||
using BPASmartClient.DosingSystem.ViewModel; | using BPASmartClient.DosingSystem.ViewModel; | ||||
using System; | using System; | ||||
@@ -11,6 +10,8 @@ using System.Net.NetworkInformation; | |||||
using System.Text; | using System.Text; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
namespace BPASmartClient.DosingSystem.Model | namespace BPASmartClient.DosingSystem.Model | ||||
{ | { | ||||
@@ -85,7 +86,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
DS.modbusTcp.ConnectOk = new Action(() => | DS.modbusTcp.ConnectOk = new Action(() => | ||||
{ | { | ||||
string DeviceName = DS.modbusTcp.GetString(DeviceAddress.DeviceName, 20); | |||||
string DeviceName = DS.modbusTcp.GetString(DeviceAddress.DeviceName, 20);//读取设备名称 | |||||
if (DeviceName.Length > 0) | if (DeviceName.Length > 0) | ||||
{ | { | ||||
DeviceLists.TryAdd(ip, DS); | DeviceLists.TryAdd(ip, DS); | ||||
@@ -97,7 +98,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
{ | { | ||||
DeviceName = DeviceName, | DeviceName = DeviceName, | ||||
IpAddress = ip | IpAddress = ip | ||||
}); | |||||
});//加入连接的(有名称的)设备列表 | |||||
for (int i = 0; i < Json<LocaPar>.Data.Recipes.Count; i++) | for (int i = 0; i < Json<LocaPar>.Data.Recipes.Count; i++) | ||||
{ | { | ||||
@@ -124,7 +125,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
DS.modbusTcp.ConnectFail = new Action(() => | DS.modbusTcp.ConnectFail = new Action(() => | ||||
{ | { | ||||
if (!InvalidIP.Contains(ip)) InvalidIP.Add(ip); | if (!InvalidIP.Contains(ip)) InvalidIP.Add(ip); | ||||
MessageLog.GetInstance.Show($"{ip}连接失败"); | |||||
//MessageLog.GetInstance.ShowAlarmLog($"设备{ip}连接失败"); | |||||
}); | }); | ||||
DS.modbusTcp.Disconnect = new Action(() => | DS.modbusTcp.Disconnect = new Action(() => | ||||
@@ -135,7 +136,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
App.Current.Dispatcher.Invoke(new Action(() => | App.Current.Dispatcher.Invoke(new Action(() => | ||||
{ | { | ||||
DeviceListViewModel.devices.Remove(res); | DeviceListViewModel.devices.Remove(res); | ||||
if (!NewRecipeViewModel.RawMaterialNames.Contains(res.DeviceName)) | |||||
if (NewRecipeViewModel.RawMaterialNames.Contains(res.DeviceName)) | |||||
NewRecipeViewModel.RawMaterialNames.Remove(res.DeviceName); | NewRecipeViewModel.RawMaterialNames.Remove(res.DeviceName); | ||||
})); | })); | ||||
if (DeviceLists.ContainsKey(ip)) DeviceLists[ip].Dispose(); | if (DeviceLists.ContainsKey(ip)) DeviceLists[ip].Dispose(); | ||||
@@ -143,7 +144,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
Task.Run(new Action(() => | Task.Run(new Action(() => | ||||
{ | { | ||||
DS.modbusTcp.ModbusTcpConnect(ip, 502); | |||||
DS.modbusTcp.ModbusTcpConnect(ip, 502);//PLC连接 | |||||
IPQueues.Enqueue(e.Reply.Address.ToString()); | IPQueues.Enqueue(e.Reply.Address.ToString()); | ||||
})); | })); | ||||
} | } | ||||
@@ -165,6 +166,8 @@ namespace BPASmartClient.DosingSystem.Model | |||||
/// </summary> | /// </summary> | ||||
public RawMaterialDeviceStatus deviceStatus { get; set; } = new RawMaterialDeviceStatus(); | public RawMaterialDeviceStatus deviceStatus { get; set; } = new RawMaterialDeviceStatus(); | ||||
public ModbusTcp modbusTcp = new ModbusTcp(); | public ModbusTcp modbusTcp = new ModbusTcp(); | ||||
public bool IsConnected => modbusTcp.Connected; | public bool IsConnected => modbusTcp.Connected; | ||||
@@ -186,7 +189,7 @@ namespace BPASmartClient.DosingSystem.Model | |||||
//获取设备料仓剩余重量 | //获取设备料仓剩余重量 | ||||
deviceStatus.WeightFeedback = this.modbusTcp.GetUint(DeviceAddress.WeightFeedback) * 10; | deviceStatus.WeightFeedback = this.modbusTcp.GetUint(DeviceAddress.WeightFeedback) * 10; | ||||
deviceStatus.CutWeightFeedback = this.modbusTcp.GetUint(DeviceAddress.CutWeightFeedback) * 10; | |||||
Thread.Sleep(100); | Thread.Sleep(100); | ||||
}), $"{DeviceName} 开始监听", true); | }), $"{DeviceName} 开始监听", true); | ||||
} | } | ||||
@@ -51,7 +51,7 @@ | |||||
Height="500" | Height="500" | ||||
CurrentValue="50" />--> | CurrentValue="50" />--> | ||||
<pry:MotorBottle CurrentValue="100" IsRun="True" /> | |||||
<!--<pry:MotorBottle IsRun="True" CurrentValue="100"/>--> | |||||
<Grid> | <Grid> | ||||
@@ -97,7 +97,7 @@ | |||||
VerticalAlignment="Center" | VerticalAlignment="Center" | ||||
BorderThickness="0" | BorderThickness="0" | ||||
Command="{Binding DataContext.StartCommand, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | Command="{Binding DataContext.StartCommand, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | ||||
CommandParameter="{Binding RecipCode}" | |||||
CommandParameter="{Binding RecipeName}" | |||||
Content="订单下发" | Content="订单下发" | ||||
EnterBackground="Red" | EnterBackground="Red" | ||||
FontStyle="Normal" | FontStyle="Normal" | ||||
@@ -8,6 +8,7 @@ using System.Collections.ObjectModel; | |||||
using Microsoft.Toolkit.Mvvm.Input; | using Microsoft.Toolkit.Mvvm.Input; | ||||
using BPASmartClient.Helper; | using BPASmartClient.Helper; | ||||
using BPASmartClient.DosingSystem.Model; | using BPASmartClient.DosingSystem.Model; | ||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
namespace BPASmartClient.DosingSystem.ViewModel | namespace BPASmartClient.DosingSystem.ViewModel | ||||
{ | { | ||||
@@ -56,10 +57,10 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
for (int i = 0; i < RawMaterials.Count; i++) | for (int i = 0; i < RawMaterials.Count; i++) | ||||
{ | { | ||||
var res = DeviceListViewModel.devices.FirstOrDefault(p => p.DeviceName == RawMaterials.ElementAt(i).RawMaterialName); | var res = DeviceListViewModel.devices.FirstOrDefault(p => p.DeviceName == RawMaterials.ElementAt(i).RawMaterialName); | ||||
if (res != null) RawMaterials.ElementAt(i).DeviceIp = res.IpAddress; | |||||
if (res != null) RawMaterials.ElementAt(i).DeviceIp = res.IpAddress;//根据设备名称和原料名称的唯一匹配关系,给原料配置IP | |||||
} | } | ||||
if (RecipCode.Length <= 0) | |||||
if (RecipCode.Length <= 0)//新建配方 | |||||
{ | { | ||||
var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipeName == RecipeName); | var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipeName == RecipeName); | ||||
@@ -72,7 +73,7 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
AddRecipes(); | AddRecipes(); | ||||
} | } | ||||
} | } | ||||
else | |||||
else//修改配方 | |||||
{ | { | ||||
var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipCode == RecipCode); | var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipCode == RecipCode); | ||||
if (res >= 0 && res < Json<LocaPar>.Data.Recipes.Count) | if (res >= 0 && res < Json<LocaPar>.Data.Recipes.Count) | ||||
@@ -37,7 +37,7 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
devices.Enqueue(deviceName); | devices.Enqueue(deviceName); | ||||
} | } | ||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方下发成功!"); | NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方下发成功!"); | ||||
MessageLog.GetInstance.ShowUserLog($"下发工单 { Guid.NewGuid().ToString()}"); | |||||
MessageLog.GetInstance.ShowUserLog($"下发工单 {Guid.NewGuid().ToString()}"); | |||||
}); | }); | ||||
@@ -45,22 +45,22 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
{ | { | ||||
if (devices.Count > 0) | if (devices.Count > 0) | ||||
{ | { | ||||
int index = Array.FindIndex(Recipes.ToArray(), p => p.RecipeName == devices.ElementAt(0)); | |||||
int index = Array.FindIndex(Recipes.ToArray(), p => p.RecipeName == devices.ElementAt(0));///??????? | |||||
if (index >= 0 && index < Recipes.Count) | if (index >= 0 && index < Recipes.Count) | ||||
{ | { | ||||
Recipes.ElementAt(index).Are.Reset(); | Recipes.ElementAt(index).Are.Reset(); | ||||
Recipes.ElementAt(index).IsEnable = false; | Recipes.ElementAt(index).IsEnable = false; | ||||
foreach (var item in Recipes.ElementAt(index).RawMaterials) | foreach (var item in Recipes.ElementAt(index).RawMaterials) | ||||
{ | { | ||||
DeviceInquire.GetInstance.GetDevice(item.DeviceIp)?.Start(item.RawMaterialWeight);//启动写入 | |||||
DeviceInquire.GetInstance.GetDevice(item.DeviceIp)?.Start(item.RawMaterialWeight);//启动并写入每个原料重量 | |||||
} | } | ||||
Recipes.ElementAt(index).Are.WaitOne(); | |||||
Recipes.ElementAt(index).Are.WaitOne();//阻塞,直到当前配方完成 | |||||
devices.TryDequeue(out string deviceName); | devices.TryDequeue(out string deviceName); | ||||
} | } | ||||
} | } | ||||
Thread.Sleep(100); | Thread.Sleep(100); | ||||
}), "启动配发下发"); | |||||
}), "启动配方下发"); | |||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
@@ -72,11 +72,11 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
var RunStatus = DeviceInquire.GetInstance.GetDevice(Recipes.ElementAt(i).RawMaterials.ElementAt(m).DeviceIp).deviceStatus.RunStatus; | var RunStatus = DeviceInquire.GetInstance.GetDevice(Recipes.ElementAt(i).RawMaterials.ElementAt(m).DeviceIp).deviceStatus.RunStatus; | ||||
Recipes.ElementAt(i).RawMaterials.ElementAt(m).RecipeStatus = RunStatus; | Recipes.ElementAt(i).RawMaterials.ElementAt(m).RecipeStatus = RunStatus; | ||||
var res = Recipes.ElementAt(i).RawMaterials.Where(p => p.RecipeStatus == 3).ToList(); | var res = Recipes.ElementAt(i).RawMaterials.Where(p => p.RecipeStatus == 3).ToList(); | ||||
if (res != null && res.Count == Recipes.ElementAt(i).RawMaterials.Count) | |||||
if (res != null && res.Count == Recipes.ElementAt(i).RawMaterials.Count)//配方所有配料完成下料 | |||||
{ | { | ||||
for (int r = 0; r < Recipes.ElementAt(i).RawMaterials.Count; r++) | for (int r = 0; r < Recipes.ElementAt(i).RawMaterials.Count; r++) | ||||
{ | { | ||||
DeviceInquire.GetInstance.GetDevice(Recipes.ElementAt(i).RawMaterials.ElementAt(r).DeviceIp).StatusReset(); | |||||
DeviceInquire.GetInstance.GetDevice(Recipes.ElementAt(i).RawMaterials.ElementAt(r).DeviceIp).StatusReset();//完成配料的设备运行状态地址写0 | |||||
} | } | ||||
Recipes.ElementAt(i).IsEnable = true; | Recipes.ElementAt(i).IsEnable = true; | ||||
Recipes.ElementAt(i).Are.Set(); | Recipes.ElementAt(i).Are.Set(); | ||||
@@ -16,6 +16,7 @@ using BPASmartClient.CustomResource.UserControls.Model; | |||||
using BPASmartClient.CustomResource.UserControls.Enum; | using BPASmartClient.CustomResource.UserControls.Enum; | ||||
using System.Windows.Media; | using System.Windows.Media; | ||||
using BPASmartClient.CustomResource.UserControls.MessageShow; | using BPASmartClient.CustomResource.UserControls.MessageShow; | ||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
namespace BPASmartClient.DosingSystem.ViewModel | namespace BPASmartClient.DosingSystem.ViewModel | ||||
{ | { | ||||
@@ -29,10 +30,12 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
{ | { | ||||
NewRecipeView nrv = new NewRecipeView(); | NewRecipeView nrv = new NewRecipeView(); | ||||
nrv.ShowDialog(); | nrv.ShowDialog(); | ||||
MessageLog.GetInstance.ShowUserLog("新建配方"); | |||||
}); | }); | ||||
SaveRecipe = new RelayCommand(() => | SaveRecipe = new RelayCommand(() => | ||||
{ | { | ||||
Json<LocaPar>.Save(); | Json<LocaPar>.Save(); | ||||
MessageLog.GetInstance.ShowUserLog("保存配方"); | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方保存成功!"); | NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方保存成功!"); | ||||
}); | }); | ||||
RemoveCommand = new RelayCommand<object>((o) => | RemoveCommand = new RelayCommand<object>((o) => | ||||
@@ -41,6 +44,7 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
{ | { | ||||
var res = Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | var res = Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | ||||
if (res != null) Json<LocaPar>.Data.Recipes.Remove(res); | if (res != null) Json<LocaPar>.Data.Recipes.Remove(res); | ||||
MessageLog.GetInstance.ShowUserLog($"删除名称——{res.RecipeName}"); | |||||
} | } | ||||
}); | }); | ||||
@@ -50,9 +54,10 @@ namespace BPASmartClient.DosingSystem.ViewModel | |||||
{ | { | ||||
ActionManage.GetInstance.CancelRegister("Details"); | ActionManage.GetInstance.CancelRegister("Details"); | ||||
NewRecipeView nrv = new NewRecipeView(); | NewRecipeView nrv = new NewRecipeView(); | ||||
ActionManage.GetInstance.Send("Details", Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str)); | |||||
var res = Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | |||||
ActionManage.GetInstance.Send("Details",res); | |||||
nrv.ShowDialog(); | nrv.ShowDialog(); | ||||
MessageLog.GetInstance.ShowUserLog($"编辑配方名称——{res.RecipeName}"); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@@ -70,6 +70,7 @@ namespace FryPot_DosingSystem | |||||
} | } | ||||
private void MenuInite() | private void MenuInite() | ||||
{ | { | ||||
NfcServer.GetInstance.Init(); | |||||
#region 配方管理菜单 | #region 配方管理菜单 | ||||
ObservableCollection<SubMenumodel> RecipeManage = new ObservableCollection<SubMenumodel>(); | ObservableCollection<SubMenumodel> RecipeManage = new ObservableCollection<SubMenumodel>(); | ||||
RecipeManage.Add(new SubMenumodel() | RecipeManage.Add(new SubMenumodel() | ||||
@@ -214,10 +215,16 @@ namespace FryPot_DosingSystem | |||||
{ | { | ||||
SubMenuName = "账号管理", | SubMenuName = "账号管理", | ||||
SubMenuPermission = new Permission[] { Permission.管理员 }, | SubMenuPermission = new Permission[] { Permission.管理员 }, | ||||
AssemblyName = "FryPot_DosingSystem", | |||||
ToggleWindowPath = "View.UserManageView" | |||||
AssemblyName = "BPASmartClient.CustomResource", | |||||
ToggleWindowPath = "Pages.View.UserManageView" | |||||
}); | |||||
UserManager.Add(new SubMenumodel() | |||||
{ | |||||
SubMenuName = "NFC登录设置", | |||||
SubMenuPermission = new Permission[] { Permission.管理员 }, | |||||
AssemblyName = "BPASmartClient.CustomResource", | |||||
ToggleWindowPath = "Pages.View.NfcSetView" | |||||
}); | }); | ||||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | MenuManage.GetInstance.menuModels.Add(new MenuModel() | ||||
{ | { | ||||
MainMenuIcon = "", | MainMenuIcon = "", | ||||
@@ -227,6 +234,7 @@ namespace FryPot_DosingSystem | |||||
subMenumodels = UserManager, | subMenumodels = UserManager, | ||||
}); | }); | ||||
#endregion | #endregion | ||||
#region 调试界面 | |||||
ObservableCollection<SubMenumodel> DebugManage = new ObservableCollection<SubMenumodel>(); | ObservableCollection<SubMenumodel> DebugManage = new ObservableCollection<SubMenumodel>(); | ||||
DebugManage.Add(new SubMenumodel() | DebugManage.Add(new SubMenumodel() | ||||
{ | { | ||||
@@ -234,7 +242,8 @@ namespace FryPot_DosingSystem | |||||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 }, | SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 }, | ||||
AssemblyName = "FryPot_DosingSystem", | AssemblyName = "FryPot_DosingSystem", | ||||
ToggleWindowPath = "View.DebugView" | ToggleWindowPath = "View.DebugView" | ||||
}); | |||||
}); | |||||
#endregion | |||||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | MenuManage.GetInstance.menuModels.Add(new MenuModel() | ||||
{ | { | ||||
MainMenuIcon = "", | MainMenuIcon = "", | ||||
@@ -92,6 +92,7 @@ namespace FryPot_DosingSystem.Control | |||||
Port = devices.Devices[0].Port; | Port = devices.Devices[0].Port; | ||||
DeviceName = devices.Devices[0].DeviceName; | DeviceName = devices.Devices[0].DeviceName; | ||||
Task.Run(() => { modbus.ModbusTcpConnect(Ip, Convert.ToInt32(Port)); }); | Task.Run(() => { modbus.ModbusTcpConnect(Ip, Convert.ToInt32(Port)); }); | ||||
// Task.Run(() => { modbus.ModbusTcpConnect(Ip, Convert.ToInt32(Port)); App.Current.Dispatcher.Invoke(new Action(() => { BPASmartClient.CustomResource.Pages.Model.MessageLog.GetInstance.RunLog("PLC连接成功"); })); }); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -19,6 +19,9 @@ using System.Windows.Media; | |||||
using System.Windows; | using System.Windows; | ||||
using FryPot_DosingSystem.AGV; | using FryPot_DosingSystem.AGV; | ||||
using FryPot_DosingSystem.FryPotStatus; | using FryPot_DosingSystem.FryPotStatus; | ||||
using System.IO; | |||||
using System.Runtime.Serialization.Formatters.Binary; | |||||
using System.Diagnostics; | |||||
namespace FryPot_DosingSystem.Control | namespace FryPot_DosingSystem.Control | ||||
{ | { | ||||
@@ -104,6 +107,11 @@ namespace FryPot_DosingSystem.Control | |||||
bool ErrorRecipe;//线体1错误配方标识 | bool ErrorRecipe;//线体1错误配方标识 | ||||
bool LTwoErrorRecipe;//线体2错误配方标识 | bool LTwoErrorRecipe;//线体2错误配方标识 | ||||
bool LThreeErrorRecipe;//线体3错误配方标识 | bool LThreeErrorRecipe;//线体3错误配方标识 | ||||
string fryOneRecipe = string.Empty; | |||||
string fryTwoRecipe = string.Empty; | |||||
string fryThreeRecipe = string.Empty; | |||||
string fryFourRecipe = string.Empty; | |||||
string fryFiveRecipe = string.Empty; | |||||
#endregion | #endregion | ||||
#region agv临时变量 | #region agv临时变量 | ||||
//bool agvArriveUpLoad = false;//agv是否到达线体1上料位置 | //bool agvArriveUpLoad = false;//agv是否到达线体1上料位置 | ||||
@@ -246,6 +254,7 @@ namespace FryPot_DosingSystem.Control | |||||
//fryFive = new PotFiveStatus(); | //fryFive = new PotFiveStatus(); | ||||
hardWareStatusModel = HardWareStatusViewModel.GetInstance; | hardWareStatusModel = HardWareStatusViewModel.GetInstance; | ||||
DateTimeJudge(); | DateTimeJudge(); | ||||
FileRegClean(); | |||||
ActionManage.GetInstance.Register(new Action<object[]>(RecipeDataParse), "RecipeSetDown"); | ActionManage.GetInstance.Register(new Action<object[]>(RecipeDataParse), "RecipeSetDown"); | ||||
//ActionManage.GetInstance.Register(new Action(() => { RecipeQuene.Clear(); InputMaterialQuene.Clear(); OutputMaterialQuene.Clear(); LTwoInputMaterialQuene.Clear(); LTwoOutputMaterialQuene.Clear(); LThreeInputMaterialQuene.Clear(); LThreeOutputMaterialQuene.Clear(); }), "ClearRecipes"); | //ActionManage.GetInstance.Register(new Action(() => { RecipeQuene.Clear(); InputMaterialQuene.Clear(); OutputMaterialQuene.Clear(); LTwoInputMaterialQuene.Clear(); LTwoOutputMaterialQuene.Clear(); LThreeInputMaterialQuene.Clear(); LThreeOutputMaterialQuene.Clear(); }), "ClearRecipes"); | ||||
ActionManage.GetInstance.Register(new Action(() => { RecipeQuene.Clear(); InputMaterialQuene.Clear(); OutputMaterialQuene.Clear(); }), "ClearOneRecipes"); | ActionManage.GetInstance.Register(new Action(() => { RecipeQuene.Clear(); InputMaterialQuene.Clear(); OutputMaterialQuene.Clear(); }), "ClearOneRecipes"); | ||||
@@ -260,59 +269,221 @@ namespace FryPot_DosingSystem.Control | |||||
HubHelper.GetInstance.Upstreamrequest = new Action<object>(AgvFeedBackUpReportDataAnalysis); | HubHelper.GetInstance.Upstreamrequest = new Action<object>(AgvFeedBackUpReportDataAnalysis); | ||||
// ResetProgram(); | // ResetProgram(); | ||||
ReadPlcData(); | ReadPlcData(); | ||||
SaveFryPotData(); | |||||
MainTask(); | MainTask(); | ||||
CommandRegist(); | CommandRegist(); | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 时间判断,数据处理 | |||||
/// 文件数据定期清理 | |||||
/// </summary> | /// </summary> | ||||
private void DateTimeJudge() | |||||
/// <exception cref="NotImplementedException"></exception> | |||||
private void FileRegClean() | |||||
{ | { | ||||
if (Sqlite<PotOneStatus>.GetInstance.GetData().Count > 0) | |||||
string[] filesOne = Directory.GetFiles("AccessFile//DB//炒锅1状态数据"); | |||||
if (filesOne.Count() > 0) | |||||
{ | |||||
} | |||||
string[] filesTwo = Directory.GetFiles("AccessFile//DB//炒锅2状态数据"); | |||||
if (filesTwo.Count() > 0) | |||||
{ | |||||
} | |||||
string[] filesThree = Directory.GetFiles("AccessFile//DB//炒锅3状态数据"); | |||||
if (filesThree.Count() > 0) | |||||
{ | |||||
} | |||||
string[] filesFour = Directory.GetFiles("AccessFile//DB//炒锅4状态数据"); | |||||
if (filesFour.Count() > 0) | |||||
{ | |||||
} | |||||
string[] filesFive = Directory.GetDirectories("AccessFile//DB//炒锅5状态数据"); | |||||
if (filesFive.Count() > 0) | |||||
{ | { | ||||
string time1 = Sqlite<PotOneStatus>.GetInstance.GetData().Last().Time; | |||||
if (time1.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
foreach (var item in filesFive) | |||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy = Sqlite<PotOneStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
FryPotMonitorManage.GetInstance.fryOne.TotalProduct = Sqlite<PotOneStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
FileInfo info = new FileInfo(item); | |||||
DateTime createTime = info.CreationTime; | |||||
DateTime timeNow = DateTime.Now; | |||||
if (TimeDiff(timeNow, createTime) != 0 && TimeDiff(timeNow, createTime) > 30) | |||||
{ | |||||
Directory.Delete(item); | |||||
} | |||||
} | } | ||||
} | } | ||||
if (Sqlite<PotTwoStatus>.GetInstance.GetData().Count > 0) | |||||
} | |||||
/// <summary> | |||||
/// 时间差计算 | |||||
/// </summary> | |||||
/// <param name="t">当前时间</param> | |||||
/// <param name="t2">创建时间</param> | |||||
/// <returns></returns> | |||||
private int TimeDiff(DateTime t, DateTime t2) | |||||
{ | |||||
long lReturn = -1; | |||||
System.TimeSpan NowValue = new TimeSpan(t.Ticks); | |||||
System.TimeSpan TimeValue = new TimeSpan(t2.Ticks); | |||||
System.TimeSpan DateDiff = TimeSpan.Zero; | |||||
try | |||||
{ | |||||
//计算时间差 | |||||
//DateDiff = TimeValue.Subtract(NowValue).Duration(); | |||||
DateDiff = NowValue.Subtract(TimeValue); | |||||
int h= DateDiff.Hours; | |||||
int m= DateDiff.Minutes; | |||||
return DateDiff.Days; | |||||
} | |||||
catch | |||||
{ | |||||
return -1; | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 炒锅数据实时保存 | |||||
/// </summary> | |||||
/// <exception cref="NotImplementedException"></exception> | |||||
private void SaveFryPotData() | |||||
{ | |||||
Task.Run(new Action(() => | |||||
{ | { | ||||
string time2 = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().Time; | |||||
if (time2.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
while (true) | |||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
FryPotMonitorManage.GetInstance.fryTwo.TotalProduct = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
FryPotDataSaveToBinaryFile(); Thread.Sleep(1000); | |||||
} | |||||
})); | |||||
} | |||||
/// <summary> | |||||
/// 时间判断,数据处理 | |||||
/// </summary> | |||||
private void DateTimeJudge() | |||||
{ | |||||
#region sqlite数据库保存 | |||||
//if (Sqlite<PotOneStatus>.GetInstance.GetData().Count > 0) | |||||
//{ | |||||
// string time1 = Sqlite<PotOneStatus>.GetInstance.GetData().Last().Time; | |||||
// if (time1.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
// { | |||||
// FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy = Sqlite<PotOneStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
// FryPotMonitorManage.GetInstance.fryOne.TotalProduct = Sqlite<PotOneStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
// } | |||||
//} | |||||
//if (Sqlite<PotTwoStatus>.GetInstance.GetData().Count > 0) | |||||
//{ | |||||
// string time2 = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().Time; | |||||
// if (time2.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
// { | |||||
// FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
// FryPotMonitorManage.GetInstance.fryTwo.TotalProduct = Sqlite<PotTwoStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
// } | |||||
//} | |||||
//if (Sqlite<PotThreeStatus>.GetInstance.GetData().Count > 0) | |||||
//{ | |||||
// string time3 = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().Time; | |||||
// if (time3.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
// { | |||||
// FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
// FryPotMonitorManage.GetInstance.fryThree.TotalProduct = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
// } | |||||
//} | |||||
//if (Sqlite<PotFourStatus>.GetInstance.GetData().Count > 0) | |||||
//{ | |||||
// string time4 = Sqlite<PotFourStatus>.GetInstance.GetData().Last().Time; | |||||
// if (time4.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
// { | |||||
// FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy = Sqlite<PotFourStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
// FryPotMonitorManage.GetInstance.fryFour.TotalProduct = Sqlite<PotFourStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
// } | |||||
//} | |||||
//if (Sqlite<PotFiveStatus>.GetInstance.GetData().Count > 0) | |||||
//{ | |||||
// string time5 = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().Time; | |||||
// if (time5.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
// { | |||||
// FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
// FryPotMonitorManage.GetInstance.fryFive.TotalProduct = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
// } | |||||
//} | |||||
#endregion | |||||
string p1 = "AccessFile//" + "Statistic//" + "FryOne.txt"; | |||||
string p2 = "AccessFile//" + "Statistic//" + "FryTwo.txt"; | |||||
string p3 = "AccessFile//" + "Statistic//" + "FryThree.txt"; | |||||
string p4 = "AccessFile//" + "Statistic//" + "FryFour.txt"; | |||||
string p5 = "AccessFile//" + "Statistic//" + "FryFive.txt"; | |||||
if (!Directory.Exists("AccessFile//" + "Statistic")) | |||||
Directory.CreateDirectory("AccessFile//" + "Statistic"); | |||||
if (File.Exists(p1)) | |||||
{ | |||||
using (StreamReader sReader = new StreamReader(p1, Encoding.UTF8)) | |||||
{ | |||||
string time = sReader.ReadLine(); | |||||
string statistic = sReader.ReadLine(); | |||||
if (DateTime.Now.ToShortDateString() == time) | |||||
{ | |||||
FryPotMonitorManage.GetInstance.fryOne.TotalProduct = Convert.ToInt32(statistic.Split('/')[0]); | |||||
FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy = Convert.ToDouble(statistic.Split('/')[1]); | |||||
} | |||||
} | } | ||||
} | } | ||||
if (Sqlite<PotThreeStatus>.GetInstance.GetData().Count > 0) | |||||
if (File.Exists(p2)) | |||||
{ | { | ||||
string time3 = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().Time; | |||||
if (time3.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
using (StreamReader sReader = new StreamReader(p2, Encoding.UTF8)) | |||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
FryPotMonitorManage.GetInstance.fryThree.TotalProduct = Sqlite<PotThreeStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
string time = sReader.ReadLine(); | |||||
string statistic = sReader.ReadLine(); | |||||
if (DateTime.Now.ToShortDateString() == time) | |||||
{ | |||||
FryPotMonitorManage.GetInstance.fryTwo.TotalProduct = Convert.ToInt32(statistic.Split('/')[0]); | |||||
FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy = Convert.ToDouble(statistic.Split('/')[1]); | |||||
} | |||||
} | } | ||||
} | } | ||||
if (Sqlite<PotFourStatus>.GetInstance.GetData().Count > 0) | |||||
if (File.Exists(p3)) | |||||
{ | { | ||||
string time4 = Sqlite<PotFourStatus>.GetInstance.GetData().Last().Time; | |||||
if (time4.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
using (StreamReader sReader = new StreamReader(p3, Encoding.UTF8)) | |||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy = Sqlite<PotFourStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
FryPotMonitorManage.GetInstance.fryFour.TotalProduct = Sqlite<PotFourStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
string time = sReader.ReadLine(); | |||||
string statistic = sReader.ReadLine(); | |||||
if (DateTime.Now.ToShortDateString() == time) | |||||
{ | |||||
FryPotMonitorManage.GetInstance.fryThree.TotalProduct = Convert.ToInt32(statistic.Split('/')[0]); | |||||
FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy = Convert.ToDouble(statistic.Split('/')[1]); | |||||
} | |||||
} | } | ||||
} | } | ||||
if (File.Exists(p4)) | |||||
{ | |||||
using (StreamReader sReader = new StreamReader(p4, Encoding.UTF8)) | |||||
{ | |||||
string time = sReader.ReadLine(); | |||||
string statistic = sReader.ReadLine(); | |||||
if (DateTime.Now.ToShortDateString() == time) | |||||
{ | |||||
FryPotMonitorManage.GetInstance.fryFour.TotalProduct = Convert.ToInt32(statistic.Split('/')[0]); | |||||
FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy = Convert.ToDouble(statistic.Split('/')[1]); | |||||
if (Sqlite<PotFiveStatus>.GetInstance.GetData().Count > 0) | |||||
} | |||||
} | |||||
} | |||||
if (File.Exists(p5)) | |||||
{ | { | ||||
string time5 = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().Time; | |||||
if (time5.Equals(DateTime.Now.ToShortDateString()))//和当天时间一样 | |||||
using (StreamReader sReader = new StreamReader(p5, Encoding.UTF8)) | |||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().TotalOilCapactiy; | |||||
FryPotMonitorManage.GetInstance.fryFive.TotalProduct = Sqlite<PotFiveStatus>.GetInstance.GetData().Last().TotalProduct; | |||||
} | |||||
string time = sReader.ReadLine(); | |||||
string statistic = sReader.ReadLine(); | |||||
if (DateTime.Now.ToShortDateString() == time) | |||||
{ | |||||
FryPotMonitorManage.GetInstance.fryFive.TotalProduct = Convert.ToInt32(statistic.Split('/')[0]); | |||||
FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy = Convert.ToDouble(statistic.Split('/')[1]); | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
@@ -860,10 +1031,7 @@ namespace FryPot_DosingSystem.Control | |||||
} | } | ||||
//炒锅状态实时显示 | //炒锅状态实时显示 | ||||
FryPotStatusDisplay(); | FryPotStatusDisplay(); | ||||
RollerLineStatusDisplay(); | RollerLineStatusDisplay(); | ||||
Thread.Sleep(10); | Thread.Sleep(10); | ||||
}), "MainViewReadPlcData"); | }), "MainViewReadPlcData"); | ||||
@@ -911,8 +1079,201 @@ namespace FryPot_DosingSystem.Control | |||||
FryPotInfoManage.GetInstance.variableInfos.FirstOrDefault(p => p.VarName == "FryPotFiveTotalOil").CurrentValue = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy.ToString(); | FryPotInfoManage.GetInstance.variableInfos.FirstOrDefault(p => p.VarName == "FryPotFiveTotalOil").CurrentValue = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy.ToString(); | ||||
FryPotInfoManage.GetInstance.variableInfos.FirstOrDefault(p => p.VarName == "FryPotFiveTotalProduct").CurrentValue = FryPotMonitorManage.GetInstance.fryFive.TotalProduct.ToString(); | FryPotInfoManage.GetInstance.variableInfos.FirstOrDefault(p => p.VarName == "FryPotFiveTotalProduct").CurrentValue = FryPotMonitorManage.GetInstance.fryFive.TotalProduct.ToString(); | ||||
//FryPotMonitorManage.GetInstance.fryFive.Temperature = 10; | |||||
//FryPotMonitorManage.GetInstance.fryFive.HotPower = "9"; | |||||
//FryPotMonitorManage.GetInstance.fryFive.Speed = 8; | |||||
//FryPotMonitorManage.GetInstance.fryFive.FryPotWeight=7; | |||||
//FryPotMonitorManage.GetInstance.fryFive.OilCapacity = 6; | |||||
//FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy = 5; | |||||
//FryPotMonitorManage.GetInstance.fryFive.TotalProduct = 4; | |||||
} | } | ||||
/// <summary> | |||||
/// 炒锅状态数据保存到二进制文件 | |||||
/// </summary> | |||||
public void FryPotDataSaveToBinaryFile() | |||||
{ | |||||
#region 炒锅1状态数据保存 | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅1状态数据")) | |||||
{ | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅1状态数据"); | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LOneFryPotSerial == 1 && fryOneRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryOneRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotOneStatus p1 = new PotOneStatus { Temperature = FryPotMonitorManage.GetInstance.fryOne.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryOne.HotPower, Speed = FryPotMonitorManage.GetInstance.fryOne.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryOne.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryOne.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryOne.TotalProduct, RecipeName = fryOneRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LOneFryPotSerial == 1 && fryOneRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅1状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryOneRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotOneStatus p1 = new PotOneStatus { Temperature = FryPotMonitorManage.GetInstance.fryOne.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryOne.HotPower, Speed = FryPotMonitorManage.GetInstance.fryOne.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryOne.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryOne.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryOne.TotalProduct, RecipeName = fryOneRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 炒锅2状态数据保存 | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅2状态数据")) | |||||
{ | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅2状态数据"); | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LTwoFryPotSerial == 2 && fryTwoRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryTwoRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
PotTwoStatus p1 = new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, RecipeName = fryTwoRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LTwoFryPotSerial == 2 && fryTwoRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅2状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryTwoRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
PotTwoStatus p1 = new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, RecipeName = fryTwoRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 炒锅3状态数据保存 | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅3状态数据")) | |||||
{ | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅3状态数据"); | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LThreeFryPotSerial == 3 && fryThreeRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryThreeRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
PotThreeStatus p1 = new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, RecipeName = fryThreeRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LThreeFryPotSerial == 3 && fryThreeRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅3状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryThreeRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
PotThreeStatus p1 = new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, RecipeName = fryThreeRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 炒锅4状态数据保存 | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅4状态数据")) | |||||
{ | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅4状态数据"); | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LOneFryPotSerial == 4 && fryFourRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryFourRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotFourStatus p1 = new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, RecipeName = fryFourRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LOneFryPotSerial == 4 && fryFourRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅4状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryFourRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotFourStatus p1 = new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, RecipeName = fryFourRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
#region 炒锅5状态数据保存 | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅5状态数据")) | |||||
{ | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅5状态数据"); | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LTwoFryPotSerial == 5 && fryFiveRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryFiveRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotFiveStatus p1 = new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, RecipeName = fryFiveRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
if (!Directory.Exists("AccessFile\\" + "DB" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString())) | |||||
Directory.CreateDirectory("AccessFile\\" + "DB\\" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString()); | |||||
if (globalVar.LTwoFryPotSerial == 5 && fryFiveRecipe != string.Empty) | |||||
{ | |||||
using (FileStream writeStream = new FileStream("AccessFile\\" + "DB\\" + "炒锅5状态数据\\" + DateTime.Now.ToShortDateString() + "\\" + DateTime.Now.ToString("hh:mm").Replace(':', '.') + fryFiveRecipe + ".bin", FileMode.OpenOrCreate, FileAccess.Write)) | |||||
{ | |||||
writeStream.Position = writeStream.Length; | |||||
PotFiveStatus p1 = new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, RecipeName = fryFiveRecipe, Time = DateTime.Now.ToShortDateString() }; | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
bf.Serialize(writeStream, p1); | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// 滚筒线运行状态显示 | /// 滚筒线运行状态显示 | ||||
/// </summary> | /// </summary> | ||||
@@ -1156,13 +1517,19 @@ namespace FryPot_DosingSystem.Control | |||||
if (globalVar.LThreeCurrentRecipeName != string.Empty) | if (globalVar.LThreeCurrentRecipeName != string.Empty) | ||||
{ | { | ||||
MessageLog.GetInstance.ShowUserLog($"【3】号滚筒线【{globalVar.LThreeCurrentRecipeName}】 配方制作完成"); | MessageLog.GetInstance.ShowUserLog($"【3】号滚筒线【{globalVar.LThreeCurrentRecipeName}】 配方制作完成"); | ||||
globalVar.LThreeCurrentRecipeName = string.Empty; | |||||
if (globalVar.LThreeFryPotSerial == 3) | if (globalVar.LThreeFryPotSerial == 3) | ||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryThree.TotalProduct++; | FryPotMonitorManage.GetInstance.fryThree.TotalProduct++; | ||||
Sqlite<PotThreeStatus>.GetInstance.Base.Add(new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotThreeStatus>.GetInstance.Save();//保存数据 | |||||
using (StreamWriter txtWriter = new StreamWriter("AccessFile//" + "Statistic//" + "FryThree.txt", false, Encoding.UTF8)) | |||||
{ | |||||
txtWriter.WriteLine(DateTime.Now.ToShortDateString()); | |||||
txtWriter.WriteLine(FryPotMonitorManage.GetInstance.fryThree.TotalProduct + "/" + FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy);//炒锅1产量以及总油量记录 | |||||
} | |||||
//Sqlite<PotThreeStatus>.GetInstance.Base.Add(new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotThreeStatus>.GetInstance.Save();//保存数据 | |||||
} | } | ||||
globalVar.LThreeCurrentRecipeName = string.Empty; | |||||
Task.Run(() => { Thread.Sleep(1500); fryThreeRecipe = string.Empty; }); | |||||
} | } | ||||
} | } | ||||
if (LThreeRecipeQuene.Count > 0 && LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0)//后续添加其它限制条件 | if (LThreeRecipeQuene.Count > 0 && LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0)//后续添加其它限制条件 | ||||
@@ -1179,12 +1546,14 @@ namespace FryPot_DosingSystem.Control | |||||
globalVar.LThreeMaterialNum = result.materialCollection.Count; | globalVar.LThreeMaterialNum = result.materialCollection.Count; | ||||
globalVar.LThreeFryPotSerial = headNum; | globalVar.LThreeFryPotSerial = headNum; | ||||
globalVar.LThreeCurrentRecipeName = result.RecipeName; | globalVar.LThreeCurrentRecipeName = result.RecipeName; | ||||
AgvViewModel.GetInstance().Set滚筒线上数量(3, globalVar.LThreeMaterialNum.ToString()); | AgvViewModel.GetInstance().Set滚筒线上数量(3, globalVar.LThreeMaterialNum.ToString()); | ||||
MessageLog.GetInstance.ShowUserLog($"【3】号滚筒线开始制作【{result.RecipeName}】 配方"); | MessageLog.GetInstance.ShowUserLog($"【3】号滚筒线开始制作【{result.RecipeName}】 配方"); | ||||
for (int i = 0; i < result.materialCollection.Count; i++) //遍历单个配方中所有物料 | for (int i = 0; i < result.materialCollection.Count; i++) //遍历单个配方中所有物料 | ||||
{ | { | ||||
if (result.materialCollection[i].MaterialLoc % 100 == i + 1 && result.materialCollection[i].MaterialLoc / 100 == headNum && headNum == 3) | if (result.materialCollection[i].MaterialLoc % 100 == i + 1 && result.materialCollection[i].MaterialLoc / 100 == headNum && headNum == 3) | ||||
{ | { | ||||
fryThreeRecipe = result.RecipeName;//炒锅状态开始记录 | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_3.goodsName = result.RecipeName; })); | Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_3.goodsName = result.RecipeName; })); | ||||
//将配方中原料加入新的队列 | //将配方中原料加入新的队列 | ||||
LThreeInputMaterialQuene.Enqueue(new MaterialInfo() | LThreeInputMaterialQuene.Enqueue(new MaterialInfo() | ||||
@@ -1221,19 +1590,30 @@ namespace FryPot_DosingSystem.Control | |||||
if (globalVar.LTwoCurrentRecipeName != string.Empty) | if (globalVar.LTwoCurrentRecipeName != string.Empty) | ||||
{ | { | ||||
MessageLog.GetInstance.ShowUserLog($"【2】号滚筒线【{globalVar.LTwoCurrentRecipeName}】 配方制作完成"); | MessageLog.GetInstance.ShowUserLog($"【2】号滚筒线【{globalVar.LTwoCurrentRecipeName}】 配方制作完成"); | ||||
globalVar.LTwoCurrentRecipeName = string.Empty; | |||||
if (globalVar.LTwoFryPotSerial == 2) | if (globalVar.LTwoFryPotSerial == 2) | ||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryTwo.TotalProduct++; | FryPotMonitorManage.GetInstance.fryTwo.TotalProduct++; | ||||
Sqlite<PotTwoStatus>.GetInstance.Base.Add(new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotTwoStatus>.GetInstance.Save();//保存数据 | |||||
using (StreamWriter txtWriter = new StreamWriter("AccessFile//" + "Statistic//" + "FryTwo.txt", false, Encoding.UTF8)) | |||||
{ | |||||
txtWriter.WriteLine(DateTime.Now.ToShortDateString()); | |||||
txtWriter.WriteLine(FryPotMonitorManage.GetInstance.fryTwo.TotalProduct + "/" + FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy);//炒锅1产量以及总油量记录 | |||||
} | |||||
//Sqlite<PotTwoStatus>.GetInstance.Base.Add(new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotTwoStatus>.GetInstance.Save();//保存数据 | |||||
} | } | ||||
if (globalVar.LTwoFryPotSerial == 5) | if (globalVar.LTwoFryPotSerial == 5) | ||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryFive.TotalProduct++; | FryPotMonitorManage.GetInstance.fryFive.TotalProduct++; | ||||
Sqlite<PotFiveStatus>.GetInstance.Base.Add(new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotFiveStatus>.GetInstance.Save();//保存数据 | |||||
using (StreamWriter txtWriter = new StreamWriter("AccessFile//" + "Statistic//" + "FryFive.txt", false, Encoding.UTF8)) | |||||
{ | |||||
txtWriter.WriteLine(DateTime.Now.ToShortDateString()); | |||||
txtWriter.WriteLine(FryPotMonitorManage.GetInstance.fryFive.TotalProduct + "/" + FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy);//炒锅1产量以及总油量记录 | |||||
} | |||||
//Sqlite<PotFiveStatus>.GetInstance.Base.Add(new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotFiveStatus>.GetInstance.Save();//保存数据 | |||||
} | } | ||||
globalVar.LTwoCurrentRecipeName = string.Empty; | |||||
Task.Run(() => { Thread.Sleep(2000); fryTwoRecipe = string.Empty; fryFiveRecipe = string.Empty; }); | |||||
} | } | ||||
} | } | ||||
@@ -1268,10 +1648,12 @@ namespace FryPot_DosingSystem.Control | |||||
{ | { | ||||
if (headNum == 1)//炒锅2 | if (headNum == 1)//炒锅2 | ||||
{ | { | ||||
fryTwoRecipe = result.RecipeName;//炒锅状态开始记录 | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_2.goodsName = result.RecipeName; })); | Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_2.goodsName = result.RecipeName; })); | ||||
} | } | ||||
else//炒锅5 | else//炒锅5 | ||||
{ | { | ||||
fryFiveRecipe = result.RecipeName;//炒锅状态开始记录 | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_5.goodsName = result.RecipeName; })); | Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_5.goodsName = result.RecipeName; })); | ||||
} | } | ||||
//将配方中原料加入新的队列 | //将配方中原料加入新的队列 | ||||
@@ -1309,20 +1691,30 @@ namespace FryPot_DosingSystem.Control | |||||
if (globalVar.LOneCurrentRecipeName != string.Empty) | if (globalVar.LOneCurrentRecipeName != string.Empty) | ||||
{ | { | ||||
MessageLog.GetInstance.ShowUserLog($"【1】号滚筒线【{globalVar.LOneCurrentRecipeName}】 配方制作完成"); | MessageLog.GetInstance.ShowUserLog($"【1】号滚筒线【{globalVar.LOneCurrentRecipeName}】 配方制作完成"); | ||||
globalVar.LOneCurrentRecipeName = string.Empty; | |||||
if (globalVar.LOneFryPotSerial == 1) | if (globalVar.LOneFryPotSerial == 1) | ||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryOne.TotalProduct++; | FryPotMonitorManage.GetInstance.fryOne.TotalProduct++; | ||||
Sqlite<PotOneStatus>.GetInstance.Base.Add(new PotOneStatus { Temperature = FryPotMonitorManage.GetInstance.fryOne.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryOne.HotPower, Speed = FryPotMonitorManage.GetInstance.fryOne.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryOne.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryOne.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryOne.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotOneStatus>.GetInstance.Save();//保存数据 | |||||
using (StreamWriter txtWriter = new StreamWriter("AccessFile//" + "Statistic//" + "FryOne.txt", false, Encoding.UTF8)) | |||||
{ | |||||
txtWriter.WriteLine(DateTime.Now.ToShortDateString()); | |||||
txtWriter.WriteLine(FryPotMonitorManage.GetInstance.fryOne.TotalProduct + "/" + FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy);//炒锅1产量以及总油量记录 | |||||
} | |||||
//Sqlite<PotOneStatus>.GetInstance.Base.Add(new PotOneStatus { Temperature = FryPotMonitorManage.GetInstance.fryOne.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryOne.HotPower, Speed = FryPotMonitorManage.GetInstance.fryOne.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryOne.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryOne.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryOne.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotOneStatus>.GetInstance.Save();//保存数据 | |||||
} | } | ||||
if (globalVar.LOneFryPotSerial == 4) | if (globalVar.LOneFryPotSerial == 4) | ||||
{ | { | ||||
FryPotMonitorManage.GetInstance.fryFour.TotalProduct++; | FryPotMonitorManage.GetInstance.fryFour.TotalProduct++; | ||||
Sqlite<PotFourStatus>.GetInstance.Base.Add(new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotFourStatus>.GetInstance.Save();//保存数据 | |||||
using (StreamWriter txtWriter = new StreamWriter("AccessFile//" + "Statistic//" + "FryFour.txt", false, Encoding.UTF8)) | |||||
{ | |||||
txtWriter.WriteLine(DateTime.Now.ToShortDateString()); | |||||
txtWriter.WriteLine(FryPotMonitorManage.GetInstance.fryFour.TotalProduct + "/" + FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy);//炒锅1产量以及总油量记录 | |||||
} | |||||
//Sqlite<PotFourStatus>.GetInstance.Base.Add(new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotFourStatus>.GetInstance.Save();//保存数据 | |||||
} | } | ||||
globalVar.LOneCurrentRecipeName = string.Empty; | |||||
Task.Run(() => { Thread.Sleep(1500); fryOneRecipe = string.Empty; fryFourRecipe = string.Empty; }); | |||||
} | } | ||||
} | } | ||||
if (RecipeQuene.Count > 0 && OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0)//后续添加其它限制条件 | if (RecipeQuene.Count > 0 && OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0)//后续添加其它限制条件 | ||||
@@ -1354,10 +1746,12 @@ namespace FryPot_DosingSystem.Control | |||||
{ | { | ||||
if (headNum == 1)//炒锅1 | if (headNum == 1)//炒锅1 | ||||
{ | { | ||||
fryOneRecipe = result.RecipeName;//炒锅状态开始记录 | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_1.goodsName = result.RecipeName; })); | Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_1.goodsName = result.RecipeName; })); | ||||
} | } | ||||
else//炒锅4 | else//炒锅4 | ||||
{ | { | ||||
fryFourRecipe = result.RecipeName;//炒锅状态开始记录 | |||||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_4.goodsName = result.RecipeName; })); | Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_4.goodsName = result.RecipeName; })); | ||||
} | } | ||||
//将配方中原料加入新的队列 | //将配方中原料加入新的队列 | ||||
@@ -1553,16 +1947,16 @@ namespace FryPot_DosingSystem.Control | |||||
{ | { | ||||
if (!globalVar.InOrOutputLock && (globalVar.fryPotOne.InputMaterialArrivedSingle == 1 || globalVar.fryPotFour.InputMaterialArrivedSingle == 1) && globalVar.PotOneInputMaterialArrive && OutputMaterialQuene.Count > 0 && !globalVar.PotOneOutputRollerArrive) | if (!globalVar.InOrOutputLock && (globalVar.fryPotOne.InputMaterialArrivedSingle == 1 || globalVar.fryPotFour.InputMaterialArrivedSingle == 1) && globalVar.PotOneInputMaterialArrive && OutputMaterialQuene.Count > 0 && !globalVar.PotOneOutputRollerArrive) | ||||
{ | { | ||||
if (globalVar.LOneFryPotSerial == 1) | |||||
{ | |||||
Sqlite<PotOneStatus>.GetInstance.Base.Add(new PotOneStatus {Temperature= FryPotMonitorManage.GetInstance.fryOne.Temperature,HotPower= FryPotMonitorManage.GetInstance.fryOne.HotPower,Speed=FryPotMonitorManage.GetInstance.fryOne.Speed,FryPotWeight=FryPotMonitorManage.GetInstance.fryOne.FryPotWeight,OilCapacity=FryPotMonitorManage.GetInstance.fryOne.OilCapacity,TotalOilCapactiy=FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy,TotalProduct=FryPotMonitorManage.GetInstance.fryOne.TotalProduct,Time=DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotOneStatus>.GetInstance.Save();//保存数据 | |||||
} | |||||
else | |||||
{ | |||||
Sqlite<PotFourStatus>.GetInstance.Base.Add(new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotFourStatus>.GetInstance.Save();//保存数据 | |||||
} | |||||
//if (globalVar.LOneFryPotSerial == 1) | |||||
//{ | |||||
// Sqlite<PotOneStatus>.GetInstance.Base.Add(new PotOneStatus { Temperature = FryPotMonitorManage.GetInstance.fryOne.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryOne.HotPower, Speed = FryPotMonitorManage.GetInstance.fryOne.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryOne.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryOne.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryOne.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryOne.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
// Sqlite<PotOneStatus>.GetInstance.Save();//保存数据 | |||||
//} | |||||
//else | |||||
//{ | |||||
// Sqlite<PotFourStatus>.GetInstance.Base.Add(new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
// Sqlite<PotFourStatus>.GetInstance.Save();//保存数据 | |||||
//} | |||||
FryPotOneRollerTroubleCheck(); | FryPotOneRollerTroubleCheck(); | ||||
if (FryPotAlarm == 1 || FryPotFourAlarm == 1)//炒锅滚筒无故障 | if (FryPotAlarm == 1 || FryPotFourAlarm == 1)//炒锅滚筒无故障 | ||||
{ | { | ||||
@@ -1612,16 +2006,16 @@ namespace FryPot_DosingSystem.Control | |||||
{ | { | ||||
if (!globalVar.LTwoInOrOutputLock && (globalVar.fryPotTwo.InputMaterialArrivedSingle == 1 || globalVar.fryPotFive.InputMaterialArrivedSingle == 1) && globalVar.LTwoPotInputMaterialArrive && LTwoOutputMaterialQuene.Count > 0 && !globalVar.LTwoPotOutputRollerArrive) | if (!globalVar.LTwoInOrOutputLock && (globalVar.fryPotTwo.InputMaterialArrivedSingle == 1 || globalVar.fryPotFive.InputMaterialArrivedSingle == 1) && globalVar.LTwoPotInputMaterialArrive && LTwoOutputMaterialQuene.Count > 0 && !globalVar.LTwoPotOutputRollerArrive) | ||||
{ | { | ||||
if (globalVar.LTwoFryPotSerial == 2) | |||||
{ | |||||
Sqlite<PotTwoStatus>.GetInstance.Base.Add(new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotTwoStatus>.GetInstance.Save();//保存数据 | |||||
} | |||||
else | |||||
{ | |||||
Sqlite<PotFiveStatus>.GetInstance.Base.Add(new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotFiveStatus>.GetInstance.Save();//保存数据 | |||||
} | |||||
//if (globalVar.LTwoFryPotSerial == 2) | |||||
//{ | |||||
// Sqlite<PotTwoStatus>.GetInstance.Base.Add(new PotTwoStatus { Temperature = FryPotMonitorManage.GetInstance.fryTwo.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryTwo.HotPower, Speed = FryPotMonitorManage.GetInstance.fryTwo.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryTwo.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryTwo.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryTwo.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryTwo.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
// Sqlite<PotTwoStatus>.GetInstance.Save();//保存数据 | |||||
//} | |||||
//else | |||||
//{ | |||||
// Sqlite<PotFiveStatus>.GetInstance.Base.Add(new PotFiveStatus { Temperature = FryPotMonitorManage.GetInstance.fryFive.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFive.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFive.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFive.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFive.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFive.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFive.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
// Sqlite<PotFiveStatus>.GetInstance.Save();//保存数据 | |||||
//} | |||||
FryPotTwoRollerTroubleCheck(); | FryPotTwoRollerTroubleCheck(); | ||||
if (FryPotTwoAlarm == 1 || FryPotFiveAlarm == 1)//炒锅滚筒无故障 | if (FryPotTwoAlarm == 1 || FryPotFiveAlarm == 1)//炒锅滚筒无故障 | ||||
{ | { | ||||
@@ -1665,8 +2059,8 @@ namespace FryPot_DosingSystem.Control | |||||
{ | { | ||||
if (!globalVar.LThreeInOrOutputLock && globalVar.fryPotThree.InputMaterialArrivedSingle == 1 && globalVar.LThreePotInputMaterialArrive && LThreeOutputMaterialQuene.Count > 0 && !globalVar.LThreePotOutputRollerArrive) | if (!globalVar.LThreeInOrOutputLock && globalVar.fryPotThree.InputMaterialArrivedSingle == 1 && globalVar.LThreePotInputMaterialArrive && LThreeOutputMaterialQuene.Count > 0 && !globalVar.LThreePotOutputRollerArrive) | ||||
{ | { | ||||
Sqlite<PotThreeStatus>.GetInstance.Base.Add(new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
Sqlite<PotThreeStatus>.GetInstance.Save();//保存数据 | |||||
//Sqlite<PotThreeStatus>.GetInstance.Base.Add(new PotThreeStatus { Temperature = FryPotMonitorManage.GetInstance.fryThree.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryThree.HotPower, Speed = FryPotMonitorManage.GetInstance.fryThree.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryThree.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryThree.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryThree.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryThree.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||||
//Sqlite<PotThreeStatus>.GetInstance.Save();//保存数据 | |||||
FryPotThreeRollerTroubleCheck(); | FryPotThreeRollerTroubleCheck(); | ||||
if (FryPotThreeAlarm == 1)//炒锅滚筒无故障 | if (FryPotThreeAlarm == 1)//炒锅滚筒无故障 | ||||
{ | { | ||||
@@ -1986,14 +2380,14 @@ namespace FryPot_DosingSystem.Control | |||||
// Thread.Sleep(5); if (globalVar.ExitMainTask) | // Thread.Sleep(5); if (globalVar.ExitMainTask) | ||||
// return; | // return; | ||||
//} | //} | ||||
MessageLog.GetInstance.ShowRunLog($"炒锅【1】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break; | |||||
MessageLog.GetInstance.ShowRunLog($"炒锅【1】:【{OutputMaterialQuene.ElementAt(0).materialType.MaterialLoc}】号桶已到进料位置,准备倒料"); break; | |||||
case 4: | case 4: | ||||
//while (globalVar.fryPotFour.InputMaterialArrivedSingle == 0) | //while (globalVar.fryPotFour.InputMaterialArrivedSingle == 0) | ||||
//{ | //{ | ||||
// Thread.Sleep(5); if (globalVar.ExitMainTask) | // Thread.Sleep(5); if (globalVar.ExitMainTask) | ||||
// return; | // return; | ||||
//} | //} | ||||
MessageLog.GetInstance.ShowRunLog($"炒锅【4】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break; | |||||
MessageLog.GetInstance.ShowRunLog($"炒锅【4】:【{OutputMaterialQuene.ElementAt(0).materialType.MaterialLoc}】号桶已到进料位置,准备倒料"); break; | |||||
} | } | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
@@ -2009,14 +2403,14 @@ namespace FryPot_DosingSystem.Control | |||||
// Thread.Sleep(5); if (globalVar.ExitMainTask) | // Thread.Sleep(5); if (globalVar.ExitMainTask) | ||||
// return; | // return; | ||||
//} | //} | ||||
MessageLog.GetInstance.ShowRunLog($"炒锅【2】原料:{LTwoOutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break; | |||||
MessageLog.GetInstance.ShowRunLog($"炒锅【2】:【{LTwoOutputMaterialQuene.ElementAt(0).materialType.MaterialLoc}】号桶已到进料位置,准备倒料"); break; | |||||
case 5: | case 5: | ||||
//while (globalVar.fryPotFive.InputMaterialArrivedSingle == 0) | //while (globalVar.fryPotFive.InputMaterialArrivedSingle == 0) | ||||
//{ | //{ | ||||
// Thread.Sleep(5); if (globalVar.ExitMainTask) | // Thread.Sleep(5); if (globalVar.ExitMainTask) | ||||
// return; | // return; | ||||
//} | //} | ||||
MessageLog.GetInstance.ShowRunLog($"炒锅【5】原料:{LTwoOutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break; | |||||
MessageLog.GetInstance.ShowRunLog($"炒锅【5】:【{LTwoOutputMaterialQuene.ElementAt(0).materialType.MaterialLoc}】号桶已到进料位置,准备倒料"); break; | |||||
} | } | ||||
} | } | ||||
public void FryPotThreeInputMaterialRollerOperate() | public void FryPotThreeInputMaterialRollerOperate() | ||||
@@ -2026,7 +2420,7 @@ namespace FryPot_DosingSystem.Control | |||||
// Thread.Sleep(5); if (globalVar.ExitMainTask) | // Thread.Sleep(5); if (globalVar.ExitMainTask) | ||||
// return; | // return; | ||||
//} | //} | ||||
MessageLog.GetInstance.ShowRunLog($"炒锅【3】原料:{LThreeOutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); | |||||
MessageLog.GetInstance.ShowRunLog($"炒锅【3】:【{LThreeOutputMaterialQuene.ElementAt(0).materialType.MaterialLoc}】号桶已到进料位置,准备倒料"); | |||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅滚筒空桶出桶处理 | /// 炒锅滚筒空桶出桶处理 | ||||
@@ -11,7 +11,8 @@ using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.FryPotStatus | namespace FryPot_DosingSystem.FryPotStatus | ||||
{ | { | ||||
[Table("TbfryPotFive")] | [Table("TbfryPotFive")] | ||||
internal class PotFiveStatus:ObservableObject | |||||
[Serializable] | |||||
internal class PotFiveStatus | |||||
{ | { | ||||
[Key] | [Key] | ||||
[Column("Id")] | [Column("Id")] | ||||
@@ -22,42 +23,42 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 温度 | /// 温度 | ||||
/// </summary> | /// </summary> | ||||
public double? Temperature { get { return temperature; } set { temperature = value; OnPropertyChanged(); } } | |||||
public double? Temperature { get { return temperature; } set { temperature = value; } } | |||||
private double? temperature=0; | private double? temperature=0; | ||||
[Column("HotPower")] | [Column("HotPower")] | ||||
[Variable("FryPotFivePower", "5号炒锅火力", "", "")] | [Variable("FryPotFivePower", "5号炒锅火力", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 火力 | /// 火力 | ||||
/// </summary> | /// </summary> | ||||
public string? HotPower { get { return hotPower; } set { hotPower = value; OnPropertyChanged(); } } | |||||
public string? HotPower { get { return hotPower; } set { hotPower = value; } } | |||||
private string? hotPower="0"; | private string? hotPower="0"; | ||||
[Column("Speed")] | [Column("Speed")] | ||||
[Variable("FryPotFiveSpeed", "5号炒锅搅拌速度", "", "")] | [Variable("FryPotFiveSpeed", "5号炒锅搅拌速度", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 搅拌速度 | /// 搅拌速度 | ||||
/// </summary> | /// </summary> | ||||
public double? Speed { get { return speed; } set { speed = value; OnPropertyChanged(); } } | |||||
public double? Speed { get { return speed; } set { speed = value; } } | |||||
private double? speed=0; | private double? speed=0; | ||||
[Column("FryPotWeight")] | [Column("FryPotWeight")] | ||||
[Variable("FryPotFiveWeight", "5号炒锅载重", "", "")] | [Variable("FryPotFiveWeight", "5号炒锅载重", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅重量 | /// 炒锅重量 | ||||
/// </summary> | /// </summary> | ||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; OnPropertyChanged(); } } | |||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; } } | |||||
private double? fryPotWeight=0; | private double? fryPotWeight=0; | ||||
[Column("OilCapacity")] | [Column("OilCapacity")] | ||||
[Variable("FryPotFiveOil", "5号炒锅当前配方用油量", "", "")] | [Variable("FryPotFiveOil", "5号炒锅当前配方用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 单次配方用油量 | /// 单次配方用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; OnPropertyChanged(); } } | |||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; } } | |||||
private double? oilCapacity=0; | private double? oilCapacity=0; | ||||
[Column("TotalOilCapactiy")] | [Column("TotalOilCapactiy")] | ||||
[Variable("FryPotFiveTotalOil", "5号炒锅总用油量", "", "")] | [Variable("FryPotFiveTotalOil", "5号炒锅总用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 一天总用油量 | /// 一天总用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; OnPropertyChanged(); } } | |||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; } } | |||||
private double? totalOilCapactiy=0; | private double? totalOilCapactiy=0; | ||||
[Column("TotalProduct")] | [Column("TotalProduct")] | ||||
@@ -65,8 +66,15 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 一天配方生产总量 | /// 一天配方生产总量 | ||||
/// </summary> | /// </summary> | ||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; OnPropertyChanged(); } } | |||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; } } | |||||
private int? totalProduct=0; | private int? totalProduct=0; | ||||
[Column("ReicpeName")] | |||||
/// <summary> | |||||
/// 当前配方名称 | |||||
/// </summary> | |||||
public string RecipeName { get; set; } = string.Empty; | |||||
[Column("Time")] | [Column("Time")] | ||||
/// <summary> | /// <summary> | ||||
/// 时间 | /// 时间 | ||||
@@ -11,7 +11,8 @@ using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.FryPotStatus | namespace FryPot_DosingSystem.FryPotStatus | ||||
{ | { | ||||
[Table("TbfryPotOne")] | [Table("TbfryPotOne")] | ||||
internal class PotFourStatus:ObservableObject | |||||
[Serializable] | |||||
internal class PotFourStatus | |||||
{ | { | ||||
[Key] | [Key] | ||||
[Column("Id")] | [Column("Id")] | ||||
@@ -22,42 +23,42 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 温度 | /// 温度 | ||||
/// </summary> | /// </summary> | ||||
public double? Temperature { get { return temperature; } set { temperature = value; OnPropertyChanged(); } } | |||||
public double? Temperature { get { return temperature; } set { temperature = value; } } | |||||
private double? temperature=0; | private double? temperature=0; | ||||
[Column("HotPower")] | [Column("HotPower")] | ||||
[Variable("FryPotFourPower", "4号炒锅火力", "", "")] | [Variable("FryPotFourPower", "4号炒锅火力", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 火力 | /// 火力 | ||||
/// </summary> | /// </summary> | ||||
public string? HotPower { get { return hotPower; } set { hotPower = value; OnPropertyChanged(); } } | |||||
public string? HotPower { get { return hotPower; } set { hotPower = value; } } | |||||
private string? hotPower="0"; | private string? hotPower="0"; | ||||
[Column("Speed")] | [Column("Speed")] | ||||
[Variable("FryPotFourSpeed", "4号炒锅搅拌速度", "", "")] | [Variable("FryPotFourSpeed", "4号炒锅搅拌速度", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 搅拌速度 | /// 搅拌速度 | ||||
/// </summary> | /// </summary> | ||||
public double? Speed { get { return speed; } set { speed = value; OnPropertyChanged(); } } | |||||
public double? Speed { get { return speed; } set { speed = value; } } | |||||
private double? speed=0; | private double? speed=0; | ||||
[Column("FryPotWeight")] | [Column("FryPotWeight")] | ||||
[Variable("FryPotFourWeight", "4号炒锅载重", "", "")] | [Variable("FryPotFourWeight", "4号炒锅载重", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅重量 | /// 炒锅重量 | ||||
/// </summary> | /// </summary> | ||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; OnPropertyChanged(); } } | |||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; } } | |||||
private double? fryPotWeight=0; | private double? fryPotWeight=0; | ||||
[Column("OilCapacity")] | [Column("OilCapacity")] | ||||
[Variable("FryPotFourOil", "4号炒锅当前配方用油量", "", "")] | [Variable("FryPotFourOil", "4号炒锅当前配方用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 单次配方用油量 | /// 单次配方用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; OnPropertyChanged(); } } | |||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; } } | |||||
private double? oilCapacity=0; | private double? oilCapacity=0; | ||||
[Column("TotalOilCapactiy")] | [Column("TotalOilCapactiy")] | ||||
[Variable("FryPotFourTotalOil", "4号炒锅总用油量", "", "")] | [Variable("FryPotFourTotalOil", "4号炒锅总用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 一天总用油量 | /// 一天总用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; OnPropertyChanged(); } } | |||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value;; } } | |||||
private double? totalOilCapactiy=0; | private double? totalOilCapactiy=0; | ||||
[Column("TotalProduct")] | [Column("TotalProduct")] | ||||
@@ -65,8 +66,14 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 一天配方生产总量 | /// 一天配方生产总量 | ||||
/// </summary> | /// </summary> | ||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; OnPropertyChanged(); } } | |||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; } } | |||||
private int? totalProduct=0; | private int? totalProduct=0; | ||||
[Column("ReicpeName")] | |||||
/// <summary> | |||||
/// 当前配方名称 | |||||
/// </summary> | |||||
public string RecipeName { get; set; } = string.Empty; | |||||
[Column("Time")] | [Column("Time")] | ||||
/// <summary> | /// <summary> | ||||
/// 时间 | /// 时间 | ||||
@@ -11,7 +11,8 @@ using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.FryPotStatus | namespace FryPot_DosingSystem.FryPotStatus | ||||
{ | { | ||||
[Table("TbfryPotOne")] | [Table("TbfryPotOne")] | ||||
internal class PotOneStatus:ObservableObject | |||||
[Serializable] | |||||
internal class PotOneStatus | |||||
{ | { | ||||
[Key] | [Key] | ||||
[Column("Id")] | [Column("Id")] | ||||
@@ -22,42 +23,42 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 温度 | /// 温度 | ||||
/// </summary> | /// </summary> | ||||
public double? Temperature { get { return temperature; } set { temperature = value; OnPropertyChanged(); } } | |||||
public double? Temperature { get { return temperature; } set { temperature = value;} } | |||||
private double? temperature=0; | private double? temperature=0; | ||||
[Column("HotPower")] | [Column("HotPower")] | ||||
[Variable("FryPotOnePower", "1号炒锅火力", "", "")] | [Variable("FryPotOnePower", "1号炒锅火力", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 火力 | /// 火力 | ||||
/// </summary> | /// </summary> | ||||
public string? HotPower { get { return hotPower; } set { hotPower = value; OnPropertyChanged(); } } | |||||
public string? HotPower { get { return hotPower; } set { hotPower = value; } } | |||||
private string? hotPower="0"; | private string? hotPower="0"; | ||||
[Column("Speed")] | [Column("Speed")] | ||||
[Variable("FryPotOneSpeed", "1号炒锅搅拌速度", "", "")] | [Variable("FryPotOneSpeed", "1号炒锅搅拌速度", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 搅拌速度 | /// 搅拌速度 | ||||
/// </summary> | /// </summary> | ||||
public double? Speed { get { return speed; } set { speed = value; OnPropertyChanged(); } } | |||||
public double? Speed { get { return speed; } set { speed = value; } } | |||||
private double? speed = 0; | private double? speed = 0; | ||||
[Column("FryPotWeight")] | [Column("FryPotWeight")] | ||||
[Variable("FryPotOneWeight", "1号炒锅载重", "", "")] | [Variable("FryPotOneWeight", "1号炒锅载重", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅重量 | /// 炒锅重量 | ||||
/// </summary> | /// </summary> | ||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; OnPropertyChanged(); } } | |||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; } } | |||||
private double? fryPotWeight = 0; | private double? fryPotWeight = 0; | ||||
[Column("OilCapacity")] | [Column("OilCapacity")] | ||||
[Variable("FryPotOneOil", "1号炒锅当前配方用油量", "", "")] | [Variable("FryPotOneOil", "1号炒锅当前配方用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 单次配方用油量 | /// 单次配方用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; OnPropertyChanged(); } } | |||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; } } | |||||
private double? oilCapacity = 0; | private double? oilCapacity = 0; | ||||
[Column("TotalOilCapactiy")] | [Column("TotalOilCapactiy")] | ||||
[Variable("FryPotOneTotalOil", "1号炒锅总用油量", "", "")] | [Variable("FryPotOneTotalOil", "1号炒锅总用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 一天总用油量 | /// 一天总用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; OnPropertyChanged(); } } | |||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; } } | |||||
private double? totalOilCapactiy = 0; | private double? totalOilCapactiy = 0; | ||||
[Column("TotalProduct")] | [Column("TotalProduct")] | ||||
@@ -65,12 +66,18 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 一天配方生产总量 | /// 一天配方生产总量 | ||||
/// </summary> | /// </summary> | ||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; OnPropertyChanged(); } } | |||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; } } | |||||
private int? totalProduct = 0; | private int? totalProduct = 0; | ||||
[Column("ReicpeName")] | |||||
/// <summary> | |||||
/// 当前配方名称 | |||||
/// </summary> | |||||
public string RecipeName { get; set; } = string.Empty; | |||||
[Column("Time")] | [Column("Time")] | ||||
/// <summary> | /// <summary> | ||||
/// 时间 | /// 时间 | ||||
/// </summary> | /// </summary> | ||||
public string Time { get; set; } = DateTime.Now.ToShortTimeString(); | public string Time { get; set; } = DateTime.Now.ToShortTimeString(); | ||||
} | } | ||||
} | } |
@@ -11,7 +11,8 @@ using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.FryPotStatus | namespace FryPot_DosingSystem.FryPotStatus | ||||
{ | { | ||||
[Table("TbfryPotThree")] | [Table("TbfryPotThree")] | ||||
internal class PotThreeStatus:ObservableObject | |||||
[Serializable] | |||||
internal class PotThreeStatus | |||||
{ | { | ||||
[Key] | [Key] | ||||
[Column("Id")] | [Column("Id")] | ||||
@@ -22,42 +23,42 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 温度 | /// 温度 | ||||
/// </summary> | /// </summary> | ||||
public double? Temperature { get { return temperature; } set { temperature = value; OnPropertyChanged(); } } | |||||
public double? Temperature { get { return temperature; } set { temperature = value; } } | |||||
private double? temperature=0; | private double? temperature=0; | ||||
[Column("HotPower")] | [Column("HotPower")] | ||||
[Variable("FryPotThreePower", "3号炒锅火力", "", "")] | [Variable("FryPotThreePower", "3号炒锅火力", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 火力 | /// 火力 | ||||
/// </summary> | /// </summary> | ||||
public string? HotPower { get { return hotPower; } set { hotPower = value; OnPropertyChanged(); } } | |||||
public string? HotPower { get { return hotPower; } set { hotPower = value;} } | |||||
private string? hotPower="0"; | private string? hotPower="0"; | ||||
[Column("Speed")] | [Column("Speed")] | ||||
[Variable("FryPotThreeSpeed", "3号炒锅搅拌速度", "", "")] | [Variable("FryPotThreeSpeed", "3号炒锅搅拌速度", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 搅拌速度 | /// 搅拌速度 | ||||
/// </summary> | /// </summary> | ||||
public double? Speed { get { return speed; } set { speed = value; OnPropertyChanged(); } } | |||||
public double? Speed { get { return speed; } set { speed = value; } } | |||||
private double? speed=0; | private double? speed=0; | ||||
[Column("FryPotWeight")] | [Column("FryPotWeight")] | ||||
[Variable("FryPotThreeWeight", "3号炒锅载重", "", "")] | [Variable("FryPotThreeWeight", "3号炒锅载重", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅重量 | /// 炒锅重量 | ||||
/// </summary> | /// </summary> | ||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; OnPropertyChanged(); } } | |||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; } } | |||||
private double? fryPotWeight=0; | private double? fryPotWeight=0; | ||||
[Column("OilCapacity")] | [Column("OilCapacity")] | ||||
[Variable("FryPotThreeOil", "3号炒锅当前配方用油量", "", "")] | [Variable("FryPotThreeOil", "3号炒锅当前配方用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 单次配方用油量 | /// 单次配方用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; OnPropertyChanged(); } } | |||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; } } | |||||
private double? oilCapacity=0; | private double? oilCapacity=0; | ||||
[Column("TotalOilCapactiy")] | [Column("TotalOilCapactiy")] | ||||
[Variable("FryPotThreeTotalOil", "3号炒锅总用油量", "", "")] | [Variable("FryPotThreeTotalOil", "3号炒锅总用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 一天总用油量 | /// 一天总用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; OnPropertyChanged(); } } | |||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; } } | |||||
private double? totalOilCapactiy=0; | private double? totalOilCapactiy=0; | ||||
[Column("TotalProduct")] | [Column("TotalProduct")] | ||||
@@ -65,8 +66,15 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 一天配方生产总量 | /// 一天配方生产总量 | ||||
/// </summary> | /// </summary> | ||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; OnPropertyChanged(); } } | |||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; } } | |||||
private int? totalProduct=0; | private int? totalProduct=0; | ||||
[Column("ReicpeName")] | |||||
/// <summary> | |||||
/// 当前配方名称 | |||||
/// </summary> | |||||
public string RecipeName { get; set; } = string.Empty; | |||||
[Column("Time")] | [Column("Time")] | ||||
/// <summary> | /// <summary> | ||||
/// 时间 | /// 时间 | ||||
@@ -11,7 +11,8 @@ using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.FryPotStatus | namespace FryPot_DosingSystem.FryPotStatus | ||||
{ | { | ||||
[Table("TbfryPotTwo")] | [Table("TbfryPotTwo")] | ||||
internal class PotTwoStatus:ObservableObject | |||||
[Serializable] | |||||
internal class PotTwoStatus | |||||
{ | { | ||||
[Key] | [Key] | ||||
[Column("Id")] | [Column("Id")] | ||||
@@ -22,42 +23,42 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 温度 | /// 温度 | ||||
/// </summary> | /// </summary> | ||||
public double? Temperature { get { return temperature; } set { temperature = value; OnPropertyChanged(); } } | |||||
public double? Temperature { get { return temperature; } set { temperature = value; } } | |||||
private double? temperature=0; | private double? temperature=0; | ||||
[Column("HotPower")] | [Column("HotPower")] | ||||
[Variable("FryPotTwoPower", "2号炒锅火力", "", "")] | [Variable("FryPotTwoPower", "2号炒锅火力", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 火力 | /// 火力 | ||||
/// </summary> | /// </summary> | ||||
public string? HotPower { get { return hotPower; } set { hotPower = value; OnPropertyChanged(); } } | |||||
public string? HotPower { get { return hotPower; } set { hotPower = value; } } | |||||
private string? hotPower="0"; | private string? hotPower="0"; | ||||
[Column("Speed")] | [Column("Speed")] | ||||
[Variable("FryPotTwoSpeed", "2号炒锅搅拌速度", "", "")] | [Variable("FryPotTwoSpeed", "2号炒锅搅拌速度", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 搅拌速度 | /// 搅拌速度 | ||||
/// </summary> | /// </summary> | ||||
public double? Speed { get { return speed; } set { speed = value; OnPropertyChanged(); } } | |||||
public double? Speed { get { return speed; } set { speed = value; } } | |||||
private double? speed=0; | private double? speed=0; | ||||
[Column("FryPotWeight")] | [Column("FryPotWeight")] | ||||
[Variable("FryPotTwoWeight", "2号炒锅载重", "", "")] | [Variable("FryPotTwoWeight", "2号炒锅载重", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 炒锅重量 | /// 炒锅重量 | ||||
/// </summary> | /// </summary> | ||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; OnPropertyChanged(); } } | |||||
public double? FryPotWeight { get { return fryPotWeight; } set { fryPotWeight = value; } } | |||||
private double? fryPotWeight=0; | private double? fryPotWeight=0; | ||||
[Column("OilCapacity")] | [Column("OilCapacity")] | ||||
[Variable("FryPotTwoOil", "2号炒锅当前配方用油量", "", "")] | [Variable("FryPotTwoOil", "2号炒锅当前配方用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 单次配方用油量 | /// 单次配方用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; OnPropertyChanged(); } } | |||||
public double? OilCapacity { get { return oilCapacity; } set { oilCapacity = value; } } | |||||
private double? oilCapacity=0; | private double? oilCapacity=0; | ||||
[Column("TotalOilCapactiy")] | [Column("TotalOilCapactiy")] | ||||
[Variable("FryPotTwoTotalOil", "2号炒锅总用油量", "", "")] | [Variable("FryPotTwoTotalOil", "2号炒锅总用油量", "", "")] | ||||
/// <summary> | /// <summary> | ||||
/// 一天总用油量 | /// 一天总用油量 | ||||
/// </summary> | /// </summary> | ||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; OnPropertyChanged(); } } | |||||
public double? TotalOilCapactiy { get { return totalOilCapactiy; } set { totalOilCapactiy = value; } } | |||||
private double? totalOilCapactiy=0; | private double? totalOilCapactiy=0; | ||||
[Column("TotalProduct")] | [Column("TotalProduct")] | ||||
@@ -65,8 +66,14 @@ namespace FryPot_DosingSystem.FryPotStatus | |||||
/// <summary> | /// <summary> | ||||
/// 一天配方生产总量 | /// 一天配方生产总量 | ||||
/// </summary> | /// </summary> | ||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; OnPropertyChanged(); } } | |||||
public int? TotalProduct { get { return totalProduct; } set { totalProduct = value; } } | |||||
private int? totalProduct=0; | private int? totalProduct=0; | ||||
[Column("ReicpeName")] | |||||
/// <summary> | |||||
/// 当前配方名称 | |||||
/// </summary> | |||||
public string RecipeName { get; set; } = string.Empty; | |||||
[Column("Time")] | [Column("Time")] | ||||
/// <summary> | /// <summary> | ||||
/// 时间 | /// 时间 | ||||
@@ -11,6 +11,7 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<None Remove="hbl.ico" /> | <None Remove="hbl.ico" /> | ||||
<None Remove="Resources\fonts\iconfont.ttf" /> | <None Remove="Resources\fonts\iconfont.ttf" /> | ||||
<None Remove="Resources\fonts\iconfont2.ttf" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -52,6 +52,12 @@ | |||||
<div class="content unicode" style="display: block;"> | <div class="content unicode" style="display: block;"> | ||||
<ul class="icon_lists dib-box"> | <ul class="icon_lists dib-box"> | ||||
<li class="dib"> | |||||
<span class="icon iconfont"></span> | |||||
<div class="name">下载</div> | |||||
<div class="code-name">&#xe622;</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<span class="icon iconfont"></span> | <span class="icon iconfont"></span> | ||||
<div class="name">账号信息</div> | <div class="name">账号信息</div> | ||||
@@ -76,6 +82,12 @@ | |||||
<div class="code-name">&#xe62c;</div> | <div class="code-name">&#xe62c;</div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<span class="icon iconfont"></span> | |||||
<div class="name">下载</div> | |||||
<div class="code-name">&#xe63f;</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<span class="icon iconfont"></span> | <span class="icon iconfont"></span> | ||||
<div class="name">close</div> | <div class="name">close</div> | ||||
@@ -106,6 +118,12 @@ | |||||
<div class="code-name">&#xe6b7;</div> | <div class="code-name">&#xe6b7;</div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<span class="icon iconfont"></span> | |||||
<div class="name">166-NFC</div> | |||||
<div class="code-name">&#xe8e0;</div> | |||||
</li> | |||||
</ul> | </ul> | ||||
<div class="article markdown"> | <div class="article markdown"> | ||||
<h2 id="unicode-">Unicode 引用</h2> | <h2 id="unicode-">Unicode 引用</h2> | ||||
@@ -124,7 +142,7 @@ | |||||
<pre><code class="language-css" | <pre><code class="language-css" | ||||
>@font-face { | >@font-face { | ||||
font-family: 'iconfont'; | font-family: 'iconfont'; | ||||
src: url('iconfont.ttf?t=1658305362348') format('truetype'); | |||||
src: url('iconfont.ttf?t=1659497763775') format('truetype'); | |||||
} | } | ||||
</code></pre> | </code></pre> | ||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | ||||
@@ -150,6 +168,15 @@ | |||||
<div class="content font-class"> | <div class="content font-class"> | ||||
<ul class="icon_lists dib-box"> | <ul class="icon_lists dib-box"> | ||||
<li class="dib"> | |||||
<span class="icon iconfont icon-xiazai"></span> | |||||
<div class="name"> | |||||
下载 | |||||
</div> | |||||
<div class="code-name">.icon-xiazai | |||||
</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<span class="icon iconfont icon-zhanghaoxinxi"></span> | <span class="icon iconfont icon-zhanghaoxinxi"></span> | ||||
<div class="name"> | <div class="name"> | ||||
@@ -186,6 +213,15 @@ | |||||
</div> | </div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<span class="icon iconfont icon-xiazai1"></span> | |||||
<div class="name"> | |||||
下载 | |||||
</div> | |||||
<div class="code-name">.icon-xiazai1 | |||||
</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<span class="icon iconfont icon-close"></span> | <span class="icon iconfont icon-close"></span> | ||||
<div class="name"> | <div class="name"> | ||||
@@ -231,6 +267,15 @@ | |||||
</div> | </div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<span class="icon iconfont icon-a-166-NFC"></span> | |||||
<div class="name"> | |||||
166-NFC | |||||
</div> | |||||
<div class="code-name">.icon-a-166-NFC | |||||
</div> | |||||
</li> | |||||
</ul> | </ul> | ||||
<div class="article markdown"> | <div class="article markdown"> | ||||
<h2 id="font-class-">font-class 引用</h2> | <h2 id="font-class-">font-class 引用</h2> | ||||
@@ -258,6 +303,14 @@ | |||||
<div class="content symbol"> | <div class="content symbol"> | ||||
<ul class="icon_lists dib-box"> | <ul class="icon_lists dib-box"> | ||||
<li class="dib"> | |||||
<svg class="icon svg-icon" aria-hidden="true"> | |||||
<use xlink:href="#icon-xiazai"></use> | |||||
</svg> | |||||
<div class="name">下载</div> | |||||
<div class="code-name">#icon-xiazai</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<svg class="icon svg-icon" aria-hidden="true"> | <svg class="icon svg-icon" aria-hidden="true"> | ||||
<use xlink:href="#icon-zhanghaoxinxi"></use> | <use xlink:href="#icon-zhanghaoxinxi"></use> | ||||
@@ -290,6 +343,14 @@ | |||||
<div class="code-name">#icon-quanxianpeizhi</div> | <div class="code-name">#icon-quanxianpeizhi</div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<svg class="icon svg-icon" aria-hidden="true"> | |||||
<use xlink:href="#icon-xiazai1"></use> | |||||
</svg> | |||||
<div class="name">下载</div> | |||||
<div class="code-name">#icon-xiazai1</div> | |||||
</li> | |||||
<li class="dib"> | <li class="dib"> | ||||
<svg class="icon svg-icon" aria-hidden="true"> | <svg class="icon svg-icon" aria-hidden="true"> | ||||
<use xlink:href="#icon-close"></use> | <use xlink:href="#icon-close"></use> | ||||
@@ -330,6 +391,14 @@ | |||||
<div class="code-name">#icon-mianxingmima</div> | <div class="code-name">#icon-mianxingmima</div> | ||||
</li> | </li> | ||||
<li class="dib"> | |||||
<svg class="icon svg-icon" aria-hidden="true"> | |||||
<use xlink:href="#icon-a-166-NFC"></use> | |||||
</svg> | |||||
<div class="name">166-NFC</div> | |||||
<div class="code-name">#icon-a-166-NFC</div> | |||||
</li> | |||||
</ul> | </ul> | ||||
<div class="article markdown"> | <div class="article markdown"> | ||||
<h2 id="symbol-">Symbol 引用</h2> | <h2 id="symbol-">Symbol 引用</h2> | ||||
@@ -0,0 +1,32 @@ | |||||
<UserControl x:Class="FryPot_DosingSystem.View.LabelPrint" | |||||
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:FryPot_DosingSystem.View" | |||||
xmlns:vm="clr-namespace:FryPot_DosingSystem.ViewModel" | |||||
mc:Ignorable="d" | |||||
d:DesignHeight="450" d:DesignWidth="800"> | |||||
<UserControl.DataContext> | |||||
<vm:LabelPrintViewModel/> | |||||
</UserControl.DataContext> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition/> | |||||
<RowDefinition/> | |||||
</Grid.RowDefinitions> | |||||
<Image Source="../Resources/pictures/战斗机.jpeg"></Image> | |||||
<Button Grid.Row="1" Width="200" Height="100" Command="{Binding PrintCommand}" > | |||||
<Button.Template> | |||||
<ControlTemplate TargetType="{x:Type Button}"> | |||||
<Border Background="LightSeaGreen"> | |||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> | |||||
<TextBlock Text="图标" FontSize="24" Foreground="White"></TextBlock> | |||||
<TextBlock Text="打印" FontSize="24" Foreground="White"></TextBlock> | |||||
</StackPanel> | |||||
</Border> | |||||
</ControlTemplate> | |||||
</Button.Template> | |||||
</Button> | |||||
</Grid> | |||||
</UserControl> |
@@ -0,0 +1,28 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
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.Media; | |||||
using System.Windows.Media.Imaging; | |||||
using System.Windows.Navigation; | |||||
using System.Windows.Shapes; | |||||
namespace FryPot_DosingSystem.View | |||||
{ | |||||
/// <summary> | |||||
/// LabelPrint.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class LabelPrint : UserControl | |||||
{ | |||||
public LabelPrint() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
} | |||||
} |
@@ -36,7 +36,7 @@ | |||||
</ItemsControl.ItemsPanel> | </ItemsControl.ItemsPanel> | ||||
<ItemsControl.ItemTemplate> | <ItemsControl.ItemTemplate> | ||||
<DataTemplate> | <DataTemplate> | ||||
<Border BorderBrush="Aqua" BorderThickness="2" CornerRadius="14" Height="120" Margin="5,5"> | |||||
<Border BorderBrush="Aqua" BorderThickness="2" CornerRadius="14" Height="120" Margin="5,5,10,5"> | |||||
<RadioButton> | <RadioButton> | ||||
<RadioButton.Template> | <RadioButton.Template> | ||||
<ControlTemplate> | <ControlTemplate> | ||||
@@ -46,20 +46,23 @@ | |||||
<ColumnDefinition Width="0.01*"></ColumnDefinition> | <ColumnDefinition Width="0.01*"></ColumnDefinition> | ||||
<ColumnDefinition Width="4*"></ColumnDefinition> | <ColumnDefinition Width="4*"></ColumnDefinition> | ||||
<ColumnDefinition Width="1.2*"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | </Grid.ColumnDefinitions> | ||||
<Grid> | |||||
<!--<Grid> | |||||
<Grid.RowDefinitions> | <Grid.RowDefinitions> | ||||
<RowDefinition Height="70"></RowDefinition> | <RowDefinition Height="70"></RowDefinition> | ||||
<RowDefinition></RowDefinition> | <RowDefinition></RowDefinition> | ||||
</Grid.RowDefinitions> | </Grid.RowDefinitions> | ||||
<Viewbox Stretch="Fill" HorizontalAlignment="Center" Width="200"> | <Viewbox Stretch="Fill" HorizontalAlignment="Center" Width="200"> | ||||
<TextBlock Text="{Binding RecipeName}" HorizontalAlignment="Center"></TextBlock> | |||||
<TextBlock Text="{Binding RecipeName}" HorizontalAlignment="Center" ></TextBlock> | |||||
</Viewbox> | </Viewbox> | ||||
<Button Grid.Row="1" Width="100" Content="配方下发" Command="{Binding DataContext.RecipeSetDownCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}}" | |||||
CommandParameter="{Binding RecipeId}" Cursor="Hand"></Button> | |||||
--><!--<Button Grid.Row="1" Width="100" Content="配方下发" Command="{Binding DataContext.RecipeSetDownCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}}" | |||||
CommandParameter="{Binding RecipeId}" Cursor="Hand"></Button>--><!-- | |||||
</Grid> | |||||
</Grid>--> | |||||
<Viewbox Stretch="Uniform" HorizontalAlignment="Center" Width="200"> | |||||
<TextBlock Text="{Binding RecipeName}" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock> | |||||
</Viewbox> | |||||
<Line StrokeThickness="3" Grid.Column="1" HorizontalAlignment="Left" Stroke="LawnGreen" X1="0" Y1="5" X2="0" Y2="110"></Line> | <Line StrokeThickness="3" Grid.Column="1" HorizontalAlignment="Left" Stroke="LawnGreen" X1="0" Y1="5" X2="0" Y2="110"></Line> | ||||
<Grid Grid.Column="2"> | <Grid Grid.Column="2"> | ||||
<!--后续添加内容--> | <!--后续添加内容--> | ||||
@@ -112,7 +115,27 @@ | |||||
<ColumnDefinition/> | <ColumnDefinition/> | ||||
</Grid.ColumnDefinitions> | </Grid.ColumnDefinitions> | ||||
<Line StrokeThickness="3" Grid.Column="0" HorizontalAlignment="Left" Stroke="LawnGreen" X1="0" Y1="5" X2="0" Y2="110"></Line> | <Line StrokeThickness="3" Grid.Column="0" HorizontalAlignment="Left" Stroke="LawnGreen" X1="0" Y1="5" X2="0" Y2="110"></Line> | ||||
<TextBlock Grid.Column="1" FontSize="16" Text="{Binding RecipeSetInfo}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> | |||||
<StackPanel Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"> | |||||
<Button Margin="0,0,0,5" Height="27" Command="{Binding DataContext.RecipeSetDownCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}}" CommandParameter="{Binding RecipeId}" Cursor="Hand" > | |||||
<Button.Template> | |||||
<ControlTemplate TargetType="{x:Type Button}"> | |||||
<StackPanel Orientation="Horizontal" > | |||||
<TextBlock Name="title" FontFamily="../Resources/fonts/#iconfont" Text="" FontSize="21" VerticalAlignment="Bottom"></TextBlock> | |||||
<TextBlock Name="text" Text="配方下发" Height="Auto" FontSize="24"></TextBlock> | |||||
</StackPanel> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter TargetName="title" Property="Foreground" Value="Cyan"/> | |||||
<Setter TargetName="text" Property="Foreground" Value="Cyan"/> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Button.Template> | |||||
</Button> | |||||
<TextBlock FontSize="16" Text="{Binding RecipeSetInfo}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> | |||||
</StackPanel> | |||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
@@ -479,18 +479,18 @@ | |||||
<RowDefinition/> | <RowDefinition/> | ||||
</Grid.RowDefinitions> | </Grid.RowDefinitions> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> | ||||
<DatePicker Margin="50,0" Height="35" Style="{StaticResource PickerStyle}" SelectedDate="{Binding SelectedDate}"></DatePicker> | |||||
<ComboBox Style="{DynamicResource ComboBoxStyle1}" ItemsSource="{Binding list}" Height="35" Width="150" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" FontSize="18" Foreground="#FF2AB2E7" SelectedValue="{Binding cboSelectedValue}" Margin="0,0,50,0"></ComboBox> | |||||
<Button Width="150" Height="35" Content="查询" FontSize="20" Foreground="#FF2AB2E7" Background="Transparent" BorderBrush="#FF2AB2E7" BorderThickness="1" Command="{Binding SelectCommand}"></Button> | |||||
<!--<DatePicker Margin="50,0" Height="35" Style="{StaticResource PickerStyle}" SelectedDate="{Binding SelectedDate}"></DatePicker> | |||||
<ComboBox Style="{DynamicResource ComboBoxStyle1}" ItemsSource="{Binding list}" Height="35" Width="150" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" FontSize="18" Foreground="#FF2AB2E7" SelectedValue="{Binding cboSelectedValue}" Margin="0,0,50,0"></ComboBox>--> | |||||
<Button Width="150" Height="35" Content="查询" FontSize="20" Foreground="#FF2AB2E7" Background="Transparent" BorderBrush="#FF2AB2E7" BorderThickness="1" Margin="0,0,10,0" Command="{Binding SelectCommand}"></Button> | |||||
</StackPanel> | </StackPanel> | ||||
<DataGrid Grid.Row="1" x:Name="fryOne" Visibility="{Binding fryOneDataVisible}" ItemsSource="{Binding StatusOne}" GridLinesVisibility="All" Background="Transparent" | |||||
<DataGrid Grid.Row="1" x:Name="fryPot" ItemsSource="{Binding Status}" GridLinesVisibility="All" Background="Transparent" LoadingRow="fryPot_LoadingRow" | |||||
AutoGenerateColumns="False" IsReadOnly="True" Style="{StaticResource dataGrid}" | AutoGenerateColumns="False" IsReadOnly="True" Style="{StaticResource dataGrid}" | ||||
ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}"> | ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}"> | ||||
<DataGrid.Columns> | <DataGrid.Columns> | ||||
<DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID"> | <DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID"> | ||||
<DataGridTemplateColumn.CellTemplate> | <DataGridTemplateColumn.CellTemplate> | ||||
<DataTemplate> | <DataTemplate> | ||||
<TextBox Text="{Binding Id}" IsReadOnly="False" Style="{StaticResource textboxStyle}"></TextBox> | |||||
<TextBox Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" IsReadOnly="True" Style="{StaticResource textboxStyle}"></TextBox> | |||||
</DataTemplate> | </DataTemplate> | ||||
</DataGridTemplateColumn.CellTemplate> | </DataGridTemplateColumn.CellTemplate> | ||||
</DataGridTemplateColumn> | </DataGridTemplateColumn> | ||||
@@ -502,6 +502,8 @@ | |||||
</DataGridTextColumn> | </DataGridTextColumn> | ||||
<DataGridTextColumn Width="0.2*" Header="炒锅载重" Binding="{Binding FryPotWeight}" ElementStyle="{StaticResource dgCellstyle }"> | <DataGridTextColumn Width="0.2*" Header="炒锅载重" Binding="{Binding FryPotWeight}" ElementStyle="{StaticResource dgCellstyle }"> | ||||
</DataGridTextColumn> | </DataGridTextColumn> | ||||
<DataGridTextColumn Width="0.2*" Header="配方名称" Binding="{Binding RecipeName}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="配方用油量" Binding="{Binding OilCapacity}" ElementStyle="{StaticResource dgCellstyle }"> | <DataGridTextColumn Width="0.2*" Header="配方用油量" Binding="{Binding OilCapacity}" ElementStyle="{StaticResource dgCellstyle }"> | ||||
</DataGridTextColumn> | </DataGridTextColumn> | ||||
<DataGridTextColumn Width="0.2*" Header="总用油量" Binding="{Binding TotalOilCapactiy}" ElementStyle="{StaticResource dgCellstyle }"> | <DataGridTextColumn Width="0.2*" Header="总用油量" Binding="{Binding TotalOilCapactiy}" ElementStyle="{StaticResource dgCellstyle }"> | ||||
@@ -526,6 +528,49 @@ | |||||
</DataGridTemplateColumn>--> | </DataGridTemplateColumn>--> | ||||
</DataGrid.Columns> | </DataGrid.Columns> | ||||
</DataGrid> | </DataGrid> | ||||
<!--<DataGrid Grid.Row="1" x:Name="fryOne" Visibility="{Binding fryOneDataVisible}" ItemsSource="{Binding StatusOne}" GridLinesVisibility="All" Background="Transparent" | |||||
AutoGenerateColumns="False" IsReadOnly="True" Style="{StaticResource dataGrid}" | |||||
ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}"> | |||||
<DataGrid.Columns> | |||||
<DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID"> | |||||
<DataGridTemplateColumn.CellTemplate> | |||||
<DataTemplate> | |||||
<TextBox Text="{Binding Id}" IsReadOnly="False" Style="{StaticResource textboxStyle}"></TextBox> | |||||
</DataTemplate> | |||||
</DataGridTemplateColumn.CellTemplate> | |||||
</DataGridTemplateColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="温度" Binding="{Binding Temperature}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="火力" Binding="{Binding HotPower}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="搅拌速度" Binding="{Binding Speed}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="炒锅载重" Binding="{Binding FryPotWeight}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="配方用油量" Binding="{Binding OilCapacity}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="总用油量" Binding="{Binding TotalOilCapactiy}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="产量" Binding="{Binding TotalProduct}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
<DataGridTextColumn Width="0.2*" Header="时间" Binding="{Binding Time}" ElementStyle="{StaticResource dgCellstyle }"> | |||||
</DataGridTextColumn> | |||||
--><!--<DataGridTemplateColumn IsReadOnly="False" Width="0.45*" Header="地址"> | |||||
<DataGridTemplateColumn.CellTemplate> | |||||
<DataTemplate> | |||||
<TextBox Text="{Binding PlcAddress}" Style="{StaticResource textboxStyle}"></TextBox> | |||||
</DataTemplate> | |||||
</DataGridTemplateColumn.CellTemplate> | |||||
</DataGridTemplateColumn>--> | |||||
<!--<DataGridTemplateColumn IsReadOnly="False" Width="0.45*" Header="地址长度"> | |||||
<DataGridTemplateColumn.CellTemplate> | |||||
<DataTemplate> | |||||
<TextBox Text="{Binding Length}" Style="{StaticResource textboxStyle}"></TextBox> | |||||
</DataTemplate> | |||||
</DataGridTemplateColumn.CellTemplate> | |||||
</DataGridTemplateColumn>--><!-- | |||||
</DataGrid.Columns> | |||||
</DataGrid>--> | |||||
<DataGrid x:Name="fryTwo" Grid.Row="1" Visibility="{Binding fryTwoDataVisible}" ItemsSource="{Binding StatusTwo}" GridLinesVisibility="All" Background="Transparent" | <DataGrid x:Name="fryTwo" Grid.Row="1" Visibility="{Binding fryTwoDataVisible}" ItemsSource="{Binding StatusTwo}" GridLinesVisibility="All" Background="Transparent" | ||||
AutoGenerateColumns="False" IsReadOnly="True" Style="{StaticResource dataGrid}" | AutoGenerateColumns="False" IsReadOnly="True" Style="{StaticResource dataGrid}" | ||||
ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}"> | ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}"> | ||||
@@ -25,6 +25,9 @@ namespace FryPot_DosingSystem.View | |||||
InitializeComponent(); | InitializeComponent(); | ||||
} | } | ||||
private void fryPot_LoadingRow(object sender, DataGridRowEventArgs e) | |||||
{ | |||||
e.Row.Header = e.Row.GetIndex() + 1; | |||||
} | |||||
} | } | ||||
} | } |
@@ -441,7 +441,7 @@ | |||||
<DataGridTextColumn FontSize="16" IsReadOnly="false" Width="0.2*" Binding="{Binding UserName}" ElementStyle="{StaticResource dgCell}"> | <DataGridTextColumn FontSize="16" IsReadOnly="false" Width="0.2*" Binding="{Binding UserName}" ElementStyle="{StaticResource dgCell}"> | ||||
<DataGridTextColumn.Header> | <DataGridTextColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" FontSize="24" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" FontSize="18" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="Account" /> | <TextBlock Text="Account" /> | ||||
</StackPanel> | </StackPanel> | ||||
</DataGridTextColumn.Header> | </DataGridTextColumn.Header> | ||||
@@ -469,6 +469,14 @@ | |||||
</StackPanel> | </StackPanel> | ||||
</DataGridTextColumn.Header> | </DataGridTextColumn.Header> | ||||
</DataGridTextColumn> | </DataGridTextColumn> | ||||
<DataGridTextColumn FontSize="16" IsReadOnly="True" Width="0.2*" Binding="{Binding CardId}" ElementStyle="{StaticResource dgCell}"> | |||||
<DataGridTextColumn.Header> | |||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | |||||
<TextBlock FontFamily="../Resources/fonts/#iconfont" Foreground="Orange" Text="" VerticalAlignment="Center" Margin="0,0,8,0"/> | |||||
<TextBlock Text="NFC"/> | |||||
</StackPanel> | |||||
</DataGridTextColumn.Header> | |||||
</DataGridTextColumn> | |||||
<DataGridTemplateColumn Width="0.2*"> | <DataGridTemplateColumn Width="0.2*"> | ||||
<DataGridTemplateColumn.Header> | <DataGridTemplateColumn.Header> | ||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> | ||||
@@ -478,7 +486,7 @@ | |||||
</DataGridTemplateColumn.Header> | </DataGridTemplateColumn.Header> | ||||
<DataGridTemplateColumn.CellTemplate> | <DataGridTemplateColumn.CellTemplate> | ||||
<DataTemplate> | <DataTemplate> | ||||
<ComboBox Style="{StaticResource ComboBoxStyle1}" Text="{Binding Permission}" Tag="{Binding Id}" SelectedItem="{Binding Permission}" SelectionChanged="ComboBox_SelectionChanged" ItemsSource="{Binding DataContext.Authorities, RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}}" Foreground="SkyBlue" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" FontSize="16"> | |||||
<ComboBox Style="{StaticResource ComboBoxStyle1}" Text="{Binding permission}" Tag="{Binding Id}" SelectedItem="{Binding permission}" SelectionChanged="ComboBox_SelectionChanged" ItemsSource="{Binding DataContext.Authorities, RelativeSource={RelativeSource AncestorType=DataGrid, Mode=FindAncestor}}" Foreground="SkyBlue" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" FontSize="16"> | |||||
<ComboBox.ItemContainerStyle> | <ComboBox.ItemContainerStyle> | ||||
<Style TargetType="{x:Type ComboBoxItem}"> | <Style TargetType="{x:Type ComboBoxItem}"> | ||||
@@ -510,7 +518,7 @@ | |||||
<Button Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" | <Button Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" | ||||
CommandParameter="{Binding UserName}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Foreground="Cyan" Content="Save" Margin="5,0"></Button> | CommandParameter="{Binding UserName}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Foreground="Cyan" Content="Save" Margin="5,0"></Button> | ||||
<!--<Button Command="{Binding DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Update" Grid.Column="1" Margin="5,0"></Button>--> | <!--<Button Command="{Binding DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Update" Grid.Column="1" Margin="5,0"></Button>--> | ||||
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Account}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0"></Button> | |||||
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0"></Button> | |||||
</Grid> | </Grid> | ||||
</DataTemplate> | </DataTemplate> | ||||
</DataGridTemplateColumn.CellTemplate> | </DataGridTemplateColumn.CellTemplate> | ||||
@@ -36,12 +36,15 @@ namespace FryPot_DosingSystem.View | |||||
ComboBox cbo = sender as ComboBox; | ComboBox cbo = sender as ComboBox; | ||||
var id = cbo.Tag; | var id = cbo.Tag; | ||||
var per = cbo.SelectedItem; | var per = cbo.SelectedItem; | ||||
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p=>p.Id==id); | |||||
if (a != null && per != null) | |||||
if (id != null) | |||||
{ | { | ||||
a.Permission = (Permission)Enum.Parse(typeof(Permission), per.ToString()); | |||||
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p => p.Id == id); | |||||
if (a != null && per != null) | |||||
{ | |||||
a.permission = (Permission)Enum.Parse(typeof(Permission), per.ToString()); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -0,0 +1,20 @@ | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using Microsoft.Toolkit.Mvvm.Input; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace FryPot_DosingSystem.ViewModel | |||||
{ | |||||
internal class LabelPrintViewModel:ObservableObject | |||||
{ | |||||
public RelayCommand PrintCommand { get; set; } | |||||
public LabelPrintViewModel() | |||||
{ | |||||
} | |||||
} | |||||
} |
@@ -38,9 +38,15 @@ namespace FryPot_DosingSystem.ViewModel | |||||
if (res != null) | if (res != null) | ||||
{ | { | ||||
RecipeSetDown(new NewRecipeModel[] { res }); | RecipeSetDown(new NewRecipeModel[] { res }); | ||||
res.RecipeSetInfo = "配方下发成功"; | |||||
Task.Run(() => { Thread.Sleep(1500); res.RecipeSetInfo = string.Empty; }); | |||||
} | } | ||||
res.RecipeSetInfo = "配方下发成功"; | |||||
Task.Run(() => { Thread.Sleep(1500);res.RecipeSetInfo = string.Empty; }); | |||||
else | |||||
{ | |||||
res.RecipeSetInfo = "配方下发失败"; | |||||
Task.Run(() => { Thread.Sleep(1500); res.RecipeSetInfo = string.Empty; }); | |||||
} | |||||
} | } | ||||
}); | }); | ||||
AllRecipeSetDownCommand = new RelayCommand(() => | AllRecipeSetDownCommand = new RelayCommand(() => | ||||
@@ -5,26 +5,32 @@ using Microsoft.Toolkit.Mvvm.Input; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Collections.ObjectModel; | using System.Collections.ObjectModel; | ||||
using System.IO; | |||||
using System.Linq; | using System.Linq; | ||||
using System.Runtime.Serialization.Formatters.Binary; | |||||
using System.Text; | using System.Text; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using System.Windows; | using System.Windows; | ||||
using System.Windows.Forms; | |||||
namespace FryPot_DosingSystem.ViewModel | namespace FryPot_DosingSystem.ViewModel | ||||
{ | { | ||||
internal class SqliteDataViewModel : ObservableObject | internal class SqliteDataViewModel : ObservableObject | ||||
{ | { | ||||
public ObservableCollection<PotOneStatus> StatusOne { get; set; } = new ObservableCollection<PotOneStatus>(); | public ObservableCollection<PotOneStatus> StatusOne { get; set; } = new ObservableCollection<PotOneStatus>(); | ||||
public ObservableCollection<PotTwoStatus> StatusTwo { get; set; } = new ObservableCollection<PotTwoStatus>(); | public ObservableCollection<PotTwoStatus> StatusTwo { get; set; } = new ObservableCollection<PotTwoStatus>(); | ||||
public ObservableCollection<PotThreeStatus> StatusThree { get; set; } = new ObservableCollection<PotThreeStatus>(); | public ObservableCollection<PotThreeStatus> StatusThree { get; set; } = new ObservableCollection<PotThreeStatus>(); | ||||
public ObservableCollection<PotFourStatus> StatusFour { get; set; } = new ObservableCollection<PotFourStatus>(); | public ObservableCollection<PotFourStatus> StatusFour { get; set; } = new ObservableCollection<PotFourStatus>(); | ||||
public ObservableCollection<PotFiveStatus> StatusFive { get; set; } = new ObservableCollection<PotFiveStatus>(); | public ObservableCollection<PotFiveStatus> StatusFive { get; set; } = new ObservableCollection<PotFiveStatus>(); | ||||
public ObservableCollection<object> Status { get; set; } = new ObservableCollection<object>(); | |||||
public Visibility fryOneDataVisible { get { return _fryOneDataVisible; } set { _fryOneDataVisible = value; OnPropertyChanged(); } } | public Visibility fryOneDataVisible { get { return _fryOneDataVisible; } set { _fryOneDataVisible = value; OnPropertyChanged(); } } | ||||
private Visibility _fryOneDataVisible=Visibility.Visible; | |||||
private Visibility _fryOneDataVisible = Visibility.Visible; | |||||
public Visibility fryTwoDataVisible { get { return _fryTwoDataVisible; } set { _fryTwoDataVisible = value; OnPropertyChanged(); } } | public Visibility fryTwoDataVisible { get { return _fryTwoDataVisible; } set { _fryTwoDataVisible = value; OnPropertyChanged(); } } | ||||
private Visibility _fryTwoDataVisible=Visibility.Collapsed; | |||||
private Visibility _fryTwoDataVisible = Visibility.Collapsed; | |||||
public Visibility fryThreeDataVisible { get { return _fryThreeDataVisible; } set { _fryThreeDataVisible = value; OnPropertyChanged(); } } | public Visibility fryThreeDataVisible { get { return _fryThreeDataVisible; } set { _fryThreeDataVisible = value; OnPropertyChanged(); } } | ||||
private Visibility _fryThreeDataVisible = Visibility.Collapsed; | private Visibility _fryThreeDataVisible = Visibility.Collapsed; | ||||
@@ -41,135 +47,197 @@ namespace FryPot_DosingSystem.ViewModel | |||||
{ | { | ||||
SelectCommand = new RelayCommand(() => | SelectCommand = new RelayCommand(() => | ||||
{ | { | ||||
if (SelectedDate != string.Empty && SelectedDate != "" && SelectedDate != null && cboSelectedValue != null && cboSelectedValue != string.Empty && cboSelectedValue != "") | |||||
#region 旧版本 | |||||
//if (SelectedDate != string.Empty && SelectedDate != "" && SelectedDate != null && cboSelectedValue != null && cboSelectedValue != string.Empty && cboSelectedValue != "") | |||||
//{ | |||||
// if (cboSelectedValue == "1号炒锅") | |||||
// { | |||||
// List<PotOneStatus> listOne = Sqlite<PotOneStatus>.GetInstance.Base.ToList(); | |||||
// var list = listOne.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
// if (list != null && list.Count() != 0) | |||||
// { | |||||
// if (StatusOne.Count > 0) | |||||
// { | |||||
// StatusOne.Clear(); | |||||
// } | |||||
// foreach (var item in list) | |||||
// { | |||||
// StatusOne.Add(item); | |||||
// } | |||||
// fryOneDataVisible = Visibility.Visible; | |||||
// fryTwoDataVisible = Visibility.Collapsed; | |||||
// fryThreeDataVisible = Visibility.Collapsed; | |||||
// fryFourDataVisible = Visibility.Collapsed; | |||||
// fryFiveDataVisible = Visibility.Collapsed; | |||||
// } | |||||
// else | |||||
// { | |||||
// MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
// } | |||||
// } | |||||
// if (cboSelectedValue == "2号炒锅") | |||||
// { | |||||
// List<PotTwoStatus> listTwo = Sqlite<PotTwoStatus>.GetInstance.Base.ToList(); | |||||
// var list = listTwo.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
// if (list != null && list.Count() != 0) | |||||
// { | |||||
// if (StatusTwo.Count > 0) | |||||
// { | |||||
// StatusTwo.Clear(); | |||||
// } | |||||
// foreach (var item in list) | |||||
// { | |||||
// StatusTwo.Add(item); | |||||
// } | |||||
// fryOneDataVisible = Visibility.Collapsed; | |||||
// fryTwoDataVisible = Visibility.Visible; | |||||
// fryThreeDataVisible = Visibility.Collapsed; | |||||
// fryFourDataVisible = Visibility.Collapsed; | |||||
// fryFiveDataVisible = Visibility.Collapsed; | |||||
// } | |||||
// else | |||||
// { | |||||
// MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
// } | |||||
// } | |||||
// if (cboSelectedValue == "3号炒锅") | |||||
// { | |||||
// List<PotThreeStatus> listThree = Sqlite<PotThreeStatus>.GetInstance.Base.ToList(); | |||||
// var list = listThree.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
// if (list != null && list.Count() != 0) | |||||
// { | |||||
// if (StatusThree.Count > 0) | |||||
// { | |||||
// StatusThree.Clear(); | |||||
// } | |||||
// foreach (var item in list) | |||||
// { | |||||
// StatusThree.Add(item); | |||||
// } | |||||
// fryOneDataVisible = Visibility.Collapsed; | |||||
// fryTwoDataVisible = Visibility.Collapsed; | |||||
// fryThreeDataVisible = Visibility.Visible; | |||||
// fryFourDataVisible = Visibility.Collapsed; | |||||
// fryFiveDataVisible = Visibility.Collapsed; | |||||
// } | |||||
// else | |||||
// { | |||||
// MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
// } | |||||
// } | |||||
// if (cboSelectedValue == "4号炒锅") | |||||
// { | |||||
// List<PotFourStatus> listFour = Sqlite<PotFourStatus>.GetInstance.Base.ToList(); | |||||
// var list = listFour.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
// if (list != null && list.Count() != 0) | |||||
// { | |||||
// if (StatusFour.Count > 0) | |||||
// { | |||||
// StatusFour.Clear(); | |||||
// } | |||||
// foreach (var item in list) | |||||
// { | |||||
// StatusFour.Add(item); | |||||
// } | |||||
// fryOneDataVisible = Visibility.Collapsed; | |||||
// fryTwoDataVisible = Visibility.Collapsed; | |||||
// fryThreeDataVisible = Visibility.Collapsed; | |||||
// fryFourDataVisible = Visibility.Visible; | |||||
// fryFiveDataVisible = Visibility.Collapsed; | |||||
// } | |||||
// else | |||||
// { | |||||
// MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
// } | |||||
// } | |||||
// if (cboSelectedValue == "5号炒锅") | |||||
// { | |||||
// List<PotFiveStatus> listFive = Sqlite<PotFiveStatus>.GetInstance.Base.ToList(); | |||||
// var list = listFive.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
// if (list != null && list.Count() != 0) | |||||
// { | |||||
// if (StatusFive.Count > 0) | |||||
// { | |||||
// StatusFive.Clear(); | |||||
// } | |||||
// foreach (var item in list) | |||||
// { | |||||
// StatusFive.Add(item); | |||||
// } | |||||
// fryOneDataVisible = Visibility.Collapsed; | |||||
// fryTwoDataVisible = Visibility.Collapsed; | |||||
// fryThreeDataVisible = Visibility.Collapsed; | |||||
// fryFourDataVisible = Visibility.Collapsed; | |||||
// fryFiveDataVisible = Visibility.Visible; | |||||
// } | |||||
// else | |||||
// { | |||||
// MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
// } | |||||
// } | |||||
//} | |||||
#endregion | |||||
using (OpenFileDialog openFile = new OpenFileDialog()) | |||||
{ | { | ||||
if (cboSelectedValue == "1号炒锅") | |||||
{ | |||||
List<PotOneStatus> listOne = Sqlite<PotOneStatus>.GetInstance.Base.ToList(); | |||||
var list = listOne.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
if (list != null && list.Count() != 0) | |||||
{ | |||||
if (StatusOne.Count > 0) | |||||
{ | |||||
StatusOne.Clear(); | |||||
} | |||||
foreach (var item in list) | |||||
{ | |||||
StatusOne.Add(item); | |||||
} | |||||
fryOneDataVisible = Visibility.Visible; | |||||
fryTwoDataVisible = Visibility.Collapsed; | |||||
fryThreeDataVisible = Visibility.Collapsed; | |||||
fryFourDataVisible = Visibility.Collapsed; | |||||
fryFiveDataVisible = Visibility.Collapsed; | |||||
} | |||||
else | |||||
{ | |||||
MessageBox.Show("未找到对应数据","提示",MessageBoxButton.OK,MessageBoxImage.Information); | |||||
} | |||||
} | |||||
if (cboSelectedValue == "2号炒锅") | |||||
{ | |||||
List<PotTwoStatus> listTwo = Sqlite<PotTwoStatus>.GetInstance.Base.ToList(); | |||||
var list = listTwo.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
if (list != null && list.Count() != 0) | |||||
{ | |||||
if (StatusTwo.Count > 0) | |||||
{ | |||||
StatusTwo.Clear(); | |||||
} | |||||
foreach (var item in list) | |||||
{ | |||||
StatusTwo.Add(item); | |||||
} | |||||
fryOneDataVisible = Visibility.Collapsed; | |||||
fryTwoDataVisible = Visibility.Visible; | |||||
fryThreeDataVisible = Visibility.Collapsed; | |||||
fryFourDataVisible = Visibility.Collapsed; | |||||
fryFiveDataVisible = Visibility.Collapsed; | |||||
} | |||||
else | |||||
{ | |||||
MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
} | |||||
} | |||||
if (cboSelectedValue == "3号炒锅") | |||||
{ | |||||
List<PotThreeStatus> listThree = Sqlite<PotThreeStatus>.GetInstance.Base.ToList(); | |||||
var list = listThree.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
if (list != null && list.Count() != 0) | |||||
{ | |||||
if (StatusThree.Count > 0) | |||||
{ | |||||
StatusThree.Clear(); | |||||
} | |||||
foreach (var item in list) | |||||
{ | |||||
StatusThree.Add(item); | |||||
} | |||||
fryOneDataVisible = Visibility.Collapsed; | |||||
fryTwoDataVisible = Visibility.Collapsed; | |||||
fryThreeDataVisible = Visibility.Visible; | |||||
fryFourDataVisible = Visibility.Collapsed; | |||||
fryFiveDataVisible = Visibility.Collapsed; | |||||
} | |||||
else | |||||
{ | |||||
MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
} | |||||
} | |||||
if (cboSelectedValue == "4号炒锅") | |||||
{ | |||||
List<PotFourStatus> listFour = Sqlite<PotFourStatus>.GetInstance.Base.ToList(); | |||||
var list = listFour.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
if (list != null&&list.Count()!=0) | |||||
{ | |||||
if (StatusFour.Count > 0) | |||||
{ | |||||
StatusFour.Clear(); | |||||
} | |||||
foreach (var item in list) | |||||
{ | |||||
StatusFour.Add(item); | |||||
} | |||||
fryOneDataVisible = Visibility.Collapsed; | |||||
fryTwoDataVisible = Visibility.Collapsed; | |||||
fryThreeDataVisible = Visibility.Collapsed; | |||||
fryFourDataVisible = Visibility.Visible; | |||||
fryFiveDataVisible = Visibility.Collapsed; | |||||
} | |||||
else | |||||
{ | |||||
MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
} | |||||
} | |||||
if (cboSelectedValue == "5号炒锅") | |||||
openFile.Title = "请选择对应数据文件"; | |||||
openFile.Filter = "*.BIN|*.bin"; | |||||
openFile.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory + "AccessFile\\" + "DB\\"; | |||||
openFile.Multiselect = false; | |||||
DialogResult res = openFile.ShowDialog(); | |||||
if (res == DialogResult.OK) | |||||
{ | { | ||||
List<PotFiveStatus> listFive = Sqlite<PotFiveStatus>.GetInstance.Base.ToList(); | |||||
var list = listFive.Where(p => p.Time.Equals(Convert.ToDateTime(SelectedDate).ToShortDateString())); | |||||
if (list != null && list.Count() != 0) | |||||
string file = openFile.FileName; | |||||
if (Path.GetExtension(file).Equals(".bin")) | |||||
{ | { | ||||
if (StatusFive.Count > 0) | |||||
if (Status.Count > 0) | |||||
{ | { | ||||
StatusFive.Clear(); | |||||
Status.Clear(); | |||||
} | } | ||||
foreach (var item in list) | |||||
using (FileStream readStream = new FileStream(file, FileMode.Open, FileAccess.Read)) | |||||
{ | { | ||||
StatusFive.Add(item); | |||||
readStream.Position = 0; | |||||
while (readStream.Position < readStream.Length) | |||||
{ | |||||
BinaryFormatter bf = new BinaryFormatter(); | |||||
object a = bf.Deserialize(readStream); | |||||
if (a is PotOneStatus p1) | |||||
{ | |||||
Status.Add(p1); | |||||
} | |||||
if (a is PotTwoStatus p2) | |||||
{ | |||||
Status.Add(p2); | |||||
} | |||||
if (a is PotThreeStatus p3) | |||||
{ | |||||
Status.Add(p3); | |||||
} | |||||
if (a is PotFourStatus p4) | |||||
{ | |||||
Status.Add(p4); | |||||
} | |||||
if (a is PotFiveStatus p5) | |||||
{ | |||||
Status.Add(p5); | |||||
} | |||||
} | |||||
} | } | ||||
fryOneDataVisible = Visibility.Collapsed; | |||||
fryTwoDataVisible = Visibility.Collapsed; | |||||
fryThreeDataVisible = Visibility.Collapsed; | |||||
fryFourDataVisible = Visibility.Collapsed; | |||||
fryFiveDataVisible = Visibility.Visible; | |||||
} | |||||
else | |||||
{ | |||||
MessageBox.Show("未找到对应数据", "提示", MessageBoxButton.OK, MessageBoxImage.Information); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
}); | }); | ||||
} | } | ||||
} | } | ||||
@@ -59,7 +59,7 @@ namespace FryPot_DosingSystem.ViewModel | |||||
{ | { | ||||
if (str != string.Empty && str != null) | if (str != string.Empty && str != null) | ||||
{ | { | ||||
var userInfo = usersInfo.FirstOrDefault(p => p.UserName == str); | |||||
var userInfo = usersInfo.FirstOrDefault(p => p.Id == str); | |||||
if (userInfo != null) | if (userInfo != null) | ||||
{ | { | ||||
if (usersInfo.Remove(userInfo)) | if (usersInfo.Remove(userInfo)) | ||||