From 766918248f923dcfb19655f9e8451ee8e67b4c41 Mon Sep 17 00:00:00 2001 From: "liulb@mesnac.com" Date: Wed, 3 Jan 2024 09:02:08 +0800 Subject: [PATCH] add --- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../Model_New/RecordSidePanelComplate.cs | 20 +++++++++--------- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- Aucma.Core.HwPLc/Impl/MelsecPlc.cs | 2 +- Aucma.Core.OldBoxFoam/appsettings.json | 2 +- .../ViewModels/IndexPageViewModel.cs | 2 +- .../Business/SheetMetalPlanTaskHandle.cs | 4 ++-- .../ViewModels/IndexPageViewModel.cs | 5 +---- .../ViewModels/MainWindowViewModel.cs | 11 +++++++++- Aucma.Core.SheetMetal/appsettings.json | 2 +- .../bin/Debug/net6.0-windows/HwControlLib.dll | Bin 21504 -> 21504 bytes .../bin/Debug/net6.0-windows/HwControlLib.pdb | Bin 17840 -> 17860 bytes 13 files changed, 30 insertions(+), 24 deletions(-) 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/Model_New/RecordSidePanelComplate.cs b/Admin.Core.Model/Model_New/RecordSidePanelComplate.cs index 97e9d77a..81a0f85f 100644 --- a/Admin.Core.Model/Model_New/RecordSidePanelComplate.cs +++ b/Admin.Core.Model/Model_New/RecordSidePanelComplate.cs @@ -16,8 +16,8 @@ namespace Admin.Core.Model /// /// 主键标识 /// - //[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_RECORD_SIDEPANEL_COMPLATE")] - [SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true)] + [SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_RECORD_SIDEPANEL_COMPLATE")] + //[SugarColumn(ColumnName = "OBJ_ID", IsPrimaryKey = true, IsIdentity = true)] public int ObjId { get; set; } /// /// 计划编号 @@ -39,25 +39,25 @@ namespace Admin.Core.Model /// [SugarColumn(ColumnName = "COMPLETE_AMOUNT")] public int CompleteAmount { get; set; } - + /// /// 下线数量 /// [SugarColumn(ColumnName = "OFFLINE_AMOUNT")] public int OffLineAmount { get; set; } - + /// /// 实际产量 /// [SugarColumn(ColumnName = "OUTPUT_AMOUNT")] public int OutPutAmount { get; set; } - + [SugarColumn(ColumnName = "DEVICE_STATUS")] - public string DeviceStatus { get; set; } - + public decimal? DeviceStatus { get; set; } + [SugarColumn(ColumnName = "PRODUCTION_BEAT")] - public string ProductionBeat { get; set; } - + public decimal? ProductionBeat { get; set; } + /// /// 记录时间 /// @@ -67,6 +67,6 @@ namespace Admin.Core.Model /// 是否标识 /// [SugarColumn(ColumnName = "IS_FLAG")] - public string IsFlag { get; set; } + public decimal? IsFlag { 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.Serilog.Es/obj/Debug/net6.0/Admin.Core.Serilog.Es.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.Serilog.Es/obj/Debug/net6.0/Admin.Core.Serilog.Es.GeneratedMSBuildEditorConfig.editorconfig index a3d7d5ba..a581a844 100644 --- a/Admin.Core.Serilog.Es/obj/Debug/net6.0/Admin.Core.Serilog.Es.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.Serilog.Es/obj/Debug/net6.0/Admin.Core.Serilog.Es.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.Serilog.Es -build_property.ProjectDir = E:\桌面\AUCMA_SCADA\Admin.Core.Serilog.Es\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Serilog.Es\ diff --git a/Aucma.Core.HwPLc/Impl/MelsecPlc.cs b/Aucma.Core.HwPLc/Impl/MelsecPlc.cs index 4ac238a4..a6648ecc 100644 --- a/Aucma.Core.HwPLc/Impl/MelsecPlc.cs +++ b/Aucma.Core.HwPLc/Impl/MelsecPlc.cs @@ -76,7 +76,7 @@ namespace Aucma.Core.HwPLc /// public bool Connect(string iP, int port) { - melsecMcNet.IpAddress = iP;//正式环境开启 + //melsecMcNet.IpAddress = iP;//正式环境开启 melsecMcNet.Port = port; // 如果网络不太理想,配置了两个端口,一个有问题,立即切换另一个的话,可以配置如下的代码 diff --git a/Aucma.Core.OldBoxFoam/appsettings.json b/Aucma.Core.OldBoxFoam/appsettings.json index 969fa5ea..d296f800 100644 --- a/Aucma.Core.OldBoxFoam/appsettings.json +++ b/Aucma.Core.OldBoxFoam/appsettings.json @@ -226,7 +226,7 @@ "Enabled": true, "EquipName": "OldMelsecPlc4", "IP": "10.10.93.154", - "Port": 5002 + "Port": 5003 } ], "IpRateLimiting": { diff --git a/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs b/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs index 3073e1b6..69fb702c 100644 --- a/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs @@ -371,7 +371,7 @@ namespace Aucma.Core.PrintTo.ViewModels select c; foreach (var item in query) { - if ( = null) { } + if ( item == null) { } GetParentID(treeNodes, item.MaterialCode); treeNodes.Add(item); } diff --git a/Aucma.Core.SheetMetal/Business/SheetMetalPlanTaskHandle.cs b/Aucma.Core.SheetMetal/Business/SheetMetalPlanTaskHandle.cs index 6c90b693..cb6b9d57 100644 --- a/Aucma.Core.SheetMetal/Business/SheetMetalPlanTaskHandle.cs +++ b/Aucma.Core.SheetMetal/Business/SheetMetalPlanTaskHandle.cs @@ -365,7 +365,7 @@ public class SheetMetalPlanTaskHandle } //先查询该计划编号下的前一条完工记录,如果不存在本条记录产量为0 - List sidePanelComplates = _sidePanelComplateServices.Query(x => x.ProductlineCode == "1001" && x.PlanCode == planCode.Substring(0, 16)); + List sidePanelComplates = _sidePanelComplateServices.QueryAsync(x => x.ProductlineCode == "1001" && x.PlanCode == planCode.Substring(0, 16)).Result; int lastComplateAmount = 0; //前一条完成记录的计划完成数量 int sumComplateAmount = 0; //当前计划总产量 if (sidePanelComplates != null) @@ -551,7 +551,7 @@ public class SheetMetalPlanTaskHandle } else { - List planInfos = _executePlanInfoServices.Query(x => x.TaskCode == planCode.Substring(0, 16) && x.ExecuteStatus == 2); + List planInfos = _executePlanInfoServices.QueryAsync(x => x.TaskCode == planCode.Substring(0, 16) && x.ExecuteStatus == 2).Result; if (planInfos != null) { if (planInfos.Count > 0) diff --git a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs index 708fba53..a83faea0 100644 --- a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs @@ -65,10 +65,7 @@ namespace Aucma.Core.SheetMetal.ViewModels } SelectLocation = ReadFile(); _taskHandle.RefreshCurrentPlanInfoEvent += RefreshCurrentPlanInfo; - Task.Run(() => - { - _taskHandle.InitSendPlan(); - }); + } #endregion diff --git a/Aucma.Core.SheetMetal/ViewModels/MainWindowViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/MainWindowViewModel.cs index 04719c97..65a99b7c 100644 --- a/Aucma.Core.SheetMetal/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/MainWindowViewModel.cs @@ -13,6 +13,8 @@ using System.IO; using Aucma.Core.PLc; using Aucma.Core.Scanner; using System.Linq; +using System.Threading.Tasks; +using Aucma.Core.SheetMetal.Business; namespace Aucma.Core.SheetMetal.ViewModels { @@ -22,11 +24,18 @@ namespace Aucma.Core.SheetMetal.ViewModels private IndexPageView firstPage = new IndexPageView();//首页 private LogPageView logPage = new LogPageView();//日志 private StatisticsPageView statisticsPage = new StatisticsPageView();//统计 - + private SheetMetalPlanTaskHandle _taskHandle = new SheetMetalPlanTaskHandle(); + public MainWindowViewModel() { UserContent = firstPage; init(); + Task.Run(() => + { + //_taskHandle.InitSendPlanData(); + _taskHandle.InitSendPlan(); + + }); } public void init() { diff --git a/Aucma.Core.SheetMetal/appsettings.json b/Aucma.Core.SheetMetal/appsettings.json index 70b2eed7..9bba7ef7 100644 --- a/Aucma.Core.SheetMetal/appsettings.json +++ b/Aucma.Core.SheetMetal/appsettings.json @@ -134,7 +134,7 @@ "Id": 2, "EquipName": "BackPanelPLC", "PlcType": "Melsec", - "Enabled": false, + "Enabled": true, "IP": "127.0.0.1", "Port": 6001 } 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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