|
|
|
|
@ -13,6 +13,7 @@ using Khd.Core.Wpf.TaskForm;
|
|
|
|
|
using Khd.Core.Wpf.WindowPage;
|
|
|
|
|
using Masuit.Tools;
|
|
|
|
|
using Masuit.Tools.Logging;
|
|
|
|
|
using Microsoft.CodeAnalysis;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
|
@ -38,6 +39,7 @@ using System.Windows.Media.Media3D;
|
|
|
|
|
using System.Windows.Threading;
|
|
|
|
|
using Z.EntityFramework.Plus;
|
|
|
|
|
using static HandyControl.Tools.Interop.InteropValues;
|
|
|
|
|
using Location = Khd.Core.Wpf.dto.Location;
|
|
|
|
|
|
|
|
|
|
namespace Khd.Core.Wpf.Form
|
|
|
|
|
{
|
|
|
|
|
@ -126,7 +128,12 @@ namespace Khd.Core.Wpf.Form
|
|
|
|
|
{
|
|
|
|
|
CheckVersion();
|
|
|
|
|
InitializeData(1);
|
|
|
|
|
Refulsh_Click(null,null);
|
|
|
|
|
this.WareHouseId.ItemsSource = new List<string>
|
|
|
|
|
{
|
|
|
|
|
"二楼仓库","三楼仓库","五楼仓库"
|
|
|
|
|
};
|
|
|
|
|
this.WarehourseId.Items.Refresh();
|
|
|
|
|
this.WareHouseId.SelectedIndex = 0;
|
|
|
|
|
foreach (var item in this.TabControl.Items)
|
|
|
|
|
{
|
|
|
|
|
if (item is TabItem tabItem)
|
|
|
|
|
@ -5007,10 +5014,43 @@ namespace Khd.Core.Wpf.Form
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Refulsh_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
UpdateLocations(GetLocations());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void UpdateLocations(List<WmsBaseLocation> wmsBaseLocations)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var wareHouse = WareHouseId.SelectionBoxItem.ToString();
|
|
|
|
|
foreach (var item in this.LocaltionGrid.Children)
|
|
|
|
|
{
|
|
|
|
|
if(item is Grid grid)
|
|
|
|
|
{
|
|
|
|
|
foreach(var btn in grid.Children)
|
|
|
|
|
{
|
|
|
|
|
if(btn is Button button)
|
|
|
|
|
{
|
|
|
|
|
var location = wmsBaseLocations.Where(t => t.locationCode == button.Name.Replace("Location", "")).FirstOrDefault();
|
|
|
|
|
if(location != null)
|
|
|
|
|
{
|
|
|
|
|
button.Background = string.IsNullOrEmpty(location.containerCode) ? new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4789AE")) : new SolidColorBrush((Color)ColorConverter.ConvertFromString("#75F76D"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<WmsBaseLocation> GetLocations()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var wareHouse = WareHouseId.SelectedItem.ToString();
|
|
|
|
|
var warehouseId = new List<long>();
|
|
|
|
|
if (wareHouse == "二楼仓库")
|
|
|
|
|
{
|
|
|
|
|
@ -5028,8 +5068,71 @@ namespace Khd.Core.Wpf.Form
|
|
|
|
|
}
|
|
|
|
|
var scope = _host.Services.CreateScope();
|
|
|
|
|
var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
|
|
|
|
|
var wmsBaseLocations = dbContext.WmsBaseLocation.Where(t => warehouseId.Contains(t.warehouseId)).ToList();
|
|
|
|
|
loadLocations(wmsBaseLocations);
|
|
|
|
|
return dbContext.WmsBaseLocation.Where(t => warehouseId.Contains(t.warehouseId)).ToList();
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
return new List<WmsBaseLocation>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void DrawLocaitons()
|
|
|
|
|
{
|
|
|
|
|
loadLocations(GetLocations());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
|
@ -5038,64 +5141,22 @@ namespace Khd.Core.Wpf.Form
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void loadLocations(List<WmsBaseLocation> wmsBaseLocations)
|
|
|
|
|
{
|
|
|
|
|
Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
this.LocaltionGrid.Children.Clear();
|
|
|
|
|
this.LocaltionGrid.RowDefinitions.Clear();
|
|
|
|
|
this.LocaltionGrid.ColumnDefinitions.Clear();
|
|
|
|
|
List<long> list = wmsBaseLocations.Select(t => t.warehouseId).Distinct().ToList();
|
|
|
|
|
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);
|
|
|
|
|
var 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(5, 5, 5, 5),
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnLocationButton_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (sender is Button button)
|
|
|
|
|
{
|
|
|
|
|
if (button.Tag is long locationId)
|
|
|
|
|
{
|
|
|
|
|
StockWindow stockWindow = new StockWindow(_host,locationId);
|
|
|
|
|
StockWindow stockWindow = new StockWindow(_host, locationId);
|
|
|
|
|
stockWindow.ShowDialog();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void WareHouseId_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
DrawLocaitons();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|