#region << 版 本 注 释 >>
|
/*----------------------------------------------------------------
|
* 命名空间:WIDESEAWCS_Tasks.ConveyorLineJob
|
* 创建者:胡童庆
|
* 创建时间:2024/8/2 16:13:36
|
* 版本:V1.0.0
|
* 描述:
|
*
|
* ----------------------------------------------------------------
|
* 修改人:
|
* 修改时间:
|
* 版本:V1.0.1
|
* 修改说明:
|
*
|
*----------------------------------------------------------------*/
|
#endregion << 版 本 注 释 >>
|
|
using AutoMapper;
|
using Quartz;
|
using System.Text.RegularExpressions;
|
using WIDESEA_Common.Log;
|
using WIDESEAWCS_Common.TaskEnum;
|
using WIDESEAWCS_DTO.Enum;
|
using WIDESEAWCS_ISystemServices;
|
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 CommonConveyorLineJob : IJob
|
{
|
private readonly ITaskService _taskService;
|
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
|
private readonly IRouterService _routerService;
|
private readonly IOrderDetailsService _OrderDetailsService;
|
private readonly IMapper _mapper;
|
|
public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IOrderDetailsService orderDetails, IMapper mapper)
|
{
|
_taskService = taskService;
|
_taskExecuteDetailService = taskExecuteDetailService;
|
_routerService = routerService;
|
_OrderDetailsService = orderDetails;
|
_mapper = mapper;
|
}
|
|
public Task Execute(IJobExecutionContext context)
|
{
|
try
|
{
|
|
CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
|
|
if (conveyorLine != null)
|
{
|
if (conveyorLine.Communicator.Read<bool>("DB7.3030.0")) //申请
|
{
|
|
string Barcodes = conveyorLine.Communicator.Read<string>("DB7.3032"); //读条码
|
string pattern = @"\d+"; // 匹配数字
|
Match match = Regex.Match(Barcodes, pattern);
|
string barcodeNumber = match.Value;
|
if (barcodeNumber != "")
|
{
|
int toplc = _OrderDetailsService.GetOrderDetails(barcodeNumber);
|
if (toplc != -1)
|
{
|
conveyorLine.Communicator.Write("DB7.3022", (int)toplc); //写入去向
|
conveyorLine.Communicator.Write("DB7.3028.0", (bool)true); //写入反馈
|
WriteLog.Write_Log("扫码枪", "扫码站台", "成功", new { 信息 = $"条码:{barcodeNumber},写入去向{toplc}" });
|
if (conveyorLine.Communicator.Read<bool>("DB7.3116"))
|
{
|
conveyorLine.Communicator.Write("DB7.3022", (int)0); //清除写入去向
|
conveyorLine.Communicator.Write("DB7.3028.0", (bool)false); //清除写入反馈
|
WriteLog.Write_Log("扫码枪", "扫码站台", "成功", new { 信息 = $"条码:{barcodeNumber},清除输送线反馈成功" });
|
//调取反馈MES托盘条码
|
|
var datast= _OrderDetailsService.ToMesBarc(int.Parse(barcodeNumber));
|
if (datast.code==1)
|
{
|
WriteLog.Write_Log("ToMes", "条码反馈Mes", "成功", new { 信息 = $"条码:{barcodeNumber},反馈成功" });
|
}
|
else
|
{
|
WriteLog.Write_Log("ToMes", "条码反馈Mes", "失败", new { 信息 = $"条码:{barcodeNumber},反馈失败" });
|
}
|
|
|
}
|
else
|
{
|
WriteLog.Write_Log("扫码枪", "扫码站台", "错误", new { 信息 = $"条码:{barcodeNumber},清除输送线反馈失败" });
|
}
|
}
|
else
|
{
|
conveyorLine.Communicator.Write("DB7.3028.1", (bool)true);
|
WriteLog.Write_Log("扫码枪", "扫码站台", "错误", new { 信息 = $"条码:{barcodeNumber},未找到数据明细详情长度,写入报警信息" });
|
}
|
}
|
else
|
{
|
WriteLog.Write_Log("扫码枪", "扫码站台", "错误", new { 信息 = $"未读取到托盘条码,条码错误{barcodeNumber}" });
|
}
|
}
|
else
|
{
|
|
WriteLog.Write_Log("扫码枪", "扫码站台", "错误", new { 信息 = "未读取到扫码枪申请" });
|
}
|
}
|
|
}
|
catch (Exception ex)
|
{
|
//Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString());
|
}
|
return Task.CompletedTask;
|
}
|
|
|
}
|
}
|