| | |
| | | using System.Diagnostics.Eventing.Reader; |
| | | using System.IdentityModel.Protocols.WSTrust; |
| | | using System.Linq; |
| | | using System.Net.NetworkInformation; |
| | | using System.Security.Cryptography; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | |
| | | { |
| | | //根据客户现场要求,如果取货完成任务失败人工拉到终点,我们就当卸货完成处理;如果是人工拉走到其它区域,我们就解锁终点,删除托盘。 |
| | | //终点绑定 |
| | | //物料到位通知 |
| | | if (mst.S_TYPE == "出平库" || mst.S_TYPE == "余料返回") |
| | | { |
| | | string urlitem = Settings.tableUrls.Find(a => a.id == 5).url; |
| | | TaskProcess.MESIteminfoback(mst, urlitem); |
| | | } |
| | | if ((mst.S_NOTE == "出库" || mst.S_NOTE == "异常库区入库") && !string.IsNullOrEmpty(mst.S_MES_NO)) |
| | | { |
| | | string urlitem = Settings.tableUrls.Find(a => a.id == 5).url; |
| | | TaskProcess.MESIteminfoback(mst, urlitem); |
| | | } |
| | | CacheBitUpdate(mst, false); |
| | | LocationHelper.UnLockLoc(mst.S_END_LOC); |
| | | } |
| | |
| | | /// <param name="model">请求参数</param> |
| | | /// <param name="url">地址</param> |
| | | /// <param name="TN_Task">任务</param> |
| | | internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task) |
| | | internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task, string name) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state)) |
| | | if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name)) |
| | | { |
| | | // NDCHelper.ChangeParam(TN_Task.S_CODE.Trim(), 1101, 18); |
| | | NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1"); |
| | |
| | | } |
| | | else |
| | | { |
| | | if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state)) |
| | | if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name)) |
| | | { |
| | | NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1"); |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | LogHelper.Info($"OperateReq Error ==》{ex.ToString()}"); |
| | | } |
| | | |
| | |
| | | /// <param name="type"></param> |
| | | /// <param name="taskStatus"></param> |
| | | /// <returns></returns> |
| | | internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus) |
| | | internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus, string name) |
| | | { |
| | | bool permit = false; |
| | | try |
| | |
| | | LogHelper.Info($"安全请求失败=>msg:{result.msg}"); |
| | | ApiHelper.AddErrorInfo("安全交互失败", result.msg, "", tasknum); |
| | | } |
| | | ApiHelper.AddInfo(name, "安全请求", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | return permit; |
| | | } |
| | | catch (Exception) |
| | |
| | | LogHelper.Info($"安全请求失败=>msg:{result.err_msg}"); |
| | | ApiHelper.AddErrorInfo("安全交互失败", result.err_msg, "", no); |
| | | } |
| | | ApiHelper.AddInfo("YCL", "安全请求", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | return permit; |
| | | } |
| | | catch (Exception) |
| | |
| | | // } |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 空托等待任务 超时5分组直接推送 |
| | | /// </summary> |
| | | /// <param name="mst"></param> |
| | | /// <returns></returns> |
| | | internal static void WaitSend(WCSTask mst) |
| | | { |
| | | // 计算与当前时间的差值 |
| | | TimeSpan timeDifference = DateTime.Now - mst.T_CREATE; |
| | | if (timeDifference.TotalMinutes > 5) |
| | | { |
| | | var db = new SqlHelper<WCSTask>().GetInstance(); |
| | | mst.S_B_STATE = "等待"; |
| | | db.Updateable(mst).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 任务状态回报 |
| | | /// </summary> |
| | |
| | | /// <param name="orderNum">单号</param> |
| | | /// <param name="taskStatus">任务状态</param> |
| | | /// <param name="url">上报接口</param> |
| | | public static void Reportback(string taskNum, string orderNum, int taskStatus, string url) |
| | | public static void Reportback(string taskNum, string orderNum, int taskStatus, string url, string ly) |
| | | { |
| | | LogHelper.Info($"------------开始任务回报-----------"); |
| | | try |
| | |
| | | { |
| | | LogHelper.Info($"任务回报失败=>msg:{result.msg}"); |
| | | } |
| | | ApiHelper.AddInfo(ly, "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | LogHelper.Info($"任务回报失败="); |
| | | } |
| | | ApiHelper.AddInfo("Wms", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | LogHelper.Info($"任务回报失败=>msg:{result.err_msg}"); |
| | | } |
| | | ApiHelper.AddInfo("YCL", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | LogHelper.Info($"任务回报失败=>msg:{result.imsg}"); |
| | | } |
| | | ApiHelper.AddInfo("Mes", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | //粉料回库不需要回报 |
| | | if (cntritem != null && mst.S_TYPE == "余料返回" && cntritem.S_ITEM_CODE.StartsWith("4X")) |
| | | { |
| | | LogHelper.Info("粉料回库不需要到位发送物料到位"); |
| | | return; |
| | | } |
| | | //获取时间戳 |
| | |
| | | { |
| | | LogHelper.Info($"物料到位回报失败=>msg:{result.imsg}"); |
| | | } |
| | | ApiHelper.AddInfo("Mes", "物料到位回报", date, JsonConvert.SerializeObject(result), "Post", url); |
| | | } |
| | | catch (Exception ex) |
| | | { |