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
{
///
/// 小车读卡器通过TCPServer发送消息存储在这
///
public class ScanCodeHelper
{
public static Dictionary scanInfoDic = new Dictionary();//内存信息缓存
internal static bool GetRFIDByAgvCode(string agvCode,string RFID)
{
var db = DbHelper.GetDbClient();
var task = new TN_Task();
task = db.Queryable().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,托盘
}
}