Aucma.Core.Tasks 实时任务

dev
liulb@mesnac.com 1 year ago
parent 6fc23bfdef
commit 5b2903081c

@ -383,6 +383,9 @@
},
"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"
},
"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"
}
}
}
@ -1140,6 +1143,71 @@
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.402\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Project\\gitea\\AUCMA\\SCADA\\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",
"projectName": "Aucma.Core.Tasks",
"projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\Aucma.Core.Tasks.csproj",
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
"outputPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Tasks\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"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"
},
"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"
},
"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"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.402\\RuntimeIdentifierGraph.json"
}
}
}
}
}

@ -4052,6 +4052,7 @@
"Aucma.Core.RunPlc": "1.0.0",
"Aucma.Core.Scanner": "1.0.0",
"Aucma.Core.ScannerGun": "1.0.0",
"Aucma.Core.Tasks": "1.0.0",
"Microsoft.AspNetCore.Authentication.JwtBearer": "5.0.9"
},
"compile": {
@ -4220,6 +4221,21 @@
"runtime": {
"bin/placeholder/Aucma.Core.ScannerGun.dll": {}
}
},
"Aucma.Core.Tasks/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v6.0",
"dependencies": {
"Admin.Core.Common": "1.0.0",
"Admin.Core.IService": "1.0.0",
"Aucma.Core.PLc": "1.0.0"
},
"compile": {
"bin/placeholder/Aucma.Core.Tasks.dll": {}
},
"runtime": {
"bin/placeholder/Aucma.Core.Tasks.dll": {}
}
}
}
},
@ -11205,6 +11221,11 @@
"type": "project",
"path": "../Aucma.Core.ScannerGun/Aucma.Core.ScannerGun.csproj",
"msbuildProject": "../Aucma.Core.ScannerGun/Aucma.Core.ScannerGun.csproj"
},
"Aucma.Core.Tasks/1.0.0": {
"type": "project",
"path": "../Aucma.Core.Tasks/Aucma.Core.Tasks.csproj",
"msbuildProject": "../Aucma.Core.Tasks/Aucma.Core.Tasks.csproj"
}
},
"projectFileDependencyGroups": {

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "F94u7mdFSW4mcmpz6GzwgSU//e1NvwxPV8okl7gDHLi94BeS6qMoDkO+xeh6kEtannd9woqGONXb+is57Ye7ZQ==",
"dgSpecHash": "lpAdUZlNwICgoI0zWeab6lGK6byqEln8T/RCXWsmZhSAVbwyy2BWnrJmPSJkkkJ4x1Ma6659From8jGreg2RJA==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj",
"expectedPackageFiles": [

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
@ -23,6 +23,7 @@
<ProjectReference Include="..\Aucma.Core.RunPlc\Aucma.Core.RunPlc.csproj" />
<ProjectReference Include="..\Aucma.Core.ScannerGun\Aucma.Core.ScannerGun.csproj" />
<ProjectReference Include="..\Aucma.Core.Scanner\Aucma.Core.Scanner.csproj" />
<ProjectReference Include="..\Aucma.Core.Tasks\Aucma.Core.Tasks.csproj" />
</ItemGroup>
</Project>

@ -1,4 +1,5 @@
using Admin.Core.Common;
using Aucma.Core.Tasks;
using log4net;
using Microsoft.AspNetCore.Builder;
using System;
@ -6,20 +7,21 @@ using System;
namespace Admin.Core.Extensions
{
/// <summary>
///扫码器服务
///定时服务
/// </summary>
public static class AucmaTaskMildd
{
private static readonly ILog log = LogManager.GetLogger(typeof(AucmaTaskMildd));
public static async void AucmaTaskMildds(this IApplicationBuilder app)
public static async void AucmaTaskMildds(this IApplicationBuilder app, IAucamTaskService aucamTaskService)
{
if (app == null) throw new ArgumentNullException(nameof(app));
try
{
if (Appsettings.app("Middleware", "Scanner", "Enabled").ObjToBool())
if (Appsettings.app("Middleware", "AucamTask", "Enabled").ObjToBool())
{
Console.WriteLine("扫码器服务已开启");
await aucamTaskService.AucamTaskAsync();
Console.WriteLine("澳柯玛定时服务已开启");
}
}
catch (Exception e)

@ -1,6 +1,7 @@
using Admin.Core.Common;
using Admin.Core.Tasks;
using Aucma.Core.Scanner;
using Aucma.Core.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Quartz;
using Quartz.Spi;
@ -20,9 +21,9 @@ namespace Admin.Core.Extensions
{
public static void AddAucmaTaskSetup(this IServiceCollection services)
{
services.AddSingleton<IScannerService, ScannerService>();
services.AddSingleton<IAucamTaskService, AucamTaskService>();
var baseType = typeof(IScannerService);
var baseType = typeof(IAucamTaskService);
var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;
var referencedAssemblies = System.IO.Directory.GetFiles(path, "Aucma.Core.Tasks.dll").Select(Assembly.LoadFrom).ToArray();
var types = referencedAssemblies

@ -1,13 +1,5 @@
using Admin.Core.Common;
using Admin.Core.Extensions;
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.Repository;
using Admin.Core.Service;
using Admin.Core.Tasks;
using Aucma.Core.ScannerGun;
using Aucma.Core.Tasks;
using Autofac;
using Microsoft.AspNetCore.Builder;
@ -62,7 +54,7 @@ namespace Admin.Core.RealTimeService
//注册业务服务
AddServices(services);
//ÈÎÎñµ÷¶È
//ÈÎÎñ
services.AddAucmaTaskSetup();
//支持编码大全 例如:支持 System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030")
@ -85,12 +77,12 @@ namespace Admin.Core.RealTimeService
/// </summary>
/// <param name="app"></param>
/// <param name="env"></param>
public void Configure(IApplicationBuilder app)
public void Configure(IApplicationBuilder app, IAucamTaskService aucamTaskService)
{
// 使用静态文件
app.UseStaticFiles();
app.AucmaTaskMildds();
app.AucmaTaskMildds(aucamTaskService);
}
#region 注册服务

@ -166,6 +166,9 @@
},
"ScannerGun": {
"Enabled": true
},
"AucamTask": {
"Enabled": true
}
},
"IpRateLimiting": {

@ -228,7 +228,7 @@ Global
{563882EC-C110-4BCB-B913-3B62124BF680} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
{5CF85AD7-DBC9-4466-952B-6742F37E417D} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{9EE12F11-F9E4-46DD-935D-F6EDD495A6FC} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{680718C5-E39C-442F-AC9E-4A56E15AF261} = {A4C60BC6-0120-48F4-A60D-C73160B122AA}
{680718C5-E39C-442F-AC9E-4A56E15AF261} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{61EE37C2-A9C2-40DE-A96E-D7E4DEB5FEC3} = {F8FB57F6-5465-4E60-B052-D3A63C3C56AE}
{5515C937-1E2E-4111-8775-EE6898E5933A} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}
{C70810CE-041A-4880-99B3-FFCC8B672B42} = {BD987F3A-4E6C-4C47-B28F-1671F875EAE3}

@ -1,11 +1,6 @@
using Admin.Core.Common;
using Admin.Core.Extensions;
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.Repository;
using Admin.Core.Service;
using Admin.Core.Tasks;
using Autofac;
using Microsoft.AspNetCore.Builder;
@ -107,7 +102,6 @@ namespace Aucam.Core.PerfusionService
//services.AddScoped<IBaseRepository<EEquipmentCategory>, BaseRepository<EEquipmentCategory>>();
//services.AddSingleton<IBaseService<EEquipmentCategory>, BaseService<EEquipmentCategory>>();
#endregion
}
#endregion
}

@ -302,7 +302,7 @@ namespace Aucma.Core.PrintTo.ViewModels
//barReport.PrintSettings.PageRange = "1-3"; // 设置打印页范围
barReport.SetParameterValue("BoxBarData.Id", barCode);
barReport.SetParameterValue("BoxBarData.Order_No", item.);//订单码
barReport.SetParameterValue("BoxBarData.Order_No", item.MaterialCode);//订单码??
barReport.SetParameterValue("BoxBarData.Order_Material_Name", item.MaterialName);//物料简码
barReport.SetParameterValue("BoxBarData.Bar_Code", barCode);//二维码

@ -5,7 +5,7 @@ using System.Timers;
namespace Aucma.Core.RunPlc
{
/// <summary>
/// 扫码器初始化
/// PLC任务
/// </summary>
public class RunPlcService : IRunPlcService
{

@ -1,20 +1,66 @@
using log4net;
using Admin.Core.Common;
using Aucma.Core.PLc;
using log4net;
using System.Timers;
namespace Aucma.Core.Tasks
{
/// <summary>
/// 扫码枪初始化
/// 实时任务列表
/// </summary>
public class AucamTaskService : IAucamTaskService
{
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(AucamTaskService));
public void ScannerGunAsync()
//private static readonly log4net.ILog log = LogManager.GetLogger(typeof(AucamTaskService));
System.Timers.Timer timer1 = new System.Timers.Timer(1000);
System.Timers.Timer timer2 = new System.Timers.Timer(1000);
System.Timers.Timer timer3 = new System.Timers.Timer(1000);
public Task AucamTaskAsync()
{
timer1.Elapsed += new System.Timers.ElapsedEventHandler(Run1); //到达时间的时候执行事件;
timer1.AutoReset = true;//设置是执行一次false还是一直执行(true)
timer1.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它
timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
timer2.Elapsed += new System.Timers.ElapsedEventHandler(Run2); //到达时间的时候执行事件;
timer2.AutoReset = true;//设置是执行一次false还是一直执行(true)
timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它
timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
timer3.Elapsed += new System.Timers.ElapsedEventHandler(Run3); //到达时间的时候执行事件;
timer3.AutoReset = true;//设置是执行一次false还是一直执行(true)
timer3.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它
timer3.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
return Task.CompletedTask;
}
/// <summary>
/// 钣金——前板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Run1(object? sender, ElapsedEventArgs e)
{
public void AucamTaskAsync()
Console.WriteLine("前板");
}
/// <summary>
/// 钣金——后板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Run2(object? sender, ElapsedEventArgs e)
{
Console.WriteLine("后板");
}
/// <summary>
/// 钣金——实时任务列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Run3(object? sender, ElapsedEventArgs e)
{
throw new NotImplementedException();
Console.WriteLine("实时任务列表");
}
}
}

@ -8,7 +8,6 @@
<ItemGroup>
<ProjectReference Include="..\Admin.Core.Common\Admin.Core.Common.csproj" />
<ProjectReference Include="..\Admin.Core.Extensions\Admin.Core.Extensions.csproj" />
<ProjectReference Include="..\Admin.Core.IService\Admin.Core.IService.csproj" />
<ProjectReference Include="..\Aucma.Core.PLc\Aucma.Core.PLc.csproj" />
</ItemGroup>

@ -11,7 +11,7 @@ using Admin.Core.Common;
/// </summary>
namespace Aucma.Core.Tasks
{
public class Job_BoxFoamInStoreTask_Quartz
public class Job_BoxFoamInStoreTaskTask
{
#region 事件
/// <summary>
@ -53,7 +53,7 @@ namespace Aucma.Core.Tasks
#endregion
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamInStoreTask_Quartz));
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamInStoreTaskTask));
private readonly IBaseSpaceInfoServices _baseSpaceInfoServices;
private readonly IRealTaskInfoServices _realTaskInfoService;
private readonly IProductPlanInfoServices _productPlanInfoServices;
@ -61,7 +61,7 @@ namespace Aucma.Core.Tasks
private readonly IBaseStoreInfoServices _baseStoreInfoServices;
private readonly IBaseSpaceDetailServices _baseSpaceDetailServices;
public Job_BoxFoamInStoreTask_Quartz(IBaseSpaceInfoServices baseSpaceInfoServices, IRealTaskInfoServices realTaskInfoService,
public Job_BoxFoamInStoreTaskTask(IBaseSpaceInfoServices baseSpaceInfoServices, IRealTaskInfoServices realTaskInfoService,
IProductPlanInfoServices productPlanInfoServices, IRecordInStoreServices recordInstoreServices,
IBaseStoreInfoServices baseStoreInfoServices, IBaseSpaceDetailServices IBaseSpaceDetailServices)
{

@ -1,8 +1,6 @@
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.Service;
using Aucma.Core.PLc;
using log4net;
using System;
@ -15,7 +13,7 @@ using System.Threading.Tasks;
/// </summary>
namespace Aucma.Core.Tasks
{
public class Job_BoxFoamOutStore_Quartz
public class Job_BoxFoamOutStoreTask
{
#region 初始化出库任务
/// <summary>
@ -27,14 +25,14 @@ namespace Aucma.Core.Tasks
#endregion
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_BoxFoamOutStore_Quartz));
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_BoxFoamOutStoreTask));
protected readonly IBaseOrderInfoServices _baseOrderInfoServices;
protected readonly IBaseSpaceInfoServices _baseSpaceInfoServices;
protected readonly IBaseBomInfoServices _baseBomInfoServices;
protected readonly IRealTaskInfoServices _realTaskInfoServices;
protected readonly IExecutePlanInfoServices _executePlanInfoServices;
public Job_BoxFoamOutStore_Quartz(IBaseOrderInfoServices baseOrderInfoServices, IBaseSpaceInfoServices baseSpaceInfoServices,
public Job_BoxFoamOutStoreTask(IBaseOrderInfoServices baseOrderInfoServices, IBaseSpaceInfoServices baseSpaceInfoServices,
IRealTaskInfoServices realTaskInfoServices,IBaseBomInfoServices baseBomInfoServices, IExecutePlanInfoServices executePlanInfoServices)
{
_baseOrderInfoServices = baseOrderInfoServices;

@ -1,25 +1,17 @@
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Aucma.Core.PLc;
using log4net;
using NetTaste;
using NPOI.SS.Formula.Functions;
using Quartz;
using System;
using System.Linq;
using System.Threading.Tasks;
/// <summary>
///门体发泡数据采集
/// </summary>
namespace Aucma.Core.Tasks
{
public class Job_DoorFoam_Quartz
public class Job_DoorFoamTask
{
protected readonly IBaseOrderInfoServices _baseOrderInfoServices;
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_DoorFoam_Quartz));
public Job_DoorFoam_Quartz()
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_DoorFoamTask));
public Job_DoorFoamTask()
{
}
public async Task Execute()

@ -8,15 +8,15 @@ using log4net;
/// </summary>
namespace Aucma.Core.Tasks
{
public class Job_Perfusion_Quartz
public class Job_PerfusionTask
{
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_Perfusion_Quartz));
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(Job_PerfusionTask));
protected readonly IBaseOrderInfoServices _baseOrderInfoServices;
protected readonly IPerfusionDeviceStatusServices _perfusionDeviceStatusServices;
protected readonly IPerfusionAlarmServices _perfusionAlarmServices;
protected readonly IPerfusionRecordServices _perfusionRecordServices;
public Job_Perfusion_Quartz(IPerfusionDeviceStatusServices perfusionDeviceStatusServices, IPerfusionAlarmServices perfusionAlarmServices,
public Job_PerfusionTask(IPerfusionDeviceStatusServices perfusionDeviceStatusServices, IPerfusionAlarmServices perfusionAlarmServices,
IPerfusionRecordServices perfusionRecordServices)
{
_perfusionDeviceStatusServices = perfusionDeviceStatusServices;

@ -1,7 +1,5 @@
using Admin.Core.IService.ISys;
using Admin.Core.IService;
using Admin.Core.Service;
using Quartz;
using System;
using System.Threading.Tasks;
using Admin.Core.IRepository;
@ -16,7 +14,7 @@ using Admin.Core.Model;
/// </summary>
namespace Aucma.Core.Tasks
{
public class Job_SheetMetalTask_Quartz
public class Job_SheetMetalTask
{
#region 钣金任务
/// <summary>
@ -34,19 +32,19 @@ namespace Aucma.Core.Tasks
private readonly ISmTaskExecutionServices _smTaskExecutionServices;
private readonly IExecutePlanInfoServices _taskExecutionServices;
public Job_SheetMetalTask_Quartz(ISmTaskExecutionServices smTaskExecutionServices, IExecutePlanInfoServices taskExecutionServices)
public Job_SheetMetalTask(ISmTaskExecutionServices smTaskExecutionServices, IExecutePlanInfoServices taskExecutionServices)
{
_smTaskExecutionServices = smTaskExecutionServices;
_taskExecutionServices = taskExecutionServices;
}
public async Task Execute(IJobExecutionContext context)
public async Task Execute()
{
await ShowRun(context);
await CompleteRun(context);
await ShowRun();
await CompleteRun();
}
#region 实施当日产量和型号统计
public Task Run(IJobExecutionContext context)
public Task Run()
{
SmEverDayDelegateEvent?.Invoke();
return Task.CompletedTask;
@ -54,7 +52,7 @@ namespace Aucma.Core.Tasks
#endregion
#region 实时计划显示
public async Task ShowRun(IJobExecutionContext context)
public async Task ShowRun()
{
var model = await _taskExecutionServices.FirstAsync(d => d.ExecuteStatus == 2);
SmShowDelegateEvent?.Invoke(model);
@ -62,7 +60,7 @@ namespace Aucma.Core.Tasks
#endregion
#region 任务完成
public Task CompleteRun(IJobExecutionContext context)
public Task CompleteRun()
{
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc"));
var val = obj.plc.ReadInt32("M100");//任务结束信号存盘

@ -1,8 +1,8 @@
//Aucam2022

namespace Aucma.Core.Tasks
{
public interface IAucamTaskService
{
void AucamTaskAsync();
Task AucamTaskAsync();
}
}

Loading…
Cancel
Save