File was renamed from Helpers/TaskHelper.cs |
| | |
| | | using HH.WCS.Mobox3.AnGang.ServiceCore; |
| | | using HH.WCS.Mobox3.AnGang.Dispatch; |
| | | using HH.WCS.Mobox3.AnGang.config; |
| | | using HH.WCS.Mobox3.AnGang.Helper; |
| | | using HH.WCS.Mobox3.AnGang.dispatch; |
| | | using HH.WCS.Mobox3.AnGang.wms; |
| | | using Newtonsoft.Json; |
| | | using Opc.Ua; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Security.Cryptography; |
| | | using static HH.WCS.Mobox3.AnGang.Controllers.ApiModel; |
| | | using Org.BouncyCastle.Crypto; |
| | | using HH.WCS.Mobox3.AnGang.Devices; |
| | | using HH.WCS.Mobox3.AnGang.Models; |
| | | using HH.WCS.Mobox3.AnGang.models; |
| | | using System; |
| | | |
| | | namespace HH.WCS.Mobox3.AnGang.process { |
| | | internal class TaskHelper { |
| | | internal class TaskProcess { |
| | | #region 任务相关 |
| | | //--------------------------------------------------任务相关-------------------------------------------------- |
| | | /// <summary> |
| | |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}"); |
| | | LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 任务状态更新处理 |
| | | /// </summary> |
| | | /// <param name="mst"></param> |
| | | /// <param name="state"></param> |
| | | internal static void OperateStatus(TN_Task mst, int state) { |
| | | if (state == 4) |
| | | { |
| | | if (state == 4) { |
| | | CacheBitUpdate(mst, true); |
| | | } |
| | | if (state == 6)//卸货完成 |
| | |
| | | /// <param name="state"></param> |
| | | /// <param name="forkliftNo"></param> |
| | | /// <param name="extData"></param> |
| | | internal static void OperateReq(string no, int state, string forkliftNo, string extData = "") |
| | | { |
| | | if (state == 1101) |
| | | { |
| | | internal static void OperateReq(string no, int state, string forkliftNo, string extData = "") { |
| | | if (state == 1101) { |
| | | //请求取货, |
| | | |
| | | } |
| | | if (state == 1102) |
| | | { |
| | | if (state == 1102) { |
| | | //请求卸货, |
| | | //根据终点判断,是cb02的入口,判断内存中状态(要状态时间),允许卸货,通知agv改参数 |
| | | var dic = new Dictionary<string, string>(); |
| | |
| | | NDC.ChangeOrder(dic); |
| | | //改完参数车子就会自己卸货 |
| | | } |
| | | if (state == 1103) |
| | | { |
| | | if (state == 1103) { |
| | | //大铁框叉走以后通知,我们要通知输送线 |
| | | } |
| | | } |
| | |
| | | private static object locLocker = new object(); |
| | | |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 推送任务 |
| | | /// </summary> |
| | | /// <param name="mst"></param> |
| | | internal static bool SendTask(TN_Task mst) |
| | | { |
| | | internal static bool SendTask(TN_Task mst) { |
| | | |
| | | var result = false; |
| | | var start = "0"; var end = "0"; |
| | |
| | | start = LocationHelper.GetAgvSite(mst.S_START_LOC); |
| | | end = LocationHelper.GetAgvSite(mst.S_END_LOC); |
| | | |
| | | if (mst.S_TYPE == "空托下线堆叠") |
| | | { |
| | | end = LocationHelper.GetAgvSite(mst.S_END_LOC,true); |
| | | } |
| | | //if (mst.S_TYPE == "空托下线堆叠") { |
| | | // end = LocationHelper.GetAgvSite(mst.S_END_LOC, true); |
| | | //} |
| | | |
| | | LogHelper.Info($"NDC推送任务 {mst.S_CODE};" + "start=" + start + "end= " + end); |
| | | var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); |
| | |
| | | |
| | | dic.Add(new param() { name = "Ctype", value = "0" }); |
| | | |
| | | |
| | | if (mst.S_TYPE == "余料下线入库" || mst.S_TYPE == "人工拆盘入库") |
| | | { |
| | | dic.Add(new param() { name = "DATA", value = "1024" }); |
| | | } |
| | | else |
| | | { |
| | | dic.Add(new param() { name = "DATA", value = "0" }); |
| | | } |
| | | |
| | | //if (mst.S_TYPE == "余料下线入库" || mst.S_TYPE == "人工拆盘入库") { |
| | | // dic.Add(new param() { name = "DATA", value = "1024" }); |
| | | //} |
| | | //else { |
| | | // dic.Add(new param() { name = "DATA", value = "0" }); |
| | | //} |
| | | |
| | | var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//添加新命令 |
| | | if (res != null && (res.err_code == 0 || res.err_code == 50009)) |
| | | { |
| | | if (res != null && (res.err_code == 0 || res.err_code == 50009)) { |
| | | //推送成功,修改任务优先级 |
| | | mst.N_B_STATE = 1; |
| | | mst.S_B_STATE = TN_Task.GetStateStr(1); |
| | |
| | | result = true; |
| | | LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}"); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); |
| | | } |
| | | } |
| | | else if (mst.N_SCHEDULE_TYPE == 5)//通过杭奥调度设备 |
| | | { |
| | | //调第三方接口 |
| | | var model = new HanAo.TaskInfoModel |
| | | { |
| | | var model = new HanAo.TaskInfoModel { |
| | | requestPk = mst.S_CODE, |
| | | frmPos = mst.S_START_LOC, |
| | | toPos = mst.S_END_LOC, |
| | |
| | | WCSHelper.UpdateStatus(mst); |
| | | LogHelper.Info($"杭奥推送任务成功 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | LogHelper.Info($"杭奥推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(model)); |
| | | } |
| | | } |
| | |
| | | WCSHelper.UpdateEQNo(mst); |
| | | LogHelper.Info($"国自推送任务成功 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | LogHelper.Info($"国自推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(mst)); |
| | | } |
| | | } |