change-成品下线添加订单统计

dev
liuwf 11 months ago
parent 401525c3fd
commit 1ef4c6f9ab

@ -22,7 +22,8 @@ namespace Aucma.Core.ProductOffLine.ViewModels
// 成品下线操作mes数据
private readonly IOffLineInfoServices? _offLineInfoServices = App.ServiceProvider.GetService<IOffLineInfoServices>();
public StatisticsPageViewModel() {
public StatisticsPageViewModel()
{
_offLineInfoServices = App.ServiceProvider.GetService<IOffLineInfoServices>();
MainWindowViewModel.RefreshChartsEvent += LoadData;
LoadData();
@ -31,40 +32,54 @@ namespace Aucma.Core.ProductOffLine.ViewModels
List<MaterialComplateInfo> materialComplateInfos = new List<MaterialComplateInfo>();
#region 加载DataGrid数据
private void LoadData()
private void LoadData()
{
ListItems.Clear();
TotalItem.Clear();
OrderListItem.Clear();
List<OffLineInfo> list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= DateTime.Now.AddDays(-2)).Result;
if (list == null || list.Count <= 0) return;
list = list.OrderByDescending(x => x.ProductScanTime).ToList();
Application.Current.Dispatcher.Invoke(() =>
{
List<OffLineInfo> list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= DateTime.Now.AddDays(-2)).Result;
if(list==null || list.Count<=0) return;
list = list.OrderByDescending(x => x.ProductScanTime).ToList();
if (list != null)
{
foreach (OffLineInfo record in list)
if (list != null)
{
foreach (OffLineInfo record in list)
{
ListItems.Add(new TempInfo() { No = ListItems.Count + 1, ProductOrderNo = record.ProductOrderNo, ProductSNCode = record.ProductSNCode, ProductModel = record.ProductModel, ProductRemark = record.ProductRemark, ProductScanTime = record.ProductScanTime });
}
// 按型号统计
var countByProductModel = list.GroupBy(x => x.ProductModel).Select(group => new
{
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.Key,
Count = group.Count()
}).ToList();
foreach (var item in countByProductModel)
{
TotalItem.Add(new TempInfo() { No = TotalItem.Count + 1, ProductCode = item.ProductCode, ProductModel = item.ProductModel, ProductRemark = item.ProductRemark, Count = item.Count });
}
// 按订单统计
var countOrderModel = list.GroupBy(x => x.ProductOrderNo).Select(group => new
{
ProductOrderNo = group.Key,
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.First().ProductModel,
Count = group.Count()
}).ToList();
foreach (var item in countOrderModel)
{
OrderListItem.Add(new TempInfo() { No = OrderListItem.Count + 1, ProductOrderNo =item.ProductOrderNo, ProductCode = item.ProductCode, ProductModel = item.ProductModel, ProductRemark = item.ProductRemark, Count = item.Count });
}
}
var countByProductModel = list.GroupBy(x => x.ProductModel).Select(group => new
{
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.Key,
Count = group.Count()
}).ToList();
foreach (var item in countByProductModel)
{
TotalItem.Add(new TempInfo() { No = TotalItem.Count + 1,ProductCode = item.ProductCode, ProductModel = item.ProductModel,ProductRemark = item.ProductRemark, Count = item.Count });
}
}
});
}
#endregion
@ -91,9 +106,25 @@ namespace Aucma.Core.ProductOffLine.ViewModels
OnPropertyChanged();//属性通知
}
}
// 按照型号统计
private ObservableCollection<TempInfo> orderListItem = new ObservableCollection<TempInfo>() { };
public ObservableCollection<TempInfo> OrderListItem
{
get { return orderListItem; }
set
{
orderListItem = value;
OnPropertyChanged();//属性通知
}
}
#endregion
#region 查询
/// <summary>
/// 查询
@ -110,8 +141,8 @@ namespace Aucma.Core.ProductOffLine.ViewModels
else if (string.IsNullOrEmpty(result.BeginTime))
{
DateTime EndTime = Convert.ToDateTime(result.EndTime);
list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime <= EndTime.AddDays(1)).Result;
list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime <= EndTime.AddDays(1)).Result;
}
else if (string.IsNullOrEmpty(result.EndTime))
{
@ -127,7 +158,7 @@ namespace Aucma.Core.ProductOffLine.ViewModels
MessageBox.Show("结束时间要大于开始时间!");
return;
}
list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= BeginTime && x.ProductScanTime<= EndTime.AddDays(1)).Result;
list = _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= BeginTime && x.ProductScanTime <= EndTime.AddDays(1)).Result;
}
@ -135,28 +166,45 @@ namespace Aucma.Core.ProductOffLine.ViewModels
{
list = list.OrderByDescending(x => x.ProductScanTime).ToList();
ListItems.Clear();
TotalItem.Clear();
Application.Current.Dispatcher.Invoke(() =>
{
foreach (OffLineInfo record in list)
{
ListItems.Clear();
TotalItem.Clear();
OrderListItem.Clear();
foreach (OffLineInfo record in list)
{
ListItems.Add(new TempInfo() { No = ListItems.Count + 1, ProductOrderNo = record.ProductOrderNo, ProductSNCode = record.ProductSNCode, ProductModel = record.ProductModel, ProductRemark = record.ProductRemark, ProductScanTime = record.ProductScanTime });
ListItems.Add(new TempInfo() { No = ListItems.Count + 1, ProductOrderNo = record.ProductOrderNo, ProductSNCode = record.ProductSNCode, ProductModel = record.ProductModel, ProductRemark = record.ProductRemark, ProductScanTime = record.ProductScanTime });
}
var countByProductModel = list.GroupBy(x => x.ProductModel).Select(group => new
{
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.Key,
Count = group.Count()
}).ToList();
foreach (var item in countByProductModel)
{
}
var countByProductModel = list.GroupBy(x => x.ProductModel).Select(group => new
{
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.Key,
Count = group.Count()
}).ToList();
foreach (var item in countByProductModel)
{
TotalItem.Add(new TempInfo() { No = TotalItem.Count + 1, ProductCode = item.ProductCode, ProductModel = item.ProductModel, ProductRemark = item.ProductRemark, Count = item.Count });
}
// 按订单统计
var countOrderModel = list.GroupBy(x => x.ProductOrderNo).Select(group => new
{
ProductOrderNo = group.Key,
ProductCode = group.First().ProductCode,
ProductRemark = group.First().ProductRemark,
ProductModel = group.First().ProductModel,
Count = group.Count()
}).ToList();
foreach (var item in countOrderModel)
{
OrderListItem.Add(new TempInfo() { No = OrderListItem.Count + 1, ProductOrderNo = item.ProductOrderNo, ProductCode = item.ProductCode, ProductModel = item.ProductModel, ProductRemark = item.ProductRemark, Count = item.Count });
}
TotalItem.Add(new TempInfo() { No = TotalItem.Count + 1, ProductCode = item.ProductCode, ProductModel = item.ProductModel, ProductRemark = item.ProductRemark, Count = item.Count });
}
});
}
}

