diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
index ab464dfc..3d84e3ad 100644
--- a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
@@ -54,12 +54,24 @@ namespace Aucma.Core.BoxFoam.ViewModels
CollectionFoamLine.RefreshBoxFoamDataDelegateEvent += InitData;
- timer2.Elapsed += new System.Timers.ElapsedEventHandler(RealTimeFoamingTask); //到达时间的时候执行事件;
- timer2.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
- timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
- timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true
- InitEveryDayMethod();
- //Task.WaitAll(InitData());
+ //timer2.Elapsed += new System.Timers.ElapsedEventHandler(RealTimeFoamingTask); //到达时间的时候执行事件;
+ //timer2.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
+ //timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
+ //timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true
+
+ //Task.WaitAll(InitData
+ //
+ Task.Run(() =>
+ {
+ while (true)
+ {
+ Thread.Sleep(3000);
+ App.Current.Dispatcher.BeginInvoke((Action)(() =>
+ {
+ InitEveryDayMethod();
+ }));
+ }
+ });
}
@@ -70,52 +82,50 @@ namespace Aucma.Core.BoxFoam.ViewModels
///
private Task InitEveryDayMethod()
{
- App.Current.Dispatcher.BeginInvoke((Action)(() =>
+ ProductionHourList = new List();
+ List listTime = _baseBomInfoServices.getWorkTime().Result;
+ foreach (WorkTime time in listTime)
{
-
- ModelStatistics.Clear();
-
- ProductionHourList = new List();
- List listTime = _baseBomInfoServices.getWorkTime().Result;
- ProductionHourList.Clear();
- foreach (WorkTime time in listTime)
- {
- ProductionHourList.Add(time.hourTime);
- }
- // 货道列表
- List list = _boxFoamDataServices.QueryAsync(x => x.ProductLineCode.Equals("CX_02") && x.StationCode == "1005").Result;
+ ProductionHourList.Add(time.hourTime);
+ }
+ // 货道列表
+ List list = _boxFoamDataServices.QueryAsync(x=>x.ProductLineCode.Equals("CX_02") && x.StationCode=="1005").Result;
+ if(list != null)
+ {
ChartValues achievement = new ChartValues();
-
+ //Achievement.Clear();
#region 按时间统计
- achievement.Add(list.Sum(x => x.AnHour));
- achievement.Add(list.Sum(x => x.TwoHour));
- achievement.Add(list.Sum(x => x.ThreeHour));
- achievement.Add(list.Sum(x => x.FourHour));
- achievement.Add(list.Sum(x => x.FiveHour));
- achievement.Add(list.Sum(x => x.SixHour));
- achievement.Add(list.Sum(x => x.SevenHour));
- achievement.Add(list.Sum(x => x.EightHour));
- achievement.Add(list.Sum(x => x.NineHour));
- achievement.Add(list.Sum(x => x.TenHour));
- achievement.Add(list.Sum(x => x.ElevenHour));
- achievement.Add(list.Sum(x => x.TwelveHour));
+ if(list.Count > 0) {
+ achievement.Add(list.Sum(x => x.AnHour));
+ achievement.Add(list.Sum(x => x.TwoHour));
+ achievement.Add(list.Sum(x => x.ThreeHour));
+ achievement.Add(list.Sum(x => x.FourHour));
+ achievement.Add(list.Sum(x => x.FiveHour));
+ achievement.Add(list.Sum(x => x.SixHour));
+ achievement.Add(list.Sum(x => x.SevenHour));
+ achievement.Add(list.Sum(x => x.EightHour));
+ achievement.Add(list.Sum(x => x.NineHour));
+ achievement.Add(list.Sum(x => x.TenHour));
+ achievement.Add(list.Sum(x => x.ElevenHour));
+ achievement.Add(list.Sum(x => x.TwelveHour));
+ }
+
var column = new ColumnSeries();
column.DataLabels = true;
column.Title = "当日小时产量统计";
column.Values = achievement;
column.Foreground = Brushes.White;
- Achievement.Clear();
Achievement.Add(column);
-
#endregion
-
-
#region 按类型统计
MaterialNameList = new List();
ChartValues achievement2 = new ChartValues();
- MaterialNameList.Clear();
+ //foreach(BoxFoamData space in list)
+ //{
+ // MaterialNameList.Add(space.Fixtureboxtype);
+ //}
var grouped = list.GroupBy(x => x.Fixtureboxtype);
foreach (var item in grouped)
{
@@ -124,20 +134,18 @@ namespace Aucma.Core.BoxFoam.ViewModels
MaterialNameList.Add(item.Key);
achievement2.Add(flattenedList.Sum());
}
+ ModelStatistics.Clear();
var column2 = new ColumnSeries();
column2.DataLabels = true;
column2.Title = "当日型号产量统计";
column2.Values = achievement2;
column2.Foreground = Brushes.White;
- ModelStatistics.Clear();
ModelStatistics.Add(column2);
#endregion
+ }
- }));
-
-
//await InitExecMethod();
return Task.CompletedTask;
}
@@ -332,144 +340,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
}
#endregion
- Semaphore semaphore = new Semaphore(1, 1);
- ///
- /// 将采集到的数据保存
- ///
- ///
- public async void RealTimeFoamingTask(object? sender, ElapsedEventArgs e)
- {
- semaphore.WaitOne();
- //刷新统计图表
- InitEveryDayMethod();
- try
- {
- string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
-
- DateTime now = DateTime.Now;
- CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync(d => d.StartTime <= now && d.EndTime >= now);
-
- if (currentTeamTime!=null)
- {
- //比较计划更新数据
- ExecHourDataAsync(productLineCode);
- }
- else
- {
- // 白夜班切换
- ShiftChangeAsync(productLineCode);
- }
-
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- finally
- {
- semaphore.Release();
- }
- }
-
- public async void ExecHourDataAsync(string productLineCode)
- {
- List bLis = CollectionFoamLine.listFixtureStatus;
- if (bLis.Count == 0) return;
- List planList = await _boxFoamPlanServices.QueryAsync();
- List bfds = await _boxFoamDataRealTimeServices.QueryAsync();
- for (int j = 0; j < bLis.Count; j++)
- {
- try
- {
- if (string.IsNullOrEmpty(bLis[j].FixtureBoxType)) continue;
- BoxFoamPlan plan = planList.FirstOrDefault(d => d.MaterialCode == bLis[j].FixtureBoxType && d.PlanAmount > d.CompleteAmount);
- if (plan != null)
- {
- int complateAmount = 0;
- BoxFoamDataRealTime bfd = bfds.SingleOrDefault(d => d.FixtureBoxtype == bLis[j].FixtureBoxType && d.SerialNumber == bLis[j].ObjId);
- if (bfd != null)
- {
- //更新计划数量
- complateAmount = bLis[j].Yield - bfd.FixtureProductioncapacity;
- UpdateClampData(bLis[j], bfd);
- }
- else
- {
- FixtureStatus fixtureStatus = bLis[j];
- SaveClampData(productLineCode, fixtureStatus);
- }
- plan.CompleteAmount = plan.CompleteAmount + complateAmount;
- if (complateAmount>0)
- {
- //保存历史记录
- BoxFoamDataRealTimeHistory history = new BoxFoamDataRealTimeHistory();
-
- history.PlantCode = bfd.PlantCode;
- history.ProductlineCode = bfd.ProductlineCode;
- history.ProcessCode = bfd.ProcessCode;
- history.StationCode= bfd.StationCode;
- history.FixtureProductioncapacity = bLis[j].Yield;
- history.FixtureCuringtimesettingvalue = bLis[j].PlanCuringTime.ToString();
- history.FixtureActualtime = bLis[j].RealCuringTime.ToString();
- history.ModeInternaltemperature = bLis[j].InternalTemperature;
- history.ModeOutsidetemperature = bLis[j].InternalTemperature;
- history.UpdatedTime = DateTime.Now;
- //事务合并
- await _boxFoamDataRealTimeHistoryServices.AddAsync(history);
- await _boxFoamPlanServices.UpdateAsync(plan);
- }
- }
- else
- {
- //更新小时数据
- BoxFoamDataRealTime bfd = bfds.SingleOrDefault(d => d.FixtureBoxtype == bLis[j].FixtureBoxType && d.SerialNumber == bLis[j].ObjId);
- if (bfd != null)
- {
- UpdateClampData(bLis[j], bfd);
- }
- else
- {
- SaveClampData(productLineCode, bLis[j]);
- }
- }
- }
- catch { }
- }
- }
-
- private async void ShiftChangeAsync(string productLineCode)
- {
- try
- {
- //切换班组计划
- var currentTeamTimeList = await _sysUserInfoServices.GetTeamData();
- if (currentTeamTimeList.Count == 0) return;
- // 夹具
- var list = await _boxFoamDataRealTimeServices.QueryAsync(d => d.ProductlineCode == productLineCode);
- //更新计划表操作
-
-
- CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync();
-
-
- // 更新当班时间
- currentTeamTime.TeamName = currentTeamTimeList.First().TeamName;
- currentTeamTime.StartTime = currentTeamTimeList.Min(d => d.StartTime);
- currentTeamTime.EndTime = currentTeamTimeList.Max(d => d.EndTime);
- bool result = await _currentTeamTimeServices.UpdateAsync(currentTeamTime);
-
- if (result)
- {
- //清空 当班计划
- // var realTimeList = await _boxFoamDataRealTimeHistoryServices.QueryAsync(d => d.ProductlineCode == productLineCode);
-
- var plan = await _boxFoamPlanServices.QueryAsync(d => d.ProductLineCode == productLineCode);
- await _boxFoamPlanServices.DeletesAsync(plan);
- }
- }
- catch { }
- }
#region 更新夹具型号
@@ -528,5 +399,144 @@ namespace Aucma.Core.BoxFoam.ViewModels
}
#endregion
+ #region 原逻辑 Delete By wenjy 2024-01-09 14:38:00
+ //Semaphore semaphore = new Semaphore(1, 1);
+ /////
+ ///// 将采集到的数据保存
+ /////
+ /////
+
+ //public async void RealTimeFoamingTask(object? sender, ElapsedEventArgs e)
+ //{
+ // semaphore.WaitOne();
+
+ // try
+ // {
+ // string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
+
+ // DateTime now = DateTime.Now;
+ // CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync(d => d.StartTime <= now && d.EndTime >= now);
+
+ // if (currentTeamTime!=null)
+ // {
+ // //比较计划更新数据
+ // ExecHourDataAsync(productLineCode);
+ // }
+ // else
+ // {
+ // // 白夜班切换
+ // ShiftChangeAsync(productLineCode);
+ // }
+
+ // }
+ // catch (Exception ex)
+ // {
+ // Console.WriteLine(ex.Message);
+ // }
+ // finally
+ // {
+ // semaphore.Release();
+ // }
+ //}
+
+ //public async void ExecHourDataAsync(string productLineCode)
+ //{
+ // List bLis = CollectionFoamLine.listFixtureStatus;
+ // if (bLis.Count == 0) return;
+ // List planList = await _boxFoamPlanServices.QueryAsync();
+ // List bfds = await _boxFoamDataRealTimeServices.QueryAsync();
+ // for (int j = 0; j < bLis.Count; j++)
+ // {
+ // try
+ // {
+ // if (string.IsNullOrEmpty(bLis[j].FixtureBoxType)) continue;
+ // BoxFoamPlan plan = planList.FirstOrDefault(d => d.MaterialCode == bLis[j].FixtureBoxType && d.PlanAmount > d.CompleteAmount);
+ // if (plan != null)
+ // {
+ // int complateAmount = 0;
+ // BoxFoamDataRealTime bfd = bfds.SingleOrDefault(d => d.FixtureBoxtype == bLis[j].FixtureBoxType && d.SerialNumber == bLis[j].ObjId);
+ // if (bfd != null)
+ // {
+ // //更新计划数量
+ // complateAmount = bLis[j].Yield - bfd.FixtureProductioncapacity;
+ // UpdateClampData(bLis[j], bfd);
+ // }
+ // else
+ // {
+ // FixtureStatus fixtureStatus = bLis[j];
+ // SaveClampData(productLineCode, fixtureStatus);
+ // }
+ // plan.CompleteAmount = plan.CompleteAmount + complateAmount;
+ // if (complateAmount>0)
+ // {
+ // //保存历史记录
+ // BoxFoamDataRealTimeHistory history = new BoxFoamDataRealTimeHistory();
+
+ // history.PlantCode = bfd.PlantCode;
+ // history.ProductlineCode = bfd.ProductlineCode;
+ // history.ProcessCode = bfd.ProcessCode;
+ // history.StationCode= bfd.StationCode;
+ // history.FixtureProductioncapacity = bLis[j].Yield;
+ // history.FixtureCuringtimesettingvalue = bLis[j].PlanCuringTime.ToString();
+ // history.FixtureActualtime = bLis[j].RealCuringTime.ToString();
+ // history.ModeInternaltemperature = bLis[j].InternalTemperature;
+ // history.ModeOutsidetemperature = bLis[j].InternalTemperature;
+ // history.UpdatedTime = DateTime.Now;
+ // //事务合并
+ // await _boxFoamDataRealTimeHistoryServices.AddAsync(history);
+ // await _boxFoamPlanServices.UpdateAsync(plan);
+ // }
+ // }
+ // else
+ // {
+ // //更新小时数据
+ // BoxFoamDataRealTime bfd = bfds.SingleOrDefault(d => d.FixtureBoxtype == bLis[j].FixtureBoxType && d.SerialNumber == bLis[j].ObjId);
+ // if (bfd != null)
+ // {
+ // UpdateClampData(bLis[j], bfd);
+ // }
+ // else
+ // {
+ // SaveClampData(productLineCode, bLis[j]);
+ // }
+ // }
+ // }
+ // catch { }
+ // }
+ //}
+
+ //private async void ShiftChangeAsync(string productLineCode)
+ //{
+ // try
+ // {
+ // //切换班组计划
+ // var currentTeamTimeList = await _sysUserInfoServices.GetTeamData();
+ // if (currentTeamTimeList.Count == 0) return;
+ // // 夹具
+ // var list = await _boxFoamDataRealTimeServices.QueryAsync(d => d.ProductlineCode == productLineCode);
+ // //更新计划表操作
+
+
+ // CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync();
+
+
+ // // 更新当班时间
+ // currentTeamTime.TeamName = currentTeamTimeList.First().TeamName;
+ // currentTeamTime.StartTime = currentTeamTimeList.Min(d => d.StartTime);
+ // currentTeamTime.EndTime = currentTeamTimeList.Max(d => d.EndTime);
+ // bool result = await _currentTeamTimeServices.UpdateAsync(currentTeamTime);
+
+ // if (result)
+ // {
+ // //清空 当班计划
+ // // var realTimeList = await _boxFoamDataRealTimeHistoryServices.QueryAsync(d => d.ProductlineCode == productLineCode);
+
+ // var plan = await _boxFoamPlanServices.QueryAsync(d => d.ProductLineCode == productLineCode);
+ // await _boxFoamPlanServices.DeletesAsync(plan);
+ // }
+ // }
+ // catch { }
+ //}
+ #endregion
}
}