| | |
| | | using HH.WCS.Mobox3.NFLZ.dispatch; |
| | | using HH.WCS.Mobox3.NFLZ.api; |
| | | using HH.WCS.Mobox3.NFLZ.dispatch; |
| | | using HH.WCS.Mobox3.NFLZ.process; |
| | | using HH.WCS.Mobox3.NFLZ.util; |
| | | using HH.WCS.Mobox3.NFLZ.wms; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | |
| | | namespace HH.WCS.Mobox3.NFLZ.core { |
| | | internal class WCSCore { |
| | | |
| | | public const string AlterControlSwitch01 = "1";//任务上报MES变更开发 1-开启 0-关闭 |
| | | public static void OperateAgvTaskStatus(AgvTaskState model) { |
| | | if (string.IsNullOrEmpty(model.No)) { |
| | | if (string.IsNullOrEmpty(model.task_no)) { |
| | | //无任务号请求(交管) |
| | | //DeviceProcess.Traffic(model.ForkliftNo, model.LockNo, model.State==1023); |
| | | } |
| | | else { |
| | | var TN_Task = WCSHelper.GetTask(model.No); |
| | | var TN_Task = WCSHelper.GetTask(model.task_no); |
| | | if (TN_Task != null) { |
| | | if (model.State <= 7 && !WCSHelper.CheckActionRecordExist(model.No,model.State)) { |
| | | //有任务号请求 |
| | | switch (model.State) { |
| | | case 1: |
| | | WCSHelper.Begin(TN_Task); |
| | | break; |
| | | #region MyRegion |
| | | case 3: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始取货"); |
| | | break; |
| | | case 4: |
| | | WCSHelper.UpdateStatus(TN_Task, "取货完成"); |
| | | TaskProcess.OperateStatus(TN_Task, 4); |
| | | break; |
| | | case 5: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始卸货"); |
| | | break; |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成"); |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | break; |
| | | #endregion |
| | | case 2: |
| | | WCSHelper.End(TN_Task); |
| | | //sendsencondtask(TN_Task); |
| | | WMSHelper.End(TN_Task); |
| | | break; |
| | | case 7: |
| | | TaskProcess.OperateStatus(TN_Task, 7); |
| | | WCSHelper.Fail(TN_Task); |
| | | //sendsencondtask(TN_Task); |
| | | //WMSHelper.End(TN_Task); |
| | | break; |
| | | if (model.state <= 7) |
| | | { |
| | | if (!WCSHelper.CheckActionRecordExist(model.task_no, model.state)) |
| | | { |
| | | //有任务号请求 |
| | | switch (model.state) |
| | | { |
| | | case 1: |
| | | WCSHelper.Begin(TN_Task); |
| | | break; |
| | | #region MyRegion |
| | | case 3: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始取货", model.forklift_no); |
| | | //if (TN_Task.S_TYPE == "注塑库存满托下线(瓶坯)" || TN_Task.S_TYPE == "注塑即产满托下线(瓶坯)") |
| | | //{ |
| | | // TaskProcess.writeSignal(TN_Task); |
| | | //} |
| | | break; |
| | | case 4: |
| | | WCSHelper.UpdateStatus(TN_Task, "取货完成"); |
| | | if (TN_Task.S_TYPE.Contains("满托下线")) |
| | | { |
| | | TaskProcess.writeSignal(TN_Task,4); |
| | | } |
| | | TaskProcess.OperateStatus(TN_Task, 4); |
| | | break; |
| | | case 5: |
| | | WCSHelper.UpdateStatus(TN_Task, "开始卸货"); |
| | | break; |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成"); |
| | | if (TN_Task.S_TYPE.Contains("空托上线")) |
| | | { |
| | | TaskProcess.writeSignal(TN_Task,6); |
| | | } |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | break; |
| | | #endregion |
| | | case 2: |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 4); |
| | | } |
| | | if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 6)) |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | } |
| | | WCSHelper.End(TN_Task); |
| | | //sendsencondtask(TN_Task); |
| | | WMSHelper.End(TN_Task); |
| | | break; |
| | | case 7: |
| | | TaskProcess.OperateStatus(TN_Task, 7); |
| | | WCSHelper.Fail(TN_Task); |
| | | //sendsencondtask(TN_Task); |
| | | //WMSHelper.End(TN_Task); |
| | | break; |
| | | } |
| | | WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | //调用第三方接口(如果有)TaskProcess.ReportStatus |
| | | TaskProcess.ThirdReportStatus(TN_Task, model.state, model.forklift_no); |
| | | TaskProcess.UpdateAgvNo(TN_Task, model.forklift_no); |
| | | if (AlterControlSwitch01 == "1") TaskProcess.GeneralInterFaceFunc(TN_Task, model.state.ToString(), model.forklift_no); |
| | | } |
| | | WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData); |
| | | //调用第三方接口(如果有)TaskProcess.ReportStatus |
| | | TaskProcess.ThirdReportStatus(TN_Task, model.State, model.ForkliftNo); |
| | | TaskProcess.UpdateAgvNo(TN_Task, model.ForkliftNo); |
| | | } |
| | | else { |
| | | else if(model.state == 8) |
| | | { |
| | | TaskProcess.cancelTask(TN_Task); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("安全请求交互"); |
| | | //安全请求等 |
| | | TaskProcess.OperateReq(model.No, model.State, model.ForkliftNo, model.ExtData); |
| | | TaskProcess.OperateReq(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | } |
| | | } |
| | | } |