diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml index 220e93d7..15d060ac 100644 --- a/Admin.Core.Api/Admin.Core.Model.xml +++ b/Admin.Core.Api/Admin.Core.Model.xml @@ -1421,6 +1421,51 @@ 主键标识 + + + 拆分的SAP BOM 信息 + + + + + 主键 + + + + + 夹具箱型 + + + + + 夹具状态 + + + + + 产量 + + + + + 固化时间设定值 + + + + + 固化时间实际值 + + + + + 创建时间 + + + + + 更新时间 + + 灌注告警 @@ -3696,6 +3741,21 @@ 创建时间 + + + 条码绑定扫描类型统计 + + + + + 开始时间 + + + + + 结束时间 + + 工位信息 diff --git a/Admin.Core.IRepository/IRepository_New/IOldBoxFoamDataRepository.cs b/Admin.Core.IRepository/IRepository_New/IOldBoxFoamDataRepository.cs new file mode 100644 index 00000000..3a2bd104 --- /dev/null +++ b/Admin.Core.IRepository/IRepository_New/IOldBoxFoamDataRepository.cs @@ -0,0 +1,12 @@ +using Admin.Core.Model; +using Admin.Core.Model.Model_New; + +namespace Admin.Core.IRepository +{ + /// + /// IOldBoxFoamDataRepository + /// + public interface IOldBoxFoamDataRepository : IBaseRepository + { + } +} \ No newline at end of file diff --git a/Admin.Core.IService/IService_New/IOldBoxFoamDataServices.cs b/Admin.Core.IService/IService_New/IOldBoxFoamDataServices.cs new file mode 100644 index 00000000..ffa10771 --- /dev/null +++ b/Admin.Core.IService/IService_New/IOldBoxFoamDataServices.cs @@ -0,0 +1,16 @@ +using Admin.Core.IService; +using Admin.Core.Model; +using Admin.Core.Model.ViewModels; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Admin.Core.IService +{ + /// + /// IOldBoxFoamDataServices + /// + public interface IOldBoxFoamDataServices : IBaseServices + { + + } +} \ No newline at end of file diff --git a/Admin.Core.Model/Model_New/OldBoxFoamData.cs b/Admin.Core.Model/Model_New/OldBoxFoamData.cs new file mode 100644 index 00000000..9c7fd3d1 --- /dev/null +++ b/Admin.Core.Model/Model_New/OldBoxFoamData.cs @@ -0,0 +1,59 @@ +using SqlSugar; +using System; + +namespace Admin.Core.Model +{ + /// + /// 拆分的SAP BOM 信息 + /// + [SugarTable("OLDBOX_FOAMDATA", "AUCMA_SCADA")] + public class OldBoxFoamData + { + /// + /// 主键 + /// + [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true)] + public float ObjId { get; set; } + + /// + /// 夹具箱型 + /// + [SugarColumn(ColumnName = "FIXTUREBOXTYPE")] + public string Fixtureboxtype { get; set; } + + /// + /// 夹具状态 + /// + [SugarColumn(ColumnName = "FIXTURESTATUS")] + public string Fixturestatus { get; set; } + + /// + /// 产量 + /// + [SugarColumn(ColumnName = "PRODUCTION")] + public float Production { get; set; } + + /// + /// 固化时间设定值 + /// + [SugarColumn(ColumnName = "CURINGTIMESETTINGVALUE")] + public string CuringTimeSettingValue { get; set; } + /// + /// 固化时间实际值 + /// + [SugarColumn(ColumnName = "ACTUALVALUE")] + public string ActualValue { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "CREATED_TIME")] + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "UPDATED_TIME")] + public DateTime UpdatedTime { get; set; } + } +} diff --git a/Admin.Core.RealTimeService/appsettings.json b/Admin.Core.RealTimeService/appsettings.json index d89de8a3..4a6f2cf5 100644 --- a/Admin.Core.RealTimeService/appsettings.json +++ b/Admin.Core.RealTimeService/appsettings.json @@ -99,7 +99,7 @@ "ID": 1, "Name": "TestTask", "JobGroup": "DEFAULT", - "Cron": "*/1 * * * * ?", + "Cron": "*/5 * * * * ?", "AssemblyName": "Admin.Core.Tasks", "ClassName": "Job_Admin_Quartz", "Remark": "执行任务调度系统", diff --git a/Admin.Core.Repository/Repository_New/OldBoxFoamDataRepository.cs b/Admin.Core.Repository/Repository_New/OldBoxFoamDataRepository.cs new file mode 100644 index 00000000..9f013c2a --- /dev/null +++ b/Admin.Core.Repository/Repository_New/OldBoxFoamDataRepository.cs @@ -0,0 +1,15 @@ +using Admin.Core.IRepository; +using Admin.Core.Model; + +namespace Admin.Core.Repository +{ + /// + /// OldBoxFoamDataRepository + /// + public class OldBoxFoamDataRepository : BaseRepository, IOldBoxFoamDataRepository + { + public OldBoxFoamDataRepository(IUnitOfWork unitOfWork) : base(unitOfWork) + { + } + } +} \ No newline at end of file diff --git a/Admin.Core.Service/Service_New/OldBoxFoamDataServices.cs b/Admin.Core.Service/Service_New/OldBoxFoamDataServices.cs new file mode 100644 index 00000000..64ad81b0 --- /dev/null +++ b/Admin.Core.Service/Service_New/OldBoxFoamDataServices.cs @@ -0,0 +1,28 @@ +using Admin.Core.IRepository; +using Admin.Core.IService; +using Admin.Core.Model; +using Admin.Core.Model.Model_New; +using Admin.Core.Model.ViewModels; +using log4net; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.IdentityModel.Logging; +using NPOI.XSSF.UserModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Admin.Core.Service +{ + public class OldBoxFoamDataServices : BaseServices, IOldBoxFoamDataServices + { + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(OldBoxFoamDataServices)); + private readonly IBaseRepository _dal; + public OldBoxFoamDataServices(IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + } + + } +} \ No newline at end of file diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_Admin_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_Admin_Quartz.cs index 5eb818b9..2358311b 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_Admin_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_Admin_Quartz.cs @@ -1,8 +1,14 @@ -using Admin.Core.IService; +using Admin.Core.Common; +using Admin.Core.IRepository; +using Admin.Core.IService; using Admin.Core.IService.ISys; +using Admin.Core.Model.Model_New; +using Admin.Core.Model.ViewModels; using Aucma.Core.PLc; using Quartz; +using StackExchange.Redis; using System; +using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -16,21 +22,27 @@ namespace Admin.Core.Tasks public class Job_Admin_Quartz : JobBase, IJob { bool flag=true; - public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, - IBaseOrderInfoServices baseOrderInfoServices) + IBaseOrderInfoServices _baseOrderInfoServices; + List bbinfolist = new List(); + public Job_Admin_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, + IBaseOrderInfoServices baseOrderInfoServices) { _SysTasksQzService = SysTasksQzService; _sysJobLogService = sysJobLogService; + _baseOrderInfoServices = baseOrderInfoServices; } + public async Task Execute(IJobExecutionContext context) { await ExecuteJob(context, async () => await Run(context)); } + public async Task Run(IJobExecutionContext context) { - Console.WriteLine("sa1"); - + List orderBomInfoList = await _baseOrderInfoServices.QueryPrintInfo(); + await Task.FromResult(true); } + } } diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs index 6de7c0b6..99eda422 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs @@ -26,23 +26,31 @@ namespace Admin.Core.Tasks private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamData_Quartz)); private readonly IBoxFoamDataServices _boxFoamDataServices; - + private readonly IOldBoxFoamDataServices _oldBoxFoamDataServices; public Job_BoxFoamData_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, - IBoxFoamDataServices boxFoamDataServices) + IBoxFoamDataServices boxFoamDataServices, IOldBoxFoamDataServices oldBoxFoamDataServices) { _SysTasksQzService = SysTasksQzService; - _boxFoamDataServices= boxFoamDataServices; + _boxFoamDataServices = boxFoamDataServices; + _oldBoxFoamDataServices = oldBoxFoamDataServices; } public async Task Execute(IJobExecutionContext context) { await ExecuteJob(context, async () => await Run(context)); + await ExecuteJob(context, async () => await OldBoxFoamDataRun(context)); } + public async Task Run(IJobExecutionContext context) { await SaveData(); } - + + public async Task OldBoxFoamDataRun(IJobExecutionContext context) + { + await SaveOldBoxFoamData(); + } + #region PLC 任务处理表 /// /// PLC 任务处理表 @@ -228,5 +236,184 @@ namespace Admin.Core.Tasks return await Task.FromResult(item); } #endregion + + #region PLC 任务处理表 + /// + /// PLC 任务处理表 + /// + /// 仓库编码 + /// 物料编码 + /// + public async Task SaveOldBoxFoamData() + { + try + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("发泡Plc")); + if (obj.plc.IsConnected) + { + var taskList = await _oldBoxFoamDataServices.QueryAsync(); + foreach (var item in taskList) + { + await UpdateRealBoxFoamData(obj, item); + } + } + } + catch (Exception ex) + { + logHelper.Error($"入库数据处理异常:{ex.Message}"); + } + } + + private async Task UpdateRealBoxFoamData(PlcModel obj, OldBoxFoamData item) + { + try + { + #region 更新PLC数据 + if (item.ObjId == 1) + { + item.Fixtureboxtype = obj.plc.ReadString("D3140")+ obj.plc.ReadString("D3141"); + if (obj.plc.ReadInt16("Y0F0") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y0F1") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y110") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D182"); + item.CuringTimeSettingValue = obj.plc.ReadString("D911"); + item.ActualValue = obj.plc.ReadString("T3"); + item.UpdatedTime = DateTime.Now; + } + if (item.ObjId == 2) + { + item.Fixtureboxtype = obj.plc.ReadString("D3142") + obj.plc.ReadString("D3143"); + if (obj.plc.ReadInt16("Y0F5") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y0F6") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y111") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D183"); + item.CuringTimeSettingValue = obj.plc.ReadString("D911"); + item.ActualValue = obj.plc.ReadString("T13"); + item.UpdatedTime = DateTime.Now; + } + if (item.ObjId == 3) + { + item.Fixtureboxtype = obj.plc.ReadString("D3144") + obj.plc.ReadString("D3145"); + if (obj.plc.ReadInt16("Y0FA") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y0FB") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y112") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D183"); + item.CuringTimeSettingValue = obj.plc.ReadString("D912"); + item.ActualValue = obj.plc.ReadString("T23"); + item.UpdatedTime = DateTime.Now; + } + if (item.ObjId == 4) + { + item.Fixtureboxtype = obj.plc.ReadString("D3148") + obj.plc.ReadString("D3149"); + if (obj.plc.ReadInt16("Y100 ") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y101") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y113") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D184"); + item.CuringTimeSettingValue = obj.plc.ReadString("D913"); + item.ActualValue = obj.plc.ReadString("T33"); + item.UpdatedTime = DateTime.Now; + } + if (item.ObjId == 5) + { + item.Fixtureboxtype = obj.plc.ReadString("D3150") + obj.plc.ReadString("D3151"); + if (obj.plc.ReadInt16("Y105") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y106") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y114") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D185"); + item.CuringTimeSettingValue = obj.plc.ReadString("D914"); + item.ActualValue = obj.plc.ReadString("T43"); + item.UpdatedTime = DateTime.Now; + } + if (item.ObjId == 6) + { + item.Fixtureboxtype = obj.plc.ReadString("D3152") + obj.plc.ReadString("D3143"); + if (obj.plc.ReadInt16("Y10A") == 1) + { + item.Fixturestatus = "手动"; + } + if (obj.plc.ReadInt16("Y10B") == 1) + { + item.Fixturestatus = "自动"; + } + if (obj.plc.ReadInt16("Y115") == 1) + { + item.Fixturestatus = "停止"; + } + + item.Production = obj.plc.ReadInt16("D186"); + item.CuringTimeSettingValue = obj.plc.ReadString("D915"); + item.ActualValue = obj.plc.ReadString("T53"); + item.UpdatedTime = DateTime.Now; + } + + #endregion + bool result = await _oldBoxFoamDataServices.UpdateAsync(item); + if (result) + { + //RefreshBoxFoamDataDelegateEvent?.Invoke(); + } + else + { + // LogDelegateEvent?.Invoke($"物料[{planInfo.MaterialName}], 入库[{baseSpace.SpaceName}]失败,任务回滚!"); + } + } + catch (Exception ex) + { + logHelper.Error($"更新老箱体发泡数据失败"); + } + + return await Task.FromResult(item); + } + #endregion } } diff --git a/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj.user b/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj.user index b1627fb3..3c3d823c 100644 --- a/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj.user +++ b/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj.user @@ -19,6 +19,12 @@ Code + + Code + + + Code + Code @@ -60,6 +66,12 @@ Designer + + Designer + + + Designer + Designer diff --git a/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs index 69d59882..b9f2927c 100644 --- a/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/IndexPageViewModel.cs @@ -12,7 +12,6 @@ using Admin.Core.Common; using Admin.Core.Model.ViewModels; /* * 首页信息 - * */ namespace Aucma.Core.BoxFoam.ViewModels { diff --git a/Aucma.Core.BoxFoam/ViewModels/MainWindowViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/MainWindowViewModel.cs index 191e4513..04a030b5 100644 --- a/Aucma.Core.BoxFoam/ViewModels/MainWindowViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/MainWindowViewModel.cs @@ -10,6 +10,7 @@ using Admin.Core.Common; using Aucma.Core.PLc; using Aucma.Core.Scanner; using System.Linq; +using System.Threading.Tasks; namespace Aucma.Core.BoxFoam.ViewModels { @@ -23,13 +24,19 @@ namespace Aucma.Core.BoxFoam.ViewModels private FoamPlanPageView foamPlanPageView = new FoamPlanPageView(); FoamMonitorPageView foamMonitorPageView = new FoamMonitorPageView(); FoamMachinesPageView foamMachinesPageView = new FoamMachinesPageView(); - + OldBoxFoamPageView oldBoxFoamPage= new OldBoxFoamPageView(); + OldWarehousePageView oldWarehousePage = new OldWarehousePageView(); public MainWindowViewModel() { UserContent = firstPage; - init(); + + Task.Run(() => + { + init(); + }); } - public void init() + + public Task init() { // 设备状态刷新定时器 System.Timers.Timer timer = new System.Timers.Timer(1000 * 5); @@ -37,6 +44,8 @@ namespace Aucma.Core.BoxFoam.ViewModels timer.AutoReset = true; timer.Enabled = true; timer.Start(); + + return Task.CompletedTask; } #region 设备状态刷新 @@ -99,6 +108,7 @@ namespace Aucma.Core.BoxFoam.ViewModels Scanner1State(flag1); } #endregion + #region 更换界面 public System.Windows.Controls.UserControl _content; @@ -211,13 +221,18 @@ namespace Aucma.Core.BoxFoam.ViewModels case "FoamMachinesPage": UserContent = foamMachinesPageView; break; - + case "OldBoxFoamPage": + UserContent = oldBoxFoamPage; + break; + case "OldWarehousePage": + UserContent = oldWarehousePage; + break; default: break; } } #endregion - + #region MES数据库状态 /// /// MES数据库-文字 diff --git a/Aucma.Core.BoxFoam/ViewModels/OldBoxFoamPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/OldBoxFoamPageViewModel.cs new file mode 100644 index 00000000..43adf380 --- /dev/null +++ b/Aucma.Core.BoxFoam/ViewModels/OldBoxFoamPageViewModel.cs @@ -0,0 +1,48 @@ +using Admin.Core.IService; +using Admin.Core.Model; +using Admin.Core.Model.ViewModels; +using Admin.Core.Service; +using CommunityToolkit.Mvvm.ComponentModel; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +/** + * 老发泡线监控 + * */ +namespace Aucma.Core.BoxFoam.ViewModels +{ + public partial class OldBoxFoamPageViewModel : ObservableObject + { + public readonly IOldBoxFoamDataServices? _oldBoxFoamDataServices; + + public OldBoxFoamPageViewModel() { + _oldBoxFoamDataServices = App.ServiceProvider.GetService(); + OnLoad(); + } + + public async void OnLoad() + { + bool r= _oldBoxFoamDataServices.GetConnectionState(); + List list = await _oldBoxFoamDataServices.QueryAsync(); + if (list == null) return; + foreach (var item in list) OldBoxFoamDataGrid.Add(item); + } + + #region 初始化datagrid + private ObservableCollection oldBoxFoamDataGrid = new ObservableCollection(); + public ObservableCollection OldBoxFoamDataGrid + { + get { return oldBoxFoamDataGrid; } + set + { + oldBoxFoamDataGrid = value; + OnPropertyChanged();//属性通知 + } + } + #endregion + } +} diff --git a/Aucma.Core.BoxFoam/Views/MainWindow.xaml b/Aucma.Core.BoxFoam/Views/MainWindow.xaml index f5a5bd01..71e40958 100644 --- a/Aucma.Core.BoxFoam/Views/MainWindow.xaml +++ b/Aucma.Core.BoxFoam/Views/MainWindow.xaml @@ -68,6 +68,8 @@