wenjy 11 months ago
commit 1df04ca5ff

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Admin.Core.Common")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b14cee841cc126714bd9974bfb490340b0c3a348")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Admin.Core.Common")]
[assembly: System.Reflection.AssemblyTitleAttribute("Admin.Core.Common")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

@ -1 +1 @@
084e48044896d89835d97ecf2b6482131ddb1364494a27aefb0b1990a1319ddf
3c08b2a6f95957043123cba0d01dcd1675663fc7

@ -8,6 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Admin.Core.Common
build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Common\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.ProjectDir = E:\c#\AUCMA\new\Admin.Core.Common\

@ -83,6 +83,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucma.Core.SheetMetal", "Au
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucma.Core.DataCollector", "Aucma.Core.DataCollector\Aucma.Core.DataCollector.csproj", "{DF628848-79A6-4234-A0F6-F961DFC16A0E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aucma.Core.ProductOffLine", "Aucma.Core.ProductOffLine\Aucma.Core.ProductOffLine.csproj", "{1582FB18-5185-41A0-B185-914501B3FBFA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -213,6 +215,10 @@ Global
{DF628848-79A6-4234-A0F6-F961DFC16A0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF628848-79A6-4234-A0F6-F961DFC16A0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF628848-79A6-4234-A0F6-F961DFC16A0E}.Release|Any CPU.Build.0 = Release|Any CPU
{1582FB18-5185-41A0-B185-914501B3FBFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1582FB18-5185-41A0-B185-914501B3FBFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1582FB18-5185-41A0-B185-914501B3FBFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1582FB18-5185-41A0-B185-914501B3FBFA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -252,6 +258,7 @@ Global
{B6955077-EEE5-429B-8A79-EDE749A8B034} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
{D452CA9F-2CF9-4978-B0BE-7365F1F7A4EB} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
{DF628848-79A6-4234-A0F6-F961DFC16A0E} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{1582FB18-5185-41A0-B185-914501B3FBFA} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8047AB56-042B-4AE4-B06A-34137067A86A}

@ -54,7 +54,14 @@ namespace Aucma.Core.Palletiz.Business
/// </summary>
public delegate void RefreshMsg(string msg);
public static event RefreshMsg? RefreshMsgEvent;
/// <summary>
///入库时DataGrid添加一条DataGrid记录
/// </summary>
public delegate void AddData(RecordInStore record);
public static event AddData? AddDataEvent;
#endregion
@ -177,6 +184,8 @@ namespace Aucma.Core.Palletiz.Business
}
_ = _recordInstoreServices.AddAsync(recordInstore).Result;
//刷新页面
AddDataEvent?.Invoke(recordInstore);
#endregion
if (!result)
@ -267,7 +276,7 @@ namespace Aucma.Core.Palletiz.Business
if (plcCon == null)
{
Task.Delay(1000 * 5).Wait();
Task.Delay(1000 * 3).Wait();
plcCon = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("InStoreAPlc"));
if(plcCon == null)
@ -283,8 +292,8 @@ namespace Aucma.Core.Palletiz.Business
{
item.SpaceCode = ExtractNumber(item.SpaceName);
var plcAddress = _appConfig.plcAddr.Where(x => x.spaceCode.ToString() == item.SpaceCode && x.spaceArea == item.SpaceArea).First();
int isFlag = _plc.ReadInt16(plcAddress.address);
if (isFlag == 1)
bool isFlag = _plc.ReadBool(plcAddress.address);
if (isFlag)
{
item.SpaceStatus = 3;
}

@ -52,6 +52,7 @@ namespace Aucma.Core.Palletiz.ViewModels
foreach (ProductAllModel info in list)
{
MaterialDataGrid.Add(info);
}
});
}
@ -97,14 +98,18 @@ namespace Aucma.Core.Palletiz.ViewModels
[RelayCommand]
public void Save(Window window)
{
Console.WriteLine(Area);
if (Area == null)
{
MessageBox.Show("请先选择区域");
return;
}
if (string.IsNullOrEmpty(ProductCode))
{
MessageBox.Show("请先选择产品型号");
return;
}
HandSendEvent?.Invoke("A", productCode);
HandSendEvent?.Invoke(Area.Content.ToString(), productCode);
MessageBox.Show("手动入库成功");
window.Close();
// 入库

@ -8,6 +8,8 @@ using System.Collections.ObjectModel;
using System.Linq;
using Aucma.Core.Palletiz.Views;
using CommunityToolkit.Mvvm.ComponentModel;
using System.Threading.Tasks;
using static Aucma.Core.Palletiz.ViewModels.StatisticsPageViewModel;
/*
*
@ -24,6 +26,7 @@ namespace Aucma.Core.Palletiz.ViewModels
new InStoreBusiness().Init();
SelectTypeViewModel.RefreshPageEvent += Init;
StatisticsPageViewModel.CountInstoreEvent += CountInstore;
this.inStoreBusiness = App.ServiceProvider.GetService<InStoreBusiness>();
InStoreBusiness.RefreshMsgEvent += RefreshMsg;
InStoreBusiness.RefreshProductInfoEvent += RefreshProductInfo;
@ -31,20 +34,26 @@ namespace Aucma.Core.Palletiz.ViewModels
{
Console.WriteLine($"{obj};设置");
BaseSpaceInfo space = inStoreBusiness.GetSpaceinfosById(obj);
if(space != null )
if (space != null)
{
SelectType direct = new SelectType(space);
direct.ShowDialog();
}
});
this.Init();
InStoreAmount = inStoreAmount + "19";
InStoreTaskContent = new StatisticsPageView();
}
public void CountInstore(int count)
{
InStoreAmount = "入库数量:";
InStoreAmount = inStoreAmount + count;
}
#region 参数定义
public string productSNCode = string.Empty;
@ -55,12 +64,12 @@ namespace Aucma.Core.Palletiz.ViewModels
}
public string productModel = string.Empty;
public string productModel = string.Empty;
public string ProductModel
{
get { return this.productModel; }
set => SetProperty(ref productModel, value);
}
public string orderCode = string.Empty;
@ -69,7 +78,7 @@ namespace Aucma.Core.Palletiz.ViewModels
get { return this.orderCode; }
set => SetProperty(ref orderCode, value);
}
public string productScanTime = string.Empty;
@ -77,7 +86,7 @@ namespace Aucma.Core.Palletiz.ViewModels
{
get { return this.productScanTime; }
set => SetProperty(ref productScanTime, value);
set => SetProperty(ref productScanTime, value);
}
public string msg = string.Empty;
@ -85,7 +94,7 @@ namespace Aucma.Core.Palletiz.ViewModels
{
get { return this.msg; }
set => SetProperty(ref msg, value);
}
public string inStoreAmount = "入库数量:";
public string InStoreAmount
@ -93,7 +102,7 @@ namespace Aucma.Core.Palletiz.ViewModels
get { return this.inStoreAmount; }
set => SetProperty(ref inStoreAmount, value);
}
public System.Windows.Controls.UserControl _content;
@ -104,7 +113,7 @@ namespace Aucma.Core.Palletiz.ViewModels
set => SetProperty(ref _content, value);
}
/// <summary>
@ -116,7 +125,7 @@ namespace Aucma.Core.Palletiz.ViewModels
{
get { return _areaA_SpaceInfo; }
set => SetProperty(ref _areaA_SpaceInfo, value);
}
/// <summary>
@ -128,7 +137,7 @@ namespace Aucma.Core.Palletiz.ViewModels
{
get { return _areaB_SpaceInfo; }
set => SetProperty(ref _areaB_SpaceInfo, value);
}
#endregion
@ -160,46 +169,55 @@ namespace Aucma.Core.Palletiz.ViewModels
OrderCode = orderCode;
ProductScanTime = DateTime.Now.ToString();
}
private void Init()
private async Task Init()
{
var info = inStoreBusiness.GetBaseSpaceinfos("A");
info = info.OrderByDescending(x => x.ObjId).ToList();
if (info != null)
await Task.Run(() =>
{
App.Current.Dispatcher.BeginInvoke((Action)(() =>
var info = inStoreBusiness.GetBaseSpaceinfos("A");
info = info.OrderByDescending(x => x.ObjId).ToList();
if (info != null)
{
if (spaceItems.Count > 0)
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
spaceItems.Clear();
}
foreach (var item in info)
if (spaceItems.Count > 0)
{
spaceItems.Clear();
}
foreach (var item in info)
{
spaceItems.Add(item);
}
AreaA_SpaceInfo = spaceItems;
}));
}
var info2 = inStoreBusiness.GetBaseSpaceinfos("A");
info2 = info2.OrderBy(x => x.ObjId).ToList();
if (info2 != null)
{
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
spaceItems.Add(item);
}
AreaA_SpaceInfo = spaceItems;
}));
}
//var info2 = inStoreBusiness.GetBaseSpaceinfos("A");
//info2 = info2.OrderBy(x => x.ObjId).ToList();
//if (info2 != null)
//{
// App.Current.Dispatcher.BeginInvoke((Action)(() =>
// {
// if (spaceItemsB.Count > 0)
// {
// spaceItemsB.Clear();
// }
// foreach (var item in info2)
// {
// spaceItemsB.Add(item);
// }
// AreaB_SpaceInfo = spaceItemsB;
// }));
//}
if (spaceItemsB.Count > 0)
{
spaceItemsB.Clear();
}
foreach (var item in info2)
{
spaceItemsB.Add(item);
}
AreaB_SpaceInfo = spaceItemsB;
}));
}
});
}
}
}

@ -20,7 +20,7 @@ namespace Aucma.Core.Palletiz.ViewModels
public PalletizPageViewModel() {
_baseSpaceInfoServices = App.ServiceProvider.GetService<IBaseSpaceInfoServices>();
LoadDataGrid();
SelectTypeViewModel.RefreshPageEvent += LoadDataGrid;
// SelectTypeViewModel.RefreshPageEvent += LoadDataGrid;
}
public void LoadDataGrid()

@ -33,7 +33,7 @@ namespace Aucma.Core.Palletiz.ViewModels
/// 刷新货道页面
/// </summary>
/// <param name="message"></param>
public delegate void RefreshPage();
public delegate Task RefreshPage();
public static event RefreshPage RefreshPageEvent;
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(BaseSpaceInfoServices));

@ -1,6 +1,7 @@
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.Model;
using Aucma.Core.Palletiz.Business;
using Aucma.Core.Palletiz.Models;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
@ -13,15 +14,28 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Documents;
namespace Aucma.Core.Palletiz.ViewModels
{
public partial class StatisticsPageViewModel : ObservableObject
{
// private static readonly Lazy<StatisticsPageViewModel> lazy = new Lazy<StatisticsPageViewModel>(() => new StatisticsPageViewModel());
// public static StatisticsPageViewModel Instance => lazy.Value;
public StatisticsPageViewModel() {
/// <summary>
/// 入库数量统计
/// </summary>
public delegate void CountInstore(int count);
public static event CountInstore? CountInstoreEvent;
// private static readonly Lazy<StatisticsPageViewModel> lazy = new Lazy<StatisticsPageViewModel>(() => new StatisticsPageViewModel());
// public static StatisticsPageViewModel Instance => lazy.Value;
public StatisticsPageViewModel()
{
MainWindowViewModel.RefreshInfoEvent += LoadData;
InStoreBusiness.AddDataEvent += AddData;
LoadData();
}
private readonly IRecordInStoreServices? _recordInstoreServices = App.ServiceProvider.GetService<IRecordInStoreServices>();
@ -30,36 +44,52 @@ namespace Aucma.Core.Palletiz.ViewModels
public string storeCodeB = Appsettings.app("StoreInfo", "PalletizStoreCodeB");
/// <summary>
/// 入库时DataGrid添加一条记录
/// </summary>
/// <returns></returns>
public void AddData(RecordInStore record)
{
App.Current.Dispatcher.Invoke(() =>
{
MaterialDataGrid.Add(record);
CountInstoreEvent?.Invoke(MaterialDataGrid.Count);
});
}
#region 加载DataGrid数据
private async Task LoadData()
private async Task LoadData()
{
await Task.Run(() =>
{
try
{
await Task.Run(() =>
{
try
{
List<RecordInStore> list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.InStoreTime >= DateTime.Today).Result;
if (list != null && list.Count > 0)
{
App.Current.Dispatcher.Invoke(() =>
{
MaterialDataGrid.Clear();
CountInstoreEvent?.Invoke(list.Count);
list.OrderByDescending(x => x.InStoreTime);
foreach (RecordInStore record in list)
{
List<RecordInStore> list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.InStoreTime >= DateTime.Today).Result;
if (list != null && list.Count > 0)
{
list.OrderByDescending(x => x.InStoreTime);
foreach (RecordInStore record in list)
{
App.Current.Dispatcher.Invoke(() =>
{
MaterialDataGrid.Add(record);
});
}
}
}
catch (Exception ex)
{
Console.WriteLine("" + ex.Message.ToString());
MaterialDataGrid.Add(record);
}
});
}
}
catch (Exception ex)
{
Console.WriteLine("" + ex.Message.ToString());
}
});
}
});
//MaterialDataGrid.Add(new MaterialComplateInfo() { No = 1, ProductPlanCode = "8659452123",MaterialCode = "8659452123", MaterialName = "SC-AUCMA-农夫山泉SC", PlanAmount = 50, CompleteAmount = 10 });
}
@ -93,14 +123,14 @@ namespace Aucma.Core.Palletiz.ViewModels
List<RecordInStore> list = _recordInstoreServices.QueryAsync(x => (x.StoreCode == storeCodeA || x.StoreCode == storeCodeB) && x.BarCodeCode.Contains(result)).Result;
if (list != null && list.Count > 0)
{
MaterialDataGrid.Clear();
foreach (RecordInStore record in list)
App.Current.Dispatcher.Invoke(() =>
{
App.Current.Dispatcher.Invoke(() =>
MaterialDataGrid.Clear();
foreach (RecordInStore record in list)
{
MaterialDataGrid.Add(record);
});
}
}
});
}
});
}

@ -113,7 +113,7 @@
<Border Grid.Row="1" BorderThickness="4" >
<DataGrid ItemsSource="{Binding MaterialDataGrid}" Height="{Binding Path=ActualHeight, ElementName=HeightPanel}"
HorizontalAlignment="Left" VerticalAlignment="Top" AlternationCount="2" RowHeaderWidth="0"
ColumnWidth="*" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" SelectionMode="Single"
ColumnWidth="*" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" SelectionMode="Single"
SelectedItem="{Binding SelectedDataItem}" SelectionChanged="DataGrid_SelectionChanged" >
<DataGrid.Columns>
<!--<DataGridTextColumn Binding="{Binding OrderCode}" Width="*" Header="订单编码" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>-->

@ -108,12 +108,20 @@
<UniformGrid Grid.Row="1">
<DataGrid ItemsSource="{Binding MaterialDataGrid}"
ColumnHeaderHeight="45" FontSize="18"
RowHeight="50" AutoGenerateColumns="False" RowHeaderWidth="0"
RowHeight="50" AutoGenerateColumns="False" RowHeaderWidth="0" LoadingRow="DataGrid_LoadingRow"
GridLinesVisibility="None" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True"
Foreground="White" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding No}" Header="序号" Width="1*" Visibility="Collapsed"/>
<DataGridTemplateColumn Width="*" Header="序号" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" FontSize="18" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding BarCodeCode}" Header="成品条码" Width="3*" />
<DataGridTextColumn Binding="{Binding MaterialName}" Header="成品型号" Width="3*" />
<DataGridTextColumn Binding="{Binding StoreArea}" Header="区域" Width="1*" />

@ -27,5 +27,9 @@ namespace Aucma.Core.Palletiz.Views
this.DataContext = new StatisticsPageViewModel();
}
private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = (e.Row.GetIndex() + 1).ToString();
}
}
}

Loading…
Cancel
Save