You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
4.7 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Admin.Core.IService;
using Admin.Core.Model.Model_New;
using Admin.Core.Service;
using Aucma.Core.OldBoxFoam.Business;
using Aucma.Core.OldBoxFoam.Models;
using Aucma.Core.OldBoxFoam.Views;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Windows;
namespace Aucma.Core.OldBoxFoam.ViewModels
{
/**
* 发泡计划
*
* */
public partial class RealRoadPageViewModel : ObservableObject
{
protected readonly IBoxFoamPlanServices? _boxFoamPlanServices;
private IOldBoxFoamTypeServices? _oldBoxFoamTypeServices;
System.Timers.Timer timer2 = new System.Timers.Timer(3000);
public RealRoadPageViewModel()
{
_boxFoamPlanServices = App.ServiceProvider.GetService<IBoxFoamPlanServices>();
_oldBoxFoamTypeServices = App.ServiceProvider.GetService<IOldBoxFoamTypeServices>();
//InitData();
Collection.RefreshSpaceEvent += InitData;
timer2.Elapsed += new System.Timers.ElapsedEventHandler(InitData); //到达时间的时候执行事件;
timer2.AutoReset = true;//设置是执行一次false还是一直执行(true)
timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它
timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
}
public async void InitData(object? sender, ElapsedEventArgs e)
{
List<OldBoxFoamType> list = await _oldBoxFoamTypeServices.QueryAsync();
if (list == null) return;
System.Windows.Application.Current.Dispatcher.Invoke((Action)(() =>
{
ListItems.Clear();
foreach (OldBoxFoamType item in list)
{
ListItems.Add(new OldBoxFoamTypeModel()
{
ObjId = item.ObjId,
Local = item.Local,
Status = item.Storeamount==3?"1":"0",
Storeamount = item.Storeamount,
MaterialCode = item.MaterialCode,
MaterialName = item.MaterialName,
Boxtype = item.Boxtype,
}); ;
}
}));
}
#region 初始化datagrid
private ObservableCollection<OldBoxFoamTypeModel> listItems = new ObservableCollection<OldBoxFoamTypeModel>();
public ObservableCollection<OldBoxFoamTypeModel> ListItems
{
get { return listItems; }
set
{
listItems = value;
OnPropertyChanged();//属性通知
}
}
#endregion
#region 型号统计柱状图X轴日期
/// <summary>
/// 型号统计柱状图X轴日期
/// </summary>
private List<string> materialNameList;
public List<string> MaterialNameList
{
get { return materialNameList; }
set { materialNameList = value; }
}
#endregion
public void InitData(List<SpaceDetailModel> spaceDetailModel)
{
if (spaceDetailModel == null) return;
//List<OldBoxFoamType> list = new List<OldBoxFoamType>();
//var stroreList= await _oldBoxFoamTypeServices.QueryAsync();
//foreach (OldBoxFoamType model in stroreList)
//{
// foreach (var item in spaceDetailModel)
// {
// if (model.ObjId==item.ObjId)
// {
// model.Storeamount = item.StoreAmount;
// model.Boxtype = item.StoreType;
// list.Add(model);
// }
// }
//}
//await _oldBoxFoamTypeServices.UpdateAsync(list);
foreach(var item in spaceDetailModel)
{
var spaceList = _oldBoxFoamTypeServices.Query(x=>x.ObjId == item.ObjId);
if(spaceList != null)
{
if(spaceDetailModel.Count > 0)
{
var spaceInfo = spaceList.FirstOrDefault();
spaceInfo.Storeamount = item.StoreAmount;
spaceInfo.Boxtype = item.StoreType;
_oldBoxFoamTypeServices.UpdateAsync(spaceInfo);
}
}
}
}
}
}