change-添加实时库位界面

dev
liuwf 4 months ago
parent a0605cba8c
commit 1ac584ee02

@ -72,6 +72,7 @@
<Button Content="设备监控" x:Name="DevMonitor" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=DevMonitor}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/> <Button Content="设备监控" x:Name="DevMonitor" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=DevMonitor}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/>
<Button Content="生产管理" Visibility="Collapsed" x:Name="ProdMgmt" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=ProdMgmt}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/> <Button Content="生产管理" Visibility="Collapsed" x:Name="ProdMgmt" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=ProdMgmt}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/>
<Button Content="投料管理" x:Name="ManualDelivery" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=ManualDelivery}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/> <Button Content="投料管理" x:Name="ManualDelivery" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=ManualDelivery}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/>
<Button Content="库位信息" x:Name="LocationPage" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=LocationPage}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/>
<Button Content="AGV监听" x:Name="AgvAndTaskPage" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=AgvAndTaskPage}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/> <Button Content="AGV监听" x:Name="AgvAndTaskPage" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=AgvAndTaskPage}" Style="{StaticResource BUTTON_AGREE}" Height="40" Background="#0099FF" BorderBrush="#0099FF" Margin="0,0,10,0"/>

@ -0,0 +1,43 @@
<UserControl x:Class="SlnMesnac.WPF.Page.LocationPage"
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:SlnMesnac.WPF.Page"
mc:Ignorable="d"
d:DesignHeight="750" d:DesignWidth="1920" Background="Transparent"
>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="10 0 0 0">
<ComboBox x:Name="WareHouseId" Width="148" Height="50" FontSize="25" SelectionChanged="WarehouseChanged"/>
<Button Content="刷新" Foreground="White" Height="50" Margin="5" FontSize="25" Width="132" Click="Refulsh_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="1" CornerRadius="4,4,4,4">
<Border.Background>#346DFF</Border.Background>
<ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" ></ContentPresenter>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="900 0 0 0">
<Rectangle Width="50" Height="50" Fill="#75F76D" />
<TextBlock Text=" 有库存" FontSize="30"/>
</StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="30 0 0 0">
<Rectangle Width="50" Height="50" Fill="#4789AE" />
<TextBlock Text=" 空库位" FontSize="30"/>
</StackPanel>
</StackPanel>
<Grid Grid.Row="1" x:Name="LocaltionGrid">
</Grid>
</Grid>
</UserControl>

@ -0,0 +1,145 @@
using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SqlSugar;
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 SlnMesnac.WPF.Page
{
/// <summary>
/// LocationPage.xaml 的交互逻辑
/// </summary>
public partial class LocationPage : UserControl
{
private readonly ISqlSugarClient? sqlSugarClient;
public LocationPage()
{
InitializeComponent();
sqlSugarClient = App.ServiceProvider.GetService<ISqlSugarClient>();
this.WareHouseId.ItemsSource = new List<string>
{
"二楼仓库","三楼仓库","五楼仓库"
};
WareHouseId.SelectedItem = "三楼仓库";
Refresh();
}
private void Refresh()
{
try
{
string? wareHouse = WareHouseId.SelectedItem.ToString();
var warehouseId = new List<long>();
if (wareHouse == "二楼仓库")
{
warehouseId.Add(231);
}
else if (wareHouse == "三楼仓库")
{
warehouseId.Add(311);
}
else if (wareHouse == "五楼仓库")
{
warehouseId.Add(511);
warehouseId.Add(521);
warehouseId.Add(531);
}
List<WmsBaseLocation> list = sqlSugarClient.AsTenant().GetConnection("mes").Queryable<WmsBaseLocation>().Where(t => warehouseId.Contains(t.WarehouseId)).ToList();
if (list != null && list.Count > 0)
{
loadLocations(list);
}
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void Refulsh_Click(object sender, RoutedEventArgs e)
{
Refresh();
}
private void WarehouseChanged(object sender, SelectionChangedEventArgs e)
{
Refresh();
}
private void loadLocations(List<WmsBaseLocation> wmsBaseLocations)
{
try
{
if (wmsBaseLocations == null || wmsBaseLocations.Count == 0)
{
return;
}
Dispatcher.Invoke(() =>
{
this.LocaltionGrid.Children.Clear();
this.LocaltionGrid.RowDefinitions.Clear();
this.LocaltionGrid.ColumnDefinitions.Clear();
List<long> list = wmsBaseLocations.Select(t => t.WarehouseId).Distinct().ToList();
int? column = 0;
for (var i = 0; i < list.Count; i++)
{
this.LocaltionGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.0, GridUnitType.Star) });
var grid = new Grid();
List<WmsBaseLocation> locations = wmsBaseLocations.Where(t => t.WarehouseId == list[i]).ToList();
var row = locations.Max(t => t.LocRow);
column = locations.Max(t => t.LocColumn);
for (var j = 0; j < row; j++)
{
grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1.0, GridUnitType.Star) });
}
for (var j = 0; j < column; j++)
{
grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1.0, GridUnitType.Star) });
}
foreach (var location in locations)
{
var button = new Button()
{
Name = $"Location{location.LocationCode}",
Content = location.LocationCode,
Width = 50,
Height = 50,
Margin = new Thickness(2),
Tag = location.LocationId,
Background = string.IsNullOrEmpty(location.ContainerCode) ? new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4789AE")) : new SolidColorBrush((Color)ColorConverter.ConvertFromString("#75F76D"))
};
// button.Click += OnLocationButton_Click;
Grid.SetColumn(button, location.LocColumn.Value - 1);
Grid.SetRow(button, -(location.LocRow.Value - row.Value));
grid.Children.Add(button);
}
Grid.SetRow(grid, i);
this.LocaltionGrid.Children.Add(grid);
}
});
}
catch
{
}
}
}
}

@ -31,6 +31,8 @@ namespace SlnMesnac.WPF.ViewModel
private readonly DebugConfig debugConfig = DebugConfig.Instance; private readonly DebugConfig debugConfig = DebugConfig.Instance;
private readonly DevMonitorPage devMonitorPage = new DevMonitorPage(); private readonly DevMonitorPage devMonitorPage = new DevMonitorPage();
private readonly ProdMgmtPage prodMgmtPage = new ProdMgmtPage(); private readonly ProdMgmtPage prodMgmtPage = new ProdMgmtPage();
private readonly LocationPage locationPage = new LocationPage();
private readonly ProdStatisticsPage prodStatisticsPage = new ProdStatisticsPage(); private readonly ProdStatisticsPage prodStatisticsPage = new ProdStatisticsPage();
//代码生成 //代码生成
private readonly GenerateControl generateControl = new GenerateControl(); private readonly GenerateControl generateControl = new GenerateControl();
@ -344,6 +346,11 @@ namespace SlnMesnac.WPF.ViewModel
UserContent = agvAndTaskMonitorPage; UserContent = agvAndTaskMonitorPage;
PageName = "AGV监听"; PageName = "AGV监听";
break; break;
case "LocationPage":
UserContent = locationPage;
PageName = "库位信息";
break;
// 还原 或者 最大化当前窗口 // 还原 或者 最大化当前窗口
case "Normal": case "Normal":
if (Application.Current.MainWindow.WindowState == WindowState.Normal) if (Application.Current.MainWindow.WindowState == WindowState.Normal)

Loading…
Cancel
Save