|
|
using Admin.Core.Model;
|
|
|
using Aucma.Scada.UI.Common;
|
|
|
using Aucma.Scada.UI;
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
using CommunityToolkit.Mvvm.Input;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Collections.ObjectModel;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using System.Windows;
|
|
|
|
|
|
namespace Aucma.Scada.UI.ViewModel.InventoryInfo
|
|
|
{
|
|
|
public partial class LinerInventoryViewModel : ObservableObject
|
|
|
{
|
|
|
[DllImport("user32.dll")]
|
|
|
public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time);
|
|
|
|
|
|
private ObservableCollection<BaseSpaceInfo> spaceItems = new ObservableCollection<BaseSpaceInfo>();
|
|
|
|
|
|
private InventoryInfoBusiness inventoryInfoBusiness = new InventoryInfoBusiness();// InventoryInfoBusiness.Instance;
|
|
|
|
|
|
private OutStoreBusiness outStoreBusiness = new OutStoreBusiness();// OutStoreBusiness.Instance;
|
|
|
|
|
|
private InStoreBusiness inStoreBusiness = new InStoreBusiness();// InStoreBusiness.Instance;
|
|
|
|
|
|
private AppConfig appConfig = new AppConfig();//AppConfig.Instance;
|
|
|
|
|
|
public LinerInventoryViewModel()
|
|
|
{
|
|
|
outStoreBusiness.RefreshStoreStockEvent += Query;
|
|
|
|
|
|
inStoreBusiness.RefreshInStoreTaskEvent += RefreshSpaceInfo;
|
|
|
|
|
|
Query();
|
|
|
|
|
|
}
|
|
|
|
|
|
#region 参数定义
|
|
|
public ObservableCollection<BaseSpaceInfo> _shapes;
|
|
|
|
|
|
public ObservableCollection<BaseSpaceInfo> Shapes
|
|
|
{
|
|
|
get => _shapes;
|
|
|
set => SetProperty(ref _shapes, value);
|
|
|
}
|
|
|
|
|
|
private ObservableCollection<BaseSpaceDetail> spaceDetailDataGrid;
|
|
|
|
|
|
public ObservableCollection<BaseSpaceDetail> SpaceDetailDataGrid
|
|
|
{
|
|
|
get => spaceDetailDataGrid;
|
|
|
set => SetProperty(ref spaceDetailDataGrid, value);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
private void Query()
|
|
|
{
|
|
|
App.Current.Dispatcher.BeginInvoke((Action)(async () =>
|
|
|
{
|
|
|
var info =await inventoryInfoBusiness.GetSpaceInfos(appConfig.linerStoreCode);
|
|
|
if (info != null)
|
|
|
{
|
|
|
if (spaceItems.Count > 0)
|
|
|
{
|
|
|
spaceItems.Clear();
|
|
|
}
|
|
|
|
|
|
foreach (var item in info)
|
|
|
{
|
|
|
spaceItems.Add(item);
|
|
|
}
|
|
|
Shapes = spaceItems;
|
|
|
}
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
private void RefreshSpaceInfo(object obj = null, bool isFinish = true)
|
|
|
{
|
|
|
Query();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 货道入库标识设置
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void UpdateInStoreFlag(string info)
|
|
|
{
|
|
|
bool result =await inventoryInfoBusiness.UpdateInStoreFlag(appConfig.linerStoreCode, info);
|
|
|
if (result)
|
|
|
{
|
|
|
Query();
|
|
|
MessageBoxTimeoutA((IntPtr)0, $"货道入库状态修改成功,3秒后关闭提示", "提示", 0, 0, 3000);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("货道入库状态修改失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 货道出库标识设置
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void UpdateOutStoreFlag(object obj)
|
|
|
{
|
|
|
string info = obj as string;
|
|
|
bool result =await inventoryInfoBusiness.UpdateOutStoreFlag(appConfig.linerStoreCode, info);
|
|
|
if (result)
|
|
|
{
|
|
|
Query();
|
|
|
MessageBoxTimeoutA((IntPtr)0, $"货道出库状态修改成功,3秒后关闭提示", "提示", 0, 0, 3000);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("货道出库状态修改失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 货道异常标识设置
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void UpdateUnusualFlag(object obj)
|
|
|
{
|
|
|
string info = obj as string;
|
|
|
bool result =await inventoryInfoBusiness.UpdateUnusualFlag(appConfig.linerStoreCode, info);
|
|
|
if (result)
|
|
|
{
|
|
|
Query();
|
|
|
MessageBoxTimeoutA((IntPtr)0, $"货道异常标识修改成功,3秒后关闭提示", "提示", 0, 0, 3000);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("货道异常标识修改失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 修改货道状态
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void UpdateSpaceStatus(object obj)
|
|
|
{
|
|
|
string info = obj as string;
|
|
|
bool result =await inventoryInfoBusiness.UpdateSpaceStatus(appConfig.linerStoreCode, info);
|
|
|
if (result)
|
|
|
{
|
|
|
Query();
|
|
|
MessageBoxTimeoutA((IntPtr)0, $"货道状态修改成功,3秒后关闭提示", "提示", 0, 0, 3000);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("货道状态修改失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 货道明细
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void SpaceDetail(object obj)
|
|
|
{
|
|
|
string info = obj as string;
|
|
|
var list =await inventoryInfoBusiness.GetBaseSpaceDetails(appConfig.linerStoreCode, info);
|
|
|
|
|
|
RefreshSpaceDetails(list);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 刷新货道明细列表
|
|
|
/// </summary>
|
|
|
/// <param name="spaceDetails"></param>
|
|
|
private void RefreshSpaceDetails(List<BaseSpaceDetail> spaceDetails)
|
|
|
{
|
|
|
SpaceDetailDataGrid = new ObservableCollection<BaseSpaceDetail>();
|
|
|
if (spaceDetails != null)
|
|
|
{
|
|
|
spaceDetails.ForEach(
|
|
|
arg =>
|
|
|
{
|
|
|
SpaceDetailDataGrid.Add(arg);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 手动出一个
|
|
|
/// </summary>
|
|
|
/// <param name="obj"></param>
|
|
|
[RelayCommand]
|
|
|
private async void OutOnlyOne(object obj)
|
|
|
{
|
|
|
string info = obj as string;
|
|
|
bool result =await outStoreBusiness.OutOnlyOneBySpaceCode(appConfig.linerStoreCode, info);
|
|
|
if (result)
|
|
|
{
|
|
|
Query();
|
|
|
MessageBoxTimeoutA((IntPtr)0, $"出库任务创建成功,3秒后关闭提示", "提示", 0, 0, 3000);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MessageBox.Show("出库任务创建失败", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|