#region << 版 本 注 释 >>
|
/*----------------------------------------------------------------
|
* 命名空间:WIDESEAWCS_Tasks.ConveyorLineJob
|
* 创建者:胡童庆
|
* 创建时间:2024/8/2 16:13:36
|
* 版本:V1.0.0
|
* 描述:
|
*
|
* ----------------------------------------------------------------
|
* 修改人:
|
* 修改时间:
|
* 版本:V1.0.1
|
* 修改说明:
|
*
|
*----------------------------------------------------------------*/
|
#endregion << 版 本 注 释 >>
|
|
using AutoMapper;
|
using HslCommunication;
|
using Quartz;
|
using System;
|
using System.Linq;
|
using System.Text;
|
using System.Text.RegularExpressions;
|
using WIDESEA_Common.Log;
|
using WIDESEAWCS_DTO.BasicInfo;
|
using WIDESEAWCS_IBasicInfoService;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_Model.Models;
|
using WIDESEAWCS_Model.Models.System;
|
using WIDESEAWCS_QuartzJob;
|
using WIDESEAWCS_QuartzJob.Service;
|
using WIDESEAWCS_Tasks.ConveyorLineJob;
|
|
namespace WIDESEAWCS_Tasks
|
{
|
[DisallowConcurrentExecution]
|
public class CommonConveyorLineStationJob : JobBase, IJob
|
{
|
private readonly ITaskService _taskService;
|
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
|
private readonly IRouterService _routerService;
|
private readonly IOrderDetailsService _OrderDetailsService;
|
private readonly IMapper _mapper;
|
|
public CommonConveyorLineStationJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IOrderDetailsService orderDetails, IMapper mapper)
|
{
|
_taskService = taskService;
|
_taskExecuteDetailService = taskExecuteDetailService;
|
_routerService = routerService;
|
_OrderDetailsService = orderDetails;
|
_mapper = mapper;
|
}
|
|
static string barcode = string.Empty; //条码
|
|
public Task Execute(IJobExecutionContext context)
|
{
|
try
|
{
|
bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
|
if (flag && value != null && value is OtherDevice)
|
{
|
OtherDevice otherDevice = (OtherDevice)value;
|
|
bool request = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationRequest); //申请
|
bool response = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.PLCStationResponse); //应答
|
|
bool wcsResponse = otherDevice.GetValue<ConveyorLineStationDBName, bool>(ConveyorLineStationDBName.WCSStationResponse); //应答
|
|
if (request && !response && !wcsResponse)
|
{
|
|
}
|
else
|
{
|
if (wcsResponse)
|
otherDevice.SetValue(ConveyorLineStationDBName.WCSStationResponse, false); //清除响应
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
WriteError(nameof(CommonConveyorLineJob), ex.ToString(), ex);
|
}
|
return Task.CompletedTask;
|
}
|
|
public int[] GetIndexArray<T>(T[] values, T value)
|
{
|
List<int> result = new List<int>();
|
for (int i = 0; i < values.Length; i++)
|
{
|
if (value.Equals(values[i]))
|
{
|
result.Add(i);
|
}
|
}
|
return result.ToArray();
|
}
|
}
|
}
|