| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Emit; |
| | | using System.Security.Cryptography; |
| | | using System.Text; |
| | | using static HH.WCS.DaYang.api.ApiModel; |
| | | using static HH.WCS.DaYang.util.Settings; |
| | | using static System.Net.WebRequestMethods; |
| | | |
| | | namespace HH.WCS.DaYang.process |
| | | { |
| | |
| | | internal static bool Intercept(WCSTask mst) |
| | | { |
| | | var result = false; |
| | | #region 空托回库任务需要判断有没有执行中的出库任务,接驳位有无托盘,如果有先不推送任务 |
| | | if (mst.S_TYPE == "空托回库" && mst.S_SCHEDULE_TYPE == "1") |
| | | #region 空托回库任务需要判断有没有执行中的出库任务,接驳位有无托盘,如果有先不推送任务,任务任务需要agv任务完成再推 |
| | | if (mst.S_TYPE == "空托回库") |
| | | { |
| | | //判断有无出库中的任务 |
| | | var task = WCSHelper.GetTaskbyType("出库"); |
| | | if (task.Count == 0) |
| | | { //获取接驳位设备状态 |
| | | HttpHelper httpHelper = new HttpHelper(); |
| | | TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); |
| | | if (tableUrl != null) |
| | | { |
| | | Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url); |
| | | //设备状态空则允许推送 |
| | | if (DeviceStatu != null && DeviceStatu.Data[0].PhotoStatus == 0) |
| | | if (mst.N_SCHEDULE_TYPE == 1) |
| | | { |
| | | //判断有无出库中的任务 |
| | | var task = WCSHelper.GetTaskbyType("出库"); |
| | | if (task.Count == 0) |
| | | { //获取接驳位设备状态 |
| | | HttpHelper httpHelper = new HttpHelper(); |
| | | TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); |
| | | if (tableUrl != null) |
| | | { |
| | | result = true; |
| | | Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url); |
| | | //设备状态空则允许推送 |
| | | if (DeviceStatu != null && DeviceStatu.Data.PhotoStatus == 0) |
| | | { |
| | | result = true; |
| | | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"Intercept:设备状态不允许推送"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"Intercept:设备状态不允许推送"); |
| | | LogHelper.Info($"Intercept:获取接口url失败"); |
| | | } |
| | | } |
| | | else |
| | | } |
| | | if (mst.N_SCHEDULE_TYPE == 2) |
| | | { |
| | | var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3); |
| | | if (task != null) |
| | | { |
| | | LogHelper.Info($"Intercept:获取接口url失败"); |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | if (mst.S_TYPE == "出库") |
| | | { |
| | | //推送agv任务,判断设备任务是否完成 |
| | | if (mst.N_SCHEDULE_TYPE == 1) |
| | | { |
| | | var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3); |
| | | if (task != null) |
| | | { |
| | | result = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //如果当前任务不是移库任务,需要判断移库任务是否完成 |
| | | if (mst.S_TYPE != "移库") |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var ykmst = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == mst.S_OP_NAME && a.N_B_STATE == 3 && a.S_TYPE == "移库").First(); |
| | | if (ykmst != null) |
| | | { |
| | | result = true; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | var result = false; |
| | | var start = "0"; var end = "0"; |
| | | var taskType = mst.S_TYPE.Trim(); |
| | | // if (mst.N_B_STATE == 0) { |
| | | if (mst.N_SCHEDULE_TYPE == 1) |
| | | |
| | | if (mst.N_SCHEDULE_TYPE == 1)//agv任务 |
| | | { |
| | | start = LocationHelper.GetAgvSite(mst.S_START_LOC); |
| | | end = LocationHelper.GetAgvSite(mst.S_END_LOC); |
| | |
| | | result = true; |
| | | } |
| | | } |
| | | //else if (mst.N_SCHEDULE_TYPE == 5) { |
| | | // //调第三方接口 |
| | | // var model = new HanAo.TaskInfoModel |
| | | // { |
| | | // requestPk = mst.S_CODE, |
| | | // frmPos = mst.S_START_LOC, |
| | | // toPos = mst.S_END_LOC, |
| | | // trkType = mst.S_OP_NAME == "入库" ? "1" : "2", |
| | | // contNo = mst.S_CNTR_CODE |
| | | // }; |
| | | // if (HanAo.CreateOrder(model)) { |
| | | // mst.N_B_STATE = 1; |
| | | // WCSHelper.UpdateStatus(mst); |
| | | // } |
| | | //} |
| | | //else if (mst.N_SCHEDULE_TYPE == 3) { |
| | | // var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p"); |
| | | // if (code > 0) { |
| | | // //更新任务状态 |
| | | // mst.N_B_STATE = 1; |
| | | // mst.S_EQ_TASK_CODE = code.ToString(); |
| | | // WCSHelper.UpdateStatus(mst); |
| | | // WCSHelper.UpdateEQNo(mst); |
| | | |
| | | // } |
| | | //} |
| | | |
| | | // } |
| | | else if (mst.N_SCHEDULE_TYPE == 2)//输送线任务 |
| | | { |
| | | HttpHelper http = new HttpHelper(); |
| | | TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3); |
| | | if (tableUrl != null) |
| | | { |
| | | var Wcsrsult = http.TaskAssignment(mst, tableUrl.url); |
| | | if (Wcsrsult.Code == 200) |
| | | { |
| | | mst.N_B_STATE = 1; |
| | | WCSHelper.UpdateStatus(mst); |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |