using Admin.Core.IService; using Admin.Core.Model; 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; using System.Threading.Tasks; using System.Windows; namespace Aucma.Core.OldBoxFoam.ViewModels { /** * 发泡计划 * * */ public partial class FoamPlanPageViewModel : ObservableObject { protected readonly IBoxFoamPlanServices? _boxFoamPlanServices; private readonly ICurrentTeamTimeServices _currentTeamTimeServices; private Collection collection = new Collection(); public FoamPlanPageViewModel() { _boxFoamPlanServices = App.ServiceProvider.GetService(); _currentTeamTimeServices = App.ServiceProvider.GetService(); WeakReferenceMessenger.Default.Register(this, Recive); //InitData(); Task.Run(() => { while (true) { App.Current.Dispatcher.BeginInvoke((Action)(() => { InitData(); })); Thread.Sleep(1000 * 5); }; }); } #region 删除 /// /// 删除 /// [RelayCommand] public void DeletePlan(object ObjId) { MessageBoxResult msg = MessageBox.Show("确定要删除吗?", "系统提醒", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (MessageBoxResult.Yes == msg) { int id = (int)ObjId; _boxFoamPlanServices.DeleteByIdAsync(id).Wait(); InitData(); MessageBox.Show("执行计划删除成功", "系统信息"); } } #endregion private void InitData() { ListItems1.Clear(); ListItems.Clear(); int count = 0; DateTime now = DateTime.Now; try { // 判断当前是否是白班时间段 if (now.Hour >= 8 && now.Hour < 20) { List list = _boxFoamPlanServices.QueryAsync(d => d.StationCode == "1105" && d.ShiftType == 1).Result; if (list == null) return; foreach (BoxFoamPlan item in list) { BoxFoamPlanModel model = new BoxFoamPlanModel(); model.No = ++count; model.MaterialCode = item.MaterialCode; model.MaterialName = item.MaterialName; model.PlanAmount = item.PlanAmount; model.ComplateAmount = item.CompleteAmount; model.DifferenceValue = item.PlanAmount - item.CompleteAmount; model.ObjId = item.ObjId; ListItems.Add(model); } } else { List list = _boxFoamPlanServices.QueryAsync(d => d.ShiftType == 1).Result; if (list == null) return; foreach (BoxFoamPlan item in list) { BoxFoamPlanModel model = new BoxFoamPlanModel(); model.No = ++count; model.MaterialCode = item.MaterialCode; model.MaterialName = item.MaterialName; model.PlanAmount = item.PlanAmount; model.ComplateAmount = item.CompleteAmount; model.DifferenceValue = item.PlanAmount - item.CompleteAmount; model.ObjId = item.ObjId; ListItems1.Add(model); } } }catch(Exception ex) { Console.WriteLine($"计划信息实时刷新异常:{ex.Message}"); } #region 原逻辑 Delete By wenjy 2024-01-07 12:24:00 //DateTime now=DateTime.Now; //CurrentTeamTime time = _currentTeamTimeServices.FirstAsync(d => d.StartTime <= now && d.EndTime >= now).Result; //if (time == null) return; //if (time.TeamName.Equals("早班")) //{ // List list = _boxFoamPlanServices.QueryAsync(d=>d.ShiftType==1).Result; // if (list == null) return; // foreach (BoxFoamPlan item in list) // { // BoxFoamPlanModel model = new BoxFoamPlanModel(); // model.No = ++count; // model.MaterialCode = item.MaterialCode; // model.MaterialName = item.MaterialName; // model.PlanAmount = item.PlanAmount; // model.ComplateAmount = item.CompleteAmount; // model.DifferenceValue = item.PlanAmount - item.CompleteAmount; // model.ObjId = item.ObjId; // ListItems.Add(model); // } //} //if (time.TeamName.Equals("晚班")) //{ // List list = _boxFoamPlanServices.QueryAsync(d => d.ShiftType == 1).Result; // if (list == null) return; // foreach (BoxFoamPlan item in list) // { // BoxFoamPlanModel model = new BoxFoamPlanModel(); // model.No = ++count; // model.MaterialCode = item.MaterialCode; // model.MaterialName = item.MaterialName; // model.PlanAmount = item.PlanAmount; // model.ComplateAmount = item.CompleteAmount; // model.DifferenceValue = item.PlanAmount - item.CompleteAmount; // model.ObjId = item.ObjId; // ListItems1.Add(model); // } //} #endregion } [RelayCommand] public void AddPlan(string objId) { int shiftType = 1;//当班是1 SplitPlanView plan = new SplitPlanView(objId, shiftType,"",""); plan.Show(); } [RelayCommand] public async void ClearPlan(string objId) { int id=int.Parse(objId); var obj=await _boxFoamPlanServices.FirstAsync(d=>d.ObjId== id); obj.MaterialCode = ""; obj.MaterialName = ""; obj.PlanAmount = 0; var result= await _boxFoamPlanServices.UpdateAsync(obj); if (result) { ClearData(); MessageBox.Show("清除计划成功!", "系统提醒"); } else { MessageBox.Show("清除计划失败!", "系统提醒"); } } #region 初始化datagrid /// /// 白班 /// private ObservableCollection listItems = new ObservableCollection(); public ObservableCollection ListItems { get => listItems; set => SetProperty(ref listItems, value); } #endregion #region 初始化datagrid /// /// 夜班 /// private ObservableCollection listItems1 = new ObservableCollection(); public ObservableCollection ListItems1 { get => listItems1; set => SetProperty(ref listItems1, value); } #endregion private void Recive(object recipient, string message) { if (message == "RefreshTask") { ClearData(); } } #region 清空数据 public void ClearData() { Id.Clear(); MaterialCode.Clear(); MaterialName.Clear(); PlanAmount.Clear(); InitData(); } #endregion #region MyRegion private ObservableCollection _id = new ObservableCollection(); public ObservableCollection Id { get => _id; set => SetProperty(ref _id, value); } private ObservableCollection _materialCode = new ObservableCollection(); public ObservableCollection MaterialCode { get => _materialCode; set => SetProperty(ref _materialCode, value); } private ObservableCollection _materialName = new ObservableCollection(); public ObservableCollection MaterialName { get => _materialName; set => SetProperty(ref _materialName, value); } private ObservableCollection _planAmount = new ObservableCollection(); public ObservableCollection PlanAmount { get => _planAmount; set => SetProperty(ref _planAmount, value); } #endregion } }