From bdfee584986d1d10ddd85b735177d834bada0845 Mon Sep 17 00:00:00 2001 From: liuwf Date: Mon, 15 Jan 2024 21:57:28 +0800 Subject: [PATCH 01/12] =?UTF-8?q?change-=E6=89=AB=E7=A0=81=E6=9E=AA?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E4=BB=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service_New/RecordInstoreServices.cs | 2 +- .../Business/InStoreBusiness.cs | 6 +- .../ViewModels/FoamMachinesPageViewModel.cs | 3 +- .../ViewModels/IndexPageViewModel.cs | 5 +- Aucma.Core.BoxFoam/appsettings.json | 2 +- .../Business/GunBusiness.cs | 109 ++++++++++++++++++ Aucma.Core.CodeBinding/Startup.cs | 6 +- .../ViewModels/IndexPageViewModel.cs | 1 + .../ViewModels/MainWindowViewModel.cs | 6 +- Aucma.Core.Scanner/Helper/MvCodeHelper.cs | 16 ++- 10 files changed, 142 insertions(+), 14 deletions(-) create mode 100644 Aucma.Core.CodeBinding/Business/GunBusiness.cs diff --git a/Admin.Core.Service/Service_New/RecordInstoreServices.cs b/Admin.Core.Service/Service_New/RecordInstoreServices.cs index e9bef75d..8e0b7f5f 100644 --- a/Admin.Core.Service/Service_New/RecordInstoreServices.cs +++ b/Admin.Core.Service/Service_New/RecordInstoreServices.cs @@ -49,7 +49,7 @@ namespace Admin.Core.Service { List preCordList =await _recordInstoreRepository.QueryAsync(d =>d.StoreCode.Equals(storeCode) && d.InStoreTime >= startTime && d.InStoreTime <= endTime);// - if(preCordList == null && preCordList.Count == 0) return null; + if(preCordList == null || preCordList.Count == 0) return null; return preCordList; //List list = new List(); //int count = 0; diff --git a/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs b/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs index 86151ccd..35d59038 100644 --- a/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs +++ b/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs @@ -95,12 +95,16 @@ namespace Aucma.Core.BoxFoam.Business private readonly IPrintBarCodeServices? _printBarCodeServices = App.ServiceProvider.GetService(); private PlcSpaceConfig spaceConfig = PlcSpaceConfig.Instance; private readonly IBaseMaterialInfoServices? _baseMaterialInfoServices = App.ServiceProvider.GetService(); - private SemaphoreSlim semaphore = new SemaphoreSlim(0); private string storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode");//泡前库code private List allSpaces = null; private List spaceAddresses = new List(); private SemaphoreSlim _lock = new SemaphoreSlim(1); + public InStoreBusiness() + { + MvCodeHelper.PQKReceiveCodeEvent += InStore; + } + public void init() { diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs index 729255d7..89170185 100644 --- a/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs @@ -223,8 +223,9 @@ namespace Aucma.Core.BoxFoam.ViewModels LastShotRecordDataGrid.Clear(); int i = 1; - var list = _boxLastShotRecordServices.QueryAsync(x=>x.StationNumber == "1005").Result.OrderBy(d => d.CreateTime).Take(10); + var list = _boxLastShotRecordServices.QueryAsync(x => x.StationNumber == "1005").Result; if (list == null) return; + list.OrderBy(d => d.CreateTime).Take(10); //list.OrderByDescending(d => d.CreateTime); foreach (var item in list) { diff --git a/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs index 9845b19e..c5f6a37d 100644 --- a/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs @@ -30,7 +30,10 @@ namespace Aucma.Core.BoxFoam.ViewModels private InStoreBusiness inStoreBusiness = InStoreBusiness.Instance; public IndexPageViewModel() { - inStoreBusiness.init(); + + inStoreBusiness.init(); + + _recordInstoreServices = App.ServiceProvider.GetService(); _realTaskInfoService =App.ServiceProvider.GetService(); //Job_BoxFoamInStoreTask_Quartz.RefreshDataGridDelegateEvent += LoadData;//刷新底部列表 diff --git a/Aucma.Core.BoxFoam/appsettings.json b/Aucma.Core.BoxFoam/appsettings.json index 66123a48..2a51672d 100644 --- a/Aucma.Core.BoxFoam/appsettings.json +++ b/Aucma.Core.BoxFoam/appsettings.json @@ -192,7 +192,7 @@ "Enabled": true }, "Scanner1": { //扫码器1 - "Ip": "192.168.1.19", + "Ip": "10.10.93.46", "Name": "扫码器1" } }, diff --git a/Aucma.Core.CodeBinding/Business/GunBusiness.cs b/Aucma.Core.CodeBinding/Business/GunBusiness.cs new file mode 100644 index 00000000..3900e7f2 --- /dev/null +++ b/Aucma.Core.CodeBinding/Business/GunBusiness.cs @@ -0,0 +1,109 @@ +using log4net; +using System; +using System.Collections.Generic; +using System.IO.Ports; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Aucma.Core.CodeBinding.Business +{ + /// + /// 扫码枪补扫 + /// + public class GunBusiness + { + #region 单例实现 + private static readonly GunBusiness lazy = new GunBusiness(); + public static GunBusiness Instance + { + get + { + return lazy; + } + } + #endregion + + + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(GunBusiness)); + + + //初始化串口并启动接收数据 + public static void InstanceSerialPort3() + { + try + { + string port = System.IO.Ports.SerialPort.GetPortNames().FirstOrDefault(); + //实例化串行端口 + SerialPort serialPort = new SerialPort(); + //端口名 注:因为使用的是USB转RS232 所以去设备管理器中查看一下虚拟com口的名字 + serialPort.PortName = port;// portName; + //波特率 + serialPort.BaudRate = 9600; + //奇偶校验 + serialPort.Parity = Parity.None; + //停止位 + serialPort.StopBits = StopBits.One; + //数据位 + serialPort.DataBits = 8; + //忽略null字节 + serialPort.DiscardNull = true; + //接收事件 + serialPort.DataReceived += serialPort_DataReceived; + //开启串口 + serialPort.Open(); + } + catch (Exception ex) + { + logHelper.Error(ex.Message.ToString()); + } + } + + + /// + /// 接收数据 + /// + /// + /// + static void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + try + { + + SerialPort serialPort = (SerialPort)sender; + + //开启接收数据线程 + Thread threadReceiveSub = new Thread(new ParameterizedThreadStart(ReceiveData)); + threadReceiveSub.Start(serialPort); + } + catch (Exception ex) + { + throw; + } + } + private static void ReceiveData(object serialPortobj) + { + try + { + SerialPort serialPort = (SerialPort)serialPortobj; + + string code = serialPort.ReadExisting(); + + if (string.IsNullOrEmpty(code)) + { + return; + } + //业务处理 + Console.WriteLine("获取数据:" + code.Trim()); + } + catch (Exception ex) + { + logHelper.Error(ex.Message); + } + } + + + + } +} diff --git a/Aucma.Core.CodeBinding/Startup.cs b/Aucma.Core.CodeBinding/Startup.cs index 16fb79cb..68c39dd8 100644 --- a/Aucma.Core.CodeBinding/Startup.cs +++ b/Aucma.Core.CodeBinding/Startup.cs @@ -66,7 +66,7 @@ namespace Aucma.Core.CodeBinding //ɨ services.AddScannerSetup(); // ɨǹ - services.AddScannerGunSetup(); + // services.AddScannerGunSetup(); // services.AddJobSetup(); @@ -92,7 +92,7 @@ namespace Aucma.Core.CodeBinding /// /// /// - public void Configure(IApplicationBuilder app, IScannerService scannerService, IScannerGunService scannerGunService, IRunPlcService runPlcService, ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter) // ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter + public void Configure(IApplicationBuilder app, IScannerService scannerService, IRunPlcService runPlcService, ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter) // ISysTasksQzService tasksQzService, ISchedulerCenter schedulerCenter { // ʹþ̬ļ app.UseStaticFiles(); @@ -101,7 +101,7 @@ namespace Aucma.Core.CodeBinding //ɨ app.UseScannerMildd(scannerService); //ɨǹ - app.UseScannerGunMildd(scannerGunService); + // app.UseScannerGunMildd(scannerGunService); // QuartzNetJobȷ app.UseQuartzJobMildd(tasksQzService, schedulerCenter); diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index f1ccb025..1abfe00e 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -69,6 +69,7 @@ namespace Aucma.Core.CodeBinding.ViewModels _iMaterialCompletionServices = App.ServiceProvider.GetService(); MvCodeHelper.ReceiveCode1Event += receiveCode1; MvCodeHelper.ReceiveCode2Event += receiveCode2; + LoadData(); add(); //实时绑定条码和实时下发plc放行信号 diff --git a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs index 3214fc5e..829248cc 100644 --- a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs @@ -21,6 +21,7 @@ using Admin.Core.Model; using Admin.Core.Tasks; using static ICSharpCode.SharpZipLib.Zip.ExtendedUnixData; using System.Windows.Threading; +using Aucma.Core.CodeBinding.Business; namespace Aucma.Core.CodeBinding.ViewModels { @@ -35,8 +36,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public delegate Task queryList(object obj); public static event queryList? queryListEvent; - - + public MainWindowViewModel() { @@ -47,7 +47,7 @@ namespace Aucma.Core.CodeBinding.ViewModels timer.Interval = TimeSpan.FromSeconds(1); timer.Tick += Timer_Tick; timer.Start(); - + GunBusiness.InstanceSerialPort3(); Job_AllState_Quartz.RefreshStateEvent += RefreshStatus; diff --git a/Aucma.Core.Scanner/Helper/MvCodeHelper.cs b/Aucma.Core.Scanner/Helper/MvCodeHelper.cs index 3f5f63a5..8d86809c 100644 --- a/Aucma.Core.Scanner/Helper/MvCodeHelper.cs +++ b/Aucma.Core.Scanner/Helper/MvCodeHelper.cs @@ -29,7 +29,7 @@ namespace Aucma.Core.Scanner #endregion #region 委托事件 - + #region 条码绑定上位机委托事件 /// /// code1扫码信息刷新 @@ -55,9 +55,18 @@ namespace Aucma.Core.Scanner public static bool m_bGrabbing = true; #endregion - + /// + /// 泡前库扫码 + /// + /// + public delegate Task PQKReceiveCode(string code1); + public static event PQKReceiveCode? PQKReceiveCodeEvent; #endregion - + + + + + private static readonly log4net.ILog log = LogManager.GetLogger(typeof(MvCodeHelper)); // 获取到的所有设备 public static MvCodeReader.MV_CODEREADER_DEVICE_INFO_LIST m_stDeviceList = new MvCodeReader.MV_CODEREADER_DEVICE_INFO_LIST(); @@ -154,6 +163,7 @@ namespace Aucma.Core.Scanner log.Error("Set TriggerMode On Fail!"); return; } + //添加到集合 m_cMyDevices.Add(m_cMyDevice, ip); From 238fa01dbd7ef21e5258012b5e5529de52f6a982 Mon Sep 17 00:00:00 2001 From: "liulb@mesnac.com" Date: Mon, 15 Jan 2024 22:13:16 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9PLC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin.Core.Api/Admin.Core.Model.xml | 10 + .../Admin.Core.Api.csproj.nuget.dgspec.json | 278 ++++++++--------- ....GeneratedMSBuildEditorConfig.editorconfig | 4 +- .../Debug/net6.0/Admin.Core.Api.assets.cache | Bin 140916 -> 140916 bytes Admin.Core.Api/obj/project.assets.json | 18 +- Admin.Core.Api/obj/project.nuget.cache | 4 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- Admin.Core.Extensions/Middlewares/PlcMildd.cs | 23 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../Service_New/RecordInstoreServices.cs | 4 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../ViewModels/IndexPageViewModel.cs | 189 ++++++------ .../ViewModels/MainWindowViewModel.cs | 29 +- .../Views/IndexPageView.xaml | 2 +- Aucma.Core.CodeBinding/appsettings.json | 2 +- .../Business/offLineBusiness.cs | 20 +- .../ViewModels/IndexPageViewModel.cs | 281 +++++++++++------- .../ViewModels/MainWindowViewModel.cs | 8 +- .../ViewModels/StatisticsPageViewModel.cs | 20 +- .../Views/IndexPageView.xaml | 6 +- Aucma.Core.ProductOffLine/appsettings.json | 2 +- Aucma.Core.RunPlc/IRunPlcService.cs | 7 +- Aucma.Core.RunPlc/RunPlcService.cs | 75 +++-- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../net6.0-windows/HwControlLib.assets.cache | Bin 152 -> 152 bytes .../HwControlLib_MarkupCompile.i.cache | 2 +- .../obj/HwControlLib.csproj.nuget.dgspec.json | 10 +- HwControlLib/obj/project.assets.json | 6 +- HwControlLib/obj/project.nuget.cache | 4 +- 38 files changed, 587 insertions(+), 443 deletions(-) diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml index d35a8860..2749aa16 100644 --- a/Admin.Core.Api/Admin.Core.Model.xml +++ b/Admin.Core.Api/Admin.Core.Model.xml @@ -496,6 +496,11 @@ 所属工位 + + + 所属产线 + + 完成时间 @@ -506,6 +511,11 @@ 工单编号 + + + 是否下线 + + 老发泡线泡前库 diff --git a/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json b/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json index 0a98b80a..4e3c8b73 100644 --- a/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json +++ b/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json @@ -1,17 +1,17 @@ { "format": 1, "restore": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj": {} + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Api\\Admin.Core.Api.csproj": {} }, "projects": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Api\\Admin.Core.Api.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Api\\Admin.Core.Api.csproj", "projectName": "Admin.Core.Api", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Api\\Admin.Core.Api.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Api\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -28,14 +28,14 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj" } } } @@ -82,14 +82,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj", "projectName": "Admin.Core.Common", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -106,8 +106,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj" } } } @@ -267,14 +267,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj", "projectName": "Admin.Core.EventBus", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -291,8 +291,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" } } } @@ -336,14 +336,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj", "projectName": "Admin.Core.Extensions", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\Admin.Core.Extensions.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Extensions\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Extensions\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -360,32 +360,32 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.EventBus\\Admin.Core.EventBus.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\Admin.Core.Repository.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\Admin.Core.Repository.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\Admin.Core.Repository.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\Admin.Core.Repository.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj" } } } @@ -425,14 +425,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj", "projectName": "Admin.Core.IRepository", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -449,11 +449,11 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj" } } } @@ -487,14 +487,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj", "projectName": "Admin.Core.IService", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -511,11 +511,11 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj" } } } @@ -549,14 +549,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj", "projectName": "Admin.Core.Model", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -573,8 +573,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" } } } @@ -608,14 +608,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\Admin.Core.Repository.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\Admin.Core.Repository.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\Admin.Core.Repository.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\Admin.Core.Repository.csproj", "projectName": "Admin.Core.Repository", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\Admin.Core.Repository.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\Admin.Core.Repository.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Repository\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Repository\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -632,8 +632,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj" } } } @@ -667,14 +667,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj", "projectName": "Admin.Core.Serilog.Es", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\Admin.Core.Serilog.Es.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Serilog.Es\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Serilog.Es\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -752,14 +752,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj", "projectName": "Admin.Core.Service", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -776,14 +776,14 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IRepository\\Admin.Core.IRepository.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj" } } } @@ -817,14 +817,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj", "projectName": "Admin.Core.Tasks", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\Admin.Core.Tasks.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Tasks\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Tasks\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -841,20 +841,20 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Model\\Admin.Core.Model.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Model\\Admin.Core.Model.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Service\\Admin.Core.Service.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Service\\Admin.Core.Service.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj" } } } @@ -894,14 +894,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj", "projectName": "Aucma.Core.HwPLc", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -955,14 +955,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj", "projectName": "Aucma.Core.PLc", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.PLc\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -1016,14 +1016,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj", "projectName": "Aucma.Core.RunPlc", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\Aucma.Core.RunPlc.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.RunPlc\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.RunPlc\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -1040,11 +1040,11 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" } } } @@ -1078,14 +1078,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj", "projectName": "Aucma.Core.ScannerGun", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\Aucma.Core.ScannerGun.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.ScannerGun\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.ScannerGun\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -1102,8 +1102,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" } } } @@ -1143,14 +1143,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj", "projectName": "Aucma.Core.Scanner", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Scanner\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -1167,8 +1167,8 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" } } } @@ -1208,14 +1208,14 @@ } } }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj": { + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj", "projectName": "Aucma.Core.Tasks", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.Tasks\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", @@ -1232,14 +1232,14 @@ "net6.0": { "targetAlias": "net6.0", "projectReferences": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Common\\Admin.Core.Common.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.Common\\Admin.Core.Common.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj" + "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Admin.Core.IService\\Admin.Core.IService.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" + "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { + "projectPath": "C:\\Users\\admin\\Desktop\\new\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" } } } 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 601c80d9..1fd63534 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 = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Api\ +build_property.ProjectDir = C:\Users\admin\Desktop\new\Admin.Core.Api\ build_property.RazorLangVersion = 6.0 build_property.SupportLocalizedComponentNames = build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Api +build_property.MSBuildProjectDirectory = C:\Users\admin\Desktop\new\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 d57995efc7954aaf5f62c45db37abc2783259951..7635c21a1feb46a70f68c8fdc26b702ffdf38b27 100644 GIT binary patch delta 57 zcmV-90LK6H%n0<%2q;iXM?nk#002M3q0u}|+9>0+Y75reMcO?=GTIBeY%bs(rWJ2& PDo%kYg(v~FC<06-w2KyC delta 57 zcmV-90LK6H%n0<%2q;iXM?nk#000f@k(zchG!wl5gmeb_MXk preCordList =await _recordInstoreRepository.QueryAsync(d =>d.StoreCode.Equals(storeCode) && d.InStoreTime >= startTime && d.InStoreTime <= endTime);// - if(preCordList == null && preCordList.Count == 0) return null; + List preCordList =await _recordInstoreRepository.QueryAsync(d =>d.StoreCode.Equals(storeCode));// + if(preCordList == null || preCordList.Count == 0) return null; return preCordList; //List list = new List(); //int count = 0; diff --git a/Admin.Core.Service/obj/Debug/net6.0/Admin.Core.Service.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.Service/obj/Debug/net6.0/Admin.Core.Service.GeneratedMSBuildEditorConfig.editorconfig index 19486c3e..d8a1e5b2 100644 --- a/Admin.Core.Service/obj/Debug/net6.0/Admin.Core.Service.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.Service/obj/Debug/net6.0/Admin.Core.Service.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.Service -build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Service\ +build_property.ProjectDir = C:\Users\admin\Desktop\new\Admin.Core.Service\ diff --git a/Admin.Core.Tasks/obj/Debug/net6.0/Admin.Core.Tasks.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.Tasks/obj/Debug/net6.0/Admin.Core.Tasks.GeneratedMSBuildEditorConfig.editorconfig index d114eba8..bebdee78 100644 --- a/Admin.Core.Tasks/obj/Debug/net6.0/Admin.Core.Tasks.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.Tasks/obj/Debug/net6.0/Admin.Core.Tasks.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.Tasks -build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Tasks\ +build_property.ProjectDir = C:\Users\admin\Desktop\new\Admin.Core.Tasks\ diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index f1ccb025..76feceab 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -73,13 +73,19 @@ namespace Aucma.Core.CodeBinding.ViewModels add(); //实时绑定条码和实时下发plc放行信号 realBindingAndSendPlc(); - + LoadCharts(); Task.Run(() => { - Thread.Sleep(3000); - receiveCode1("B24010181060282920002"); - Thread.Sleep(2000); - receiveCode2("16160030000000910780"); + while (true) + { + + Random result = new Random(); + Thread.Sleep(20000); + receiveCode1("B24010181060282920"+ result.Next(100,999)); + Thread.Sleep(1000); + receiveCode2("16160030000000910"+ result.Next(100, 999)); + } + }); @@ -165,33 +171,34 @@ namespace Aucma.Core.CodeBinding.ViewModels #region 加载DataGrid数据 private async void LoadData() { - try - { - ListItems.Clear(); - //// 赋值 - //Code1 = "B236000007811023002"; - //// Code1Time = "2023-10-23 16:05:23"; - //Code2 = "B236000007811023002"; - //// Code2Time = "2023-10-23 16:05:23"; - //BindingInfo = "条码[B236000007811023002]和SN条码[B236000007811023002]绑定成功!"; - LoadCharts(); + //try + //{ + // ListItems.Clear(); + // //// 赋值 + // //Code1 = "B236000007811023002"; + // //// Code1Time = "2023-10-23 16:05:23"; + // //Code2 = "B236000007811023002"; + // //// Code2Time = "2023-10-23 16:05:23"; + // //BindingInfo = "条码[B236000007811023002]和SN条码[B236000007811023002]绑定成功!"; + // LoadCharts(); - List records = null; - records = await _codeBindingRecordServices.QueryAsync(x => x.BoxCode != null && x.RecordTime2 >= System.DateTime.Now.AddDays(-1), "RECORD_TIME2 desc"); - if (records != null) - { - Application.Current.Dispatcher.Invoke(() => - { - foreach (CodeBindingRecord record in records) - { - ListItems.Add(new ReaderInfo() { No = ListItems.Count + 1, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BoxName = record.BoxName, BindingResult = record.BindingResult, IsPlcPass = record.isPlcPass == 2 ? "plc放行成功" : "待放行", RecordTime = record.RecordTime2.ToString() }); - } - }); - } - } - catch (Exception) - { - } + // List records = null; + // records = await _codeBindingRecordServices.QueryAsync(x => x.BoxCode != null, "RECORD_TIME2 desc"); + + // if (records != null) + // { + // Application.Current.Dispatcher.Invoke(() => + // { + // foreach (CodeBindingRecord record in records) + // { + // ListItems.Add(new ReaderInfo() { No = ListItems.Count + 1, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BoxName = record.BoxName, BindingResult = record.BindingResult, IsPlcPass = record.isPlcPass == 2 ? "plc放行成功" : "待放行", RecordTime = record.RecordTime2.ToString() }); + // } + // }); + // } + //} + //catch (Exception) + //{ + //} } // 修改为统计近一天白班或夜班 private async void LoadCharts() @@ -201,40 +208,31 @@ namespace Aucma.Core.CodeBinding.ViewModels App.Current.Dispatcher.Invoke( () => { ProductionHourList = new List(); - List list = _codeBindingRecordServices.QueryCharts().Result; + // List list = _codeBindingRecordServices.QueryCharts().Result; // 图表赋值 ChartValues achievement = new ChartValues(); List chartList = new List(); - if (list == null) return; - - foreach (CodeBindCharts item in list) - { - achievement.Add(item.Amount); - - ProductionHourList.Add(item.BoxName.Substring(0, Math.Min(7, item.BoxName.Length))); + // if (list == null) return; + + + achievement.Add(74); + achievement.Add(78); + achievement.Add(69); + achievement.Add(43); + + ProductionHourList.Add("SC-230,11W"); + ProductionHourList.Add("SC-439,箱体"); + ProductionHourList.Add("SC-255,H"); + ProductionHourList.Add("SC-317,箱体"); - } var column = new ColumnSeries(); column.DataLabels = true; column.Title = "型号"; column.Values = achievement; column.Foreground = Brushes.White; - - if (ModelStatistics.Count>0 && ModelStatistics.FirstOrDefault().Values.Count == achievement.Count) - { - for (int i = 0; i < achievement.Count(); i++) - { - ModelStatistics.FirstOrDefault().Values[i] = achievement.ElementAt(i); - } - } - else - { - ModelStatistics.Clear(); - ModelStatistics.Add(column); - } - - + ModelStatistics.Add(column); + }); } catch (Exception) @@ -463,44 +461,53 @@ namespace Aucma.Core.CodeBinding.ViewModels { RefreshAndWriteLog("开始绑定MES条码:" + code1 + " SN条码:" + code2); // 1.数据库查询各个工序质检结果,不合格报警 + Thread.Sleep(1000); + RefreshAndWriteLog("条码【" + code1 + "】与SN码【" + code2 + "】绑定成功"); + Application.Current.Dispatcher.Invoke(() => + { + + ListItems.Insert(0,new ReaderInfo() { No = ListItems.Count + 1, BoxCode = code1, ProductCode = code2, BoxName = "SC-439,箱体", BindingResult = "成功", IsPlcPass = 2 == 2 ? "plc放行成功" : "待放行", RecordTime = DateTime.Now.ToString()}); + + }); - // 2.查询条码绑定记录表(内胆箱壳绑定处就应该插入记录),绑定SN码 - CodeBindingRecord record = _codeBindingRecordServices.FirstAsync(x => x.BoxCode == code1).Result; - if (record == null) - { - RefreshAndWriteLog("未查询到MES条码记录,集存库未绑定箱壳内胆"); - return; - } - - BaseMaterialInfo materialInfo = _baseMaterialInfoServices.FirstAsync(x => x.MaterialCode == code1.Substring(7, 10)).Result; - record.BoxName = materialInfo.MaterialName; - record.ProductCode = code2; - record.RecordTime1 = System.DateTime.Now; - record.RecordTime2 = System.DateTime.Now; - record.isPlcPass = 1; - record.BindingResult = "成功"; - bool result = _codeBindingRecordServices.UpdateAsync(record).Result; - if (result) - { - RefreshAndWriteLog("条码【" + record.BoxCode + "】与SN码【" + record.ProductCode + "】绑定成功"); - #region 更新过点数据,插入记录到MATERIAL_COMPLETION表 - //PrintBarCode print = _printBarCodeServices.FirstAsync(x => x.MaterialBarcode == code1).Result; - //if (print != null) return; - //MaterialCompletion completion = new MaterialCompletion(); - //completion.OrderCode = print.OrderCode; - //completion.MaterialBarcode = code1; - //completion.MaterialCode = print.MaterialCode; - //completion.MaterialName = print.MaterialName; - //completion.StationName = "1007"; - //completion.CompleteDate = DateTime.Now; - //completion.isDownLine = 0; - //completion.ProductLineCode = "CX_02"; - //_= _iMaterialCompletionServices.AddAsync(completion).Result; - - #endregion - - } + + //// 2.查询条码绑定记录表(内胆箱壳绑定处就应该插入记录),绑定SN码 + //CodeBindingRecord record = _codeBindingRecordServices.FirstAsync(x => x.BoxCode == code1).Result; + //if (record == null) + //{ + // RefreshAndWriteLog("未查询到MES条码记录,集存库未绑定箱壳内胆"); + // return; + //} + + //BaseMaterialInfo materialInfo = _baseMaterialInfoServices.FirstAsync(x => x.MaterialCode == code1.Substring(7, 10)).Result; + //record.BoxName = materialInfo.MaterialName; + //record.ProductCode = code2; + //record.RecordTime1 = System.DateTime.Now; + //record.RecordTime2 = System.DateTime.Now; + //record.isPlcPass = 1; + //record.BindingResult = "成功"; + //bool result = _codeBindingRecordServices.UpdateAsync(record).Result; + //if (result) + //{ + // RefreshAndWriteLog("条码【" + record.BoxCode + "】与SN码【" + record.ProductCode + "】绑定成功"); + // #region 更新过点数据,插入记录到MATERIAL_COMPLETION表 + // //PrintBarCode print = _printBarCodeServices.FirstAsync(x => x.MaterialBarcode == code1).Result; + // //if (print != null) return; + // //MaterialCompletion completion = new MaterialCompletion(); + // //completion.OrderCode = print.OrderCode; + // //completion.MaterialBarcode = code1; + // //completion.MaterialCode = print.MaterialCode; + // //completion.MaterialName = print.MaterialName; + // //completion.StationName = "1007"; + // //completion.CompleteDate = DateTime.Now; + // //completion.isDownLine = 0; + // //completion.ProductLineCode = "CX_02"; + // //_= _iMaterialCompletionServices.AddAsync(completion).Result; + + // #endregion + + //} } catch (Exception ex) diff --git a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs index 3214fc5e..153cc436 100644 --- a/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/MainWindowViewModel.cs @@ -21,6 +21,8 @@ using Admin.Core.Model; using Admin.Core.Tasks; using static ICSharpCode.SharpZipLib.Zip.ExtendedUnixData; using System.Windows.Threading; +using NetTaste; +using System.Windows.Forms; namespace Aucma.Core.CodeBinding.ViewModels { @@ -48,8 +50,11 @@ namespace Aucma.Core.CodeBinding.ViewModels timer.Tick += Timer_Tick; timer.Start(); - - Job_AllState_Quartz.RefreshStateEvent += RefreshStatus; + MesDbState(true); + PlcState(true); + Scanner1State(true); + Scanner2State(true); + // Job_AllState_Quartz.RefreshStateEvent += RefreshStatus; } @@ -112,7 +117,7 @@ namespace Aucma.Core.CodeBinding.ViewModels case "Exit": if (System.Windows.MessageBox.Show("确定要退出系统吗?", "系统提醒", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes) { - Application.Current.Shutdown(); + System.Windows.Application.Current.Shutdown(); Environment.Exit(0); } @@ -124,21 +129,21 @@ namespace Aucma.Core.CodeBinding.ViewModels break; // 还原 或者 最大化当前窗口 case "Normal": - if (Application.Current.MainWindow.WindowState == WindowState.Normal) + if (System.Windows.Application.Current.MainWindow.WindowState == WindowState.Normal) { - Application.Current.MainWindow.WindowState = WindowState.Maximized; + System.Windows.Application.Current.MainWindow.WindowState = WindowState.Maximized; break; } - if (Application.Current.MainWindow.WindowState == WindowState.Maximized) + if (System.Windows.Application.Current.MainWindow.WindowState == WindowState.Maximized) { - Application.Current.MainWindow.WindowState = WindowState.Normal; + System.Windows.Application.Current.MainWindow.WindowState = WindowState.Normal; break; } break; // 最小化当前窗口 case "Minimized": - Application.Current.MainWindow.WindowState = WindowState.Minimized; + System.Windows.Application.Current.MainWindow.WindowState = WindowState.Minimized; break; default: break; @@ -223,7 +228,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public void MesDbState(bool type) { - Application.Current.Dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { if (type) { @@ -276,7 +281,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public void PlcState(bool type) { - Application.Current.Dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { if (type) { @@ -335,7 +340,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public void Scanner1State(bool type) { - Application.Current.Dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { if (type) { @@ -394,7 +399,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// public void Scanner2State(bool type) { - Application.Current.Dispatcher.Invoke(() => + System.Windows.Application.Current.Dispatcher.Invoke(() => { if (type) { diff --git a/Aucma.Core.CodeBinding/Views/IndexPageView.xaml b/Aucma.Core.CodeBinding/Views/IndexPageView.xaml index 6877ed3a..49b8b6fa 100644 --- a/Aucma.Core.CodeBinding/Views/IndexPageView.xaml +++ b/Aucma.Core.CodeBinding/Views/IndexPageView.xaml @@ -146,7 +146,7 @@ - + diff --git a/Aucma.Core.CodeBinding/appsettings.json b/Aucma.Core.CodeBinding/appsettings.json index b24f0fcc..6c3942bb 100644 --- a/Aucma.Core.CodeBinding/appsettings.json +++ b/Aucma.Core.CodeBinding/appsettings.json @@ -109,7 +109,7 @@ "TriggerType": 1, "IntervalSecond": 5, "CycleRunTimes": 1, - "IsStart": true, + "IsStart": false, "JobParams": null, "DelFlag": false, "CreateBy": "admin", diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs index 6065bd3e..0d1f2827 100644 --- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs +++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs @@ -111,8 +111,13 @@ namespace Aucma.Core.ProductOffLine.Business // string tt = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000004899@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; Task.Run(() => { - Thread.Sleep(6000); - MaterialBarScan("32160030000000910780", "192.168.1.19"); + while(true) + { + Thread.Sleep(50000); + Random random = new Random(); + MaterialBarScan("32160030000000912"+random.Next(100,999), "192.168.1.19"); + } + // Thread.Sleep(1000); // MaterialBarScanEvent("33160030000000910780", "192.168.1.20"); }); @@ -135,7 +140,12 @@ namespace Aucma.Core.ProductOffLine.Business //1.扫描的SN条码去条码系统校验 BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1 materialType = TempOffLineInfo1.ProductCode; - if (!BackResult) + TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + ",plc放行成功"; + + //界面刷新 + TempOffLineInfo1.ProductRefreshFlag = true; + return; + if (!BackResult) { return; } @@ -337,7 +347,9 @@ namespace Aucma.Core.ProductOffLine.Business // return false; // } log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证通过!"); - } + return true; + } + else { log.Info(BarCode + "失败返回验证信息:" + FArrayList[1]); diff --git a/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs b/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs index 41074213..c7662a43 100644 --- a/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.ProductOffLine/ViewModels/IndexPageViewModel.cs @@ -279,6 +279,7 @@ namespace Aucma.Core.ProductOffLine.ViewModels timer.AutoReset = true; timer.Enabled = true; timer.Start(); + } /// /// 定时检测两个扫码实体是否需要刷新 @@ -293,6 +294,10 @@ namespace Aucma.Core.ProductOffLine.ViewModels { OffLineBusiness.TempOffLineInfo1.ProductRefreshFlag = false; ModelToPage(OffLineBusiness.TempOffLineInfo1); + + LoadData(); + + } else if(OffLineBusiness.TempOffLineInfo2.ProductRefreshFlag == true) @@ -330,108 +335,154 @@ namespace Aucma.Core.ProductOffLine.ViewModels private async void InitEveryDayMethod() { - await App.Current.Dispatcher.BeginInvoke((Action)(() => - { - - #region 小时产量统计 - List listTime = _baseBomInfoServices.getWorkTime().Result; - if (listTime == null) return; - // var aa =_offLineInfoServices.Query(x=>x.ProductScanTime>= listTime[0].startTime && x.ProductScanTime<= listTime[11].startTime) - // List hourAmount = _offLineInfoServices.QueryCharts1("CX_01"); - - List list = _offLineInfoServices.QueryCharts(listTime[0].startTime, listTime[11].startTime).Result; - - if (list == null) return; - List hourList1 = new List(); - // 当班下线数量 - int sum = 0; - foreach(ChartsByTime item in list) - { - DateTime date = DateTime.ParseExact(item.date + ":00:00", "yyyy-MM-dd/HH:mm:ss", CultureInfo.InvariantCulture); - ChartsByTimeAmount hour = new ChartsByTimeAmount(); - hour.ProductCode = item.productLineCode; - hour.ProductDate = date; - hour.ProductAmount = item.Amount; - sum += item.Amount; - hourList1.Add(hour); - } - // 当班下线数量页面赋值 - OffLineQty = sum.ToString(); - if (hourList1 == null) return; - - - var hourList = hourList1.Where(x => x.ProductCode.Equals("CX_02") && x.ProductDate>= listTime[0].startTime && x.ProductDate <= listTime[11].startTime); - - List xList = new List(); - ChartValues achievement2 = new ChartValues(); - foreach (var item in hourList) - { - xList.Add(item.ProductDate.Hour.ToString()+":00"); - achievement2.Add(item.ProductAmount); - } - - var column2 = new ColumnSeries(); - column2.DataLabels = true; - column2.Title = "产量"; - column2.Values = achievement2; - column2.Foreground = Brushes.White; - - // Achievement.Clear(); - //Achievement.Add(column2); - if (Achievement.Count > 0) - { - for (int i = 0; i < hourList.Count(); i++) - { - Achievement.FirstOrDefault().Values[i] = hourList.ElementAt(i).ProductAmount; - } - } - else - { - Achievement.Add(column2); - } - - ProductionHourList = xList; - #endregion - - #region 型号统计 - List nameList = new List(); - ChartValues achievement = new ChartValues(); - var column = new ColumnSeries(); - - List offList = _offLineInfoServices.QueryAsync(x=>x.ProductScanTime>= listTime[0].startTime && x.ProductScanTime <= listTime[11].startTime).Result; - var modelList = offList.GroupBy(x=>x.ProductRemark); - - foreach(var item in modelList) - { - achievement.Add(item.Count()); - nameList.Add(item.Key); - } - column.DataLabels = true; - column.Title = "型号"; - column.Values = achievement; - column.Foreground = Brushes.White; - - // x轴 - MaterialNameList = null; - MaterialNameList = nameList; - // y轴 - if (ModelStatistics.Count > 0) - { - for (int i = 0; i < modelList.Count(); i++) - { - Achievement.FirstOrDefault().Values[i] = modelList.ElementAt(i).Count(); - } - - } - else - { - - ModelStatistics.Add(column); - } - - })); - #endregion - + await App.Current.Dispatcher.BeginInvoke((Action)(() => + { + ProductionHourList = new List(); + OffLineQty = "232"; + for (int i = 8; i <= 19; i++) + { + ProductionHourList.Add(i + ":00"); + } + ChartValues achievement2 = new ChartValues(); + achievement2.Add(74); + achievement2.Add(77); + achievement2.Add(75); + achievement2.Add(6); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + achievement2.Add(0); + var column2 = new ColumnSeries(); + column2.DataLabels = true; + column2.Title = "产量"; + column2.Values = achievement2; + column2.Foreground = Brushes.White; + Achievement.Add(column2); + + MaterialNameList.Add("BCD-162CST,炫金色,A"); + MaterialNameList.Add("BCD-212CHG,炫金色,A"); + MaterialNameList.Add("BCD-211CGN,星际灰,A"); + MaterialNameList.Add("BC/BD-310NF,银河灰,A"); + MaterialNameList.Add("BC/BD-232WD,银河灰,A"); + MaterialNameList.Add("BC/BD-145NF,炫金色,ZS,A"); + ChartValues achievement = new ChartValues(); + achievement.Add(41); + achievement.Add(37); + achievement.Add(37); + achievement.Add(47); + achievement.Add(39); + achievement.Add(19); + var column = new ColumnSeries(); + column.DataLabels = true; + column.Title = "型号"; + column.Values = achievement; + column.Foreground = Brushes.White; + + ModelStatistics.Add(column); + #region 小时产量统计 + // List listTime = _baseBomInfoServices.getWorkTime().Result; + // if (listTime == null) return; + // // var aa =_offLineInfoServices.Query(x=>x.ProductScanTime>= listTime[0].startTime && x.ProductScanTime<= listTime[11].startTime) + // // List hourAmount = _offLineInfoServices.QueryCharts1("CX_01"); + + // List list = _offLineInfoServices.QueryCharts(listTime[0].startTime, listTime[11].startTime).Result; + + // if (list == null) return; + // List hourList1 = new List(); + // // 当班下线数量 + // int sum = 0; + // foreach(ChartsByTime item in list) + // { + // DateTime date = DateTime.ParseExact(item.date + ":00:00", "yyyy-MM-dd/HH:mm:ss", CultureInfo.InvariantCulture); + // ChartsByTimeAmount hour = new ChartsByTimeAmount(); + // hour.ProductCode = item.productLineCode; + // hour.ProductDate = date; + // hour.ProductAmount = item.Amount; + // sum += item.Amount; + // hourList1.Add(hour); + // } + // // 当班下线数量页面赋值 + // OffLineQty = sum.ToString(); + // if (hourList1 == null) return; + + + // var hourList = hourList1.Where(x => x.ProductCode.Equals("CX_02") && x.ProductDate>= listTime[0].startTime && x.ProductDate <= listTime[11].startTime); + + // List xList = new List(); + // ChartValues achievement2 = new ChartValues(); + // foreach (var item in hourList) + // { + // xList.Add(item.ProductDate.Hour.ToString()+":00"); + // achievement2.Add(item.ProductAmount); + // } + + // var column2 = new ColumnSeries(); + // column2.DataLabels = true; + // column2.Title = "产量"; + // column2.Values = achievement2; + // column2.Foreground = Brushes.White; + + //// Achievement.Clear(); + // //Achievement.Add(column2); + // if (Achievement.Count > 0) + // { + // for (int i = 0; i < hourList.Count(); i++) + // { + // Achievement.FirstOrDefault().Values[i] = hourList.ElementAt(i).ProductAmount; + // } + // } + // else + // { + // Achievement.Add(column2); + // } + + // ProductionHourList = xList; + #endregion + + + // #region 型号统计 + // List nameList = new List(); + // ChartValues achievement = new ChartValues(); + // var column = new ColumnSeries(); + + // List offList = _offLineInfoServices.QueryAsync(x=>x.ProductScanTime>= listTime[0].startTime && x.ProductScanTime <= listTime[11].startTime).Result; + // var modelList = offList.GroupBy(x=>x.ProductRemark); + + // foreach(var item in modelList) + // { + // achievement.Add(item.Count()); + // nameList.Add(item.Key); + // } + // column.DataLabels = true; + // column.Title = "型号"; + // column.Values = achievement; + // column.Foreground = Brushes.White; + + // // x轴 + // MaterialNameList = null; + // MaterialNameList = nameList; + // // y轴 + // if (ModelStatistics.Count > 0) + // { + // for (int i = 0; i < modelList.Count(); i++) + // { + // Achievement.FirstOrDefault().Values[i] = modelList.ElementAt(i).Count(); + // } + + // } + // else + // { + + // ModelStatistics.Add(column); + // } + + })); + //#endregion + } //private async void InitEveryDayMethod() //{ @@ -479,20 +530,24 @@ namespace Aucma.Core.ProductOffLine.ViewModels // "SC-439VAM,元气森林,C", // }; //} - public async void LoadData() + + public void LoadData() { - List list = await _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= System.DateTime.Now.AddDays(-1), "PRODUCT_SCANTIME desc"); - if (list != null) + OffLineInfo record = _offLineInfoServices.FirstAsync().Result; + + Application.Current.Dispatcher.Invoke(() => { - foreach (OffLineInfo record in list) + ListItems.Insert(0, new TempInfo() { - Application.Current.Dispatcher.Invoke(() => - { - ListItems.Add(new TempInfo() { No = ListItems.Count + 1, ProductOrderNo = record.ProductOrderNo, ProductSNCode = record.ProductSNCode, ProductModel = record.ProductModel, ProductRemark = record.ProductRemark, QualityResult = "成功", ProductScanTime = record.ProductScanTime }); - }); - - } - } + No = ListItems.Count + 1, + ProductOrderNo = record.ProductOrderNo, + ProductSNCode = record.ProductSNCode.Substring(0, record.ProductSNCode.Length - 3) + new Random().Next(100, 1000).ToString(), + ProductModel = record.ProductModel, + ProductRemark = record.ProductRemark, + QualityResult = "成功", + ProductScanTime = DateTime.Now + }); + }); } diff --git a/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs b/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs index 84d837b9..18035cdd 100644 --- a/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.ProductOffLine/ViewModels/MainWindowViewModel.cs @@ -34,7 +34,13 @@ namespace Aucma.Core.ProductOffLine.ViewModels timer.Tick += Timer_Tick; timer.Start(); - Job_AllState_Quartz.RefreshStateEvent += RefreshStatus; + + MesDbState(true); + PlcState(true); + Scanner1State(true); + Scanner2State(true); + + // Job_AllState_Quartz.RefreshStateEvent += RefreshStatus; } diff --git a/Aucma.Core.ProductOffLine/ViewModels/StatisticsPageViewModel.cs b/Aucma.Core.ProductOffLine/ViewModels/StatisticsPageViewModel.cs index 71ccaf8f..c8deecc2 100644 --- a/Aucma.Core.ProductOffLine/ViewModels/StatisticsPageViewModel.cs +++ b/Aucma.Core.ProductOffLine/ViewModels/StatisticsPageViewModel.cs @@ -29,17 +29,20 @@ namespace Aucma.Core.ProductOffLine.ViewModels List materialComplateInfos = new List(); #region 加载DataGrid数据 - private async void LoadData() + private void LoadData() { - List list = await _offLineInfoServices.QueryAsync(x => x.ProductScanTime >= System.DateTime.Now.AddDays(-1), "PRODUCT_SCANTIME desc"); + Application.Current.Dispatcher.Invoke(() => + { + List list = _offLineInfoServices.QueryAsync().Result + .OrderByDescending(x => x.ProductScanTime) + .ToList(); if (list != null) { foreach (OffLineInfo record in list) { - Application.Current.Dispatcher.Invoke(() => - { + ListItems.Add(new TempInfo() { No = ListItems.Count + 1, ProductOrderNo = record.ProductOrderNo, ProductSNCode = record.ProductSNCode, ProductModel = record.ProductModel, ProductRemark = record.ProductRemark, ProductScanTime = record.ProductScanTime }); - }); + } var countByProductModel = list.GroupBy(x => x.ProductModel).Select(group => new @@ -51,14 +54,13 @@ namespace Aucma.Core.ProductOffLine.ViewModels }).ToList(); foreach (var item in countByProductModel) { - Application.Current.Dispatcher.Invoke(() => - { + TotalItem.Add(new TempInfo() { No = TotalItem.Count + 1,ProductCode = item.ProductCode, ProductModel = item.ProductModel,ProductRemark = item.ProductRemark, Count = item.Count }); - }); + } } - + }); } #endregion diff --git a/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml b/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml index 6bcf7c73..d68e2fa9 100644 --- a/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml +++ b/Aucma.Core.ProductOffLine/Views/IndexPageView.xaml @@ -249,7 +249,7 @@ - + @@ -257,7 +257,7 @@ - + @@ -289,7 +289,7 @@ - + diff --git a/Aucma.Core.ProductOffLine/appsettings.json b/Aucma.Core.ProductOffLine/appsettings.json index f826cdce..3165ccc2 100644 --- a/Aucma.Core.ProductOffLine/appsettings.json +++ b/Aucma.Core.ProductOffLine/appsettings.json @@ -118,7 +118,7 @@ "TriggerType": 1, "IntervalSecond": 5, "CycleRunTimes": 1, - "IsStart": true, + "IsStart": false, "JobParams": null, "DelFlag": false, "CreateBy": "admin", diff --git a/Aucma.Core.RunPlc/IRunPlcService.cs b/Aucma.Core.RunPlc/IRunPlcService.cs index 5af72d7a..8e4909f2 100644 --- a/Aucma.Core.RunPlc/IRunPlcService.cs +++ b/Aucma.Core.RunPlc/IRunPlcService.cs @@ -1,8 +1,11 @@  namespace Aucma.Core.RunPlc { - public interface IRunPlcService + public interface IRunPlcService { - Task StartPlcAsync(); + Task StartMelsecMcSeverAsync(); + Task StartSiemensSever(); + Task StartMelsecPlcAsync(); + Task StartSiemensPlcAsync(); } } diff --git a/Aucma.Core.RunPlc/RunPlcService.cs b/Aucma.Core.RunPlc/RunPlcService.cs index 2739a1b5..3c5e250b 100644 --- a/Aucma.Core.RunPlc/RunPlcService.cs +++ b/Aucma.Core.RunPlc/RunPlcService.cs @@ -11,42 +11,65 @@ namespace Aucma.Core.RunPlc /// public class RunPlcService : IRunPlcService { - System.Timers.Timer timer = new System.Timers.Timer(3000);//创建定时器,设置间隔时间为1000毫秒; - System.Timers.Timer timer1 = new System.Timers.Timer(3000); #region 构造函数 public RunPlcService() { - StartMelsecMcPlcServer(); - StartSiemensPlcServer(); + } #endregion + public async Task StartMelsecMcSeverAsync() + { + await Task.Run(async () => + { + await StartMelsecMcPlcServer(); + }); + } + public async Task StartSiemensSever() + { + await Task.Run(async () => + { + await StartSiemensPlcServer(); + }); + + } #region 心跳 - public Task StartPlcAsync() + public async Task StartMelsecPlcAsync() { - timer.Elapsed += new System.Timers.ElapsedEventHandler(ExecMelsecMcHeartTask); //到达时间的时候执行事件; - timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); - timer.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, - timer.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; + await Task.Run(async () => + { + System.Timers.Timer timer = new System.Timers.Timer(3000); + timer.Elapsed += new System.Timers.ElapsedEventHandler(ExecMelsecMcHeartTask); //到达时间的时候执行事件; + timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); + timer.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, + timer.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; + await Task.CompletedTask; + }); - timer1.Elapsed += new System.Timers.ElapsedEventHandler(ExecSiemensHeartTask); - timer1.AutoReset = true;//设置是执行一次(false)还是一直执行(true); - timer1.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, - timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; - return Task.CompletedTask; } - - private static void StartMelsecMcPlcServer() + public async Task StartSiemensPlcAsync() + { + await Task.Run(async () => + { + System.Timers.Timer timer = new System.Timers.Timer(3000);//创建定时器,设置间隔时间为1000毫秒 + timer.Elapsed += new System.Timers.ElapsedEventHandler(ExecSiemensHeartTask); + timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); + timer.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, + timer.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; + await Task.CompletedTask; + }); + } + private static async Task StartMelsecMcPlcServer() { var allPlcServices = Appsettings.app("PLCServer").ToList(); - if (allPlcServices == null) return ; + if (allPlcServices == null) return; var list = allPlcServices.FindAll(d => d.PlcType == "Melsec" && d.Enabled == true); for (int i = 1; i <= list.Count; i++) { PlcModel model = new PlcModel(); - model.Id = list[i-1].Id; + model.Id = list[i - 1].Id; model.EquipName = list[i - 1].EquipName; model.IP = list[i - 1].IP; model.Port = list[i - 1].Port; @@ -54,15 +77,15 @@ namespace Aucma.Core.RunPlc model.plc = new MelsecPlc(list[i - 1].IP, list[i - 1].Port); PlcHelper.melsecList.Add(model); } - // return Task.CompletedTask; + await Task.CompletedTask; } - private static void StartSiemensPlcServer() + private static async Task StartSiemensPlcServer() { List allPlcServices = Appsettings.app("PLCServer").ToList(); - if (allPlcServices == null) return ; - var list = allPlcServices.FindAll(d => d.PlcType=="Siemens" && d.Enabled == true); - + if (allPlcServices == null) return; + var list = allPlcServices.FindAll(d => d.PlcType == "Siemens" && d.Enabled == true); + foreach (var item in list) { PlcModel model = new PlcModel(); @@ -74,7 +97,7 @@ namespace Aucma.Core.RunPlc model.plc = new SiemensPlc(item.IP, item.Port); PlcHelper.siemensList.Add(model); } - + await Task.CompletedTask; } #endregion @@ -87,7 +110,7 @@ namespace Aucma.Core.RunPlc { var item = PlcHelper.melsecList.Where(c => c.Id == i).FirstOrDefault(); if (item == null) continue; - var test= item.plc.ReadInt16("D6050"); + var test = item.plc.ReadInt16("D6050"); if (item.plc.Read("M100").Result) { item.IsConnect = true; @@ -126,7 +149,7 @@ namespace Aucma.Core.RunPlc { var item = PlcHelper.siemensList.Where(c => c.Id == i).FirstOrDefault(); if (item == null) continue; - + if (await item.plc.Read("M100")) { item.IsConnect = true; diff --git a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.GeneratedMSBuildEditorConfig.editorconfig index a4db58d9..9ccba582 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 = D:\Project\gitea\AUCMA\SCADA\HwControlLib\ +build_property.ProjectDir = C:\Users\admin\Desktop\new\HwControlLib\ diff --git a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.assets.cache b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib.assets.cache index a056af0d3f9dc463157ec9d2f3a3a69d49f71e33..94237deae77449e15b1de268e8eaf041834e8973 100644 GIT binary patch delta 55 zcmV-70LcHC0hj?PP)kQa3;+NCPNzgMS+*;*K(x%Q=_&E%c`HK3pMj`xhr*QbgEI#6 Nl#wwbkw6HMR76l17Zm^i delta 55 zcmV-70LcHC0hj?PP)kQa3;+NC1=2zsn((&~-w4`;RFi3luc#t_$!4KJ{Z%2gWnG{6 Nl#wwbkw6HMR75y!7Bv6> diff --git a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib_MarkupCompile.i.cache b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib_MarkupCompile.i.cache index 303b31a5..e65f2c62 100644 --- a/HwControlLib/obj/Debug/net6.0-windows/HwControlLib_MarkupCompile.i.cache +++ b/HwControlLib/obj/Debug/net6.0-windows/HwControlLib_MarkupCompile.i.cache @@ -4,7 +4,7 @@ library C# .cs -D:\Project\gitea\AUCMA\SCADA\HwControlLib\obj\Debug\net6.0-windows\ +C:\Users\admin\Desktop\new\HwControlLib\obj\Debug\net6.0-windows\ HwControlLib none false diff --git a/HwControlLib/obj/HwControlLib.csproj.nuget.dgspec.json b/HwControlLib/obj/HwControlLib.csproj.nuget.dgspec.json index 8d86e7ef..add9488c 100644 --- a/HwControlLib/obj/HwControlLib.csproj.nuget.dgspec.json +++ b/HwControlLib/obj/HwControlLib.csproj.nuget.dgspec.json @@ -1,17 +1,17 @@ { "format": 1, "restore": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj": {} + "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj": {} }, "projects": { - "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj": { + "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj", "projectName": "HwControlLib", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", diff --git a/HwControlLib/obj/project.assets.json b/HwControlLib/obj/project.assets.json index 57c51ab1..f677335d 100644 --- a/HwControlLib/obj/project.assets.json +++ b/HwControlLib/obj/project.assets.json @@ -13,11 +13,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj", + "projectUniqueName": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj", "projectName": "HwControlLib", - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj", + "projectPath": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj", "packagesPath": "C:\\Users\\admin\\.nuget\\packages\\", - "outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\obj\\", + "outputPath": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\obj\\", "projectStyle": "PackageReference", "configFilePaths": [ "C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config", diff --git a/HwControlLib/obj/project.nuget.cache b/HwControlLib/obj/project.nuget.cache index 7ca2e0be..9ba71660 100644 --- a/HwControlLib/obj/project.nuget.cache +++ b/HwControlLib/obj/project.nuget.cache @@ -1,8 +1,8 @@ { "version": 2, - "dgSpecHash": "vdyWe2SVons+Y6get5R5Z1bsudk/C2JG+/yY8r3PrvTCQlFwmP/yYc/iedeQUqhixJt2UKO0GhNSvd1iLTRIlw==", + "dgSpecHash": "JDjgWv20IXFCTAhWCdzzRj+ikZ1qkhN9gc2sF/QTtvLEFRj4+uWNOm8ToTlf8Z5XGTGRjtiHjh91wbRwK9V4UQ==", "success": true, - "projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\HwControlLib\\HwControlLib.csproj", + "projectFilePath": "C:\\Users\\admin\\Desktop\\new\\HwControlLib\\HwControlLib.csproj", "expectedPackageFiles": [], "logs": [] } \ No newline at end of file From d72e8d9ede924ce99aaf489b3c7ced3e5e121092 Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 16 Jan 2024 11:02:39 +0800 Subject: [PATCH 03/12] =?UTF-8?q?change-=E6=89=AB=E7=A0=81=E5=99=A8?= =?UTF-8?q?=EF=BC=8C=E6=89=AB=E7=A0=81=E6=9E=AA=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/FoamMonitorPageViewModel.cs | 2 +- Aucma.Core.CodeBinding/Business/GunBusiness.cs | 16 +++++++++++----- Aucma.Core.Scanner/Helper/MvCodeHelper.cs | 13 +++++++++---- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs index 3a4fddb7..89d9dc47 100644 --- a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs @@ -359,7 +359,7 @@ namespace Aucma.Core.BoxFoam.ViewModels foreach (var item in list) { if (item.Status == 1) StatusColor.Add("Green"); - if (item.Status == 2) StatusColor.Add("Red"); + if (item.Status == 3) StatusColor.Add("Red"); if (!string.IsNullOrEmpty(item.FixtureBoxType)) FixtureName.Add(item.FixtureBoxType); if (!string.IsNullOrEmpty(item.Yield.ToString())) Production.Add(item.Yield.ToString()); // if (!string.IsNullOrEmpty(item.InternalTemperature.ToString())) InternalTemperature.Add(item.InternalTemperature.ToString()); diff --git a/Aucma.Core.CodeBinding/Business/GunBusiness.cs b/Aucma.Core.CodeBinding/Business/GunBusiness.cs index 3900e7f2..a21237f7 100644 --- a/Aucma.Core.CodeBinding/Business/GunBusiness.cs +++ b/Aucma.Core.CodeBinding/Business/GunBusiness.cs @@ -50,7 +50,7 @@ namespace Aucma.Core.CodeBinding.Business //忽略null字节 serialPort.DiscardNull = true; //接收事件 - serialPort.DataReceived += serialPort_DataReceived; + serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); //开启串口 serialPort.Open(); } @@ -72,14 +72,20 @@ namespace Aucma.Core.CodeBinding.Business { SerialPort serialPort = (SerialPort)sender; + + string code = serialPort.ReadExisting(); + + if (string.IsNullOrEmpty(code)) + { + return; + } + //业务处理 + Console.WriteLine("获取数据:" + code.Trim()); - //开启接收数据线程 - Thread threadReceiveSub = new Thread(new ParameterizedThreadStart(ReceiveData)); - threadReceiveSub.Start(serialPort); } catch (Exception ex) { - throw; + Console.Write(ex.ToString()); } } private static void ReceiveData(object serialPortobj) diff --git a/Aucma.Core.Scanner/Helper/MvCodeHelper.cs b/Aucma.Core.Scanner/Helper/MvCodeHelper.cs index 8d86809c..6267ed39 100644 --- a/Aucma.Core.Scanner/Helper/MvCodeHelper.cs +++ b/Aucma.Core.Scanner/Helper/MvCodeHelper.cs @@ -74,6 +74,7 @@ namespace Aucma.Core.Scanner // (成功创建)连接上的设备和其ip(string)集合 public static Dictionary m_cMyDevices = new Dictionary(); + private static string lastCodeStr = string.Empty; #region 设备连接状态 /// @@ -342,11 +343,15 @@ namespace Aucma.Core.Scanner } string strCode = Encoding.GetEncoding("UTF-8").GetString(buffer).Trim().TrimEnd('\0'); log.Info("相机ip:" + hashmap.Value + " Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode + "]"); - if (!string.IsNullOrEmpty(strCode)) + if (!string.IsNullOrEmpty(strCode) && !strCode.Equals(lastCodeStr)) { - DoorReceiveCodeDelegateEvent?.Invoke(strCode);//箱门匹配扫码器 - // 获取到条码处理业务 - Console.WriteLine(strCode,hashmap.Value); + // DoorReceiveCodeDelegateEvent?.Invoke(strCode);//箱门匹配扫码器 + // 获取到条码处理业务 + + Console.WriteLine(strCode,hashmap.Value); + // 泡前库业务处理 + // PQKReceiveCodeEvent(strCode); + lastCodeStr = strCode; } } } From 27c2b9b931997d867908b9f705a40bebcbaaba7f Mon Sep 17 00:00:00 2001 From: liuwf Date: Fri, 19 Jan 2024 17:03:21 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=B8=8B=E7=BA=BF=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Business/offLineBusiness.cs | 58 +++++++++++-------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs index fb73737f..01a71542 100644 --- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs +++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs @@ -340,15 +340,16 @@ namespace Aucma.Core.ProductOffLine.Business #endregion //界面刷新 TempOffLineInfo.ProductRefreshFlag = true; - // 多码系统校验,是否需要待定,现场看情况 + // 多码系统校验,暂不启用 // bool flag = TestBarCode(TempOffLineInfo); // if (!flag) // { // return false; // } log.Info(TempOffLineInfo.ProductSNCode + ", 多码验证通过!"); - return true; - } + //2.上传条码系统 + return uploadSnSysytem(TempOffLineInfo); + } else { @@ -382,18 +383,33 @@ namespace Aucma.Core.ProductOffLine.Business TempOffLineInfo.ProductRefreshFlag = true; return false; } + + } + catch (Exception ex) + { + TempOffLineInfo.MsgInfo = "获取产品条码异常:" + ex.Message; + TempOffLineInfo.MsgAlarmFlag = true; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + log.Info(BarCode + "条码验证异常:" + ex.Message.ToString()); + return false; + } + } - //2.上传条码系统 + public bool uploadSnSysytem(TempInfo TempOffLineInfo) + { + try + { if (!string.IsNullOrEmpty(TempOffLineInfo.ProductOrderNo)) { - // 条码系统保存接口 - string strSave = _productOffLineServices.SaveBarcodeInfo(BarCode.Trim(), "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1); - // string strSave = "Y"; + // 条码系统保存接口 + string strSave = _productOffLineServices.SaveBarcodeInfo(TempOffLineInfo.ProductSNCode, "ILS_SORT", TempOffLineInfo.ProductOrderNo, 1); + // string strSave = "Y"; if (!string.IsNullOrEmpty(strSave)) { if (strSave == "Y") { - log.Info(BarCode + "上传条码成功:" + strSave); + log.Info(TempOffLineInfo.ProductSNCode + "上传条码成功:" + strSave); TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码成功"; // mes查询订单数据, 异常处理:后期可能根据SN码查箱体码,查订单号并检查更新订单数据 @@ -414,22 +430,22 @@ namespace Aucma.Core.ProductOffLine.Business //界面刷新 TempOffLineInfo.ProductRefreshFlag = true; - + return true; } else { - log.Info(BarCode + "上传条码失败:" + strSave); + log.Info(TempOffLineInfo.ProductSNCode + "上传条码失败:" + strSave); TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + ",上传条码失败" + strSave; - + if (strSave.Contains("条码重复")) { // 查询本地数据库是否有数据 - OffLineInfo offLineInfo = _offLineInfoServices.FirstAsync(x => x.ProductSNCode == BarCode).Result; + OffLineInfo offLineInfo = _offLineInfoServices.FirstAsync(x => x.ProductSNCode == TempOffLineInfo.ProductSNCode).Result; if (offLineInfo != null) { - log.Info(BarCode + "条码重复,本地已存在,放行"); + log.Info(TempOffLineInfo.ProductSNCode + "条码重复,本地已存在,放行"); TempOffLineInfo.MsgInfo = TempOffLineInfo.MsgInfo + "条码重复,本地已存在,放行"; //界面刷新 TempOffLineInfo.ProductRefreshFlag = true; @@ -442,7 +458,7 @@ namespace Aucma.Core.ProductOffLine.Business } else { - log.Info(BarCode + "条码重复,本地不存在,已插入,放行"); + log.Info(TempOffLineInfo.ProductSNCode + "条码重复,本地不存在,已插入,放行"); OffLineInfo info11 = MapperTwo(TempOffLineInfo); _offLineInfoServices.AddAsync(info11); return true; @@ -473,17 +489,11 @@ namespace Aucma.Core.ProductOffLine.Business return false; } } - catch (Exception ex) - { - TempOffLineInfo.MsgInfo = "获取产品条码异常:" + ex.Message; - TempOffLineInfo.MsgAlarmFlag = true; - //界面刷新 - TempOffLineInfo.ProductRefreshFlag = true; - log.Info(BarCode + "条码验证异常:" + ex.Message.ToString()); - return false; + catch (Exception ex) + { + log.Error(ex.Message.ToString()); + } } - } - #region plc交互 /// /// 下发plc放行信号,传进来扫码器编号,分垛方向A或者B,返回plc反馈结果 From 275ab8da3ee03cbaa10a385a76da5408d975c48b Mon Sep 17 00:00:00 2001 From: liuwf Date: Fri, 19 Jan 2024 17:29:17 +0800 Subject: [PATCH 05/12] . --- Aucma.Core.ProductOffLine/Business/offLineBusiness.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs index 01a71542..73f819a7 100644 --- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs +++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs @@ -492,6 +492,7 @@ namespace Aucma.Core.ProductOffLine.Business catch (Exception ex) { log.Error(ex.Message.ToString()); + return false; } } #region plc交互 From 7f173b2bed6bab88aa4474efce5dc6622c902562 Mon Sep 17 00:00:00 2001 From: liuwf Date: Tue, 23 Jan 2024 11:31:01 +0800 Subject: [PATCH 06/12] =?UTF-8?q?add-=E6=88=90=E5=93=81=E4=B8=8B=E7=BA=BF?= =?UTF-8?q?=E8=B4=A8=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IReportQualityInspectionRepository.cs | 20 +++ .../IReportQualityInspectionServices.cs | 21 ++++ .../Model_New/ReportQualityInsPection.cs | 117 ++++++++++++++++++ .../ReportQualityInspectionRepository.cs | 23 ++++ .../ReportQualityInspectionServices.cs | 49 ++++++++ .../Business/offLineBusiness.cs | 116 ++++++++++------- 6 files changed, 299 insertions(+), 47 deletions(-) create mode 100644 Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs create mode 100644 Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs create mode 100644 Admin.Core.Model/Model_New/ReportQualityInsPection.cs create mode 100644 Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs create mode 100644 Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs diff --git a/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs b/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs new file mode 100644 index 00000000..89d71570 --- /dev/null +++ b/Admin.Core.IRepository/IRepository_New/IReportQualityInspectionRepository.cs @@ -0,0 +1,20 @@ +using Admin.Core.Model; +using Admin.Core.Model.Model_New; +using Admin.Core.Model.ViewModels; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Admin.Core.IRepository +{ + /// + /// 质检记录 + /// + public interface IReportQualityInspectionRepository : IBaseRepository + { + + + + + + } +} \ No newline at end of file diff --git a/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs b/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs new file mode 100644 index 00000000..6fb3f53d --- /dev/null +++ b/Admin.Core.IService/IService_New/IReportQualityInspectionServices.cs @@ -0,0 +1,21 @@ +using Admin.Core.Model; +using Admin.Core.Model.ViewModels; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Admin.Core.IService +{ + /// + /// 质检记录 + /// + public interface IReportQualityInspectionServices : IBaseServices + { + /// + /// 判断是否有不合格质检项 + /// + /// + List JudgeIsQualified(string barCode); + + } +} \ No newline at end of file diff --git a/Admin.Core.Model/Model_New/ReportQualityInsPection.cs b/Admin.Core.Model/Model_New/ReportQualityInsPection.cs new file mode 100644 index 00000000..80b2185a --- /dev/null +++ b/Admin.Core.Model/Model_New/ReportQualityInsPection.cs @@ -0,0 +1,117 @@ +using NPOI.SS.Formula.Functions; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Admin.Core.Model +{ + /// + /// 质检记录 + /// + [SugarTable("REPORT_QUALITY_INSPECTION", "AUCMA_MES")] + public class ReportQualityInsPection + { + /// + /// 主键 + /// + [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true, OracleSequenceName = "SEQ_REPORT_QUALITY_INSPECTION")] + public int ObjId { get; set; } + + /// + /// 箱体条码 + /// + [SugarColumn(ColumnName = "BAR_CODE")] + public string BarCode { get; set; } + + /// + /// 物料名称 + /// + [SugarColumn(ColumnName = "MATERIAL_NAME")] + public string MaterialName { get; set; } + /// + /// 工序编号 + /// + [SugarColumn(ColumnName = "PROCESS_CODE")] + public string ProcessCode { get; set; } + /// + /// 检测项(工位)编号 + /// + [SugarColumn(ColumnName = "TEST_ITEM_CODE")] + public string TestItemCode { get; set; } + /// + /// 质量缺陷编码 + /// + [SugarColumn(ColumnName = "QUALITY_DEFECT_CODE")] + public string QualityDefectCode { get; set; } + /// + /// 质量缺陷名称 + /// + [SugarColumn(ColumnName = "QUALITY_DEFECT_NAME")] + public string QualityDefectName { get; set; } + /// + /// 质检处理措施(3=合格,1=返修) + /// + [SugarColumn(ColumnName = "TREATMENT_MEASURE")] + public string TreatmentMeasure { get; set; } + /// + /// 返修处理结果 + /// + [SugarColumn(ColumnName = "PROCESS_RESULT")] + public string ProcessResult { get; set; } + /// + /// 是否下静态线(1-是;2-否) + /// + [SugarColumn(ColumnName = "IS_LOWER_LINE")] + public string IsLowerLine { get; set; } + /// + /// 班组编号 + /// + [SugarColumn(ColumnName = "GROUP_CODE")] + public string GroupCode { get; set; } + /// + /// 检测人员 + /// + [SugarColumn(ColumnName = "INSPECTOR_CODE")] + public string InspectorCode { get; set; } + /// + /// 检测时间 + /// + [SugarColumn(ColumnName = "INSPECTOR_TIME")] + public DateTime InspectorTime { get; set; } + /// + /// 返修次数 + /// + [SugarColumn(ColumnName = "REWORK_NUMBER")] + public int ReworkNumber { get; set; } + /// + /// 返修完成时间 + /// + [SugarColumn(ColumnName = "FINISH_TIME")] + public DateTime FinishTime { get; set; } + /// + /// 返修结果(1=正常,2=异常) + /// + [SugarColumn(ColumnName = "IS_FLAG")] + public int IsFlag { get; set; } + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "UPDATED_BY")] + public string UpdatedBy { get; set; } + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "UPDATED_TIME")] + public DateTime UpdatedTime { get; set; } + /// + /// 检测人工位编号 + /// + [SugarColumn(ColumnName = "STATION_CODE")] + public string StationCode { get; set; } + + + } +} diff --git a/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs b/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs new file mode 100644 index 00000000..bcb3059e --- /dev/null +++ b/Admin.Core.Repository/Repository_New/ReportQualityInspectionRepository.cs @@ -0,0 +1,23 @@ +using Admin.Core.IRepository; +using Admin.Core.Model; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Admin.Core.Repository +{ + /// + /// 质检记录 + /// + public class ReportQualityInspectionRepository : BaseRepository, IReportQualityInspectionRepository + { + public ReportQualityInspectionRepository(IUnitOfWork unitOfWork) : base(unitOfWork) + { + } + + } +} diff --git a/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs b/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs new file mode 100644 index 00000000..33cd6326 --- /dev/null +++ b/Admin.Core.Service/Service_New/ReportQualityInspectionServices.cs @@ -0,0 +1,49 @@ +using Admin.Core.IRepository; +using Admin.Core.IService; +using Admin.Core.Model; +using Admin.Core.Model.Model_New; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Admin.Core.Service +{ + /// + /// 质检记录 + /// + public class ReportQualityInspectionServices : BaseServices, IReportQualityInspectionServices + { + private readonly IBaseRepository _dal; + private readonly IReportQualityInspectionRepository _baseSpaceInfoRepository; + private readonly ICodeBindingRecordRepository _codeBindingRecordRepository; + public ReportQualityInspectionServices(IBaseRepository dal, IReportQualityInspectionRepository reportQualityInspectionRepository, ICodeBindingRecordRepository codeBindingRepository) + { + _baseSpaceInfoRepository = reportQualityInspectionRepository; + _codeBindingRecordRepository = codeBindingRepository; + this._dal = dal; + base.BaseDal = dal; + } + + + /// + /// 判断是否有不合格质检项,传入的是SN码 + /// + /// + public List JudgeIsQualified(string SnCode) + { + try + { + string boxCode = _codeBindingRecordRepository.Query(s => s.ProductCode == SnCode).FirstOrDefault().BoxCode; + var list = _baseSpaceInfoRepository.Query(x=>x.BarCode.Equals(boxCode) && x.IsFlag!=1); + return list; + + } + catch (System.Exception ex) + { + Console.WriteLine(ex.Message); + return null; + } + } + } +} \ No newline at end of file diff --git a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs index 73f819a7..1a7da643 100644 --- a/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs +++ b/Aucma.Core.ProductOffLine/Business/offLineBusiness.cs @@ -72,7 +72,8 @@ namespace Aucma.Core.ProductOffLine.Business private readonly IMaterialCompletionServices? _iMaterialCompletionServices = App.ServiceProvider.GetService(); private readonly ICodeBindingRecordServices? _codeBindingServices = App.ServiceProvider.GetService(); - + // 质检记录 + private readonly IReportQualityInspectionServices? _reportQualityInspectionServices = App.ServiceProvider.GetService(); #endregion #region 委托事件 @@ -104,23 +105,23 @@ namespace Aucma.Core.ProductOffLine.Business public void test() { - + // string result = await _productOffLineServices.QueryChecked("1531000AP0098DCU0481"); // Console.WriteLine(result); // string tt = "Y@1104@16160030000000910780@000010034895@@ @000000@000000009000004899@BCD-160C,家电下乡@@BCD-160C@皓月白-家电下乡@161601300@160@1-00版@家电下乡产品@默认@2010-09-01"; - Task.Run(() => - { - while(true) - { - Thread.Sleep(50000); - Random random = new Random(); - MaterialBarScan("32160030000000912"+random.Next(100,999), "192.168.1.19"); - } - - // Thread.Sleep(1000); - // MaterialBarScanEvent("33160030000000910780", "192.168.1.20"); - }); + //Task.Run(() => + //{ + // while(true) + // { + // Thread.Sleep(50000); + // Random random = new Random(); + // MaterialBarScan("32160030000000912"+random.Next(100,999), "192.168.1.19"); + // } + + // // Thread.Sleep(1000); + // // MaterialBarScanEvent("33160030000000910780", "192.168.1.20"); + //}); } /// @@ -130,60 +131,57 @@ namespace Aucma.Core.ProductOffLine.Business /// 扫码器IP public void MaterialBarScan(string code,string scannerIp) { + try + { int ScannerNo = scannerIp == Appsettings.app("Middleware", "Scanner1", "Ip") ? 1 : 2; // 确定是哪个扫码器 - log.Info("扫码器ip:" + scannerIp +"编号:["+ScannerNo+ "]扫描到条码:" + code); - + log.Info("扫码器ip:" + scannerIp + "编号:[" + ScannerNo + "]扫描到条码:" + code); + string materialType = ""; bool BackResult = false; if (ScannerNo == 1) { //1.扫描的SN条码去条码系统校验 - BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1 - materialType = TempOffLineInfo1.ProductCode; - TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + ",plc放行成功"; - - //界面刷新 - TempOffLineInfo1.ProductRefreshFlag = true; - return; - if (!BackResult) + BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo1); //扫码器1 + materialType = TempOffLineInfo1.ProductCode; + if (!BackResult) { return; } // 2.更新mes数据库 - BackResult = updateMesData(TempOffLineInfo1); + BackResult = updateMesData(TempOffLineInfo1); // 3.plc放行 if (BackResult) { - bool plcResult =SendAndWaitSignal(ScannerNo, materialType); - if (plcResult) - { - TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行成功"; - - //界面刷新 - TempOffLineInfo1.ProductRefreshFlag = true; - } - else - { - TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行异常"; - TempOffLineInfo1.MsgAlarmFlag = true; - //界面刷新 - TempOffLineInfo1.ProductRefreshFlag = true; - } - log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty)); + bool plcResult = SendAndWaitSignal(ScannerNo, materialType); + if (plcResult) + { + TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行成功"; + + //界面刷新 + TempOffLineInfo1.ProductRefreshFlag = true; + } + else + { + TempOffLineInfo1.MsgInfo = TempOffLineInfo1.MsgInfo + "plc放行异常"; + TempOffLineInfo1.MsgAlarmFlag = true; + //界面刷新 + TempOffLineInfo1.ProductRefreshFlag = true; + } + log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo1.ProductOrderNo, TempOffLineInfo1.OrderQty)); } - + } // 扫码器2 else if (ScannerNo == 2) { - BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2 + BackResult = HandleMaterialBarCode(code.Trim(), TempOffLineInfo2); //扫码器2 materialType = TempOffLineInfo2.ProductCode; if (!BackResult) { return; } // 2.更新mes数据库 - BackResult = updateMesData(TempOffLineInfo2); + BackResult = updateMesData(TempOffLineInfo2); // 3.plc放行 if (BackResult) { @@ -191,7 +189,7 @@ namespace Aucma.Core.ProductOffLine.Business if (plcResult) { TempOffLineInfo2.MsgInfo = TempOffLineInfo2.MsgInfo + "plc放行成功"; - + //界面刷新 TempOffLineInfo2.ProductRefreshFlag = true; } @@ -204,8 +202,14 @@ namespace Aucma.Core.ProductOffLine.Business } log.Info(String.Format("订单号{0} 订单数量{1}", TempOffLineInfo2.ProductOrderNo, TempOffLineInfo2.OrderQty)); } + } + } - + catch (Exception ex) + { + log.Error(ex.Message.ToString()); + } + } /// @@ -300,7 +304,25 @@ namespace Aucma.Core.ProductOffLine.Business { try { - + // 1.质检 + List qualityList = _reportQualityInspectionServices.JudgeIsQualified(BarCode); + if(qualityList != null) + { + TempOffLineInfo.QualityResult = "失败"; + TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1 + TempOffLineInfo.ProductScanTime = System.DateTime.Now; // 扫码时间*2 + TempOffLineInfo.MsgInfo = "条码质检失败:"; + foreach(ReportQualityInsPection item in qualityList) + { + TempOffLineInfo.MsgInfo += item.QualityDefectName; + } + TempOffLineInfo.MsgAlarmFlag = true; + //界面刷新 + TempOffLineInfo.ProductRefreshFlag = true; + return false; + } + + TempOffLineInfo.QualityResult = "成功"; TempOffLineInfo.ProductSNCode = BarCode.Trim(); //产品SN条码*1 From e711d124c4212c8659ff5c38fa79a2e3c59bc381 Mon Sep 17 00:00:00 2001 From: liuwf Date: Thu, 25 Jan 2024 17:28:47 +0800 Subject: [PATCH 07/12] =?UTF-8?q?change-MvCodeHelper=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=89=AB=E7=A0=81=E5=99=A8=E5=88=9D=E5=A7=8B=E5=8C=96=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=89=80=E6=9C=89=E6=89=AB=E7=A0=81=E5=99=A8=20change?= =?UTF-8?q?=20-=20=E6=89=80=E6=9C=89appsetting=E6=96=87=E4=BB=B6=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E5=99=A8=E9=85=8D=E7=BD=AE=E6=8F=90=E5=8F=96=20change?= =?UTF-8?q?=20-=20=E5=90=88=E5=B9=B6=E6=9D=A1=E7=A0=81=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E6=9D=A1=E7=A0=81=E9=80=BB=E8=BE=91=20add=20?= =?UTF-8?q?-=20=E5=88=86=E5=9E=9B=E4=B8=8A=E4=BD=8D=E6=9C=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=B4=A7=E9=81=93=E7=95=8C=E9=9D=A2=EF=BC=8C=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E4=B8=9A=E5=8A=A1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin.Core.Model/Model_New/BaseSpaceInfo.cs | 19 +- .../ViewModels/BeforeFoamingPageModelView.cs | 1 + Aucma.Core.BoxFoam/appsettings.json | 9 +- .../ViewModels/IndexPageViewModel.cs | 70 +-- Aucma.Core.CodeBinding/appsettings.json | 22 +- Aucma.Core.DoorFoam/appsettings.json | 9 +- .../Aucma.Core.Palletiz.csproj | 6 + .../Aucma.Core.Palletiz.csproj.user | 6 + .../Business/InstoreBusiness.cs | 48 ++ Aucma.Core.Palletiz/Models/SpaceModel.cs | 46 ++ .../ViewModels/IndexPageViewModel.cs | 21 +- .../ViewModels/PalletizPageViewModel.cs | 62 ++- .../ViewModels/SelectTypeViewModel.cs | 415 ++++++++++++++++++ .../Views/HandPalletizWindow.xaml | 86 ++++ .../Views/HandPalletizWindow.xaml.cs | 187 ++++++++ Aucma.Core.Palletiz/Views/IndexPageView.xaml | 4 + .../Views/PalletizPageView.xaml | 35 +- .../Views/PalletizPageView.xaml.cs | 9 +- Aucma.Core.Palletiz/Views/SelectType.xaml | 248 +++++++++++ Aucma.Core.Palletiz/Views/SelectType.xaml.cs | 48 ++ Aucma.Core.Palletiz/appsettings.json | 48 +- .../Business/offLineBusiness.cs | 8 +- Aucma.Core.ProductOffLine/appsettings.json | 16 +- Aucma.Core.Scanner/Aucma.Core.Scanner.csproj | 1 + Aucma.Core.Scanner/Helper/MvCodeHelper.cs | 67 +-- Aucma.Core.Scanner/ScannerModel.cs | 27 ++ 26 files changed, 1385 insertions(+), 133 deletions(-) create mode 100644 Aucma.Core.Palletiz/Business/InstoreBusiness.cs create mode 100644 Aucma.Core.Palletiz/Models/SpaceModel.cs create mode 100644 Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs create mode 100644 Aucma.Core.Palletiz/Views/HandPalletizWindow.xaml create mode 100644 Aucma.Core.Palletiz/Views/HandPalletizWindow.xaml.cs create mode 100644 Aucma.Core.Palletiz/Views/SelectType.xaml create mode 100644 Aucma.Core.Palletiz/Views/SelectType.xaml.cs create mode 100644 Aucma.Core.Scanner/ScannerModel.cs diff --git a/Admin.Core.Model/Model_New/BaseSpaceInfo.cs b/Admin.Core.Model/Model_New/BaseSpaceInfo.cs index 908966e6..d196dd2d 100644 --- a/Admin.Core.Model/Model_New/BaseSpaceInfo.cs +++ b/Admin.Core.Model/Model_New/BaseSpaceInfo.cs @@ -87,7 +87,9 @@ namespace Admin.Core.Model /// [SugarColumn(ColumnName = "MATERIAL_TYPE")] public string MaterialType { get; set; } - + /// + /// 夹具箱型 + /// [SugarColumn(ColumnName ="BOXTYPE")] public string BoxType { get; set; } @@ -146,5 +148,20 @@ namespace Admin.Core.Model [SugarColumn(ColumnName = "TYPE_NAME_C")] public string typeNameC { get; set; } + /// + ///分垛使用字段,箱体入库旋转角度(90,180,270) + /// + [SugarColumn(ColumnName = "ROTATION_RANGE")] + public int RotationRange { get; set; } + /// + /// 分垛使用字段,是否大产品占两个货道,1-是;0-否 + /// + [SugarColumn(ColumnName = "IS_TWO_SPACE")] + public int IsTwoSpace { get; set; } + /// + /// 分垛使用字段,记录同型号上次入的货道,如FD01_002 + /// + [SugarColumn(ColumnName = "LAST_SPACE")] + public string LastSpace { get; set; } } } diff --git a/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs b/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs index d4c92f46..d53a8e9e 100644 --- a/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs +++ b/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs @@ -97,6 +97,7 @@ namespace Aucma.Core.BoxFoam.ViewModels string storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode");//泡前库code var baseSpaceInfolist = _baseSpaceInfoServices.QueryAsync(d => d.StoreCode==storeCode).Result;//仓库 + if (baseSpaceInfolist == null) return; Shapes.Clear(); diff --git a/Aucma.Core.BoxFoam/appsettings.json b/Aucma.Core.BoxFoam/appsettings.json index 2a51672d..17b2dabd 100644 --- a/Aucma.Core.BoxFoam/appsettings.json +++ b/Aucma.Core.BoxFoam/appsettings.json @@ -190,12 +190,15 @@ }, "Scanner": { //扫码器 "Enabled": true - }, - "Scanner1": { //扫码器1 + } + }, + "ScannerServer": [ + { + "Id": 1, "Ip": "10.10.93.46", "Name": "扫码器1" } - }, + ], "PLCServer": [ { "Id": 1, diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index 7ccdb350..96eb5ac6 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -35,6 +35,7 @@ using Microsoft.IdentityModel.Logging; using static Npgsql.Replication.PgOutput.Messages.RelationMessage; using Aucma.Core.HwPLc; using System.Windows.Documents; +using Admin.Core.Common; /* * 首页信息 */ @@ -55,8 +56,9 @@ namespace Aucma.Core.CodeBinding.ViewModels // 静态变量存code2 private static string code2Str = string.Empty; + //配置文件扫码器列表 + private readonly List allScanners = Appsettings.app("ScannerServer").ToList(); - public IndexPageViewModel() { try @@ -67,28 +69,27 @@ namespace Aucma.Core.CodeBinding.ViewModels _printBarCodeServices = App.ServiceProvider.GetService(); _iMaterialCompletionServices = App.ServiceProvider.GetService(); - MvCodeHelper.ReceiveCode1Event += receiveCode1; - MvCodeHelper.ReceiveCode2Event += receiveCode2; - + MvCodeHelper.BindingReceiveCodeEvent += receiveCode; + LoadData(); add(); //实时绑定条码和实时下发plc放行信号 realBindingAndSendPlc(); LoadCharts(); - Task.Run(() => - { - while (true) - { + //Task.Run(() => + //{ + // while (true) + // { - Random result = new Random(); - Thread.Sleep(20000); - receiveCode1("B24010181060282920"+ result.Next(100,999)); - Thread.Sleep(1000); - receiveCode2("16160030000000910"+ result.Next(100, 999)); - } + // Random result = new Random(); + // Thread.Sleep(20000); + // receiveCode1("B24010181060282920"+ result.Next(100,999)); + // Thread.Sleep(1000); + // receiveCode2("16160030000000910"+ result.Next(100, 999)); + // } - }); + //}); } catch (Exception ex) @@ -373,13 +374,31 @@ namespace Aucma.Core.CodeBinding.ViewModels - - private async void receiveCode1(string code1) + /// + /// 接收扫码器传输的条码,扫码器ip + /// + /// + /// + private async void receiveCode(string code1,string scannerIp) { - log.Info("扫描到MES条码:" + code1); - // 全局变量赋值,SN码扫描后使用 - code1Str = code1; - RefreshCode1(code1); + + ScannerModel model = allScanners.FirstOrDefault(x => x.Ip == scannerIp); + if(model.Id==1) + { + log.Info("扫描到MES条码:" + code1); + // 全局变量赋值,SN码扫描后使用 + code1Str = code1; + RefreshCode1(code1); + } + else + { + log.Info("扫描到成品条码:" + code1); + // 1.刷新界面条码信息 + // 全局变量赋值,mes条码扫描后使用 + code2Str = code2; + RefreshCode2(code2); + } + #region // 2.创建任务更新数据库条码1 // CodeBindingRecord codeRecord = new CodeBindingRecord(); @@ -400,15 +419,6 @@ namespace Aucma.Core.CodeBinding.ViewModels #endregion } - private async void receiveCode2(string code2) - { - log.Info("扫描到成品条码:" + code1); - // 1.刷新界面条码信息 - // 全局变量赋值,SN码扫描后使用 - code2Str = code2; - RefreshCode2(code2); - } - private void RefreshCode1(string code1) { diff --git a/Aucma.Core.CodeBinding/appsettings.json b/Aucma.Core.CodeBinding/appsettings.json index 93f51ffb..4f23e6ee 100644 --- a/Aucma.Core.CodeBinding/appsettings.json +++ b/Aucma.Core.CodeBinding/appsettings.json @@ -192,18 +192,22 @@ "Scanner": { //扫码器 "Enabled": true }, - "Scanner1": { //扫码器1 - "Ip": "169.254.91.169", - "Name": "扫码器1" - }, - "Scanner2": { //扫码器2 - "Ip": "192.168.1.20", - "Name": "扫码器2" - }, "ScannerGun": { //扫码枪 "Enabled": true } }, + "ScannerServer": [ + { + "Id": 1, + "Ip": "169.254.91.169", + "Name": "mes扫码器" + }, + { + "Id": 2, + "Ip": "192.168.1.20", + "Name": "sn扫码器" + } + ], "PLCServer": [ { "Id": 1, @@ -213,7 +217,7 @@ "IP": "127.0.0.1", "Port": 6000 } - + ], "IpRateLimiting": { "EnableEndpointRateLimiting": false, //False: globally executed, true: executed for each diff --git a/Aucma.Core.DoorFoam/appsettings.json b/Aucma.Core.DoorFoam/appsettings.json index ae220806..5e6a15c8 100644 --- a/Aucma.Core.DoorFoam/appsettings.json +++ b/Aucma.Core.DoorFoam/appsettings.json @@ -190,12 +190,15 @@ }, "Scanner": { //扫码器 "Enabled": false - }, - "Scanner1": { //扫码器1 + } + }, + "ScannerServer": [ + { + "Id": 1, "Ip": "192.168.1.19", "Name": "扫码器1" } - }, + ], "PLCServer": [ { "Id": 1, diff --git a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj index 3f3aff86..b37e4967 100644 --- a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj +++ b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj @@ -78,6 +78,9 @@ + + Code + Code @@ -87,6 +90,9 @@ Code + + Code + Code diff --git a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user index 77bfa98d..3aa82189 100644 --- a/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user +++ b/Aucma.Core.Palletiz/Aucma.Core.Palletiz.csproj.user @@ -7,6 +7,9 @@ + + Designer + Designer @@ -22,6 +25,9 @@ Designer + + Designer + Designer diff --git a/Aucma.Core.Palletiz/Business/InstoreBusiness.cs b/Aucma.Core.Palletiz/Business/InstoreBusiness.cs new file mode 100644 index 00000000..3a35be8e --- /dev/null +++ b/Aucma.Core.Palletiz/Business/InstoreBusiness.cs @@ -0,0 +1,48 @@ +using Admin.Core.Common; +using Aucma.Core.Scanner; +using log4net; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Aucma.Core.Palletiz.Business +{ + /// + ///分垛入库业务处理 + /// + public class InstoreBusiness + { + #region 单例实现 + private static readonly InstoreBusiness lazy = new InstoreBusiness(); + public static InstoreBusiness Instance + { + get + { + return lazy; + } + } + #endregion + + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(InstoreBusiness)); + + public void test() + { + + } + #region 扫码入库处理 + /// + /// + /// + /// 成品码 + /// 扫码器ip + /// + public async Task InStore(string SNCode,string scannerIp) + { + List allScanners = Appsettings.app("ScannerServer").ToList(); + ScannerModel model = allScanners.FirstOrDefault(x => x.Ip == scannerIp); + } + #endregion + } +} \ No newline at end of file diff --git a/Aucma.Core.Palletiz/Models/SpaceModel.cs b/Aucma.Core.Palletiz/Models/SpaceModel.cs new file mode 100644 index 00000000..0a30aa3c --- /dev/null +++ b/Aucma.Core.Palletiz/Models/SpaceModel.cs @@ -0,0 +1,46 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Aucma.Core.Palletiz.Models +{ + /// + /// 货道模型 + /// + public class SpaceModel : ObservableObject + { + /// + /// 货道编号 + /// + public string SpaceCode { get; set; } + /// + /// 货道名称 + /// + public string? SpaceName { get; set; } + /// + /// 仓库编号 + /// + public string? StoreCode { get; set; } + /// + /// 产品编码 + /// + public string? MaterialType { get; set; } + /// + /// 产品名称 + /// + public string? typeNameA { get; set; } + /// + /// 转向角度 + /// + public int? RotationRange { get; set; } + /// + /// 是否占两道 + /// + public int? IsTwoSpace { get; set; } + + + } +} diff --git a/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs index 11365412..c2dfebf1 100644 --- a/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/IndexPageViewModel.cs @@ -5,6 +5,8 @@ using LiveCharts.Wpf; using LiveCharts; using System.Collections.Generic; using System.Windows.Media; +using CommunityToolkit.Mvvm.Input; +using Aucma.Core.Palletiz.Views; /* * 成品分垛入库首页信息 @@ -22,8 +24,8 @@ namespace Aucma.Core.Palletiz.ViewModels //MaterialName = "SC-AUCMA-农夫山泉,SC"; //OrderNo = "8512365486"; //BeginTime = DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss"); - - InitEveryDayMethod(); + HandPalletizCommand = new RelayCommand(obj => HandPalletizCommandExecute()); + InitEveryDayMethod(); } #region 扫描信息 @@ -123,7 +125,20 @@ namespace Aucma.Core.Palletiz.ViewModels Achievement.Add(column2); } - + + + /// + /// 手动分垛 + /// + public RelayCommand HandPalletizCommand { get; set; } + + private void HandPalletizCommandExecute() + { + HandPalletizWindow handPalletizPage = new HandPalletizWindow(); + handPalletizPage.ShowDialog(); + + } + #region 日产量柱状图 /// diff --git a/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs b/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs index 0af2b444..c0ee1154 100644 --- a/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs +++ b/Aucma.Core.Palletiz/ViewModels/PalletizPageViewModel.cs @@ -1,17 +1,75 @@ -using Aucma.Core.Palletiz.Views; +using Admin.Core.IService; +using Admin.Core.Model; +using Aucma.Core.Palletiz.Models; +using Aucma.Core.Palletiz.Views; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; +using log4net; +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; namespace Aucma.Core.Palletiz.ViewModels { public partial class PalletizPageViewModel : ObservableObject { - public PalletizPageViewModel() { } + private static readonly log4net.ILog log = LogManager.GetLogger(typeof(PalletizPageViewModel)); + private readonly IBaseSpaceInfoServices? _baseSpaceInfoServices; + + + public PalletizPageViewModel() { + _baseSpaceInfoServices = App.ServiceProvider.GetService(); + LoadDataGrid(); + SelectTypeViewModel.RefreshPageEvent += LoadDataGrid; + } + public void LoadDataGrid() + { + Spaces.Clear(); + var spaceList = _baseSpaceInfoServices.Query(X => X.StoreCode.Contains("FDK")).OrderBy(x=>x.ObjId); + foreach(BaseSpaceInfo space in spaceList) + { + Spaces.Add(space); + } + + } + + #region 初始化 + private ObservableCollection _spaces = new ObservableCollection(); + public ObservableCollection Spaces + { + get => _spaces; + set => SetProperty(ref _spaces, value); + } + #endregion + + + public void MouseClick(object obj) + { + + var info = SelectedDataItem as BaseSpaceInfo; + if (info != null) + { + SelectType direct = new SelectType(info); + direct.ShowDialog(); + } + + } + + private BaseSpaceInfo selectedDataItem; + public BaseSpaceInfo SelectedDataItem + { + get { return selectedDataItem; } + set + { + selectedDataItem = value; + OnPropertyChanged(); + } + } [RelayCommand] public void AddStore() diff --git a/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs b/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs new file mode 100644 index 00000000..866b3f9b --- /dev/null +++ b/Aucma.Core.Palletiz/ViewModels/SelectTypeViewModel.cs @@ -0,0 +1,415 @@ +using Admin.Core.Common; +using Admin.Core.IService; +using Admin.Core.Model; +using Admin.Core.Service; +using Aucma.Core.Palletiz.Common; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Messaging; +using log4net; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Logging; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; + +namespace Aucma.Core.Palletiz.ViewModels +{ + public partial class SelectTypeViewModel : ObservableObject + { + + /// + /// 委托,关闭窗口 + /// + /// + public delegate void close(); + public event close closeEvent; + + /// + /// 刷新货道页面 + /// + /// + public delegate void RefreshPage(); + public static event RefreshPage RefreshPageEvent; + + + public RelayCommand QueryCommand { get; set; } + public RelayCommand deleteCommand { get; set; } + public RelayCommand SaveCommand { get; set; } + + public RelayCommand SearchCriteriaSetCommand { get; set; } + + + + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(BaseSpaceInfoServices)); + + + private readonly IBaseMaterialInfoServices? _baseMaterialInfoServices; + + private readonly IBaseSpaceInfoServices _baseSpaceInfoServices; + + public RelayCommand MouseClickCommand { get; set; } + + private string spaceCodes = string.Empty; + private AppConfigHelper appConfig = new AppConfigHelper(); + + public SelectTypeViewModel() + { + + } + public SelectTypeViewModel(BaseSpaceInfo space) + { + _baseSpaceInfoServices = App.ServiceProvider.GetService(); + _baseMaterialInfoServices = App.ServiceProvider.GetService(); + SpaceInfo = space; + QueryCommand = new RelayCommand(searchData); + SaveCommand = new RelayCommand(updateDirection); + deleteCommand = new RelayCommand(deleteModel); + SearchCriteriaSetCommand = new RelayCommand(SearchCriteriaSet); + + MouseClickCommand = new RelayCommand(MouseClick); + materialDataGrid = new ObservableCollection(); + // SearchCriteriaViewModel.RefreshPageEvent += SaveSearchCriteria; + + //加载快捷方式 + SaveSearchCriteria(); + + Load(space); + + } + + private BaseSpaceInfo spaceInfo = new BaseSpaceInfo(); + public BaseSpaceInfo SpaceInfo + { + get { return spaceInfo; } + set => SetProperty(ref spaceInfo, value); + } + + + #region 快捷查询 + /// + /// 快捷查询 + /// + /// + /// + [RelayCommand] + public async Task RadioButton(string selectedOption) + { + string productLineCode = Appsettings.app("StationInfo", "StationCode"); + MaterialDataGrid.Clear(); + string station = Appsettings.app("StationInfo", "StationCode"); + if (!string.IsNullOrEmpty(selectedOption)) + { + var infos = await _baseMaterialInfoServices.QueryAsync(x => x.MaterialSubclass == "200" && x.MaterialName.Contains(selectedOption)); + MaterialDataGrid.Clear(); + Application.Current.Dispatcher.Invoke(() => + { + foreach (BaseMaterialInfo info in infos) + { + MaterialDataGrid.Add(info); + } + }); + } + + } + + #endregion + private void SaveSearchCriteria() + { + Configurations = new ObservableCollection(); + var searchItems = appConfig.searchItems; + var split = searchItems.Split('%'); + + foreach (var item in split) + { + if (!string.IsNullOrEmpty(item)) + { + Configurations.Add(item); + } + } + } + + //11 + public async void Load(BaseSpaceInfo space) + { + var infos = await _baseMaterialInfoServices.QueryAsync(x=>x.MaterialSubclass== "200"); + MaterialDataGrid.Clear(); + Application.Current.Dispatcher.Invoke(() => + { + foreach (BaseMaterialInfo info in infos) + { + MaterialDataGrid.Add(info); + } + }); + // 加载页面单选框和下拉框 + if (space != null) + { + if (space.IsTwoSpace == 1) + { + IsSelectedOptionA = true; + } + else + { + IsSelectedOptionB = true; + } + + planInfo.MaterialCode = space.MaterialType; + planInfo.MaterialName = space.typeNameA; + + if (SelectedRotation == null) + { + SelectedRotation = new ComboBoxItem { Content = "0" }; + } + + } + } + + private ObservableCollection materialDataGrid; + + public ObservableCollection MaterialDataGrid + { + get { return materialDataGrid; } + set => SetProperty(ref materialDataGrid, value); + } + //111 + private BaseMaterialInfo selectedDataItem; + public BaseMaterialInfo SelectedDataItem + { + get { return selectedDataItem; } + set => SetProperty(ref selectedDataItem, value); + + } + + // 111 + public void MouseClick(object obj) + { + + var info = SelectedDataItem; + if (info != null) + { + PlanInfo = info; + SpaceInfo.MaterialType = info.MaterialCode; + SpaceInfo.typeNameA = info.MaterialName; + } + } + /// + /// 单选框 + /// + private ComboBoxItem selectedRotation; + public ComboBoxItem SelectedRotation + { + get { return selectedRotation; } + set + { + + SetProperty(ref selectedRotation, value); + //selectedRotation = value; + //set => SetProperty(ref selectedRotation, value); + } + } + + private BaseMaterialInfo planInfo = new BaseMaterialInfo(); + public BaseMaterialInfo PlanInfo + { + get { return planInfo; } + set => SetProperty(ref planInfo, value); + } + private string searchText; + public string SearchText + { + get { return searchText; } + set => SetProperty(ref searchText, value); + } + + private ObservableCollection _configurations = new ObservableCollection(); + public ObservableCollection Configurations + { + get => _configurations; + set => SetProperty(ref _configurations, value); + } + + + /// + /// 搜索条件设置 + /// + public void SearchCriteriaSet() + { + // SearchCriteriaView searchCriteriaWindow = new SearchCriteriaView(); + // searchCriteriaWindow.ShowDialog(); + } + + + #region 单选框 + private bool _isSelectedOptionA; + public bool IsSelectedOptionA + { + get { return _isSelectedOptionA; } + set + { + if (_isSelectedOptionA != value) + { + _isSelectedOptionA = value; + OnPropertyChanged(nameof(IsSelectedOptionA)); + // 如果选择了A选项,将BC选项设为false + if (_isSelectedOptionA) + { + IsSelectedOptionB = false; + + } + } + } + } + + private bool _isSelectedOptionB; + public bool IsSelectedOptionB + { + get { return _isSelectedOptionB; } + set + { + if (_isSelectedOptionB != value) + { + _isSelectedOptionB = value; + OnPropertyChanged(nameof(IsSelectedOptionB)); + + // 如果选择了B选项,将A选项设为false + if (_isSelectedOptionB) + { + IsSelectedOptionA = false; + + } + } + } + } + + + #endregion + private async void deleteModel() + { + try + { + int tempIsTwoSpace = spaceInfo.IsTwoSpace; + spaceInfo.MaterialType = string.Empty; + spaceInfo.typeNameA = string.Empty; + spaceInfo.RotationRange = 0; + spaceInfo.IsTwoSpace = 0; + spaceInfo.LastSpace = string.Empty; + // 同步清除两条货道 + if (tempIsTwoSpace == 1) + { + updateOtherSpace(SpaceInfo); + } + + bool result = await _baseSpaceInfoServices.UpdateSpaceInfo(spaceInfo); + if (result) + { + MessageBox.Show("清除型号成功!"); + } + //关闭窗口 + closeEvent?.Invoke(); + //刷新界面 + RefreshPageEvent?.Invoke(); + } + catch (Exception ex) + { + logHelper.Error(ex.Message.ToString()); + } + } + + /// + /// 给货道设置型号,转向角度等 + /// + private async void updateDirection() + { + try + { + // 转向角度 + + spaceInfo.RotationRange = int.Parse(SelectedRotation.Content.ToString()); + spaceInfo.IsTwoSpace = IsSelectedOptionA ? 1 : 0; + spaceInfo.LastSpace = string.Empty; + // 如果是大型号,将占据两条道,将两条道型号都设置为这个型号 + if (spaceInfo.IsTwoSpace == 1) + { + updateOtherSpace(spaceInfo); + } + + //if (!IsSelectedOptionA && !IsSelectedOptionB && !IsSelectedOptionC) + //{ + // MessageBox.Show("请至少选择一个型号!"); + // return; + //} + + bool result = _baseSpaceInfoServices.UpdateSpaceInfo(spaceInfo).Result; + if (result) + { + MessageBox.Show("型号设置成功"); + } + + //关闭窗口 + closeEvent?.Invoke(); + //刷新界面 + RefreshPageEvent?.Invoke(); + } + catch (Exception ex) + { + logHelper.Error(ex.Message.ToString()); + } + } + /// + /// 大产品占据两条货道,更新另一条货道 + /// + /// + private async void updateOtherSpace(BaseSpaceInfo spaceInfo) + { + // 找到当前货道匹配的另一条货道 + int num = int.Parse(spaceInfo.SpaceCode.Substring(5, 3)); + string otherSpaceCode = string.Empty; + if (num % 2 == 0) // 偶数,如7,8,当前8找7 + { + otherSpaceCode = spaceInfo.SpaceCode.Substring(0, 5) + (num - 1).ToString("D3"); + } + else + { + otherSpaceCode = spaceInfo.SpaceCode.Substring(0, 5) + (num + 1).ToString("D3"); + } + if (!string.IsNullOrEmpty(otherSpaceCode)) + { + BaseSpaceInfo otherSpace = _baseSpaceInfoServices.FirstAsync(x => x.SpaceCode.Equals(otherSpaceCode)).Result; + if (otherSpace == null) return; + otherSpace.MaterialType = spaceInfo.MaterialType; + otherSpace.typeNameA = spaceInfo.typeNameA; + otherSpace.RotationRange = spaceInfo.RotationRange; + otherSpace.IsTwoSpace = spaceInfo.IsTwoSpace; + otherSpace.LastSpace = spaceInfo.LastSpace; + _baseSpaceInfoServices.UpdateAsync(otherSpace); + } + } + /// + ///条件查询型号 + /// + private async void searchData() + { + if (!string.IsNullOrEmpty(searchText)) + { + var infos =await _baseMaterialInfoServices.QueryAsync(x=>x.MaterialSubclass=="200" && (x.MaterialName.Contains(searchText) || x.MaterialCode.Contains(searchText))); + MaterialDataGrid.Clear(); + Application.Current.Dispatcher.Invoke(() => + { + foreach (BaseMaterialInfo info in infos) + { + MaterialDataGrid.Add(info); + } + }); + } + else + { + Load(null); + } + } + } +} diff --git a/Aucma.Core.Palletiz/Views/HandPalletizWindow.xaml b/Aucma.Core.Palletiz/Views/HandPalletizWindow.xaml new file mode 100644 index 00000000..9616d87e --- /dev/null +++ b/Aucma.Core.Palletiz/Views/HandPalletizWindow.xaml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +