using HslCommunication; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Text; using System.Threading; using WIDESEA_Common; using WIDESEA_Common.CutomerModel; using WIDESEA_Common.Tools; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Services; using WIDESEA_Services.IRepositories; using WIDESEA_Services.Repositories; using WIDESEA_Services.Services; using WIDESEA_WCS.WCSClient; namespace WIDESEA_WCS.Jobs.ConveyorLine.OutboundArea { public partial class OutboundAreaDispatch { /// /// 出库区空托盘回库 /// /// /// //public static void ReInboundRequestStationAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, PLCClient client, string barcode) //{ // try // { // //查询任务 // Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(r => r.wcstask_barcode == barcode && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()); // if (null == wcsInfo) // { // //当前存在未完成的任务 // wcsInfo = taskWCSinfoRepository.FindFirst(r => OutboundStationLayerNo.Contains(r.wcstask_endPoint)); // if (null != wcsInfo) // return; // //申请入库任务 // WebResponseContent content = WMSApi.PostInboundRequstToWMS(barcode); // if (content.Status) // { // WmsTaskInfo wmsTask = JsonConvert.DeserializeObject(content.Data.ToString()); // wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository); // taskWCSinfoRepository.Add(wcsInfo, true); // } // else // throw new Exception("入库申请失败:" + content.Message); // } // string lineCode = "ReIboundArea"; // if (null != wcsInfo) // { // //读取逻辑控制值 // int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString()); // if ((logicValue == 1 || logicValue == 2)) // { // WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode); // } // string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString(); // if (!wcsInfo.wcstask_barcode.Equals(rfidResult)) // return; // logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString()); // //说明站台已经收到任务数据,等待WCS的启动指令 // if (logicValue == 3) // { // //启动任务 // client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1); // } // else if (logicValue == 4 || logicValue == 5) // { // //提升机执行中 // if (wcsInfo.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()) // return; // if (!WriteRGVState(client, true)) // return; // wcsInfo.wcstask_state = TaskState.TaskState_HoisterExecuting.ToString(); // wcsInfo.wcstask_dispatcherTime = DateTime.Now; // taskWCSinfoRepository.Update(wcsInfo, true); // } // } // } // catch (Exception ex) // { // WriteLog.Info(ReInboundRequestStationNo).Write($"{ DateTime.Now }回库站台调度失败:{ex.Message}", ReInboundRequestStationNo); // } //} public static void ReInboundRequestStationAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, PLCClient client, Dt_TaskWCSinfo wcsInfo) { try { string lineCode = "ReIboundArea"; if (null != wcsInfo) { //读取逻辑控制值 int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString()); if ((logicValue == 1 || logicValue == 2)) { WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode); } string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString(); if (!wcsInfo.wcstask_barcode.Equals(rfidResult)) return; logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString()); //说明站台已经收到任务数据,等待WCS的启动指令 if (logicValue == 3) { //启动任务 client.WriteValue(CLineInfoDBName.W_Line_Logic.ToString(), lineCode, 1); } else if (logicValue == 4 || logicValue == 5) { //提升机执行中 if (wcsInfo.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()) return; wcsInfo.wcstask_state = TaskState.TaskState_HoisterExecuting.ToString(); wcsInfo.wcstask_dispatcherTime = DateTime.Now; taskWCSinfoRepository.Update(wcsInfo, true); } } } catch (Exception ex) { WriteLog.Info(ReInboundRequestStationNo).Write($"{ DateTime.Now }回库站台调度失败:{ex.Message}", ReInboundRequestStationNo); } } } }