From 1a9c163247ca9659aabea5d920bf0b1a51ff5ba7 Mon Sep 17 00:00:00 2001 From: "liulb@mesnac.com" Date: Tue, 9 Jan 2024 09:36:45 +0800 Subject: [PATCH] change --- Admin.Core.Api/Admin.Core.Model.xml | 5 + ....GeneratedMSBuildEditorConfig.editorconfig | 4 +- .../Debug/net6.0/Admin.Core.Api.assets.cache | Bin 56 -> 140916 bytes Admin.Core.Common/Admin.Core.Common.csproj | 6 - ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../ViewModels/ProductLineInfoView.cs | 1 + .../ViewModels/SheetMetaHourDataView.cs | 5 + ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- Admin.Core.Repository/BASE/BaseRepository.cs | 9 +- .../Repository_New/SysUserInfoRepository.cs | 60 ++-- .../Jobs/Job_TemperatureMeasurement_Quartz.cs | 7 +- .../Aucma.Core.Palletiz.csproj.user | 2 +- .../ViewModels/FoamPlanPageViewModel.cs | 4 +- .../ViewModels/MainWindowViewModel.cs | 1 + .../Views/FoamPlanPageView.xaml | 291 ------------------ .../Views/PalletizPageView.xaml.cs | 2 +- Aucma.Core.Palletiz/Views/PlanPageView.xaml | 89 ++++++ ...nPageView.xaml.cs => PlanPageView.xaml.cs} | 8 +- .../Business/SheetMetalPlanTaskHandle.cs | 48 ++- .../ViewModels/IndexPageViewModel.cs | 207 ++++++------- .../ViewModels/QuantityIssuedViewModel.cs | 9 +- .../ViewModels/StatisticsPageViewModel.cs | 46 ++- .../Views/IndexPageView.xaml | 2 +- .../bin/Debug/net6.0-windows/HwControlLib.dll | Bin 21504 -> 21504 bytes .../bin/Debug/net6.0-windows/HwControlLib.pdb | Bin 17840 -> 17860 bytes .../GeneratedInternalTypeHelper.g.i.cs | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../net6.0-windows/HwControlLib.assets.cache | Bin 152 -> 152 bytes 28 files changed, 321 insertions(+), 493 deletions(-) delete mode 100644 Aucma.Core.Palletiz/Views/FoamPlanPageView.xaml create mode 100644 Aucma.Core.Palletiz/Views/PlanPageView.xaml rename Aucma.Core.Palletiz/Views/{FoamPlanPageView.xaml.cs => PlanPageView.xaml.cs} (74%) diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml index aa3ad44b..fea222fd 100644 --- a/Admin.Core.Api/Admin.Core.Model.xml +++ b/Admin.Core.Api/Admin.Core.Model.xml @@ -5036,6 +5036,11 @@ 工位 + + + 排序 + + 小时 diff --git a/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.GeneratedMSBuildEditorConfig.editorconfig index d1d06cea..601c80d9 100644 --- a/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.GeneratedMSBuildEditorConfig.editorconfig @@ -9,9 +9,9 @@ build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.Api build_property.RootNamespace = Admin.Core.Api -build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.Api\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Api\ build_property.RazorLangVersion = 6.0 build_property.SupportLocalizedComponentNames = build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = E:\桌面\AUCMA_SCADA\Admin.Core.Api +build_property.MSBuildProjectDirectory = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Api build_property._RazorSourceGeneratorDebug = diff --git a/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.assets.cache b/Admin.Core.Api/obj/Debug/net6.0/Admin.Core.Api.assets.cache index 49f1a9f2a16243ec53dc4768f820a9d0f0ad8241..d57995efc7954aaf5f62c45db37abc2783259951 100644 GIT binary patch literal 140916 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 - - - ..\dll\Oracle.ManagedDataAccess.dll - - - True diff --git a/Admin.Core.FrameWork/obj/Debug/netcoreapp3.1/Admin.Core.FrameWork.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.FrameWork/obj/Debug/netcoreapp3.1/Admin.Core.FrameWork.GeneratedMSBuildEditorConfig.editorconfig index 5decb385..34f11e1e 100644 --- a/Admin.Core.FrameWork/obj/Debug/netcoreapp3.1/Admin.Core.FrameWork.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.FrameWork/obj/Debug/netcoreapp3.1/Admin.Core.FrameWork.GeneratedMSBuildEditorConfig.editorconfig @@ -1,3 +1,3 @@ is_global = true build_property.RootNamespace = Admin.Core.FrameWork -build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.FrameWork\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.FrameWork\ diff --git a/Admin.Core.Model/ViewModels/ProductLineInfoView.cs b/Admin.Core.Model/ViewModels/ProductLineInfoView.cs index 770a44af..25d89cea 100644 --- a/Admin.Core.Model/ViewModels/ProductLineInfoView.cs +++ b/Admin.Core.Model/ViewModels/ProductLineInfoView.cs @@ -12,6 +12,7 @@ namespace Admin.Core.Model.ViewModels /// /// 公司 /// + [SugarColumn(ColumnName = "PLANT_CODE")] public string PlantCode { get; set; } /// diff --git a/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs b/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs index 815a8288..43a201bc 100644 --- a/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs +++ b/Admin.Core.Model/ViewModels/SheetMetaHourDataView.cs @@ -9,6 +9,11 @@ namespace Admin.Core.Model.ViewModels { public class SheetMetaHourDataView { + /// + /// 排序 + /// + [SugarColumn(ColumnName = "SEQ")] + public int Seq { get; set; } /// /// 小时 /// diff --git a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig index abc27d01..ce84cb9f 100644 --- a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.RealTimeService -build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.RealTimeService\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.RealTimeService\ diff --git a/Admin.Core.Repository/BASE/BaseRepository.cs b/Admin.Core.Repository/BASE/BaseRepository.cs index bd14d2ed..e2933f8b 100644 --- a/Admin.Core.Repository/BASE/BaseRepository.cs +++ b/Admin.Core.Repository/BASE/BaseRepository.cs @@ -36,14 +36,7 @@ namespace Admin.Core.Repository } } - //输入最终SQL语句... - //_db.Aop.OnLogExecuting = (sql, pars) => - //{ - // //var s1 = sql;//断点打在这里看内部生成的sql语句... - // Console.Write(sql); - //}; - - + return _dbBase; } } diff --git a/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs b/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs index fef83246..5573cf39 100644 --- a/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs +++ b/Admin.Core.Repository/Repository_New/SysUserInfoRepository.cs @@ -25,7 +25,7 @@ namespace Admin.Core.Repository FROM BASE_PRODUCTLINE BP LEFT JOIN BASE_PROCESS_STATION BPS ON BPS.PARENT_ID LIKE '%' || BP.PRODUCT_LINE_CODE || '%' WHERE BP.PRODUCT_LINE_CODE = '{code}'"; - return await Db.Ado.SqlQueryAsync(sql); + return await Db.CopyNew().Ado.SqlQueryAsync(sql); } #region 获取班组数据 @@ -38,7 +38,7 @@ namespace Admin.Core.Repository { if (GetConnectionState() == false) return null; string sql = "SELECT * FROM VIEW_CURRENT_TEAM_TIME"; - return await Db.Ado.SqlQueryAsync(sql); + return await Db.CopyNew().Ado.SqlQueryAsync(sql); } #endregion @@ -54,7 +54,7 @@ namespace Admin.Core.Repository if (GetConnectionState() == false) return null; string sql =@$"SELECT BP.PLANT_CODE PLANT_CODE, BP.PARENT_ID PRODUCT_LINE_CODE, BPS.PROCESS_CODE, BP.PRODUCT_LINE_CODE STATION_CODE FROM BASE_PRODUCTLINE BP LEFT JOIN BASE_PROCESS_STATION BPS ON BPS.PARENT_ID LIKE '%' || BP.PRODUCT_LINE_CODE || '%' WHERE BP.PRODUCT_LINE_CODE = '{productLineCode}'"; - return await Db.Ado.SqlQueryAsync(sql); + return await Db.CopyNew().Ado.SqlQueryAsync(sql); } #endregion @@ -85,32 +85,48 @@ namespace Admin.Core.Repository AND SPC.BEGIN_TIME <= CTT.END_TIME and SPC.PRODUCTLINE_CODE='{productLineCode}' GROUP BY ML.MATERIAL_SPECIFICATIONS,SPC.PRODUCTLINE_CODE"; - return await Db.Ado.SqlQueryAsync(sql); + return await Db.CopyNew().Ado.SqlQueryAsync(sql); } #endregion + + #region 小时统计 + /// + /// 小时统计 + /// + /// 工位 + /// public async Task> GetSheetMetaHourData(string productLineCode) { - - string sql = @$"SELECT CTT.HOUR_TIME, - SUM(CASE - WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT - WHEN SPC.PLAN_TYPE = 2 THEN SPC.COMPLETE_AMOUNT - ELSE 0 END) FRONTPLATE_AMOUNT, - SUM(CASE - WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT - WHEN SPC.PLAN_TYPE = 3 THEN SPC.COMPLETE_AMOUNT - ELSE 0 END) REARPANEL_AMOUNT - FROM VIEW_CURRENT_TEAM_TIME CTT - LEFT JOIN (select * from VIEW_EXECUTE_PLANINFO where PRODUCTLINE_CODE='{productLineCode}') SPC - ON SPC.BEGIN_TIME >= CTT.START_TIME AND SPC.BEGIN_TIME < CTT.END_TIME - - GROUP BY CTT.HOUR_TIME - ORDER BY CTT.HOUR_TIME"; - if (GetConnectionState() == false) return null; - return await Db.Ado.SqlQueryAsync(sql); + + //string sql = @$"SELECT CTT.HOUR_TIME, + // SUM(CASE + // WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT + // WHEN SPC.PLAN_TYPE = 2 THEN SPC.COMPLETE_AMOUNT + // ELSE 0 END) FRONTPLATE_AMOUNT, + // SUM(CASE + // WHEN SPC.PLAN_TYPE = 1 THEN SPC.COMPLETE_AMOUNT + // WHEN SPC.PLAN_TYPE = 3 THEN SPC.COMPLETE_AMOUNT + // ELSE 0 END) REARPANEL_AMOUNT + // FROM VIEW_CURRENT_TEAM_TIME CTT + // LEFT JOIN (select * from VIEW_EXECUTE_PLANINFO where PRODUCTLINE_CODE='{productLineCode}') SPC + // ON SPC.BEGIN_TIME >= CTT.START_TIME AND SPC.BEGIN_TIME < CTT.END_TIME + + // GROUP BY CTT.HOUR_TIME + // ORDER BY CTT.HOUR_TIME"; + + string sql = $@"SELECT CTT.SEQ,CTT.HOUR_TIME,COUNT(SPC.PLAN_CODE) as FRONTPLATE_AMOUNT,COUNT(BACK.PLAN_CODE) as REARPANEL_AMOUNT + FROM VIEW_CURRENT_TEAM_TIME CTT + LEFT JOIN (select * from C##AUCMA_SCADA.EXECUTE_PLANINFO v inner join C##AUCMA_SCADA.RECORD_SIDEPANEL_COMPLATE c + on v.TASK_CODE=c.PLAN_CODE where v.PRODUCTLINE_CODE='{productLineCode}' AND c.COMPLETE_AMOUNT!=0) SPC ON SPC.RECORD_TIME >= CTT.START_TIME AND SPC.RECORD_TIME < CTT.END_TIME + LEFT JOIN (select * from C##AUCMA_SCADA.EXECUTE_PLANINFO v inner join C##AUCMA_SCADA.RECORD_BACKPANEL_COMPLATE c + on v.TASK_CODE=c.PLAN_CODE where v.PRODUCTLINE_CODE='{productLineCode}' AND c.COMPLETE_AMOUNT!=0) BACK ON BACK.RECORD_TIME >= CTT.START_TIME AND BACK.RECORD_TIME < CTT.END_TIME + group by CTT.SEQ,CTT.HOUR_TIME ORDER BY CTT.SEQ asc"; + + return await Db.CopyNew().Ado.SqlQueryAsync(sql); } + #endregion } } \ No newline at end of file diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_TemperatureMeasurement_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_TemperatureMeasurement_Quartz.cs index a90c0339..2b7c93d2 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_TemperatureMeasurement_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_TemperatureMeasurement_Quartz.cs @@ -59,8 +59,9 @@ namespace Admin.Core.Tasks { var list = await _temperatureHistoryServices.QueryAsync(d => d.flag == 0); - if (list == null) return; Console.WriteLine(list.Count()); + if (list.Count == 0) return; + List< BoxTemperatureMeasurementHistory > historyList = new List(); foreach (var item in list) { @@ -104,8 +105,8 @@ namespace Admin.Core.Tasks var result = await _boxTMHistoryServices.AddAsync(historyList); if (result > 0) { - list.ForEach(x => x.flag = 1); if (list == null) return; + list.ForEach(x => x.flag = 1); await _temperatureHistoryServices.UpdateAsync(list); Console.WriteLine("保存测温系统成功"); @@ -113,7 +114,7 @@ namespace Admin.Core.Tasks } catch (Exception ex) { - logHelper.Error($"数据处理异常:{ex.Message}"); + logHelper.Error($"测温数据处理异常:{ex.Message}"); } } diff --git a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user index 53c99481..43c13b1d 100644 --- a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user +++ b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user @@ -7,7 +7,7 @@ - + Designer diff --git a/Aucma.Core.Palletiz/ViewModels/FoamPlanPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/FoamPlanPageViewModel.cs index 014a4eab..885007aa 100644 --- a/Aucma.Core.Palletiz/ViewModels/FoamPlanPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/FoamPlanPageViewModel.cs @@ -19,10 +19,10 @@ namespace Aucma.Core.Palletiz.ViewModels * 发泡计划 * * */ - public partial class FoamPlanPageViewModel : ObservableObject + public partial class PlanPageViewModel : ObservableObject { protected readonly IBoxFoamPlanServices? _boxFoamPlanServices; - public FoamPlanPageViewModel() + public PlanPageViewModel() { _boxFoamPlanServices = App.ServiceProvider.GetService(); WeakReferenceMessenger.Default.Register(this, Recive); diff --git a/Aucma.Core.Palletiz/ViewModels/MainWindowViewModel.cs b/Aucma.Core.Palletiz/ViewModels/MainWindowViewModel.cs index 1b73fede..10d4d689 100644 --- a/Aucma.Core.Palletiz/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/MainWindowViewModel.cs @@ -96,6 +96,7 @@ namespace Aucma.Core.Palletiz.ViewModels Scanner1State(flag1); } #endregion + #region 更换界面 public System.Windows.Controls.UserControl _content; diff --git a/Aucma.Core.Palletiz/Views/FoamPlanPageView.xaml b/Aucma.Core.Palletiz/Views/FoamPlanPageView.xaml deleted file mode 100644 index f527365e..00000000 --- a/Aucma.Core.Palletiz/Views/FoamPlanPageView.xaml +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - public class SheetMetalPlanTaskHandle { + #region 刷新创建计划 + /// + /// 刷新创建计划 + /// + public delegate Task RefreshCretaePlanInfo(); + public static event RefreshCretaePlanInfo RefreshCretaePlanInfoEvent; + #endregion + + #region 刷新图标 + /// + /// 刷新创建计划 + /// + public delegate Task RefreshChat(); + public static event RefreshChat RefreshChatEvent; + #endregion + #region 刷新当前正在执行的计划 /// /// 刷新当前正在执行的计划 @@ -65,9 +81,8 @@ public class SheetMetalPlanTaskHandle while (true) { - var planInfos = _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals("1001") && d.ExecuteStatus == 1).Result; - var planInfoss = _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals("1001")).Result; - Console.WriteLine(planInfoss.Count()); + var planInfos = _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals("1001") && d.ExecuteStatus == 1||d.ExecuteStatus==2).Result; + if (planInfos != null) { if (planInfos.Count > 0) @@ -77,7 +92,7 @@ public class SheetMetalPlanTaskHandle if (planInfo.PlanType == 1) //联合下发 { SendPlanTask(planInfo, obj_sidePanel, obj_backPanel); - + UpdatePlanTaskByComplate(planInfo); } @@ -309,15 +324,21 @@ public class SheetMetalPlanTaskHandle Console.WriteLine($"{DateTime.Now.ToString("HH:m:s")}===>收到围板设备应答信号,复位应答地址"); RefreshExecInfoEvent?.Invoke("收到围板设备应答信号......"); isFlag = false; + + //更新计划状态为2执行中 + planInfo.ExecuteStatus = 2; + _executePlanInfoServices.UpdateExecutePlanInfo(planInfo); + //更新前端展示图表 + RefreshCurrentPlanInfoEvent?.Invoke(planInfo); + RefreshCretaePlanInfoEvent?.Invoke();//更新界面 + RefreshChatEvent?.Invoke();//刷新图表 } Thread.Sleep(2000); } while (isFlag); - //更新计划状态为2执行中 - planInfo.ExecuteStatus = 2; - _executePlanInfoServices.UpdateExecutePlanInfo(planInfo); - RefreshCurrentPlanInfoEvent?.Invoke(planInfo); #endregion + + //读取设备进度,完成后再次下发新任务 ReadDeviceComplate_SidePanel(obj_sidePanel); @@ -328,7 +349,7 @@ public class SheetMetalPlanTaskHandle { MessageBox.Show($"围板⽣产计划下发异常:{ex.Message}", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); - RefreshExecInfoEvent?.Invoke("产计划下发异常"); + RefreshExecInfoEvent?.Invoke("围板⽣产计划下发异常:{ex.Message}"); } } @@ -375,7 +396,7 @@ public class SheetMetalPlanTaskHandle RecordSidePanelComplate sidePanelComplate = new RecordSidePanelComplate() { ProductlineCode = "1001", - PlanCode = planCode.Substring(0, 16), + PlanCode = planCode.Substring(0, 16).Replace("\n","").Trim(),//.Substring(0, 16), //MaterialCode = string.IsNullOrEmpty(materialCode) ? "" : materialCode, MaterialCode = "BCD/310NF", CompleteAmount = complateAmount, @@ -401,7 +422,7 @@ public class SheetMetalPlanTaskHandle if (sidePanelComplates.Count > 0) { sidePanelComplates = sidePanelComplates.OrderByDescending(x => x.RecordTime).ToList(); - + lastComplateAmount = sidePanelComplates.First().CompleteAmount; sidePanelComplate.OutPutAmount = complateAmount - lastComplateAmount; sumComplateAmount = sidePanelComplates.Sum(x => x.OutPutAmount) + sidePanelComplate.OutPutAmount; @@ -426,6 +447,8 @@ public class SheetMetalPlanTaskHandle isFlag = false; Console.WriteLine($"围板计划执行完成,计划数量:{planInfo.PlanAmount};实际产量:{sumComplateAmount};差异值:{planInfo.PlanAmount - sumComplateAmount}"); RefreshExecInfoEvent?.Invoke($"围板计划执行完成,计划数量:{planInfo.PlanAmount};实际产量:{sumComplateAmount};差异值:{planInfo.PlanAmount - sumComplateAmount}"); + RefreshCretaePlanInfoEvent?.Invoke();//更新界面 + RefreshChatEvent?.Invoke();//刷新图表 } } } @@ -596,6 +619,9 @@ public class SheetMetalPlanTaskHandle isFlag = false; Console.WriteLine($"背板计划执行完成,计划数量:{planInfo.PlanAmount};实际产量:{sumComplateAmount};差异值:{planInfo.PlanAmount - sumComplateAmount}"); RefreshExecInfoEvent?.Invoke($"背板计划执行完成,计划数量:{planInfo.PlanAmount};实际产量:{sumComplateAmount};差异值:{planInfo.PlanAmount - sumComplateAmount}"); + RefreshCretaePlanInfoEvent?.Invoke();//更新界面 + RefreshChatEvent?.Invoke();//刷新图表 + } } } diff --git a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs index 5f8fcb6b..7edf6456 100644 --- a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs @@ -18,10 +18,9 @@ using System.Windows.Media; using Admin.Core.Common; using LiveCharts.Defaults; using Aucma.Core.SheetMetal.Business; -using Admin.Core.Service; -using NPOI.SS.Formula.Functions; using Admin.Core.Model.ViewModels; -using StackExchange.Profiling.Internal; +using NPOI.SS.Formula.Functions; +using log4net; /* * 首页信息 */ @@ -29,6 +28,7 @@ namespace Aucma.Core.SheetMetal.ViewModels { public partial class IndexPageViewModel : ObservableObject { + private static readonly log4net.ILog log = LogManager.GetLogger(typeof(LogPageViewModel)); protected readonly IExecutePlanInfoServices? _taskExecutionPlanInfoServices; protected readonly IRecordBackPanelComplateServices _recordBackPanelComplateServices; protected readonly IRecordSidePanelComplateServices _recordSidePanelComplateServices; @@ -58,73 +58,24 @@ namespace Aucma.Core.SheetMetal.ViewModels _baseBomInfoServices = App.ServiceProvider.GetService(); _sysUserInfoServices = App.ServiceProvider.GetService(); _recordInstoreServices = App.ServiceProvider.GetService(); - //Job_SheetMetalTask_Quartz.SmEverDayDelegateEvent += InitEveryDayMethod; - //Job_SheetMetalTask_Quartz.SmTaskDelegateEvent += UpdatePlanSHow;//计划内容展示 - //WeakReferenceMessenger.Default.Register(this, Recive); Task.WaitAll(LoadData()); AddSelectData();//添加下拉菜单 - RefreshHourAmount();//小时产量 - // InitEveryDayMethod(); + RefreshHourAmount();//小时产量 RefreshMaterialStats();//型号产量 SheetMetalPlanTaskHandle.RefreshCurrentPlanInfoEvent += RefreshCurrentPlanInfo; QuantityIssuedViewModel.RefreshCretaePlanInfoEvent += LoadData; - - //Task.Run(() => - //{ - // Get123(); - //}); - //Task.Run(() => - //{ - - // Get1234(); - //}); - //Task.Run(() => - //{ - - // Get1235(); - //}); - //Task.Run(() => - //{ - - // Get123(); - //}); + SheetMetalPlanTaskHandle.RefreshCretaePlanInfoEvent += LoadData; + SheetMetalPlanTaskHandle.RefreshChatEvent += RefreshChat; } #endregion - public Task Get123() + public Task RefreshChat() { - while (true) - { - var list = _taskExecutionPlanInfoServices.QueryAsync(); - Console.WriteLine(list.ToJson()); - } - } - public Task Get1234() - { - while (true) - { - var list = _taskExecutionPlanInfoServices.QueryAsync(); - Console.WriteLine(list.ToJson()); - } - } - - public Task Get12345() - { - while (true) - { - var list = _taskExecutionPlanInfoServices.QueryAsync(); - Console.WriteLine(list.ToJson()); - } + RefreshHourAmount();//小时产量 + RefreshMaterialStats();//型号产量 + return Task.CompletedTask; } - public Task Get1235() - { - while (true) - { - var list = _taskExecutionPlanInfoServices.QueryAsync(); - Console.WriteLine(list.ToJson()); - } - } #region 下拉 public void AddSelectData() { @@ -149,7 +100,10 @@ namespace Aucma.Core.SheetMetal.ViewModels RealQuantity = info.CompleteAmount; DiffQuantity = Math.Abs(info.CompleteAmount - info.PlanAmount); - CompletionRate = info.CompleteAmount / info.PlanAmount; + + + //CompletionRate = (_realQuantity / _planMaxNum).ToString("0%"); + CompletionRate = (_realQuantity / _planMaxNum); } #endregion @@ -252,63 +206,75 @@ namespace Aucma.Core.SheetMetal.ViewModels #region 加载DataGrid数据 private Task LoadData() { - string stationCode = Appsettings.app("StationInfo", "StationCode"); - CurrentTeamTimeView view = GetTeamHour(); - - var list = _taskExecutionPlanInfoServices.QueryAsync(x => x.ProductLineCode == stationCode&& x.CreatedTime> view.StartTime && x.CreatedTime d.ExecuteOrder); - int i = 1; - string planType = string.Empty; - PlanInfoDataGrid.Clear(); - foreach (var item in execList) + try { - TaskExecModel task = new TaskExecModel(); - task.No = i; - task.ID = item.ObjId.ToString(); - task.OrderCode = item.OrderCode; - task.MaterialCode = item.MaterialCode; - task.MaterialName = item.MaterialName; - task.TaskAmount = item.PlanAmount; - task.CompleteAmount = item.CompleteAmount; - task.BeginTime = item.BeginTime; - task.IsExec = item.ExecuteStatus;//执行状态 - if (item.PlanType == 1) - { - planType = "前后板联动"; - } - if (item.PlanType == 2) - { - planType = "前板计划"; - } - if (item.PlanType == 3) + string stationCode = Appsettings.app("StationInfo", "StationCode"); + CurrentTeamTimeView view = GetTeamHour(); + + var list = _taskExecutionPlanInfoServices.QueryAsync(x => x.ProductLineCode == stationCode && x.BeginTime > view.StartTime || x.ExecuteStatus == 2).Result; + if (list == null) return Task.CompletedTask; + + var execList = list.OrderByDescending(d => d.ExecuteOrder); + int i = 1; + string planType = string.Empty; + System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => { - planType = "后板计划"; - } - task.PlanType = planType; - task.TaskCode = item.TaskCode; - task.ExecuteStatus = item.ExecuteStatus;//执行状态 + PlanInfoDataGrid.Clear(); + foreach (var item in execList) + { + TaskExecModel task = new TaskExecModel(); + task.No = i; + task.ID = item.ObjId.ToString(); + task.OrderCode = item.OrderCode; + task.MaterialCode = item.MaterialCode; + task.MaterialName = item.MaterialName; + task.TaskAmount = item.PlanAmount; + task.CompleteAmount = item.CompleteAmount; + task.BeginTime = item.BeginTime; + task.IsExec = item.ExecuteStatus;//执行状态 + if (item.PlanType == 1) + { + planType = "前后板联动"; + } + if (item.PlanType == 2) + { + planType = "前板计划"; + } + if (item.PlanType == 3) + { + planType = "后板计划"; + } + task.PlanType = planType; + task.TaskCode = item.TaskCode; + task.ExecuteStatus = item.ExecuteStatus;//执行状态 + + PlanInfoDataGrid.Add(task); + i++; + } - PlanInfoDataGrid.Add(task); - i++; + //更新首页显示信息 + ExecutePlanInfo execPlan = execList.SingleOrDefault(d => d.ExecuteStatus == 2); + if (execPlan != null) + { + OrderCode = execPlan.OrderCode; + MesMOrderCode = execPlan.ProductPlanCode; + ProductModel = execPlan.MaterialName; + BeginTime = execPlan.BeginTime.ToString(); + + PlanMaxNum = _planNum = execPlan.PlanAmount; + RealQuantity = execPlan.CompleteAmount; + double diff = _planMaxNum - _realQuantity; + DiffQuantity =int.Parse(diff.ToString()); + + //CompletionRate = (_realQuantity/_planMaxNum).ToString("0%"); + CompletionRate = (_realQuantity / _planMaxNum); + } + })); } - - //更新首页显示信息 - ExecutePlanInfo execPlan = execList.SingleOrDefault(d => d.ExecuteStatus == 2); - if (execPlan != null) + catch (Exception ex) { - _orderCode = execPlan.OrderCode; - _mesMOrderCode = execPlan.ProductPlanCode; - _productModel = execPlan.MaterialName; - _beginTime = execPlan.BeginTime.ToString(); - - _planMaxNum = _planNum = execPlan.PlanAmount; - _realQuantity = execPlan.CompleteAmount; - _diffQuantity = _planMaxNum - _realQuantity; - _completionRate = _realQuantity / _planMaxNum; + log.Error("钣金首页数据加载:"+ex.Message); } - return Task.CompletedTask; } #endregion @@ -500,8 +466,8 @@ namespace Aucma.Core.SheetMetal.ViewModels /// /// 计划最大值 /// - private int _planMaxNum; - public int PlanMaxNum + private double _planMaxNum; + public double PlanMaxNum { get => _planMaxNum; set => SetProperty(ref _planMaxNum, value); @@ -509,8 +475,8 @@ namespace Aucma.Core.SheetMetal.ViewModels #endregion #region 实际数量 - private int _realQuantity; - public int RealQuantity + private double _realQuantity; + public double RealQuantity { get => _realQuantity; set => SetProperty(ref _realQuantity, value); @@ -720,7 +686,6 @@ namespace Aucma.Core.SheetMetal.ViewModels } #endregion - #region 刷新小时产量统计 /// /// 刷新小时产量统计 @@ -734,8 +699,8 @@ namespace Aucma.Core.SheetMetal.ViewModels var hourAmount = _sysUserInfoServices.GetSheetMetaHourData(stationCode).Result; if (hourAmount != null) { - Achievement.Clear(); - + if (Achievement.Count != 0) Achievement.Clear(); + ProductionHourList = new List(); ChartValues hourAchievement1 = new ChartValues(); ChartValues hourAchievement2 = new ChartValues(); @@ -794,8 +759,12 @@ namespace Aucma.Core.SheetMetal.ViewModels #region 按类型统计 ChartValues achievement1 = new ChartValues(); ChartValues achievement2 = new ChartValues(); + if (ModelStatistics.Count != 0) + { + ModelStatistics.Clear(); + } - MaterialNameList = new List(); + MaterialNameList = new List(); foreach (var item in sheetMetalTypeList) { achievement1.Add(Convert.ToInt32(item.FrontPlateAmount)); diff --git a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs index 9d9bfad8..fb13aae0 100644 --- a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs @@ -35,6 +35,7 @@ namespace Aucma.Core.SheetMetal.ViewModels private IBaseBomInfoServices _bomInfoServices; private IBaseSpaceDetailServices _spaceDetailServices; protected readonly IExecutePlanInfoServices? _executePlanInfoServices; + protected readonly IProductPlanInfoServices? _productPlanInfoServices; #region 构造函数 public QuantityIssuedViewModel(ProductPlanInfoModel productPlanInfo) @@ -42,7 +43,8 @@ namespace Aucma.Core.SheetMetal.ViewModels _bomInfoServices = App.ServiceProvider.GetService(); _spaceDetailServices = App.ServiceProvider.GetService(); _executePlanInfoServices = App.ServiceProvider.GetService(); - + _productPlanInfoServices = App.ServiceProvider.GetService(); + PlanInfo = productPlanInfo; } #endregion @@ -92,7 +94,7 @@ namespace Aucma.Core.SheetMetal.ViewModels task.OrderCode = PlanInfo.OrderCode; task.ProductLineCode = stationCode;//计划工位 //task.TaskCode = GetMaxCodeAsync(); - task.TaskCode = System.Guid.NewGuid().ToString("N").Substring(0,16); + task.TaskCode = System.Guid.NewGuid().ToString("N").Substring(0,16); task.MaterialCode = PlanInfo.MaterialCode; task.MaterialName = PlanInfo.MaterialName; if (list.Count == 0) @@ -111,7 +113,10 @@ namespace Aucma.Core.SheetMetal.ViewModels var result = await _executePlanInfoServices.AddAsync(task); if (result > 0) { + var obj = await _productPlanInfoServices.FirstAsync(d=>d.ProductLineCode== stationCode&& d.OrderCode== PlanInfo.OrderCode); MessageBox.Show("计划拆分成功!", "系统提醒"); + obj.BeginTime = DateTime.Now; + await _productPlanInfoServices.UpdateAsync(obj); //WeakReferenceMessenger.Default.Send("Refresh");//刷新窗口 RefreshCretaePlanInfoEvent?.Invoke(); } diff --git a/Aucma.Core.SheetMetal/ViewModels/StatisticsPageViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/StatisticsPageViewModel.cs index 9a548c4c..57d0c7d8 100644 --- a/Aucma.Core.SheetMetal/ViewModels/StatisticsPageViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/StatisticsPageViewModel.cs @@ -62,6 +62,33 @@ namespace Aucma.Core.SheetMetal.ViewModels } } + private async Task LoadDateData(DateTime startTime,DateTime endTime) + { + string station = Appsettings.app("StationInfo", "StationCode"); + var list = _productPlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(station)).Result; + var sidePanelComplateList = _sidePanelComplateServices.QueryAsync(d => d.ProductlineCode == station).Result; + int i = 1; + foreach (var item in list.Where(d => d.BeginTime > startTime && d.EndTime < endTime)) + { + int sidePanelComplete = GetSidePanelCompleteData(sidePanelComplateList, item.OrderCode, station); + int backPanelComplete = GetBackPanelCompleteData(sidePanelComplateList, item.OrderCode, station); + MaterialDataGrid.Add(new MaterialComplateInfo() + { + No = i, + ProductPlanCode = item.PlanCode, + MaterialCode = item.MaterialCode, + MaterialName = item.MaterialName, + PlanAmount = item.PlanAmount, + CompleteAmount = item.CompleteAmount, + SidePanelComplete = sidePanelComplete, + BackPanelComplete = backPanelComplete, + BeginTime = item.BeginTime.ToString(), + EndTime = item.EndTime.ToString(), + Status = item.CompleteAmount == item.PlanAmount ? "完成" : "未完成" + }); + i++; + } + } #endregion #region 初始化datagrid @@ -103,26 +130,13 @@ namespace Aucma.Core.SheetMetal.ViewModels var beginTime =DateTime.Parse(result.BeginTime); var endTime = DateTime.Parse(result.EndTime); MaterialDataGrid.Clear(); - string station = Appsettings.app("StationInfo", "StationCode"); - var list = _productPlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(station)).Result; - foreach (var item in list.Where(d=>d.BeginTime> beginTime&& d.EndTime < endTime)) - { - MaterialDataGrid.Add(new MaterialComplateInfo() - { - ProductPlanCode = item.PlanCode, - MaterialCode = item.MaterialCode, - MaterialName = item.MaterialName, - PlanAmount = item.PlanAmount, - CompleteAmount = item.CompleteAmount, - BeginTime = item.BeginTime.ToString(), - EndTime = item.EndTime.ToString(), - }); - } + + await LoadDateData(beginTime, endTime); } else { MaterialDataGrid.Clear(); - LoadData(); + await LoadData(); } } #endregion diff --git a/Aucma.Core.SheetMetal/Views/IndexPageView.xaml b/Aucma.Core.SheetMetal/Views/IndexPageView.xaml index e0177469..1d077491 100644 --- a/Aucma.Core.SheetMetal/Views/IndexPageView.xaml +++ b/Aucma.Core.SheetMetal/Views/IndexPageView.xaml @@ -225,7 +225,7 @@ - diff --git a/HwControlLib/bin/Debug/net6.0-windows/HwControlLib.dll b/HwControlLib/bin/Debug/net6.0-windows/HwControlLib.dll index 914b0885220137fd8ea66901f92f94b913e84470..bb9cc79816e3e0cb9a42d48b4fa1782a75992697 100644 GIT binary patch delta 219 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 delta 8059 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 diff --git a/HwControlLib/obj/Debug/net6.0-windows/GeneratedInternalTypeHelper.g.i.cs b/HwControlLib/obj/Debug/net6.0-windows/GeneratedInternalTypeHelper.g.i.cs index 57f88858..36288f46 100644 --- a/HwControlLib/obj/Debug/net6.0-windows/GeneratedInternalTypeHelper.g.i.cs +++ b/HwControlLib/obj/Debug/net6.0-windows/GeneratedInternalTypeHelper.g.i.cs @@ -15,7 +15,7 @@ namespace XamlGeneratedNamespace { /// GeneratedInternalTypeHelper /// [System.Diagnostics.DebuggerNonUserCodeAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "7.0.4.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "7.0.12.0")] [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper { diff --git a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig index 54fddce2..a4db58d9 100644 --- a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig +++ b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = HwControlLib -build_property.ProjectDir = E:\桌面\AUCMA_SCADA\HwControlLib\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\HwControlLib\ diff --git a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.assets.cache b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.assets.cache index 8c7cf623647bf2a0c37ba5b4a3a756ded13a9157..a056af0d3f9dc463157ec9d2f3a3a69d49f71e33 100644 GIT binary patch delta 55 zcmV-70LcHC0hj?PP)kQa3;+NC1=2zsn((&~-w4`;RFi3luc#t_$!4KJ{Z%2gWnG{6 Nl#wwbkw6HMR75y!7Bv6> delta 55 zcmV-70LcHC0hj?PP)kQa3;+NCr8yS$>!B4}74X+VEuo9+W7`x2N2FZ|s}