| | |
| | | <Compile Include="device\TcpServer.cs" /> |
| | | <Compile Include="dispatch\GZRobot.cs" /> |
| | | <Compile Include="dispatch\HanAo.cs" /> |
| | | <Compile Include="dispatch\NDC.cs" /> |
| | | <Compile Include="core\Monitor.cs" /> |
| | | <Compile Include="dispatch\NDCApi.cs" /> |
| | | <Compile Include="models\SegmentTable.cs" /> |
| | | <Compile Include="models\RowComparsionTable.cs" /> |
| | | <Compile Include="models\RowLock.cs" /> |
| | |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_NOTE }).ExecuteCommand(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | internal static WeiLiResult CancelOrder(CancelOrderModel model) |
| | | { |
| | | WeiLiResult result = new WeiLiResult(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).ToList(); |
| | | var tasks = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).ToList(); |
| | | if (tasks.Count >= 1) |
| | | { |
| | | //流程任务数量执行超过一条 任务不允许取消 |
| | |
| | | result.msg = "流程任务执行中途不允许取消"; |
| | | return result; |
| | | } |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.orderNo).OrderByDescending(a => a.T_CREATE).First(); |
| | | var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.task_no).OrderByDescending(a => a.T_CREATE).First(); |
| | | if (task != null) |
| | | { |
| | | if (WCSHelper.CheckActionRecordExist(task.S_CODE, 4)) |
| | |
| | | if (task.N_B_STATE == 0) |
| | | { |
| | | //等待直接修改状态为取消 |
| | | WCSHelper.UpdateStatus(model.orderNo, 5); |
| | | WCSHelper.UpdateStatus(model.task_no, 5); |
| | | //result.msg = "任务等待,直接取消"; |
| | | } |
| | | else if (task.N_B_STATE != 3 && task.N_B_STATE != 4) |
| | |
| | | else |
| | | { |
| | | //已推送但是没有完成或者取消,通知hosttoagv |
| | | NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | //NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | NDCApi.CancelOrder(task.S_CODE.Trim()); |
| | | //result.msg = "任务取消已经发送给小车"; |
| | | } |
| | | } |
| | |
| | | else |
| | | { |
| | | //通知杭叉修改优先级 |
| | | NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | //NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | NDCApi.CancelOrder(task.S_CODE.Trim()); |
| | | result.msg = "修改优先级成功"; |
| | | } |
| | | } |
| | |
| | | { |
| | | public string taskNo { get; set; } |
| | | } |
| | | public class CancelOrderModel |
| | | { |
| | | /// <summary> |
| | | /// 任务号 |
| | | /// </summary> |
| | | public string orderNo { get; set; } |
| | | } |
| | | //public class CancelOrderModel |
| | | //{ |
| | | // /// <summary> |
| | | // /// 任务号 |
| | | // /// </summary> |
| | | // public string orderNo { get; set; } |
| | | //} |
| | | public class ChangeOrderPriorytyModel |
| | | { |
| | | /// <summary> |
| | |
| | | else if (task.N_B_STATE != 3 && task.N_B_STATE != 4) |
| | | { |
| | | //已推送但是没有完成或者取消,通知hosttoagv |
| | | NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | //NDCHelper.Cancel(task.S_CODE.Trim()); |
| | | NDCApi.CancelOrder(task.S_CODE.Trim()); |
| | | result.resultMsg = "任务取消已经发送给小车"; |
| | | } |
| | | else |
New file |
| | |
| | | using HH.WCS.Mobox3.NFLZ; |
| | | using HH.WCS.Mobox3.NFLZ.util; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Security.Cryptography; |
| | | using System.Text; |
| | | using System.Xml; |
| | | |
| | | namespace HH.WCS.Mobox3.NFLZ.dispatch |
| | | { |
| | | public class NDCApi |
| | | { |
| | | public static string NDCApiUrl { set; get; } |
| | | static NDCApi() |
| | | { |
| | | NDCApiUrl = Settings.HostToAgvServerUrl; |
| | | } |
| | | |
| | | public static AgvApiResult AddOrderNew(int ts, int pri, string taskNo, List<param> param) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | var model = new AddOrderNewModel(); |
| | | model.ts_no = ts; |
| | | model.pri = pri; |
| | | model.task_no = taskNo; |
| | | model.param = param; |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | var AppKey = Settings.AppKey; |
| | | var AppSecret = Settings.AppSecret; |
| | | var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); |
| | | LogHelper.Info($"加密前 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}"); |
| | | var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime); |
| | | LogHelper.Info($"加密后 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify}"); |
| | | LogHelper.Info($"任务{taskNo}下发,{jsonInfo}", "NDC"); |
| | | var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo, "application/json", AppKey, ReqTime, ReqVerify); |
| | | LogHelper.Info($"任务下发结果res={result}", "NDC"); |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"任务下发失败 res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MD5加密 |
| | | /// </summary> |
| | | /// <param name="sInput"></param> |
| | | /// <returns></returns> |
| | | public static string GetMd5FromString(string sInput) |
| | | { |
| | | var lstData = Encoding.GetEncoding("utf-8").GetBytes(sInput); |
| | | var lstHash = new MD5CryptoServiceProvider().ComputeHash(lstData); |
| | | var result = new StringBuilder(32); |
| | | for (int i = 0; i < lstHash.Length; i++) |
| | | { |
| | | result.Append(lstHash[i].ToString("x2").ToUpper()); |
| | | } |
| | | return result.ToString(); |
| | | } |
| | | |
| | | public static AgvApiResult AddOrderNew(AddOrderNewModel model) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}下发,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo); |
| | | LogHelper.Info($"任务下发结果res={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"任务下发失败 res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | public static AgvApiResult CancelOrder(string tsNo, bool is_force = true) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | var model = new CancelOrderModel(); |
| | | model.task_no = tsNo; |
| | | model.is_force = is_force; |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}取消,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"CancelOrder res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | public static AgvApiResult CancelOrder(CancelOrderModel model) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}取消,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"CancelOrder res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | |
| | | } |
| | | |
| | | public static AgvApiResult ChangeOrderPri(string taskNo, int newPri) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | var model = new ChangePriModel(); |
| | | model.task_no = taskNo; |
| | | model.pri = newPri; |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}优先级更改,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | public static AgvApiResult ChangeOrderPri(ChangePriModel model) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}优先级更改,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | public static AgvApiResult ChangeOrderParam(string taskNo, int paramNo, string paramStr) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | var model = new ChangeParamModel(); |
| | | model.task_no = taskNo; |
| | | model.param_no = paramNo; |
| | | model.param = paramStr; |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}参数更改,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | public static AgvApiResult ChangeOrderParam(ChangeParamModel model) |
| | | { |
| | | var httpH = new HttpHelper(); |
| | | var agvApiResult = new AgvApiResult(); |
| | | try |
| | | { |
| | | string jsonInfo = JsonConvert.SerializeObject(model); |
| | | LogHelper.Info($"任务{model.task_no}参数更改,{jsonInfo}", "NDC"); |
| | | |
| | | var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo); |
| | | LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC"); |
| | | |
| | | agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); |
| | | return agvApiResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC"); |
| | | agvApiResult.err_code = -1; |
| | | agvApiResult.err_msg = e.Message; |
| | | return agvApiResult; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 返回信息Model |
| | | /// </summary> |
| | | public class AgvApiResult |
| | | { |
| | | public int err_code { set; get; }//异常码:0 - 正常,其它值为异常错误码 |
| | | public string err_msg { set; get; }//返回的错误描述,在 err_code <> 0 时返回 |
| | | public object result { set; get; }//正确返回的结果内容,在 err_code = 0 且有返回内容时 |
| | | } |
| | | |
| | | public class AddOrderNewModel |
| | | { |
| | | public int ts_no { set; get; }//TS 号,必须有值 |
| | | public int pri { set; get; }//优先级 |
| | | public string task_no { set; get; }//上游任务编码,如果 no_feedback = 1 时,可以为空 |
| | | public List<param> param { set; get; } = new List<param>();//参数列表 |
| | | } |
| | | |
| | | |
| | | public class param |
| | | { |
| | | public string name { set; get; }//参数名 |
| | | public string value { set; get; }//参数值 |
| | | } |
| | | |
| | | public class CancelOrderModel |
| | | { |
| | | public string task_no { set; get; }//上游任务编码 |
| | | public bool is_force { set; get; } = true;//是否强制取消,1 – 强制 |
| | | } |
| | | |
| | | public class ChangeParamModel |
| | | { |
| | | public string task_no { set; get; }//上游任务编码 |
| | | public int param_no { set; get; }//参数号 |
| | | public string param { set; get; }//参数内容,多个参数以英文分号(;)分隔 |
| | | } |
| | | |
| | | public class ChangePriModel |
| | | { |
| | | public string task_no { set; get; }//上游任务编码 |
| | | public int pri { set; get; }//新优先级 |
| | | } |
| | | } |
| | |
| | | { |
| | | public class NDCHelper |
| | | { |
| | | public static void Test() { |
| | | //dic.Add("Ext1", ""); dic.Add("Ext2", ""); dic.Add("N_CNTR_COUNT", ""); |
| | | //var r = callClient.AddNewOrderAsync(new AddNewOrderRequest() { bufin = "<Req><Order Pri='1' TS='1' From='1' To='2' No='123471118_1' Ext1='1' Ext2='CALLADDAGV' N_CNTR_COUNT='' /></Req>" }); |
| | | //r.Wait(); |
| | | |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add("Pri", "1"); dic.Add("From", "1"); dic.Add("To", "1"); dic.Add("No", "12311411718_2");// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", ""); |
| | | var result = NDC.AddNewOrder(1, dic); |
| | | |
| | | var dic1 = new Dictionary<string, string>(); |
| | | var no = "3454566666"; |
| | | dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no); |
| | | result = NDC.AddNewOrder(101, dic1); |
| | | |
| | | var dic2 = new Dictionary<string, string>(); |
| | | dic2.Add("ExtDeviceNo", "1"); dic2.Add("From", "2"); dic2.Add("To", "2"); dic2.Add("No", DateTime.Now.Ticks.ToString()); dic2.Add("CtrlVal", "1"); |
| | | result = NDC.AddNewOrder(39, dic2); |
| | | |
| | | var dic3 = new Dictionary<string, string>(); |
| | | dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no); |
| | | result = NDC.CancelOrder(101, dic3); |
| | | |
| | | var dic4 = new Dictionary<string, string>(); |
| | | dic4.Add("ExtDeviceNo", "1"); dic4.Add("CtrlVal", "1"); dic4.Add("DispInfo", "AAAAAAAA"); dic4.Add("No", DateTime.Now.Ticks.ToString()); |
| | | result = NDC.StartNewOrderWithQCmd(41, dic4); |
| | | |
| | | var dic5 = new Dictionary<string, string>(); |
| | | dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString()); |
| | | result = NDC.StartNewOrderWithQCmd(170, dic5); |
| | | |
| | | var dic6 = new Dictionary<string, string>(); |
| | | dic6.Add("ExtDeviceNo", "11"); dic6.Add("From", "2"); dic6.Add("To", "2"); dic6.Add("No", DateTime.Now.Ticks.ToString()); |
| | | result = NDC.StartNewOrderWithQCmd(164, dic6); |
| | | |
| | | var dic7 = new Dictionary<string, string>(); |
| | | dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString()); |
| | | result = NDC.ChangeOrder(dic7); |
| | | } |
| | | |
| | | public static bool ChangeParam(string taskNo, int param1, int paramNo = 0) { |
| | | bool bResult = false; |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add("No", taskNo); |
| | | if (paramNo >= 0) { |
| | | dic.Add("ParamNo", paramNo.ToString()); |
| | | } |
| | | dic.Add("Param1", param1.ToString()); |
| | | var result = NDC.ChangeOrder(dic); |
| | | return bResult; |
| | | } |
| | | |
| | | public static bool Traffic(string lockNo) { |
| | | bool bResult = false; |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add("ExtDeviceNo", lockNo); |
| | | dic.Add("From", "2"); |
| | | dic.Add("To", "2"); dic.Add("No", DateTime.Now.Ticks.ToString()); |
| | | |
| | | var result = NDC.StartNewOrderWithQCmd(164, dic); |
| | | return bResult; |
| | | } |
| | | |
| | | public static bool Cancel(string taskNo) { |
| | | bool bResult = false; |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add("No", taskNo); |
| | | dic.Add("IsForce", "1"); |
| | | |
| | | var result = NDC.CancelOrder(1, dic); |
| | | return bResult; |
| | | } |
| | | //public static void Test() { |
| | | // //dic.Add("Ext1", ""); dic.Add("Ext2", ""); dic.Add("N_CNTR_COUNT", ""); |
| | | // //var r = callClient.AddNewOrderAsync(new AddNewOrderRequest() { bufin = "<Req><Order Pri='1' TS='1' From='1' To='2' No='123471118_1' Ext1='1' Ext2='CALLADDAGV' N_CNTR_COUNT='' /></Req>" }); |
| | | // //r.Wait(); |
| | | // |
| | | // var dic = new Dictionary<string, string>(); |
| | | // dic.Add("Pri", "1"); dic.Add("From", "1"); dic.Add("To", "1"); dic.Add("No", "12311411718_2");// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", ""); |
| | | // var result = NDC.AddNewOrder(1, dic); |
| | | // |
| | | // var dic1 = new Dictionary<string, string>(); |
| | | // var no = "3454566666"; |
| | | // dic1.Add("From", "1"); dic1.Add("To", "0"); dic1.Add("No", no); |
| | | // result = NDC.AddNewOrder(101, dic1); |
| | | // |
| | | // var dic2 = new Dictionary<string, string>(); |
| | | // dic2.Add("ExtDeviceNo", "1"); dic2.Add("From", "2"); dic2.Add("To", "2"); dic2.Add("No", DateTime.Now.Ticks.ToString()); dic2.Add("CtrlVal", "1"); |
| | | // result = NDC.AddNewOrder(39, dic2); |
| | | // |
| | | // var dic3 = new Dictionary<string, string>(); |
| | | // dic3.Add("From", "1"); dic3.Add("To", "9"); dic3.Add("No", no); |
| | | // result = NDC.CancelOrder(101, dic3); |
| | | // |
| | | // var dic4 = new Dictionary<string, string>(); |
| | | // dic4.Add("ExtDeviceNo", "1"); dic4.Add("CtrlVal", "1"); dic4.Add("DispInfo", "AAAAAAAA"); dic4.Add("No", DateTime.Now.Ticks.ToString()); |
| | | // result = NDC.StartNewOrderWithQCmd(41, dic4); |
| | | // |
| | | // var dic5 = new Dictionary<string, string>(); |
| | | // dic5.Add("ExtDeviceNo", "1"); dic5.Add("CtrlVal", "1"); dic5.Add("No", DateTime.Now.Ticks.ToString()); |
| | | // result = NDC.StartNewOrderWithQCmd(170, dic5); |
| | | // |
| | | // var dic6 = new Dictionary<string, string>(); |
| | | // dic6.Add("ExtDeviceNo", "11"); dic6.Add("From", "2"); dic6.Add("To", "2"); dic6.Add("No", DateTime.Now.Ticks.ToString()); |
| | | // result = NDC.StartNewOrderWithQCmd(164, dic6); |
| | | // |
| | | // var dic7 = new Dictionary<string, string>(); |
| | | // dic7.Add("Param1", "50"); dic7.Add("No", DateTime.Now.Ticks.ToString()); |
| | | // result = NDC.ChangeOrder(dic7); |
| | | //} |
| | | // |
| | | //public static bool ChangeParam(string taskNo, int param1, int paramNo = 0) { |
| | | // bool bResult = false; |
| | | // var dic = new Dictionary<string, string>(); |
| | | // dic.Add("No", taskNo); |
| | | // if (paramNo >= 0) { |
| | | // dic.Add("ParamNo", paramNo.ToString()); |
| | | // } |
| | | // dic.Add("Param1", param1.ToString()); |
| | | // var result = NDC.ChangeOrder(dic); |
| | | // return bResult; |
| | | //} |
| | | // |
| | | //public static bool Traffic(string lockNo) { |
| | | // bool bResult = false; |
| | | // var dic = new Dictionary<string, string>(); |
| | | // dic.Add("ExtDeviceNo", lockNo); |
| | | // dic.Add("From", "2"); |
| | | // dic.Add("To", "2"); dic.Add("No", DateTime.Now.Ticks.ToString()); |
| | | // |
| | | // var result = NDC.StartNewOrderWithQCmd(164, dic); |
| | | // return bResult; |
| | | //} |
| | | // |
| | | //public static bool Cancel(string taskNo) { |
| | | // bool bResult = false; |
| | | // var dic = new Dictionary<string, string>(); |
| | | // dic.Add("No", taskNo); |
| | | // dic.Add("IsForce", "1"); |
| | | // |
| | | // var result = NDC.CancelOrder(1, dic); |
| | | // return bResult; |
| | | //} |
| | | } |
| | | } |
| | |
| | | LogHelper.Info($"查询翻斗机允许取空信号 允许取空信号={LineState[mst.S_START_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds}", "安全交互"); |
| | | if ((LineState[mst.S_START_LOC.Trim()].status == "112100" || LineState[mst.S_START_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18"); |
| | | TaskProcess.sendSing(mst, 1101); |
| | | } |
| | | } |
| | |
| | | { |
| | | if ((LineState[mst.S_START_LOC.Trim()].status == "1122" || LineState[mst.S_START_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18"); |
| | | TaskProcess.sendSing(mst, 1101); |
| | | } |
| | | } |
| | |
| | | { |
| | | if (LineState[mst.S_START_LOC.Trim()].status == "1220" && DateTime.Now.Subtract(LineState[mst.S_START_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1101, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1101, "18"); |
| | | TaskProcess.sendSing(mst, 1101); |
| | | } |
| | | } |
| | |
| | | LogHelper.Info($"查询翻斗机允许上满信号 允许上满信号={LineState[mst.S_END_LOC.Trim()].status} 时间间隔={DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds}", "安全交互"); |
| | | if ((LineState[mst.S_END_LOC.Trim()].status == "112100" || LineState[mst.S_END_LOC.Trim()].status == "112200") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18"); |
| | | TaskProcess.sendSing(mst, 1103); |
| | | } |
| | | } |
| | |
| | | { |
| | | if ((LineState[mst.S_END_LOC.Trim()].status == "1122" || LineState[mst.S_END_LOC.Trim()].status == "1221") && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18"); |
| | | TaskProcess.sendSing(mst, 1103); |
| | | } |
| | | } |
| | |
| | | { |
| | | if (LineState[mst.S_END_LOC.Trim()].status == "1021" && DateTime.Now.Subtract(LineState[mst.S_END_LOC.Trim()].modify).TotalSeconds < 10) |
| | | { |
| | | NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | //NDCHelper.ChangeParam(mst.S_CODE.Trim(), 1103, 18); |
| | | NDCApi.ChangeOrderParam(mst.S_CODE.Trim(), 1103, "18"); |
| | | TaskProcess.sendSing(mst, 1103); |
| | | } |
| | | } |
| | |
| | | using HH.WCS.Mobox3.NFLZ.util; |
| | | using HH.WCS.Mobox3.NFLZ.wms; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Linq; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Security.Cryptography; |
| | | using System.Xml.Linq; |
| | | using static HH.WCS.Mobox3.NFLZ.api.OtherModel; |
| | | using static HH.WCS.Mobox3.NFLZ.dispatch.NDC; |
| | | using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi; |
| | | using static HH.WCS.Mobox3.NFLZ.wms.WMSHelper.AddChangeModel; |
| | | |
| | | namespace HH.WCS.Mobox3.NFLZ.process |
| | |
| | | Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}"); |
| | | LogHelper.Info($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}"); |
| | | bool action = true; |
| | | var dic = new Dictionary<string, string>(); |
| | | //var dic1 = new Dictionary<string, string>(); |
| | | //dic.Add("Pri", mst.N_PRIORITY.ToString()); |
| | | //dic.Add("No", mst.S_CODE.Trim()); |
| | | dic.Add("From", Extend1); |
| | | dic.Add("To", Extend2); |
| | | dic.Add("Func", Extend3); |
| | | dic.Add("Data", Extend4); |
| | | |
| | | //var dic = new Dictionary<string, string>(); |
| | | ////var dic1 = new Dictionary<string, string>(); |
| | | ////dic.Add("Pri", mst.N_PRIORITY.ToString()); |
| | | ////dic.Add("No", mst.S_CODE.Trim()); |
| | | //dic.Add("From", Extend1); |
| | | //dic.Add("To", Extend2); |
| | | //dic.Add("Func", Extend3); |
| | | //dic.Add("Data", Extend4); |
| | | // |
| | | //if (ConveryTaskList.Contains(taskType) || taskType.Contains("移库")) |
| | | //{ |
| | | // dic.Add("ItemHeight", Extend5); |
| | | // dic.Add("CntrType", Extend6); |
| | | // dic.Add("FromCol", Extend7); |
| | | // dic.Add("ToCol", Extend8); |
| | | // if (taskType.Contains("移库") || taskType.Contains("成品下线") || taskType.Contains("零头下线")) |
| | | // { |
| | | // LogHelper.Info($"移库:Extend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},"); |
| | | // if (Extend5 == "" || Extend6 == "" || Extend7 == "" || Extend8 == "") |
| | | // { |
| | | // action = false; |
| | | // } |
| | | // } |
| | | //} |
| | | var dic = new List<param> |
| | | { |
| | | new param() { name = "From", value = Extend1 }, |
| | | new param() { name = "To", value = Extend2 }, |
| | | new param() { name = "Func", value = Extend3 }, |
| | | new param() { name = "Data", value = Extend4 } |
| | | }; |
| | | if (ConveryTaskList.Contains(taskType) || taskType.Contains("移库")) |
| | | { |
| | | dic.Add("ItemHeight", Extend5); |
| | | dic.Add("CntrType", Extend6); |
| | | dic.Add("FromCol", Extend7); |
| | | dic.Add("ToCol", Extend8); |
| | | dic.Add(new param(){name = "ItemHeight", value = Extend5}); |
| | | dic.Add(new param(){name = "CntrType", value = Extend6}); |
| | | dic.Add(new param(){name = "FromCol", value = Extend7}); |
| | | dic.Add(new param(){name = "ToCol", value = Extend8}); |
| | | if (taskType.Contains("移库") || taskType.Contains("成品下线") || taskType.Contains("零头下线")) |
| | | { |
| | | LogHelper.Info($"移库:Extend5:{Extend5},Extend6:{Extend6},Extend7:{Extend7},Extend8:{Extend8},"); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (action) |
| | | { |
| | | var res = new AGVResult(); |
| | | res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic); |
| | | var res = new AgvApiResult(); |
| | | //res = NDC.AddNewOrderNew(TsNo,mst.N_PRIORITY,mst.S_CODE, dic); |
| | | res = NDCApi.AddOrderNew(TsNo, mst.N_PRIORITY, mst.S_CODE,dic); |
| | | |
| | | if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009)) |
| | | if (res != null && (res.err_code == 0 || res.err_code == 50009)) |
| | | { |
| | | mst.N_B_STATE = 1; |
| | | WCSHelper.UpdateStatus(mst, "已推送"); |
| | |
| | | } |
| | | if (result == null) |
| | | { |
| | | result = TaskProcess.BCPInOrOut(db, true, "瓶胚即产满框缓存区", itemCode); |
| | | result = TaskProcess.BCPInOrOut(db, true, "瓶胚即产满框缓存", itemCode); |
| | | } |
| | | if(result == null) |
| | | { |
| | |
| | | public SqlSugarClient GetInstance(string url = "") { |
| | | //创建数据库对象 |
| | | SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { |
| | | ConnectionString = string.IsNullOrEmpty(url) ? Settings.SqlServer : url, |
| | | ConnectionString = Settings.SqlServer, |
| | | //ConnectionString = @"Data Source=192.168.1.198\sql2008;Initial Catalog=OIMobox;User ID=sa;Password=sa@2015", |
| | | DbType = DbType.SqlServer, |
| | | IsAutoCloseConnection = true, |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using static HH.WCS.Mobox3.NFLZ.dispatch.NDC; |
| | | using static HH.WCS.Mobox3.NFLZ.dispatch.NDCApi; |
| | | |
| | | namespace HH.WCS.Mobox3.NFLZ.wms { |
| | | /// <summary> |