@ -86,6 +86,8 @@
</Border>
<Button x:Name="btn1" Content="入库记录" HorizontalAlignment="Left" Margin="37,13,0,0" Grid.Row="1" VerticalAlignment="Top" RenderTransformOrigin="0.204,0.551" Background="#FF1752E1" Click="btn1_Click" FontSize="20"/>
<Button x:Name="btn2" Content="型号汇总" HorizontalAlignment="Left" Margin="170,13,0,0" Grid.Row="1" VerticalAlignment="Top" RenderTransformOrigin="0.204,0.551" Background="#FF384E83" Click="btn2_Click" FontSize="20"/>
<Button x:Name="btn3" Content="订单统计" HorizontalAlignment="Left" Margin="306,13,0,0" Grid.Row="1" VerticalAlignment="Top" RenderTransformOrigin="0.204,0.551" Background="#FF384E83" Click="btn3_Click" FontSize="20"/>
<Border x:Name="border1" Grid.Row="1" Visibility="Visible" BorderBrush="#0288d1" BorderThickness="0" CornerRadius="5" Background="Transparent" Margin="1,50,5,5">
<Grid Margin="10,5">
<Grid.RowDefinitions>
@ -182,6 +184,34 @@
</Grid>
</Border>
<Border x:Name="border3" Grid.Row="1" Visibility="Collapsed" BorderBrush="#0288d1" Background="Transparent" BorderThickness="1" CornerRadius="5" Margin="6,50,0,5">
<Grid Margin="10,5">
<!--<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
</Grid.RowDefinitions>-->
<UniformGrid Grid.Row="1">
<DataGrid Grid.Row="0" ItemsSource="{Binding OrderListItem}" Background="#00000000"
ColumnHeaderHeight="35"
RowHeight="50" AutoGenerateColumns="False" RowHeaderWidth="0"
GridLinesVisibility="None" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True"
Foreground="White" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding No}" Header="序号" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductOrderNo}" Header="订单号" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductCode}" Header="物料编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductModel}" Header="产品型号" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductRemark}" Header="标签特征" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding Count}" Header="产品数量" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
</DataGrid.Columns>
</DataGrid>
</UniformGrid>
</Grid>
</Border>
</Grid>
</Border>
</UserControl>

@ -31,16 +31,30 @@ namespace Aucma.Core.ProductOffLine.Views
{
btn1.Background = new SolidColorBrush(Color.FromRgb(23, 82, 225));
btn2.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
btn3.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
border1.Visibility = Visibility.Visible;
border2.Visibility = Visibility.Collapsed;
border2.Visibility = Visibility.Collapsed;
border3.Visibility = Visibility.Collapsed;
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
btn1.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
btn2.Background = new SolidColorBrush(Color.FromRgb(23, 82, 225));
btn3.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
border1.Visibility = Visibility.Collapsed;
border2.Visibility = Visibility.Visible;
border3.Visibility = Visibility.Collapsed;
}
private void btn3_Click(object sender, RoutedEventArgs e)
{
btn1.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
btn2.Background = new SolidColorBrush(Color.FromArgb(255, 56, 78, 131));
btn3.Background = new SolidColorBrush(Color.FromRgb(23, 82, 225));
border1.Visibility = Visibility.Collapsed;
border2.Visibility = Visibility.Collapsed;
border3.Visibility = Visibility.Visible;
}
}
}

Loading…
Cancel
Save