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,托盘 } }