using HH.WCS.Mobox3.AnGang.Dispatch;
|
using HH.WCS.Mobox3.AnGang.Models;
|
using HH.WCS.Mobox3.AnGang.config;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using HH.WCS.Mobox3.AnGang.Helpers;
|
|
namespace HH.WCS.Mobox3.AnGang.Devices
|
{
|
/// <summary>
|
/// 小车读卡器通过TCPServer发送消息存储在这
|
/// </summary>
|
public class ScanCodeHelper
|
{
|
public static Dictionary<string, ScanInfoModel> scanInfoDic = new Dictionary<string, ScanInfoModel>();//内存信息缓存
|
|
internal static bool GetRFIDByAgvCode(string agvCode,string RFID)
|
{
|
var db = DbHelper.GetDbClient();
|
var task = new TN_Task();
|
task = db.Queryable<TN_Task>().Where(a => a.S_EQ_NO == agvCode && a.N_B_STATE == 2).OrderByDescending(b => b.T_CREATE).First();
|
if (task != null && RFID.Contains(task.S_CNTR_CODE))
|
{
|
LogHelper.Info($"校验成功Agv:{agvCode}容器号:{RFID}");
|
return true;
|
}
|
else
|
{
|
LogHelper.Info($"校验失败Agv:{agvCode}容器号:{RFID}");
|
|
//校验失败就取消任务
|
var task1 = Task.Run(() =>
|
{
|
if (task != null)
|
{
|
var res = NDCApi.ChangeOrderParam(task.S_CODE, 6, "2");
|
LogHelper.Info($"AGV校验RFID失败,发送取消任务命令参数6改为2,任务号{task.S_CODE}");
|
if (res.err_code==0)
|
{
|
LogHelper.Info($"AGV校验RFID失败,发送取消任务命令参数6改为2,任务号{task.S_CODE},结果:取消成功");
|
}
|
else
|
{
|
LogHelper.Info($"AGV校验RFID失败,发送取消任务命令参数6改为2,任务号{task.S_CODE},结果:取消失败:{res.err_msg}");
|
}
|
}
|
});
|
|
return false;
|
}
|
}
|
}
|
|
public class ScanInfoModel
|
{
|
public string AgvCode { get; set; }//agv编号
|
public string AgvAddress { get; set; }//agv读卡器地址
|
public string RFID { get; set; }//agv读卡器上报的RFID,托盘
|
}
|
}
|