diff --git a/Model/CGetInfo.cs b/Model/CGetInfo.cs index c5f06a2..6984194 100644 --- a/Model/CGetInfo.cs +++ b/Model/CGetInfo.cs @@ -1031,6 +1031,7 @@ namespace Model _DeviceInfo[deviceinfo.DeviceIndex].Battery_Status = deviceinfo.Battery_Status;// _DeviceInfo[deviceinfo.DeviceIndex].Mile = deviceinfo.Mile;//兰州金通20190622 _DeviceInfo[deviceinfo.DeviceIndex].Time = deviceinfo.Time;//兰州金通20190622 + // _DeviceInfo[deviceinfo.DeviceIndex].F_IsAGVIOStation = deviceinfo.F_IsAGVIOStation;//山东时代20250313 } } /// @@ -1090,6 +1091,7 @@ namespace Model _DeviceInfo[deviceinfo.DeviceIndex].Battery_Status = deviceinfo.Battery_Status;// _DeviceInfo[deviceinfo.DeviceIndex].Mile = deviceinfo.Mile;//兰州金通20190622 _DeviceInfo[deviceinfo.DeviceIndex].Time = deviceinfo.Time;//兰州金通20190622 + _DeviceInfo[deviceinfo.DeviceIndex].F_IsAGVIOStation= deviceinfo.F_IsAGVIOStation;//山东时代20250313 } } public static void SetDeviceMessage(Model.MDevice deviceinfo) diff --git a/Model/MDevice.cs b/Model/MDevice.cs index bb0a2e0..0226434 100644 --- a/Model/MDevice.cs +++ b/Model/MDevice.cs @@ -675,7 +675,16 @@ namespace Model get { return _time; } set { _time = value; } } - //20120820 + //20120820\ + int _isAGViostation; + /// + /// 鏄惁AGV瀵规帴璁惧 + /// + public int F_IsAGVIOStation + { + get { return _isAGViostation; } + set { _isAGViostation = value; } + } } /// /// 鏈被鐢ㄤ簬浼犻佺粰瀹㈡埛绔暟鎹椂浣跨敤 @@ -861,8 +870,7 @@ namespace Model get { return _time; } set { _time = value; } } - - + } } diff --git a/WcfControlMonitorHost_JNWCS.sln b/WcfControlMonitorHost_JNWCS.sln index 2680439..d27b318 100644 --- a/WcfControlMonitorHost_JNWCS.sln +++ b/WcfControlMonitorHost_JNWCS.sln @@ -1,7 +1,7 @@ 锘 Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30523.141 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34202.233 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{781FC713-2D42-4A22-97E5-7B051C734ACB}" EndProject diff --git a/WcfControlMonitorLib/CCallService.cs b/WcfControlMonitorLib/CCallService.cs index 791183b..a160fb8 100644 --- a/WcfControlMonitorLib/CCallService.cs +++ b/WcfControlMonitorLib/CCallService.cs @@ -19,6 +19,7 @@ using System.Net; using System.IO; using System.Xml.Serialization; using Newtonsoft.Json; +using System.Threading.Tasks; namespace WcfControlMonitorLib @@ -82,105 +83,6 @@ namespace WcfControlMonitorLib } } - } - public class WCS_WMS_PARAM_OUT_MOVE - { - public string method { get; set; } - //public string client_customerid { get; set; } - //public string client_db { get; set; } - //public string messageid { get; set; } - //public string apptoken { get; set; } - //public string appkey { get; set; } - //public string sign { get; set; } - public string timestamp { get; set; } - - //public object data { get; set; } // //dzf 鍑哄簱鍜岀Щ搴 - public List data { get; set; } - - //public WCS_WMS_PARAM() - //{ - // method = ""; - // //client_customerid = "aa"; - // //client_db = " "; - // //messageid = ""; - // //apptoken = ""; - // //appkey = ""; - // //sign = ""; - // timestamp = ""; - // data = new object(); - //} - - //public static string MD5Encrypt64(string data) - //{ - // MD5 md5 = new MD5CryptoServiceProvider(); - // Encoding utf8 = Encoding.UTF8; - // string sign2 = HttpUtility.UrlEncode((Convert.ToBase64String(md5.ComputeHash(Encoding.Default.GetBytes(appSecret + data + appSecret)))).ToUpper(), utf8); - // return sign2; - //} - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - //if (client_customerid == String.Empty) - //{ - // message.Append("缂哄皯client_customerid鍙傛暟銆"); - - //} - //if (client_db == String.Empty) - //{ - // message.Append("缂哄皯client_db鍙傛暟銆"); - - //} - //if (messageid == String.Empty) - //{ - // message.Append("缂哄皯messageid鍙傛暟銆"); - - //} - //if (apptoken == String.Empty) - //{ - // message.Append("缂哄皯apptoken鍙傛暟銆"); - - //} - //if (appkey == String.Empty) - //{ - // message.Append("缂哄皯appkey鍙傛暟銆"); - - //} - //if (sign == String.Empty) - //{ - // message.Append("缂哄皯sign鍙傛暟銆"); - - //} - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - } #region OUT_MOVE_DATA 涓嬪彂浠诲姟 灞变笢鏃朵唬 @@ -343,7 +245,7 @@ namespace WcfControlMonitorLib { public int code { get; set; }//澶勭悊鐘舵併0锛屾垚鍔燂紝1寮傚父 public string msg { get; set; }//杩斿洖娑堟伅 - public string data { get; set; } + public object data { get; set; } } #endregion @@ -592,1109 +494,463 @@ namespace WcfControlMonitorLib #endregion #endregion - + #region 鍏ュ簱WCS灞变笢鏃朵唬 public class WMS_WCS_PARAM_IN { - public string method { get; set; } + /// + /// 浠诲姟ID + /// + public string taskId { get; set; } + /// + /// 浠诲姟绫诲瀷 + /// + public int taskType { get; set; } + /// + /// 浠诲姟璧风偣 + /// + public string startNode { get; set; } + /// + /// 璧峰宸烽亾 + /// + public string startLaneway { get; set; } + /// + /// 浼樺厛绾 + /// + public string priority { get; set; } + /// + /// 浠诲姟缁堢偣 + /// + public string endNode { get; set; } + /// + /// 鐩爣宸烽亾 + /// + public string endLaneway { get; set; } + /// + /// 鐩爣鎺 + /// + public int endRow { get; set; } + /// + /// 鐩爣鍒 + /// + public int endColumn { get; set; } + /// + /// 鐩爣灞 + /// + public int endLayer { get; set; } + /// + /// 鐩爣娣卞害 + /// + public int endDepth { get; set; } + /// + /// 鐩爣搴撲綅缁 + /// + public string endGroup { get; set; } + /// + /// 瀹瑰櫒缂栫爜 + /// + public string containerCode { get; set; } + } + public class WCS_WMS_PARAM_IN + { + public int code { get; set; } - public string timestamp { get; set; } + public string msg { get; set; } - public IN_DATA data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 + public object data { get; set; } + + } + #endregion - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { + #region IN_DATA 鍏ュ簱 姘戣埅浜屾墍 + public class IN_DATA + //JSON鏍煎紡涓氬姟鏁版嵁 + { + /// + /// + /// + public string taskId { get; set; } + /// + /// + /// + public string containerCode { get; set; } + /// + /// + /// + public string sourceAddress { get; set; } + /// + /// + /// + public string targetAddress { get; set; } + /// + /// + /// + public string tasklevel { get; set; } - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); + } + #endregion - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); + #region IN_RES 鍏ュ簱杩斿洖 - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); + public class IN_RES //JSON鏍煎紡涓氬姟鏁版嵁 + { + public string code { get; set; }//澶勭悊鐘舵併00锛屾垚鍔燂紝01寮傚父 + public string msg { get; set; }//杩斿洖娑堟伅 + public string taskId { get; set; } + } + #endregion - } - error = message.ToString(); + #region CANCEL_DATA WMS鍙栨秷浠诲姟 + public class WMS_WCS_PARAM_CANCEL + { + public string taskId { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 + public string msgTime { get; set; }// + } + #endregion + public class WCS_WMS_PARAM_CANCEL + { - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } + public int code { get; set; }//澶勭悊鐘舵併0锛屾垚鍔燂紝1寮傚父 + public string msg { get; set; }//杩斿洖娑堟伅 + public object data { get; set; } - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} } - public class WCS_WMS_PARAM_IN - { - public string method { get; set; } - - public string timestamp { get; set; } - - public IN_RES data { get; set; } //鍏ュ簱 鍙栨秷 - - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - } - #region IN_DATA 鍏ュ簱 姘戣埅浜屾墍 - public class IN_DATA - //JSON鏍煎紡涓氬姟鏁版嵁 - { + #region CANCEL_RES_Priority WMS璋冩暣浠诲姟浼樺厛绾 + public class WMS_WCS_PARAM_Priority { /// - /// + /// 浠诲姟缂栫爜 /// public string taskId { get; set; } /// - /// - /// - public string containerCode { get; set; } - /// - /// - /// - public string sourceAddress { get; set; } - /// - /// + /// 浠诲姟浼樺厛绾 /// - public string targetAddress { get; set; } + public string priority { get; set; } /// - /// + /// 涓嬪彂鏃堕棿 /// - public string tasklevel { get; set; } - - } - #endregion - - #region IN_RES 鍏ュ簱杩斿洖 - - public class IN_RES //JSON鏍煎紡涓氬姟鏁版嵁 - { - public string code { get; set; }//澶勭悊鐘舵併00锛屾垚鍔燂紝01寮傚父 - public string msg { get; set; }//杩斿洖娑堟伅 - public string taskId { get; set; } - } - #endregion - - - - public class WMS_WCS_PARAM_CANCEL - { - public string method { get; set; } - - public string timestamp { get; set; } - - public CANCEL_DATA data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - public class WCS_WMS_PARAM_CANCEL - { - public string method { get; set; } - - public string timestamp { get; set; } - - public CANCEL_RES_DATA data { get; set; } //鍏ュ簱 鍙栨秷 - - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - } - - - #region CANCEL_DATA WMS鍙栨秷浠诲姟 - - public class CANCEL_DATA //JSON鏍煎紡涓氬姟鏁版嵁 - { - public string taskId { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 - public string msgTime { get; set; }// + public string msgTime { get; set; } } - #endregion - - #region CANCEL_RES_DATA - public class CANCEL_RES_DATA //JSON鏍煎紡涓氬姟鏁版嵁 + public class WCS_WMS_PARAM_Priority //JSON鏍煎紡涓氬姟鏁版嵁 { - public string code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 + public int code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 public string msg { get; set; }//杩斿洖娑堟伅锛屾弿杩颁俊鎭 - public string taskId { get; set; } + public object data { get; set; } } #endregion + #region 鐘舵佷笂鎶 灞变笢 + /// + /// 浠诲姟涓婃姤 + /// + public class WCS_WMS_PARAM_UPDATE + { + /// + /// 浠诲姟ID + /// + public string taskId { get; set; } + /// + /// 浠诲姟鐘舵佷换鍔℃墽琛岃繃绋嬩腑鐨勭姸鎬侊紝1锛氫换鍔 寮濮 2锛氫换鍔$粨鏉 + /// + public int taskStatus { get; set; } + /// + /// 鍑哄簱鍙栬揣搴撲綅缂栫爜 鍑哄簱鍙栧埌璐ф椂浼 鍏ワ紙鍙栧埌璐ф椂蹇 濉級鍑哄簱鍙婄Щ搴 蹇呭~ + /// + public string startSpaceCode{ get; set; } + /// + /// 鍏ュ簱鏀捐揣搴撲綅缂栫爜 鍏ュ簱鏀惧畬璐у悗浼 鍏ワ紙鏀捐揣瀹屾垚鍚庡繀濉級鍏ュ簱鍙婄Щ搴撳繀濉 + /// + public string endSpaceCode { get; set;} + /// + /// 鏄惁闇瑕佺粰AGV涓嬪彂鎼繍浠诲姟 鍚庣画浠诲姟鏄惁闇瑕佷笅鍙戠粰 AGV鎼繍锛0锛氫笉闇瑕1锛氶渶瑕侊紱濡傚嚭搴撳埌杈撻佺嚎鏈锛岄渶瑕 AGV 鎼繍鍒欓渶鍥炰紶 1锛屽鏌愪釜鍑哄簱鍙d复鏃堕渶瑕佷汉宸ユ惉杩愶紝鍒欎负 0 + /// + public string sendAgv { get; set; } + /// + /// 涓婃姤鏃堕棿 + /// + public string reportTime { get; set; } + /// + /// 涓婃姤淇℃伅 + /// + public string reportInfo { get; set; } + } - - public class WCS_WMS_PARAM_UPDATE - { - public string method { get; set; } - - public string timestamp { get; set; } - - public UPDATE_TASK_DATA data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - - public class WMS_WCS_PARAM_UPDATE - { - public string method { get; set; } - //public string client_customerid { get; set; } - //public string client_db { get; set; } - //public string messageid { get; set; } - //public string apptoken { get; set; } - //public string appkey { get; set; } - //public string sign { get; set; } - public string timestamp { get; set; } - - public UPDATE_TASK_RES data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - //if (client_customerid == String.Empty) - //{ - // message.Append("缂哄皯client_customerid鍙傛暟銆"); - - //} - //if (client_db == String.Empty) - //{ - // message.Append("缂哄皯client_db鍙傛暟銆"); - - //} - //if (messageid == String.Empty) - //{ - // message.Append("缂哄皯messageid鍙傛暟銆"); - - //} - //if (apptoken == String.Empty) - //{ - // message.Append("缂哄皯apptoken鍙傛暟銆"); - - //} - //if (appkey == String.Empty) - //{ - // message.Append("缂哄皯appkey鍙傛暟銆"); - - //} - //if (sign == String.Empty) - //{ - // message.Append("缂哄皯sign鍙傛暟銆"); - - //} - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - - #region UPDATE_TASK_DATA 鏇存敼浠诲姟鐘舵 - - public class UPDATE_TASK_DATA //JSON鏍煎紡涓氬姟鏁版嵁 - { - // 20220904 add for zcy - public string taskId { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 - public string taskstatus { get; set; }//鐘舵侊紙10 鎵ц涓 30鏁呴殰 999瀹屾垚锛 - public string errortext { get; set; }// - public string containerCode { get; set; }// 瀹瑰櫒缂栧彿 - } - - #endregion - - #region UPDATE_TASK_RES 鏇存敼浠诲姟鐘舵佽繑鍥 - public class UPDATE_TASK_RES - { - public string code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 - public string msg { get; set; }//杩斿洖娑堟伅锛屾弿杩颁俊鎭 - public string taskId { get; set; } - } - #endregion - - - - - public class WCS_WMS_PARAM_TCANCEL - { - public string method { get; set; } - - public string timestamp { get; set; } - - public DELETE_TASK_DATA data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - - public class WMS_WCS_PARAM_TCANCEL - { - public string method { get; set; } - //public string client_customerid { get; set; } - //public string client_db { get; set; } - //public string messageid { get; set; } - //public string apptoken { get; set; } - //public string appkey { get; set; } - //public string sign { get; set; } - public string timestamp { get; set; } - - public DELETE_TASK_RES data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - //if (client_customerid == String.Empty) - //{ - // message.Append("缂哄皯client_customerid鍙傛暟銆"); - - //} - //if (client_db == String.Empty) - //{ - // message.Append("缂哄皯client_db鍙傛暟銆"); - - //} - //if (messageid == String.Empty) - //{ - // message.Append("缂哄皯messageid鍙傛暟銆"); - - //} - //if (apptoken == String.Empty) - //{ - // message.Append("缂哄皯apptoken鍙傛暟銆"); - - //} - //if (appkey == String.Empty) - //{ - // message.Append("缂哄皯appkey鍙傛暟銆"); - - //} - //if (sign == String.Empty) - //{ - // message.Append("缂哄皯sign鍙傛暟銆"); - - //} - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - - - #region DELETE_TASK_DATA 鍚戠鐞嗙敵璇峰垹闄や换鍔 - public class DELETE_TASK_DATA - { - - public string taskId { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 - public string containerCode { get; set; }//鏉$爜 - - } - #endregion - - #region DELETE_TASK_RES 鍙栨秷浠诲姟杩斿洖 - public class DELETE_TASK_RES - { - public string code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 - public string msg { get; set; }//杩斿洖娑堟伅锛屾弿杩颁俊鎭 - public string taskId { get; set; } - } - #endregion - - - - - public class WCS_WMS_PARAM_STACK_STATUS - { - public string method { get; set; } - //public string client_customerid { get; set; } - //public string client_db { get; set; } - //public string messageid { get; set; } - //public string apptoken { get; set; } - //public string appkey { get; set; } - //public string sign { get; set; } - public string timestamp { get; set; } - - //public object data { get; set; } // - public List data { get; set; } - - //public WCS_WMS_PARAM() - //{ - // method = ""; - // //client_customerid = "aa"; - // //client_db = " "; - // //messageid = ""; - // //apptoken = ""; - // //appkey = ""; - // //sign = ""; - // timestamp = ""; - // data = new object(); - //} - - //public static string MD5Encrypt64(string data) - //{ - // MD5 md5 = new MD5CryptoServiceProvider(); - // Encoding utf8 = Encoding.UTF8; - // string sign2 = HttpUtility.UrlEncode((Convert.ToBase64String(md5.ComputeHash(Encoding.Default.GetBytes(appSecret + data + appSecret)))).ToUpper(), utf8); - // return sign2; - //} - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - //if (client_customerid == String.Empty) - //{ - // message.Append("缂哄皯client_customerid鍙傛暟銆"); - - //} - //if (client_db == String.Empty) - //{ - // message.Append("缂哄皯client_db鍙傛暟銆"); - - //} - //if (messageid == String.Empty) - //{ - // message.Append("缂哄皯messageid鍙傛暟銆"); - - //} - //if (apptoken == String.Empty) - //{ - // message.Append("缂哄皯apptoken鍙傛暟銆"); - - //} - //if (appkey == String.Empty) - //{ - // message.Append("缂哄皯appkey鍙傛暟銆"); - - //} - //if (sign == String.Empty) - //{ - // message.Append("缂哄皯sign鍙傛暟銆"); - - //} - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - } - - public class WMS_WCS_PARAM_STACK_STATUS - { - public string method { get; set; } - //public string client_customerid { get; set; } - //public string client_db { get; set; } - //public string messageid { get; set; } - //public string apptoken { get; set; } - //public string appkey { get; set; } - //public string sign { get; set; } - public string timestamp { get; set; } - - public STACKSTATUS_RES_DATA data { get; set; } //闇瑕佹牴鎹甿ethod杩涜绫诲瀷杞崲 - - //妫鏌ュ弬鏁版槸鍚︾己澶 - public bool CheckParamNotNull(out string error) - { - - StringBuilder message = new StringBuilder(); - if (method == String.Empty) - { - message.Append("缂哄皯method鍙傛暟銆"); - - } - //if (client_customerid == String.Empty) - //{ - // message.Append("缂哄皯client_customerid鍙傛暟銆"); - - //} - //if (client_db == String.Empty) - //{ - // message.Append("缂哄皯client_db鍙傛暟銆"); - - //} - //if (messageid == String.Empty) - //{ - // message.Append("缂哄皯messageid鍙傛暟銆"); - - //} - //if (apptoken == String.Empty) - //{ - // message.Append("缂哄皯apptoken鍙傛暟銆"); - - //} - //if (appkey == String.Empty) - //{ - // message.Append("缂哄皯appkey鍙傛暟銆"); - - //} - //if (sign == String.Empty) - //{ - // message.Append("缂哄皯sign鍙傛暟銆"); - - //} - if (timestamp == String.Empty) - { - message.Append("缂哄皯timestamp鍙傛暟銆"); - - } - if (data == null) - { - message.Append("缂哄皯data鍙傛暟銆"); - - } - - error = message.ToString(); - - if (message.Length == 0) - { - return true; - } - else - { - return false; - } - } - - //public FLUX_SYSTEM_PARAM(string[] str) - //{ - // for (int i = 0; i < str.Length; i++) - // { - // if (str[i].Contains("method") == true) - // { - // this.method = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_customerid") == true) - // { - // this.client_customerid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("client_db") == true) - // { - // this.client_db = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("messageid") == true) - // { - // this.messageid = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("apptoken") == true) - // { - // this.apptoken = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("appkey") == true) - // { - // this.appkey = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("sign") == true) - // { - // this.sign = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("timestamp") == true) - // { - // this.timestamp = str[i].Split('=')[1]; - // continue; - // } - // if (str[i].Contains("data") == true) - // { - // //this.data = str[i].Split('=')[1]; //涓氬姟鏁版嵁 - // continue; - // } - // } - //} - } - - - #region STACKSTATUS_DATA 澶氱┛璁惧鐘舵 - - public class STACKSTATUS_DATA //JSON鏍煎紡涓氬姟鏁版嵁 + public class WMS_WCS_PARAM_UPDATE { - public string stackindex { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 - public string positon { get; set; }//灞 - public string battery { get; set; }//鐢甸噺 - public string laneout { get; set; }//宸烽亾鍐呭 - public string runstatus { get; set; }//鐘舵 + public int code { get; set; } + public string msg { get; set; } + public object data { get; set; } } #endregion + #region 鍏ュ簱鐢宠 灞变笢 + - #region STACKSTATUS_RES_DATA + public class InboundApply //JSON鏍煎紡涓氬姟鏁版嵁 + { + /// + /// 瀹瑰櫒缂栫爜 + /// + public string containerCode { get; set; } + /// + /// 浠诲姟璧风偣 杈撻佺嚎鍙 + /// + public string startNode { get; set; } + /// + /// 璇锋眰绫诲瀷 1瀹炵墿锛2绌烘墭 + /// + public int requestType { get; set; }//鐘舵侊紙10 鎵ц涓 30鏁呴殰 999瀹屾垚锛 + /// + /// 璇锋眰浠诲姟绫诲瀷 1鍏ュ簱璇锋眰 2.璇锋眰搴撲綅涓 1 鏃 WMS 浠呮牎楠屼换鍔℃槸鍚﹀厑璁稿叆搴擄紝 + /// 涓嶈繑鍥炲叿浣撶殑鐩爣搴撲綅锛屼负 2 鏃禬MS 杩斿洖鍏蜂綋鐨勭洰鏍囧簱浣 + /// + public int requestTaskType { get; set; }// + /// + ////楂樺害 1.浣庯紝2楂 + /// + public int requestHeight { get; set; } + /// + /// 杞藉叿灏哄 杞藉叿灏哄(涓嶆槸蹇呴』) + /// + public string containerSize { get; set; } + /// + /// 杞藉叿閲嶉噺 + /// + public double weight { get; set; } + /// + /// 涓婃姤鏃堕棿 + /// + public string msgTime { get; set; } + } - public class STACKSTATUS_RES_DATA //JSON鏍煎紡涓氬姟鏁版嵁 + public class InboundApplyBack { - public string code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 + public int code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 public string msg { get; set; }//杩斿洖娑堟伅锛屾弿杩颁俊鎭 + public InBoundApplyBackData data { get; set; } + } + public class InBoundApplyBackData { + /// + /// 杩斿洖鏃堕棿 + /// + public string msgTime { get; set; } + /// + /// 浠诲姟ID + /// + public string taskId { get; set; } + /// + /// 浠诲姟绫诲瀷 + /// + public int taskType { get; set; } + /// + /// 浠诲姟璧风偣 + /// + public string startNode { get; set; } + /// + /// 浠诲姟缁堢偣 + /// + public string endNode { get; set; } + /// + /// 鐩爣宸烽亾 + /// + public string endLaneway { get; set; } + /// + /// 鐩爣鎺 + /// + public int endRow { get; set; } + /// + /// 鐩爣鍒 + /// + public int endColumn { get; set; } + /// + /// 鐩爣灞 + /// + public int endLayer { get; set; } + /// + /// 鐩爣娣变綅 + /// + public int endDepth { get; set; } + /// + /// 鐗╂枡缂栫爜 + /// + public string materialCode { get; set; } + /// + /// 鐗╂祦鍚嶇О + /// + public string materialName { get; set; } + /// + /// 鐗╂枡绫诲瀷 + /// + public string materialType { get; set; } + /// + /// 鎵规鍙 + /// + public string batchNo { get; set; } + /// + /// 鏁伴噺 + /// + public double qty { get; set; } + /// + /// 杞藉叿灏哄 + /// + public string containerSize { get; set; } + /// + /// 浼樺厛绾 + /// + public int priority { get; set; } + /// + /// 杞藉叿閲嶉噺 + /// + public double weight { get; set; } + /// + /// 瀹瑰櫒鏉$爜 + /// + public string containerCode { get; set; } + } + #endregion + #region WCS->LCS璇锋眰AGV 鍙栬揣 鏃犵敤 + public class WCS_WMS_RequestAGV { + /// + /// 浠诲姟ID + /// + public string taskId { get; set; } + /// + /// (绔欏彴鍙) + /// + public string fromStation { get; set; } + /// + /// (鎷嗗寘闂/浜х嚎鎶曟枡鍙,绔欑偣锛岀珯鍙) + /// + public string toStation { get; set; } + /// + /// 鐩爣搴撲綅缁 + /// + public string endGroup { get; set; } + /// + /// + /// + public string pallteId { get; set; } + /// + /// 0-灏忥紙绮夋枡锛夛紝1-涓紙绠旀潗锛夛紝2-澶с傛牴鎹渶瑕佸彲浠ユ墿灞曟垚鎵樼洏杞粨灏哄 + /// + public string pallteType { get; set; } + /// + /// 鍖呮嫭鐗╂枡鍙峰拰绠卞彿锛宩son 鏁扮粍锛屼緥濡 [{"lotId":"S23333","material":"Aa123"}]銆傛敮鎸佷竴鎵樺绠变竴鐗╂枡鍙凤紝涔熸敮鎸佷竴鎵樺绠卞鐗╂枡鍙枫 + /// + public string lotInfo { get; set; } + /// + /// 1-100 ,鏁板艰秺澶ц秺浼樺厛 + /// + public int priorityP { get; set; } + /// + /// 1-鐗╂枡 2-绌烘墭鐩 + /// + public int taskType { get; set; } + } + public class WCS_WMS_RequestAGVBack { + public int code { get; set; } + public string msg { get; set; } + public RequestAGVBackData data { get; set; } + + } + public class RequestAGVBackData { + public string msgTime { get; set; } + public string taskId { get; set; } } #endregion + #region + #region WCS 鍏佽 AGV 鍙彇鍙斁 杩斿洖绔欏彴鐘舵 + public class LCS_WCS_AGVStationStauts { + public string taskId { get; set; } + /// + /// + /// + public int pickput { get; set; } + /// + /// 闇瑕佸叆搴撶殑杞藉叿鏉$爜锛屽鎵樼洏鏉$爜 + /// + public string containerCode{get;set;} + /// + /// WCS绔欏彴鍙 + /// + public string toStation { get; set; } + /// + /// 鏄惁闇瑕佹暣褰 閫佸嚭 true(闇瑕)|false锛堜笉闇瑕侊級 + /// + public bool isReshaping { get; set; } + /// + /// 1-鐗╂枡 2-绌烘墭 + /// + public int cargoType { get; set; } + } + public class LCS_WCS_AGVStationStautsBack { + public int code { get; set; } + public string msg { get; set; } + public LCS_WCS_AGVStationStautsBackData data { get; set; } - + } + public class LCS_WCS_AGVStationStautsBackData { + public int putStatus { get; set; } + public string taskId { get; set; } + } + #endregion + + #endregion + #region LCS 杩斿洖 AGV 鍙栨斁璐х姸鎬佺粰 WCS 鍙栨斁瀹屾垚涓庡惁 + public class LCS_WCS_AGVStatus { + /// + /// 浠诲姟ID + /// + public string taskId { get; set; } + /// + /// 鐩爣绔欏彴 + /// + public string toStation { get; set; } + /// + /// AGV杩愯鐘舵 21-鍙栬揣瀹屾垚 23-鏀捐揣瀹屾垚 56 宸茬寮 + /// + public int agvTaskStatus { get; set; } + } + public class LCS_WCS_AGVStatusBack { + public int code { get; set; } + public string msg { get; set; } + public LCS_WCS_AGVStatusBackData data { get; set; } + } + public class LCS_WCS_AGVStatusBackData { + /// + /// 浠诲姟ID鍞竴 + /// + public string taskId { get; set; } + } + #endregion - + #region DELETE_TASK_DATA 鍚戠鐞嗙敵璇峰垹闄や换鍔 + public class DELETE_TASK_DATA + { + + public string taskId { get; set; }//浠诲姟缂栧彿锛堢储寮曪級 + public string containerCode { get; set; }//鏉$爜 + } + #endregion + #region DELETE_TASK_RES 鍙栨秷浠诲姟杩斿洖 + public class DELETE_TASK_RES + { + public string code { get; set; }//鐘舵侊紙0 鎴愬姛锛1 澶辫触锛 + public string msg { get; set; }//杩斿洖娑堟伅锛屾弿杩颁俊鎭 + public string taskId { get; set; } + } + #endregion - public static event RefreshMonitorEventHandler RefreshMonitor; @@ -1705,18 +961,21 @@ namespace WcfControlMonitorLib RefreshMonitor(e); } } - + /// + /// post璇锋眰鏂规硶 + /// + /// + /// + /// + /// public static bool Invok_WMS_new( string pContent, string address, out string sResult) { object result = new object(); try - { - if (!address.Contains("state")) - { + { CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "鍙戦佹姤鏂:", pContent, ""); - } //json鍙傛暟 //鍒涘缓涓涓狧TTP璇锋眰 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); @@ -1766,8 +1025,13 @@ namespace WcfControlMonitorLib } - - public static string UpdateToWMS(UPDATE_TASK_DATA ask_data, out UPDATE_TASK_RES resp_data) + /// + /// 浠诲姟鐘舵佷笂鎶 + /// + /// + /// + /// + public static string UpdateTaskStatusToWMS(int Managertask_Id,out WMS_WCS_PARAM_UPDATE resp_data) { string bResult = string.Empty; bool sResult = true; @@ -1775,41 +1039,41 @@ namespace WcfControlMonitorLib resp_data = null; try { - WCS_WMS_PARAM_UPDATE upd = new WCS_WMS_PARAM_UPDATE(); - WMS_WCS_PARAM_UPDATE upd_res = new WMS_WCS_PARAM_UPDATE(); - upd.method = "wcs_status_feedback"; - upd.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - upd.data = ask_data; - - string data_json_string = Model.JsonHelper.Serializer(upd); - - sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddress, out outJson); + sql.Clear(); + DataView data = new DataView(); + sql.Append(string.Format("select CONTROL_ID,MANAGE_ID,CONTROL_TASK_TYPE, STOCK_BARCODE, START_WAREHOUSE_CODE,START_DEVICE_CODE, END_WAREHOUSE_CODE, END_DEVICE_CODE, CONTROL_BEGIN_TIME,CONTROL_STATUS,NeedAGV from IO_CONTROL where FMANAGE_ID={0}", Managertask_Id)); + data = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; ; + WCS_WMS_PARAM_UPDATE upd = new WCS_WMS_PARAM_UPDATE();//浼犲弬瑙f瀽浣跨敤 + if (data.Count > 0) { + upd.taskId = Managertask_Id.ToString(); + upd.taskStatus = Convert.ToInt32(data[0]["CONTROL_STATUS"]); + if (Convert.ToInt32(data[0]["CONTROL_TASK_TYPE"]) == 1) { + upd.endSpaceCode = data[0]["END_WAREHOUSE_CODE"].ToString(); + } + else if (Convert.ToInt32(data[0]["CONTROL_TASK_TYPE"]) == 2) { + upd.startSpaceCode = data[0]["START_WAREHOUSE_CODE"].ToString(); + } + else if (Convert.ToInt32(data[0]["CONTROL_TASK_TYPE"]) == 3) { + upd.startSpaceCode = data[0]["START_WAREHOUSE_CODE"].ToString(); + upd.endSpaceCode = data[0]["END_WAREHOUSE_CODE"].ToString(); + } + upd.sendAgv =data[0]["NeedAGV"].ToString(); + upd.reportTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + upd.reportInfo = null; + WMS_WCS_PARAM_UPDATE upd_res = new WMS_WCS_PARAM_UPDATE();//杩斿洖鍊 - if (sResult == false) - { - bResult = outJson; + string data_json_string = Model.JsonHelper.Serializer(upd); - } - else - { - upd_res = Model.JsonHelper.Deserialize(outJson);//WMS鐨勮繑鍥炲奸渶瑕佸弽搴忓垪鍖 - UPDATE_TASK_RES outdata = upd_res.data; + sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddress, out outJson); - if (outdata.code == "00" || outdata.code == "0") + if (sResult == false) { - bResult = ""; - resp_data = outdata; + bResult = outJson; } else { - if (outdata.msg == "") - { - bResult = "杩斿洖涓簄ull"; - } - else - { - bResult = outdata.msg; - } + upd_res = Model.JsonHelper.Deserialize(outJson);//WMS鐨勮繑鍥炲奸渶瑕佸弽搴忓垪鍖 + } } return bResult; @@ -1819,115 +1083,186 @@ namespace WcfControlMonitorLib bResult = ex.Message; return bResult; } - } - public static string CancelToWMS(DELETE_TASK_DATA ask_data, out DELETE_TASK_RES resp_data) + } + + /// + ///杈撻佺嚎鍏ュ簱鐢宠 + /// + /// 鏉$爜 + /// 鎵爜绔欏彴 + /// 1: 鍏ュ簱鐢宠2锛氳姹傚簱浣 + /// 杩斿洖鏁版嵁 + /// + public static ResultMessage RequestToWMS(string barcode, string startNode,string requestType, out InboundApplyBack resp_data) { - string bResult = string.Empty; - bool sResult = true; + ResultMessage result = new ResultMessage(); + //string bResult = string.Empty; + // bool sResult = false; string outJson = string.Empty; resp_data = null; try { - WCS_WMS_PARAM_TCANCEL canc = new WCS_WMS_PARAM_TCANCEL(); - WMS_WCS_PARAM_TCANCEL cancres = new WMS_WCS_PARAM_TCANCEL(); - canc.method = "wcs_task_cancel"; - canc.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - canc.data = ask_data; - - string data_json_string = Model.JsonHelper.Serializer(canc); - - - sResult = Invok_WMS_new( data_json_string, CStaticClass.ManageServiceAddressTwo,out outJson); - - if (sResult == false) - { - bResult = outJson; - + InboundApply inboundApply = new InboundApply(); + // InboundApplyBack inboundApplyBack = new InboundApplyBack(); + inboundApply.msgTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + inboundApply.containerCode = barcode; + inboundApply.weight = 0; + inboundApply.requestType = 1; //1 瀹炵墿2 绌烘墭 / 绌虹 + inboundApply.startNode =startNode; + inboundApply.containerSize = null; + inboundApply.requestHeight = 1;//1浣庯紝2楂 + inboundApply.requestTaskType = 2;//1: 鍏ュ簱鐢宠2锛氳姹傚簱浣嶄负 1 鏃 WMS 浠呮牎楠屼换鍔℃槸鍚﹀厑璁稿叆搴擄紝涓嶈繑鍥炲叿浣撶殑鐩爣搴撲綅锛屼负 2 鏃禬MS 杩斿洖鍏蜂綋鐨勭洰鏍囧簱浣 + string data_json_string = Model.JsonHelper.Serializer(inboundApply); + result.sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddressTwo, out outJson); + if (result.sResult == false) + { + result.message = outJson; } else { - cancres = Model.JsonHelper.Deserialize(outJson); - DELETE_TASK_RES outdata = cancres.data; - - if (outdata.code == "00" || outdata.code == "0") + resp_data = Model.JsonHelper.Deserialize(outJson);//灏唚ms鍥炲鐨勪俊鎭弽搴忓垪鍖 + //杩斿洖 + if (resp_data.code == 0)//鎴愬姛 { - bResult = ""; - resp_data = outdata; + result.sResult = true; + result.message = resp_data.msg; } - else + else//澶辫触 { - if (outdata.msg == "") + if (resp_data.msg == "") { - bResult = "杩斿洖涓簄ull"; + result.sResult = false; + result.message = "杩斿洖涓簄ull"; } else { - bResult = outdata.msg; + result.sResult = false; + result.message = resp_data.msg; } } } - return bResult; + return result; } catch (Exception ex) { - bResult = ex.Message; - return bResult; + result.sResult = false; + result.message = ex.Message; + return result; } } - public static string UpdateStatusToWMS(List ask_data, out STACKSTATUS_RES_DATA resp_data) - { - string bResult = string.Empty; - bool sResult = true; - string outJson = string.Empty; - resp_data = null; - try - { - WCS_WMS_PARAM_STACK_STATUS updatestatus= new WCS_WMS_PARAM_STACK_STATUS(); - WMS_WCS_PARAM_STACK_STATUS updatestatusres = new WMS_WCS_PARAM_STACK_STATUS(); - updatestatus.method = "wcs_stack_status"; - updatestatus.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - updatestatus.data = ask_data; - string data_json_string =Model.JsonHelper.Serializer(updatestatus); + #region 涓嶄娇鐢 + //public static string RequestAGV (int Managertask_Id, string requestType, out RequestAGVBackData resp_data) + //{ + // string bResult = string.Empty; + // bool sResult = false; + // string outJson = string.Empty; + // resp_data = null; + // try + // { + // WCS_WMS_RequestAGV RequestAGV = new WCS_WMS_RequestAGV();//浼犲叆鍙傛暟 + // WCS_WMS_RequestAGVBack RequestAGVBack = new WCS_WMS_RequestAGVBack();//浼犲嚭鍙傛暟 + // sql.Clear(); + // DataView data = new DataView(); + // sql.Append(string.Format("select CONTROL_ID,MANAGE_ID,CONTROL_TASK_TYPE, STOCK_BARCODE, START_WAREHOUSE_CODE,START_DEVICE_CODE, END_WAREHOUSE_CODE, END_DEVICE_CODE, CONTROL_BEGIN_TIME,CONTROL_STATUS,NeedAGV from IO_CONTROL where FMANAGE_ID={0}", Managertask_Id)); + // data = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + // if (data.Count > 0) { + // RequestAGV.taskId = Managertask_Id.ToString(); + // RequestAGV.fromStation = data[0]["START_DEVICE_CODE"].ToString(); + // RequestAGV.toStation = data[0]["END_DEVICE_CODE"].ToString(); + // RequestAGV.pallteId= data[0]["STOCK_BARCOD"].ToString(); + // RequestAGV.pallteType = "1"; + // RequestAGV.taskType = 1; + // string data_json_string = Model.JsonHelper.Serializer(RequestAGVBack); + // sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddressThree, out outJson); + // if (sResult == false) + // { + // bResult = outJson; + // } + // else + // { + // RequestAGVBack = Model.JsonHelper.Deserialize(outJson);//灏唚ms鍥炲鐨勪俊鎭弽搴忓垪鍖 + + // if (RequestAGVBack.code == 0) + // { + // bResult = ""; + // resp_data = RequestAGVBack.data; + // } + // else + // { + // if (RequestAGVBack.msg == "") + // { + // bResult = "杩斿洖涓簄ull"; + // } + // else + // { + // bResult = RequestAGVBack.msg; + // } + // } + // } + // } + // return bResult; + // } + // catch (Exception ex) + // { + // bResult = ex.Message; + // return bResult; + // } + //} + //public static string UpdateStatusToWMS(List ask_data, out STACKSTATUS_RES_DATA resp_data) + //{ + // string bResult = string.Empty; + // bool sResult = true; + // string outJson = string.Empty; + // resp_data = null; + // try + // { + // WCS_WMS_PARAM_STACK_STATUS updatestatus = new WCS_WMS_PARAM_STACK_STATUS(); + // WMS_WCS_PARAM_STACK_STATUS updatestatusres = new WMS_WCS_PARAM_STACK_STATUS(); + // updatestatus.method = "wcs_stack_status"; + // updatestatus.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + // updatestatus.data = ask_data; + + // string data_json_string = Model.JsonHelper.Serializer(updatestatus); - sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddressThree, out outJson); + // sResult = Invok_WMS_new(data_json_string, CStaticClass.ManageServiceAddressThree, out outJson); - if (sResult == false) - { - bResult = outJson; + // if (sResult == false) + // { + // bResult = outJson; - } - else - { - updatestatusres = Model.JsonHelper.Deserialize(outJson);//灏唚ms鍥炲鐨勪俊鎭弽搴忓垪鍖 - STACKSTATUS_RES_DATA outdata = updatestatusres.data; + // } + // else + // { + // updatestatusres = Model.JsonHelper.Deserialize(outJson);//灏唚ms鍥炲鐨勪俊鎭弽搴忓垪鍖 + // STACKSTATUS_RES_DATA outdata = updatestatusres.data; - if (outdata.code == "00" || outdata.code == "0") - { - bResult = ""; - resp_data = outdata; - } - else - { - if (outdata.msg == "") - { - bResult = "杩斿洖涓簄ull"; - } - else - { - bResult = outdata.msg; - } - } - } - return bResult; - } - catch (Exception ex) - { - bResult = ex.Message; - return bResult; - } - } + // if (outdata.code == "00" || outdata.code == "0") + // { + // bResult = ""; + // resp_data = outdata; + // } + // else + // { + // if (outdata.msg == "") + // { + // bResult = "杩斿洖涓簄ull"; + // } + // else + // { + // bResult = outdata.msg; + // } + // } + // } + // return bResult; + // } + // catch (Exception ex) + // { + // bResult = ex.Message; + // return bResult; + // } + //} @@ -1937,9 +1272,9 @@ namespace WcfControlMonitorLib //娴嬭瘯鍑哄簱浠诲姟 //public static string TestOut(OUT_DATA ask_data, out string resp_data1) //{ - + // OUT_RES resp_data = new OUT_RES(); - + // string bResult = string.Empty; // bool sResult = true; @@ -1963,7 +1298,7 @@ namespace WcfControlMonitorLib // sResult = Invok_WMS_new( data_json_string, out outJson); - + // if (sResult == false) // { // bResult = outJson; @@ -1999,8 +1334,8 @@ namespace WcfControlMonitorLib // return bResult; // } //} - - + #endregion + static DBOperator dbo = CStaticClass.dbo; static DBOperator dboMan = CStaticClass.dboM; static StringBuilder sql = new StringBuilder(); @@ -2011,7 +1346,7 @@ namespace WcfControlMonitorLib static Thread mythread; static Thread mythreadUpdatestatus; static bool exitThread = false; - static bool exitThreadUpdatestatus = false; + static bool exitThreadInRequestDeal = false; static CGetState cgs = new CGetState(); static string _CCallServiceError = "";//鐩戞帶璋冨害绫婚敊璇鏄 @@ -2027,7 +1362,7 @@ namespace WcfControlMonitorLib // {"12005","12006"},{"12008","12007"},{"22009","22008"} //}; - + //浠诲姟鎵ц鐘舵佷笂鎶ュ畾鏃跺櫒 private static void BeginListen() {//20091107 while (!exitThread) @@ -2038,253 +1373,64 @@ namespace WcfControlMonitorLib DataView dv = new DataView(); DataView dvl = new DataView(); string dtime = DateTime.Now.ToString("u"); dtime = dtime.Substring(0, dtime.Length - 1); - int AutoManageIdx = 0; int a = 0; - string FSTARTCELL = ""; string FENDCELL = ""; - int FSTARTDEVICE = 0; int FENDDEVICE = 0; - int flaneway = 0; int fstack = 0; - int FControlTaskType = 0; + //int AutoManageIdx = 0; int a = 0; + //string FSTARTCELL = ""; string FENDCELL = ""; + //int FSTARTDEVICE = 0; int FENDDEVICE = 0; + //int flaneway = 0; int fstack = 0; + //int FControlTaskType = 0; - - UPDATE_TASK_DATA tempComp = new UPDATE_TASK_DATA(); - UPDATE_TASK_RES tempCompRes = new UPDATE_TASK_RES(); - DELETE_TASK_DATA tempCanc = new DELETE_TASK_DATA(); - DELETE_TASK_RES tempCancRes = new DELETE_TASK_RES(); - - //LAYERSTATUS_DATA tempLayer = new LAYERSTATUS_DATA(); - - #region IO_CONTROL 鍒犻櫎 sql.Clear(); - sql.Append("select * from IO_CONTROL WHERE CONTROL_STATUS = 999 OR CONTROL_STATUS = 900 OR CONTROL_STATUS = 970"); - - if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) - { - sql.Clear(); - sql.Append("delete from IO_CONTROL where CONTROL_STATUS = 999 OR CONTROL_STATUS = 900 OR CONTROL_STATUS = 970"); - dbo.ExceSQL(sql.ToString()); - } - - #endregion - - sql.Remove(0, sql.Length); - sql.Append("select * from IO_CONTROL_APPLY where (CONTROL_APPLY_TYPE = 10) or (CONTROL_APPLY_TYPE = 30) or (CONTROL_APPLY_TYPE = 999) or (CONTROL_APPLY_TYPE = 900) or (CONTROL_APPLY_TYPE = 970) order by CONTROL_APPLY_ID,CREATE_TIME"); - dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; - for (int i = 0; i < dv.Count; i++) - { - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "鍑嗗寮濮嬭皟鐢╳ms鏈嶅姟:", "浠诲姟鍙凤細"+dv[i]["CONTROL_ID"].ToString(), ",璧风偣绔欏彴锛" + dv[i]["DEVICE_CODE"].ToString() - + "锛屾潯鐮侊細" + dv[i]["STOCK_BARCODE"].ToString() + "锛屼换鍔$被鍨嬶細" + dv[i]["CONTROL_APPLY_TYPE"] + ",鐘舵侊細" + dv[i]["APPLY_TASK_STATUS"] ); - if (Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) != 900) // 闈炲垹闄ょ姸鎬 + sql.Append("select * from IO_CONTROL WHERE CONTROL_STATUS < 900 and CONTROL_Status<>0 and IsSendLCS=0 and CONTROL_TASK_TYPE=1");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸鎷嗗垎瀹岀殑鐘舵佺殑浠诲姟 鏁版嵁搴撳姞涓涓狪sSendLCS瀛楁 + DataView dataIOtaskstart = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataIOtaskstart.Count > 0) { + for (int i = 0; i < dataIOtaskstart.Count; i++) { - if (Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) == 10) //鎵ц鐘舵 - { - tempComp.taskId = dv[i]["CONTROL_ID"].ToString(); - tempComp.taskstatus = dv[i]["APPLY_TASK_STATUS"].ToString(); - tempComp.errortext = string.Empty; - tempComp.containerCode = dv[i]["STOCK_BARCODE"].ToString(); - bResult = UpdateToWMS(tempComp, out tempCompRes); - if (!bResult.Contains("鎴愬姛") && bResult != "") //WMS鍥炲娌℃垚鍔 - { - //璋冪敤澶辫触, 鐘舵佷笉鍙橈紝鍐欏叆閿欒鍘熷洜鍚庡垹闄 涓嶅啀缁欏叾鍐嶆鏇存柊鎵ц浜 - dbo.ExecuteSql(string.Format("UPDATE IO_CONTROL_APPLY set CONTROL_APPLY_REMARK = '{1}' WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]), bResult)); - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]))); - - } - else - { - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"])));//姘戣埅浜屾墍 鍒犻櫎褰撳墠鏉 鍒涘缓瑙﹀彂鍣ㄥ垹闄ゆ椂鍐欏叆鍘嗗彶琛 - } - - } - else if (Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) == 30) //鎶ヨ鐘舵 - { - tempComp.taskId = dv[i]["CONTROL_ID"].ToString(); - tempComp.taskstatus = dv[i]["APPLY_TASK_STATUS"].ToString(); - tempComp.errortext = dv[i]["CONTROL_APPLY_PARAMETER"].ToString();//鎶ヨ淇℃伅鍐欏湪CONTROL_APPLY_PARAMETER - tempComp.containerCode = dv[i]["STOCK_BARCODE"].ToString(); - bResult = UpdateToWMS(tempComp, out tempCompRes); - - if (!bResult.Contains("鎴愬姛") && bResult != "") //WMS鍥炲娌℃垚鍔 - { - //璋冪敤澶辫触, 鐘舵佷笉鍙橈紝鍐欏叆閿欒鍘熷洜鍚庡垹闄 涓嶅啀缁欏叾鍐嶆鏇存柊鎵ц浜 - dbo.ExecuteSql(string.Format("UPDATE IO_CONTROL_APPLY set CONTROL_APPLY_REMARK = '{1}' WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]), bResult)); - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]))); - - } - else - { - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"])));//姘戣埅浜屾墍 鍒犻櫎褰撳墠鏉 鍒涘缓瑙﹀彂鍣ㄥ垹闄ゆ椂鍐欏叆鍘嗗彶琛 - } - - } - else if (Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) == 999|| Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) == 970) //瀹屾垚鐘舵 鎴栬970鐘舵 - { - tempComp.taskId = dv[i]["CONTROL_ID"].ToString(); - tempComp.taskstatus = dv[i]["APPLY_TASK_STATUS"].ToString(); - tempComp.errortext = dv[i]["CONTROL_APPLY_PARAMETER"].ToString(); - tempComp.containerCode = dv[i]["STOCK_BARCODE"].ToString(); - bResult = UpdateToWMS(tempComp, out tempCompRes); - - int status = 0; - if (Convert.ToInt32(dv[i]["CONTROL_APPLY_TYPE"]) == 999) - { - status = 996; - } - else - { - status = 976; - } - - if (!bResult.Contains("鎴愬姛") && bResult != "") //WMS鍥炲娌℃垚鍔 - { - //璋冪敤澶辫触, 鐘舵佷笉鍙橈紝鍐欏叆涓婃閿欒鍘熷洜 骞朵笖缃负996 鎴栬976 绾跨▼涓嶅啀澶勭悊 浜轰负澶勭悊 - dbo.ExecuteSql(string.Format("UPDATE IO_CONTROL_APPLY set CONTROL_APPLY_TYPE={2}, APPLY_TASK_STATUS={2}, CONTROL_APPLY_REMARK = '{1}' WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]), bResult, status)); - - - } - else - { - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_ID"])));//姘戣埅浜屾墍 鍙互鍒犻櫎璇ヤ换鍔$殑鎵鏈夎褰曚簡 鍒涘缓瑙﹀彂鍣ㄥ垹闄ゆ椂鍐欏叆鍘嗗彶琛 鍒犻櫎鎵鏈夊綋鍓嶄换鍔″彿鐨処O_CONTROL_APPLY - } - + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "taskStatusReporstart", "鍑嗗寮濮嬭皟鐢╳ms鏈嶅姟:", $"ID锛歿dataIOtaskstart[i]["MANAGE_ID"]},鏉$爜{dataIOtaskstart[i]["STOCK_BARCODE"]}"); + UpdateTaskStatusToWMS(Convert.ToInt16(dataIOtaskstart[i]["MANAGE_ID"]),out WMS_WCS_PARAM_UPDATE resp_data); + if (resp_data.code == 0) + { //鎴愬姛 + sql.Clear(); + sql.Append($"update IO_Control set IsSendLCS=1 where MANAGE_ID={dataIOtaskstart[i]["MANAGE_ID"]}");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸鎷嗗垎瀹岀殑鐘舵佺殑浠诲姟 + dbo.ExceSQL(sql.ToString()); } - if (tempCompRes != null) //鎴愬姛 - { - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤浠诲姟鐘舵佷笂鎶ユ帴鍙:", "浠诲姟鍙凤細" + dv[i]["CONTROL_ID"].ToString(), ",璧风偣绔欏彴锛" + dv[i]["DEVICE_CODE"].ToString() + "锛屾潯鐮侊細" + dv[i]["STOCK_BARCODE"].ToString() - + "锛屽師taskid锛" + tempComp.taskId + "锛岀姸鎬侊細" + tempComp.taskstatus + "锛岀粨鏋滐細鎴愬姛" + ",杩斿洖浠g爜锛" + tempCompRes.code); - } - else - { - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤浠诲姟鐘舵佷笂鎶ョ敵璇:", "浠诲姟鍙凤細" + dv[i]["CONTROL_ID"].ToString(), ",璧风偣绔欏彴锛" + dv[i]["DEVICE_CODE"].ToString() + "锛屾潯鐮侊細" + dv[i]["STOCK_BARCODE"].ToString() - + "锛屽師taskid锛" + tempComp.taskId + "锛岀姸鎬侊細" + tempComp.taskstatus + "锛岀粨鏋滐細" + bResult); + else { + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "taskStatusReporstart", "寮濮嬭皟鐢╳ms鏈嶅姟澶辫触:", $"杩斿洖鎶ラ敊{resp_data.data}:{resp_data.msg}"); } } - else //鍒犻櫎鐘舵 + } + sql.Clear(); + sql.Append("select * from IO_CONTROL WHERECONTROL_STATUS = 999 OR CONTROL_STATUS = 900 OR CONTROL_STATUS = 970 and IsSendLCS=1 and CONTROL_TASK_TYPE=1");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸瀹屾垚鐨勭姸鎬佺殑浠诲姟 + DataView dataIOtask2finish = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataIOtask2finish.Count > 0) + { + for (int i = 0; i < dataIOtask2finish.Count; i++) { - - tempCanc.taskId = dv[i]["CONTROL_ID"].ToString() ; - tempCanc.containerCode = dv[i]["STOCK_BARCODE"].ToString(); - bResult = CancelToWMS(tempCanc, out tempCancRes); - - if (!bResult.Contains("鎴愬姛") && bResult != "") - { - //璋冪敤澶辫触, 鐘舵佷笉鍙橈紝鍐欏叆涓婃閿欒鍘熷洜 骞朵笖缃负996 绾跨▼涓嶅啀澶勭悊 浜轰负澶勭悊 - dbo.ExecuteSql(string.Format("UPDATE IO_CONTROL_APPLY set CONTROL_APPLY_TYPE=906, APPLY_TASK_STATUS=906, CONTROL_APPLY_REMARK = '{1}' WHERE (CONTROL_APPLY_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_APPLY_ID"]), bResult)); - - if (bResult.Contains("涓嶅瓨鍦ㄦ浠诲姟鏃犳硶鍙栨秷")) //灏嗘墍鏈夎浠诲姟鍙风殑鐢宠鍏ㄩ儴鍒犻櫎 - { - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_ID"]))); - } - } - else - { - dbo.ExecuteSql(string.Format("DELETE FROM IO_CONTROL_APPLY WHERE (CONTROL_ID = {0})", Convert.ToInt32(dv[i]["CONTROL_ID"])));//灏嗘墍鏈夎浠诲姟鍙风殑鐢宠鍏ㄩ儴鍒犻櫎 - } - - if (tempCancRes != null) - { - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤浠诲姟鍒犻櫎涓婃姤鎺ュ彛:", "浠诲姟鍙凤細" + dv[i]["CONTROL_ID"].ToString(), ",璧风偣绔欏彴锛" + dv[i]["DEVICE_CODE"].ToString() + "锛屾潯鐮侊細" + dv[i]["STOCK_BARCODE"].ToString() - + "锛屽師taskid锛" + tempCanc.taskId + "锛屾潯鐮侊細" + tempCanc.containerCode + "缁撴灉锛氭垚鍔" + ",杩斿洖浠g爜锛" + tempCancRes.code); + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "taskStatusReporfinish", "鍑嗗寮濮嬭皟鐢╳ms鏈嶅姟:", $"ID锛歿dataIOtask2finish[i]["MANAGE_ID"]},鏉$爜{dataIOtask2finish[i]["STOCK_BARCODE"]}"); + UpdateTaskStatusToWMS(Convert.ToInt16(dataIOtask2finish[i]["MANAGE_ID"]), out WMS_WCS_PARAM_UPDATE resp_data); + if (resp_data.code == 0) + { //鎴愬姛 + sql.Clear(); + sql.Append($"delete from IO_CONTROL where MANAGE_ID={dataIOtask2finish[i]["MANAGE_ID"]}");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸鎷嗗垎瀹岀殑鐘舵佺殑浠诲姟 + dbo.ExceSQL(sql.ToString()); } - else - { - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤浠诲姟鍒犻櫎涓婃姤鎺ュ彛:", "浠诲姟鍙凤細" + dv[i]["CONTROL_ID"].ToString(), ",璧风偣绔欏彴锛" + dv[i]["DEVICE_CODE"].ToString() + "锛屾潯鐮侊細" + dv[i]["STOCK_BARCODE"].ToString() - + "锛屽師taskid锛" + tempCanc.taskId + "锛屾潯鐮侊細" + tempCanc.containerCode + "锛岀粨鏋滐細" + bResult); + else { + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "taskStatusReporstart", "寮濮嬭皟鐢╳ms鏈嶅姟澶辫触:", $"杩斿洖鎶ラ敊{resp_data.data}:{resp_data.msg}"); } - - } - - + } + sql.Clear(); + sql.Append("select * from IO_CONTROL WHERECONTROL_STATUS = 999 OR CONTROL_STATUS = 900 OR CONTROL_STATUS = 970 and CONTROL_TASK_TYP991");//鐩存帴鍒犻櫎鍥為浠诲姟 + DataView dataIOBacktaskfinish = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataIOBacktaskfinish.Count > 0) + { + for (int i = 0; i < dataIOBacktaskfinish.Count; i++) + { + sql.Clear(); + sql.Append($"delete from IO_CONTROL where MANAGE_ID={dataIOtask2finish[i]["MANAGE_ID"]}");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸鎷嗗垎瀹岀殑鐘舵佺殑浠诲姟 + dbo.ExceSQL(sql.ToString()); + } } - #region 灏嗗绌垮眰淇℃伅锛屽悓姝ョ粰WMS锛0鍙敤锛1绂佺敤锛2鏈夎溅锛 - //sql.Clear(); - //sql.Append("select a.f_deviceindex, F_ErrorCode, F_LockedState,F_Postion,F_LaneOut ,F_WMSStatus,F_UpdateNo " + - // " from T_Base_Device a, SHUTTLE_POSITION b ,SHUTTLE_LAYER_STATUS c where" + - // " a.F_DeviceIndex = b.F_DeviceIndex and F_DeviceKindIndex = 1 and F_IsShuttleBorad = 1" + - // " and c.f_layer = b.F_postion"); - //dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; - //for (int i = 0; i < dv.Count; i++) - //{ - // int dev = Convert.ToInt32(dv[i]["f_deviceindex"]); - // int updateTo = Convert.ToInt32(dv[i]["F_UpdateNo"]); - - // int errCode = Convert.ToInt32(dv[i]["F_ErrorCode"]); - // int lockCode = Convert.ToInt32(dv[i]["F_LockedState"]); - // int laneOut = Convert.ToInt32(dv[i]["F_LaneOut"]); //鍦ㄥ贩閬0锛屼笉鍦ㄥ贩閬1 - // int layer = Convert.ToInt32(dv[i]["F_Postion"]); - - - // if ((errCode >= 30 || lockCode == -1) && laneOut == 0) - // { - // tempLayer.bankId = "18002"; - // tempLayer.banklayer = layer.ToString(); - // tempLayer.statusCode = "1"; - - // } - // else - // { - // tempLayer.bankId = "18002"; - // tempLayer.banklayer = layer.ToString(); - // tempLayer.statusCode = "0"; - // } - - // #region 宸插悓姝 - // devinfo = Model.CGetInfo.GetDeviceInfo(dev); - // if (devinfo.RemotePort == updateTo && tempLayer.statusCode == dv[i]["F_WMSStatus"].ToString() && devinfo.RemotePort != 0) - // { - // //鍊熺敤RemotePort锛屼繚瀛樺悜绠$悊鍚屾鐨勭姸鎬 - // continue; - // } - // #endregion - - // else - // { - // //bResult = UpdateLayerToWMS(tempLayer, out tempCompRes); - - // //if (bResult.Contains("鎴愬姛") || bResult == "") - // { - // dbo.ExecuteSql(string.Format("update SHUTTLE_LAYER_STATUS set F_WMSStatus = '{1}' , F_UpdateNo = '{2}' where F_Layer = {0}", layer, tempLayer.statusCode, updateTo + 1)); - // devinfo.RemotePort = updateTo + 1; - // CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "澶氱┛灞傜姸鎬佹洿鏂版垚鍔:", layer.ToString(), ",灞傜姸鎬侊細" + tempLayer.statusCode); - - // } - // } - - - //} - - ////娌℃湁澶氱┛鐨勬浘锛屾湭琚鐢紝鍒欏彲鐢 - //sql.Clear(); - //sql.Append("SELECT F_Layer,F_WMSStatus,F_UpdateNo FROM SHUTTLE_LAYER_STATUS where f_wmsstatus <> 0 and f_wmsstatus <> -1 " + - // "and f_layer not in (select f_postion from SHUTTLE_POSITION)"); - //dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; - //if (dv.Count > 0) - //{ - // for (int i = 0; i < dv.Count; i++) - // { - // string layer = dv[i]["F_Layer"].ToString(); - // { - // tempLayer.bankId = "18002"; - // tempLayer.banklayer = dv[i]["F_Layer"].ToString(); - // tempLayer.statusCode = "0"; - // } - - // if (tempLayer.statusCode != dv[i]["F_WMSStatus"].ToString()) - // { - // //bResult = UpdateLayerToWMS(tempLayer, out tempCompRes); - - // //if (bResult.Contains("鎴愬姛") || bResult == "") - // { - // dbo.ExecuteSql(string.Format("update SHUTTLE_LAYER_STATUS set F_WMSStatus = '{1}' , F_UpdateNo = '{2}' where F_Layer = {0}", layer, tempLayer.statusCode, 0)); - - // CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "澶氱┛灞傜姸鎬佹洿鏂版垚鍔:", "", ",灞傜姸鎬侊細" + tempLayer.statusCode); - // } - // } - - - // } - //} - #endregion } catch (Exception ex) { @@ -2294,7 +1440,7 @@ namespace WcfControlMonitorLib } finally { - Thread.Sleep(500); + Thread.Sleep(1000); } } } @@ -2311,7 +1457,7 @@ namespace WcfControlMonitorLib } - exitThreadUpdatestatus = true; + exitThreadInRequestDeal = true; if (mythreadUpdatestatus != null) { @@ -2324,62 +1470,49 @@ namespace WcfControlMonitorLib private static void BeginListenUpdatestatus() {//20091107 - while (!exitThreadUpdatestatus) + while (!exitThreadInRequestDeal) { try { - - if (CStaticClass.ObtainManageTask == true) + DataView dv = new DataView(); DataView dvl = new DataView(); + string dtime = DateTime.Now.ToString("u"); + dtime = dtime.Substring(0, dtime.Length - 1); + sql.Clear(); + sql.Append("select * from IO_CONTROL_APPLY WHERE CONTROL_APPLY_TYPE =1 and APPLY_TASK_STATUS=0");//鏌ヨ杩樻湭鍙戦佺粰WMS浣嗘槸浠诲姟鐘舵佸凡缁忔槸鎷嗗垎瀹岀殑鐘舵佺殑浠诲姟 鏁版嵁搴撳姞涓涓狪sSendLCS瀛楁 + DataView dataInRequest = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataInRequest.Count > 0) { - - STACKSTATUS_DATA stackstatus = new STACKSTATUS_DATA(); - STACKSTATUS_RES_DATA stackstatusres = new STACKSTATUS_RES_DATA(); - StringBuilder sql = new StringBuilder(); - DataView dvmo = new DataView(); - sql.Remove(0, sql.Length); - sql.Append("SELECT * FROM SHUTTLE_POSITION "); - dvmo = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; - if (dvmo.Count > 0) + for (int i = 0; i < dataInRequest.Count; i++) { - List stackdatalist = new List(); - - STACKSTATUS_RES_DATA stackdatares = new STACKSTATUS_RES_DATA(); - for (int i = 0; i < dvmo.Count; i++) - { - STACKSTATUS_DATA stackdata = new STACKSTATUS_DATA(); - stackdata.stackindex = dvmo[i]["F_DeviceIndex"].ToString(); - stackdata.positon = dvmo[i]["F_Postion"].ToString(); - stackdata.battery = dvmo[i]["F_BatteryStatus"].ToString(); - stackdata.laneout = dvmo[i]["F_LaneOut"].ToString(); - stackdata.runstatus = dvmo[i]["F_RunStatus"].ToString(); - stackdatalist.Add(stackdata); - - } - string bResult = UpdateStatusToWMS(stackdatalist, out stackstatusres); - if (bResult != null) - { - // CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤绌挎鏉挎洿鏂颁俊鎭帴鍙:", "缁撴潫", "缁撴灉锛氭垚鍔" + ",杩斿洖浠g爜锛" + stackstatusres.code); + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "inboundApply", "鍑嗗寮濮嬭皟鐢╳ms鏈嶅姟:", $"Barcode锛歿dataInRequest[i]["STOCK_BARCODE"]},绔欏彴{dataInRequest[i]["DEVICE_CODE"]}"); + ResultMessage result= RequestToWMS(dataInRequest[i]["STOCK_BARCODE"].ToString(), dataInRequest[i]["DEVICE_CODE"].ToString(), "2", out InboundApplyBack resp_data); + if (result.sResult) + { //鎴愬姛 + IO_CONTROL iO_CONTROL = new IO_CONTROL(resp_data.data,DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + iO_CONTROL.Insert_IOCONTROL();//鏆備笉鑰冭檻鎻掑叆澶辫触鐨勬儏鍐 鍐欏叆IO鍏ュ簱浠诲姟 + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "inboundApply", "寮濮嬭皟鐢╳ms鏈嶅姟鎴愬姛璐:", $"杩斿洖淇℃伅{resp_data.data}:{resp_data.msg}"); } else { - // CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤绌挎鏉挎洿鏂颁俊鎭帴鍙:", "缁撴潫", "缁撴灉锛" + bResult); + //鏆傚畾閫氳澶辫触鍜屾帴鍙h繑鍥炲け璐ラ兘鐩存帴鍥為 + sql.Clear(); + sql.Append("select F_EndDevice from T_Base_Route WHERE F_StartDevice =").Append(dataInRequest[i]["DEVICE_CODE"]).Append(" and F_RouteKind=4");//鏌ヨ鍥為浠诲姟鐨勭粓鐐逛綅缃 + DataView dataBackTask = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + IO_CONTROL iO_CONTROL = new IO_CONTROL(dataInRequest[i]["DEVICE_CODE"].ToString(), dataBackTask[0]["F_EndDevice"].ToString(), dataInRequest[i]["STOCK_BARCODE"].ToString()); + iO_CONTROL.Insert_IOCONTROL();//鏆備笉鑰冭檻鎻掑叆澶辫触鐨勬儏鍐 鍐欏叆IO鍏ュ簱浠诲姟 + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "inboundApply", "寮濮嬭皟鐢╳ms鏈嶅姟澶辫触:", $"杩斿洖鎶ラ敊{resp_data.data}:{resp_data.msg}"); } - - } } - - } catch (Exception ex) { _CCallServiceError = ex.StackTrace + ex.Message; - CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "DealCallService", "璋冪敤鏇存柊绌挎鏉跨姸鎬佹帴鍙f椂寮傚父:", "19999", "寮傚父"); - + CommonClassLib.CCarryConvert.WriteDarkCasket("CallService", "inboundApply", "璋冪敤WMS鎺ュ彛澶辫触", "19999", $"{ex.Message}"); } finally { - Thread.Sleep(5000); + Thread.Sleep(1000); } } } @@ -2390,7 +1523,7 @@ namespace WcfControlMonitorLib //sql.Append("select * from SHUTTLE_LAYER_STATUS"); //DataView dv = new DataView(); //dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; - //for (int i=0; i LAYER = new Dictionary(); } + public class IO_CONTROL + { + static DBOperator dbo = CStaticClass.dbo; + static DBOperator dboMan = CStaticClass.dboM; + string wms_id; + int relative_id; + string barcode; + string startdevice; + string enddevice; + string begintime; + int control_type; + string warehouse = "1"; + string tasklevel; + int needAgv = 0; + public StringBuilder error_code = new StringBuilder(); + + StringBuilder sql = new StringBuilder(); + + //public IO_CONTROL(CCallService.WMS_WCS_PARAM_IN indata, string time, string level)//鍏ュ簱 + //{ + // error_code.Clear(); + // wms_id = indata.taskId; + // relative_id = -1; + // barcode = indata.containerCode; + // if (indata.taskType == 2 || indata.taskType == 3) + // { //璧风偣鏄簱浣 + // // startdevice = outdata.startRow.ToString("D2") + "-" + outdata.startColumn.ToString("D2") + "-" + outdata.startLayer.ToString("D2"); + // enddevice = indata.endNode; + // } + // else if (indata.taskType == 1 || indata.taskType == 4) //缁堢偣鏄簱浣 + // { + // startdevice = indata.startNode; + // enddevice = indata.endRow.ToString("D2") + "-" + indata.endColumn.ToString("D2") + "-" + indata.endLayer.ToString("D2"); + // } + // control_type = 1; + // string dTime1 = DateTime.Now.ToString("u"); + // begintime = dTime1.Substring(0, dTime1.Length - 1); + // tasklevel = level; + + //} + public IO_CONTROL(CCallService.InBoundApplyBackData indata, string time) { + error_code.Clear(); + wms_id = indata.taskId; + relative_id = -1; + barcode = indata.containerCode; + if (indata.taskType == 2 || indata.taskType == 3) + { //璧风偣鏄簱浣 + // startdevice = outdata.startRow.ToString("D2") + "-" + outdata.startColumn.ToString("D2") + "-" + outdata.startLayer.ToString("D2"); + enddevice = indata.endNode; + } + else if (indata.taskType == 1 ) //缁堢偣鏄簱浣 + { + startdevice = indata.startNode; + enddevice = indata.endRow.ToString("D2") + "-" + indata.endColumn.ToString("D2") + "-" + indata.endLayer.ToString("D2"); + } + control_type = 1; + string dTime1 = DateTime.Now.ToString("u"); + begintime = dTime1.Substring(0, dTime1.Length - 1); + tasklevel = "10"; + } + + public IO_CONTROL(string startStation,string endStation,string Barcode) + { + error_code.Clear(); + wms_id = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + relative_id = -1; + barcode = Barcode; + startdevice = startStation; + enddevice = endStation; + control_type = 99;//鏍囪鍥為浠诲姟锛屽畬鎴愬悗涓嶈姹侺CS鐩存帴鍒犻櫎 + string dTime1 = DateTime.Now.ToString("u"); + begintime = dTime1.Substring(0, dTime1.Length - 1); + tasklevel = "10"; + } + + public IO_CONTROL(CCallService.OUT_MOVE_DATA outdata, string time, int controltype, string level)//鍑哄簱 绉诲簱 + { + error_code.Clear(); + wms_id = outdata.taskId; + relative_id = -1; + barcode = outdata.containerCode; + if (outdata.taskType == 2 || outdata.taskType == 3) + { //璧风偣鏄簱浣 + startdevice = outdata.startRow.ToString("D2") + "-" + outdata.startColumn.ToString("D2") + "-" + outdata.startLayer.ToString("D2"); + enddevice = outdata.endNode; + } + else if (outdata.taskType == 1 || outdata.taskType == 4) //缁堢偣鏄簱浣 + { + startdevice = outdata.startNode; + enddevice = outdata.endRow.ToString("D2") + "-" + outdata.endColumn.ToString("D2") + "-" + outdata.endLayer.ToString("D2"); + } + control_type = controltype; + string dTime1 = DateTime.Now.ToString("u"); + begintime = dTime1.Substring(0, dTime1.Length - 1); + tasklevel = level; + needAgv = outdata.carryType == 2 ? 1 : 0; + } + //妫鏌ュ弬鏁版槸鍚︽纭 闇瑕佷紭鍖 + bool CheckData() + { + Dictionary all_checking = new Dictionary(); + + #region 浠庢暟鎹簱涓鍙栬妫娴嬬殑SQL + sql.Clear(); + sql.Append("select * from WEBAPI_CKECKING"); + DataView dv = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + for (int i = 0; i < dv.Count; i++) + { + WEBAPI_CKECKING wac = new WEBAPI_CKECKING(); + + wac.check_id = dv[i]["CKECK_ID"].ToString(); + wac.check_name = dv[i]["CKECK_NAME"].ToString(); + wac.sql = dv[i]["SQL"].ToString(); + wac.des = dv[i]["DESCRIPTION"].ToString(); + + all_checking.Add(wac.check_name, wac); + } + #endregion + + error_code.Clear(); + + #region 妫鏌ユ槸鍚﹂噸澶嶏紝CONTROL_ID, 鎵樼洏鐮侀噸澶嶏紝 璧峰璐т綅閲嶅锛岀粓姝㈣揣浣嶉噸澶(缁撴灉澶т簬闆) + + sql.Clear(); + sql.Append(string.Format(all_checking["CONTROL_ID_REPEAT"].sql, wms_id)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + { + error_code.Append(";").Append(all_checking["CONTROL_ID_REPEAT"].des); //fid閲嶅 + } + + //sql.Clear(); + //sql.Append(string.Format(all_checking["BARCODE_REPEAT"].sql, barcode)); + //if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + //{ + // error_code.Append(";").Append(all_checking["BARCODE_REPEAT"].des); //鎵樼洏鏉$爜閲嶅 + //} + if (string.IsNullOrEmpty(tasklevel)) + { + error_code.Append(";").Append("浠诲姟浼樺厛绾т负绌"); + } + if (string.IsNullOrEmpty(wms_id)) + { + error_code.Append(";").Append("浠诲姟鍙蜂负绌"); + } + if (string.IsNullOrEmpty(barcode)) + { + error_code.Append(";").Append("鏉$爜涓虹┖"); + } + + if (int.TryParse(this.wms_id, out int controlid) == false) + { + error_code.Append(";").Append(all_checking["CONTROL_ID_NOT_NUM"].des); //controlid涓嶄负鏁板瓧 + } + + + if (control_type == 2)//鍑哄簱浠诲姟 + { + + sql.Clear(); + sql.Append(string.Format(all_checking["START_CEEE_REPEAT"].sql, startdevice, control_type)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + { + error_code.Append(";").Append(all_checking["START_CEEE_REPEAT"].des); //璧峰璐т綅閲嶅 + } + if (this.startdevice.Length != 8) + { + error_code.Append(";").Append("璧风偣").Append(all_checking["CELL_LENGTH_ERROR"].des); //璧风偣璐т綅缂栫爜闀垮害閿欒 + } + sql.Clear(); + sql.Append(string.Format(all_checking["CELL_NOT_EXIST"].sql, startdevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append("璧风偣").Append(all_checking["CELL_NOT_EXIST"].des); //璧风偣璐т綅涓嶅瓨鍦 + + } + + int endGate = 0; + if (int.TryParse(this.enddevice, out endGate) == false) + { + error_code.Append(";").Append(all_checking["END_GATE_ERROR"].des); //缁堢偣绔欏彴涓嶆纭紝鏃犳硶杞负鏁存暟 + } + + sql.Clear(); + sql.Append(string.Format(all_checking["END_GATE_NOT_EXIST"].sql, enddevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append(all_checking["END_GATE_NOT_EXIST"].des); //缁堢偣绔欏彴涓嶅瓨鍦 + } + + } + + if (control_type == 1)//鍏ュ簱浠诲姟 + { + sql.Clear(); + sql.Append(string.Format(all_checking["END_CEEE_REPEAT"].sql, enddevice, control_type)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count > 0) + { + error_code.Append(";").Append(all_checking["END_CEEE_REPEAT"].des); //缁堢偣璐т綅閲嶅 + } + if (this.enddevice.Length != 8) + { + error_code.Append(";").Append("缁堢偣").Append(all_checking["CELL_LENGTH_ERROR"].des); //缁堢偣璐т綅缂栫爜闀垮害閿欒 + } + + sql.Clear(); + sql.Append(string.Format(all_checking["CELL_NOT_EXIST"].sql, enddevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append("缁堢偣").Append(all_checking["CELL_NOT_EXIST"].des); //缁堢偣璐т綅涓嶅瓨鍦 + } + sql.Clear(); + sql.Append(string.Format(all_checking["START_GATE_NOT_EXIST"].sql, startdevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append(all_checking["START_GATE_NOT_EXIST"].des); //璧风偣绔欏彴涓嶅瓨鍦 + } + } + #region 鏍¢獙浠g爜闇浼樺寲20250310 + if (control_type == 3) //绉诲簱浠诲姟 + { + if (this.startdevice.Length != 8) + { + error_code.Append(";").Append("璧风偣").Append(all_checking["CELL_LENGTH_ERROR"].des); //缁堢偣璐т綅缂栫爜闀垮害閿欒 + } + if (this.enddevice.Length != 8) + { + error_code.Append(";").Append("缁堢偣").Append(all_checking["CELL_LENGTH_ERROR"].des); //缁堢偣璐т綅缂栫爜闀垮害閿欒 + } + + sql.Clear(); + sql.Append(string.Format(all_checking["CELL_NOT_EXIST"].sql, startdevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append("璧风偣").Append(all_checking["CELL_NOT_EXIST"].des); //璧风偣璐т綅涓嶅瓨鍦 + + } + sql.Clear(); + sql.Append(string.Format(all_checking["CELL_NOT_EXIST"].sql, enddevice)); + if (dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView.Count == 0) + { + error_code.Append(";").Append("缁堢偣").Append(all_checking["CELL_NOT_EXIST"].des); //缁堢偣璐т綅涓嶅瓨鍦 + } + + //绉诲簱浠诲姟濡傛灉涓嶅悓灞傦紝鏍¢獙涓嶈绉 + if (startdevice.Substring(6, 2) != enddevice.Substring(6, 2)) + { + error_code.Append(";").Append("绉诲簱浠诲姟璧风偣缁堢偣灞傚间笉鍚"); + } + if (startdevice == enddevice) + { + error_code.Append(";").Append("绉诲簱浠诲姟璧风偣缁堢偣鐩稿悓"); + } + + } + #endregion + #endregion + + //妫鏌ユ墭鐩樼爜 + + if (error_code.Length == 0) + { + return true; + } + else + { + return false; + } + } + + // + public bool Insert_IOCONTROL() + { + if (CheckData() == true) + { + try + { + sql.Clear(); + sql.Append(string.Format("INSERT INTO IO_CONTROL (CONTROL_ID, RELATIVE_CONTROL_ID, MANAGE_ID, STOCK_BARCODE, CONTROL_TASK_TYPE, CONTROL_TASK_LEVEL," + + " START_WAREHOUSE_CODE, START_DEVICE_CODE, END_WAREHOUSE_CODE, END_DEVICE_CODE, CONTROL_BEGIN_TIME,CONTROL_STATUS,NeedAgv) " + + "VALUES( {0},'{1}','{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}',{11})", + wms_id, -1, 0, barcode, control_type, tasklevel, warehouse, startdevice, warehouse, enddevice, begintime, 0, needAgv)); + dbo.ExceSQL(sql.ToString()); + return true; + } + catch (Exception ex) + { + error_code.Append("WCS鎻掑叆IO_ONTROL琛ㄥけ璐ワ紒"); + return false; + } + } + + return false; + } + + + } + public class WEBAPI_CKECKING + { + public string check_id; + public string check_name; + public string sql; + public string des; + } } diff --git a/WcfControlMonitorLib/CDisassembleTask.cs b/WcfControlMonitorLib/CDisassembleTask.cs index e9328d0..933dafc 100644 --- a/WcfControlMonitorLib/CDisassembleTask.cs +++ b/WcfControlMonitorLib/CDisassembleTask.cs @@ -997,14 +997,7 @@ namespace WcfControlMonitorLib for (int i = 0; i < dvM.Count; i++) {//20090928 #region 首先选择此堆垛机所有入库任务,判断那个能执行 - - #region 20210302_上海晟碟,所有换层任务无条件优先拆分 - - //sql.Remove(0, sql.Length); - //sql.Append( - // "SELECT * FROM T_Manage_Task WHERE FIntoStepOK='0' AND (FCONTROLTASKTYPE = 5 OR FCONTROLTASKTYPE = 6)"); - - #endregion + //20101124 sql.Remove(0, sql.Length); @@ -1216,10 +1209,16 @@ namespace WcfControlMonitorLib sql.Remove(0, sql.Length); sql.Append("update T_Monitor_Task set F_MonitorTaskLevel=9 where F_MonitorTaskLevel<>100 and F_ManageTASKKINDINDEX=").Append( dv[j]["F_ManageTaskKindIndex"]).Append(" and F_ManageTaskIndex=").Append(dv[j]["FID"]); - dbo.ExceSQL(sql.ToString()); - //20100323 - //20101028增加出库关联 - if (deviceInfo != null) + dboM.ExceSQL(sql.ToString()); + + #region 拆分成功后修改IOControl表对应任务的状态 lzm20250311 + sql.Remove(0, sql.Length); + sql.Append("update IO_CONTROL set CONTROL_STATUS=10 where MANAGE_ID=").Append(dv[j]["FID"]); + dbo.ExceSQL(sql.ToString()); + #endregion + //20100323 + //20101028增加出库关联 + if (deviceInfo != null) { if (deviceInfo.IfCorrelDoubleFork == "1") { diff --git a/WcfControlMonitorLib/CStaticClass.cs b/WcfControlMonitorLib/CStaticClass.cs index 1a2029a..1f45bfc 100644 --- a/WcfControlMonitorLib/CStaticClass.cs +++ b/WcfControlMonitorLib/CStaticClass.cs @@ -114,12 +114,11 @@ namespace WcfControlMonitorLib //20091107 - static string _ManageServiceAddress = "http://127.0.0.1:8080/WCS_OUT_MOVE"; - static string _ManageServiceAddressTwo = "http://127.0.0.1:8080/WCS_OUT_MOVE"; - static string _ManageServiceAddressThree = "http://127.0.0.1:8080/WCS_OUT_MOVE"; - //static string _ManageServiceAddress = "http://192.168.39.10:8080/yapp/wms"; - //static string _ManageServiceAddress = "http://192.168.39.10:8080/"; - //static string _ManageServiceAddress = "http://localhost:44301"; + static string _ManageServiceAddress = "http://ip:端口/lcs/thirdParty/taskStatusReport";//WCS 任务执行过程,将任务执行的状态回传给 LCS 系统。 + static string _ManageServiceAddress2 = "http://ip:端口/lcs/thirdParty/inboundApply";//当入库的作业需要经过外部扫码设备触发分配库位或校验是否能入库时,WCS 通过此 接口向 LCS 申请。 + static string _ManageServiceAddress3 = "http://ip:端口/lcs/thirdParty/wcsTaskInfo";//WCS 通知 LCS 调用 AGV 取货 + static string _ManageServiceAddress4 = "https://ip:端口/api/lcs/thirdParty/requestRescore";//WCS 通过该接口请求 LCS 对目标库位进行重新分配。 + static string _ManageServiceAddress5 = "https://ip:端口/api/lcs/thirdParty/autoMoveOut";//WCS 请求 WMS 判断外排是否需要自动移库 public static string ManageServiceAddress { @@ -134,28 +133,48 @@ namespace WcfControlMonitorLib } public static string ManageServiceAddressTwo { - get { return CStaticClass._ManageServiceAddressTwo; } + get { return CStaticClass._ManageServiceAddress2; } set { if (value != "") { - CStaticClass._ManageServiceAddressTwo = value; + CStaticClass._ManageServiceAddress2 = value; } } } public static string ManageServiceAddressThree { - get { return CStaticClass._ManageServiceAddressThree; } + get { return CStaticClass._ManageServiceAddress3; } set { if (value != "") { - CStaticClass._ManageServiceAddressThree = value; + CStaticClass._ManageServiceAddress3 = value; } } } - - + public static string ManageServiceAddressFour + { + get { return CStaticClass._ManageServiceAddress4; } + set + { + if (value != "") + { + CStaticClass._ManageServiceAddress4 = value; + } + } + } + public static string ManageServiceAddressFive + { + get { return CStaticClass._ManageServiceAddress5; } + set + { + if (value != "") + { + CStaticClass._ManageServiceAddress5 = value; + } + } + } static string _movedDeviceAheadTrigger = "1"; /// /// 移动设备是否被提前触发将取 diff --git a/WcfControlMonitorLib/SControlMonitor.cs b/WcfControlMonitorLib/SControlMonitor.cs index 29f009f..48a8fa4 100644 --- a/WcfControlMonitorLib/SControlMonitor.cs +++ b/WcfControlMonitorLib/SControlMonitor.cs @@ -11,6 +11,8 @@ using CommLayerFactory; using System.IO; using System.Threading; using CommonUtils; +using System.Runtime.InteropServices.ComTypes; + namespace WcfControlMonitorLib { // 娉ㄦ剰: 浣跨敤鈥滈噸鏋勨濊彍鍗曚笂鐨勨滈噸鍛藉悕鈥濆懡浠わ紝鍙互鍚屾椂鏇存敼浠g爜鍜岄厤缃枃浠朵腑鐨勭被鍚嶁淪ervice1鈥濄 @@ -662,7 +664,6 @@ namespace WcfControlMonitorLib for (int ik = 1; ik < barbyte.GetLength(0); ik++) { barcodesb.Append(Convert.ToChar(barbyte[ik])); - } string barcode = barcodesb.ToString(); int dcode = Convert.ToInt32(dv[i]["F_BindingDevice"]); @@ -670,7 +671,7 @@ namespace WcfControlMonitorLib { return; } - if ((barcode == "\0\0\0\0\0\0\0\0\0\0") || (barcode == "?/////////") || (barcode == "1111111111")) + if ((barcode == "\0\0\0\0\0\0\0\0\0\0") || (barcode == "?/////////") || (barcode == "111111")) { #region 娌℃壂鍒扮爜閫佸嚭鍒版寚瀹氫綅缃//20101208 StringBuilder aheadDetect = new StringBuilder(); @@ -5336,12 +5337,12 @@ namespace WcfControlMonitorLib return false; } } - #region I/O鐐瑰瓧鑺傞泦鍚堥噰闆嗗垎瑙 + #region I/O鐐瑰瓧鑺傞泦鍚堥噰闆嗗垎瑙 lzm 20250313 娣诲姞瀛楁 F_IsAGViostation if (splitbyteValue != null) { Array.Copy(splitbyteValue, CStaticClass.MutiReadSubscriptionDeviceSplitReturns[deviceindex.ToString()], splitbyteValue.Length); - dvsp = dbo.ExceSQL(string.Format("SELECT F_DeviceIndex, F_DBW2Address, F_DBWGetLength, F_SplitByte FROM T_Base_Device WHERE f_controldevice='1' and (F_DeviceKindIndex <>31) AND(F_DeviceKindIndex <>33) AND (F_S7Connection = '{0}') AND (F_DBW2Address IS NOT NULL and F_SplitByte IS NOT NULL and F_SplitByte >={1} and F_SplitByte <{1}+{2}) ORDER BY F_DBW2Address", S7Connection, SplitBytebegin, SplitByteLength)).Tables[0].DefaultView;//20151120锛屽鍔犲瓧娈垫槸鍚﹂渶瑕佹湇鍔$澶勭悊璁惧鐨勮闃 + dvsp = dbo.ExceSQL(string.Format("SELECT F_DeviceIndex, F_DBW2Address, F_DBWGetLength, F_SplitByte,F_IsAGVIOStation FROM T_Base_Device WHERE f_controldevice='1' and (F_DeviceKindIndex <>31) AND(F_DeviceKindIndex <>33) AND (F_S7Connection = '{0}') AND (F_DBW2Address IS NOT NULL and F_SplitByte IS NOT NULL and F_SplitByte >={1} and F_SplitByte <{1}+{2}) ORDER BY F_DBW2Address", S7Connection, SplitBytebegin, SplitByteLength)).Tables[0].DefaultView;//20151120锛屽鍔犲瓧娈垫槸鍚﹂渶瑕佹湇鍔$澶勭悊璁惧鐨勮闃 for (int i = 0; i < dvsp.Count; i++) { devinfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(dvsp[i]["F_DeviceIndex"])); @@ -5356,6 +5357,7 @@ namespace WcfControlMonitorLib devinfo.SplitByte_5 = (splitbyteValue[delta] & 32) == 32 ? 1 : 0; devinfo.SplitByte_6 = (splitbyteValue[delta] & 64) == 64 ? 1 : 0; devinfo.SplitByte_7 = (splitbyteValue[delta] & 128) == 128 ? 1 : 0; + devinfo.F_IsAGVIOStation = Convert.ToInt32(dvsp[i]["F_IsAGVIOStation"]); Model.CGetInfo.SetDeviceInfo(devinfo); CDeviceStateChangeEventArgs csce = new CDeviceStateChangeEventArgs(devinfo); OnDeviceState("SControlMonitor.DealWithDeviceState", csce); @@ -5763,6 +5765,7 @@ namespace WcfControlMonitorLib #region 绫昏緭閫佹満 case 2: + devinfo.SplitByte_0 = (devicestates[tempdb2addr + 4] & 1) == 1 ? 1 : 0; devinfo.SplitByte_1 = (devicestates[tempdb2addr + 4] & 2) == 2 ? 1 : 0; devinfo.SplitByte_2 = (devicestates[tempdb2addr + 4] & 4) == 4 ? 1 : 0; @@ -5795,16 +5798,29 @@ namespace WcfControlMonitorLib sss.Append("**鏉$爜锛").Append(bc).Append("**璇绘爣蹇" + devicestates[tempdb2addr + 0]).Append("**鐘舵" + state).Append("**浠诲姟鍙:" + taskindex).Append(task23); CommonClassLib.CCarryConvert.WriteDarkCasket("OPCClient", "鏀跺埌杈撻佹満鏈虹姸鎬", devidx.ToString(), sss.ToString()); - } - - - //20170212 - - - if (state <= 0)//20140305|| taskindex <= 0 + } + //20170212 + if (state <= 0)//20140305|| taskindex <= 0 { continue; } + #region AGV鍙栨斁璐х殑杈撻佺嚎鐘舵佸疄鏃惰窡鏂 PLC鏂紑杩炴帴鍚庯紝鏀瑰间笉浼氬彉鏇达紝鍙兘瀛樺湪BUG,闇瑕佸姞浠ラ檺鍒 + if (devinfo.F_IsAGVIOStation == 1) { + var signal = devinfo.SplitByte_0 == 1 ? true : false;//1鏈夎揣锛0鏃犲厜鐢垫劅搴 + var runstate = devinfo.RunState == 0 ? true : false; + if (!signal && runstate) + {//绌洪棽锛屾棤璐 + sql.Remove(0, sql.Length); + sql.Append("update T_AGVIOStation set F_AGVIOStatus=1 where F_DeviceIndex=").Append(devinfo.DeviceIndex); + dbo.ExecuteSql(sql.ToString()); + } + else { + sql.Remove(0, sql.Length); + sql.Append("update T_AGVIOStation set F_AGVIOStatus=0 where F_DeviceIndex=").Append(devinfo.DeviceIndex); + dbo.ExecuteSql(sql.ToString()); + } + } + #endregion if ((taskindex2 > 0 || taskindex3 > 0) && (state == 2) && devinfo.IfCorrelDoubleFork == "1") { #region 鏍规嵁鐢垫皵鎶ュ憡涓夊弶鍏宠仈,閰嶄笁鍙 diff --git a/webapi/WindowsFormsApp1/APIChannel.cs b/webapi/WindowsFormsApp1/APIChannel.cs index 7ad07c4..ae1df5a 100644 --- a/webapi/WindowsFormsApp1/APIChannel.cs +++ b/webapi/WindowsFormsApp1/APIChannel.cs @@ -15,6 +15,13 @@ using Nancy.Helpers; using DBFactory; using System.Data; using System.Diagnostics.Eventing.Reader; +using System.Data.SqlClient; +using WcfInterfaceServer.Properties; +using System.Runtime; +using System.Collections; +using System.Configuration; +using System.Xml; +using static WcfControlMonitorLib.CCallService; namespace WindowsFormsApp1 { @@ -30,9 +37,9 @@ namespace WindowsFormsApp1 { //_server = new NancyHost(new Bootstrapper(), new Uri("http://192.168.39.10:8080")); _server = new NancyHost(new Bootstrapper(), new Uri(address)); - _server.Start(); + _server.Start(); } - + public APIChannel() { @@ -53,6 +60,8 @@ namespace WindowsFormsApp1 #region WMS璋冪敤, 鍦ㄦ澶勭悊锛屽嚭搴撲互鍙婄Щ搴撲换鍔 澶氭潯浠诲姟 浠诲姟涓嬪彂 Post["/api/wcs/thirdParty/receiveWmsTask", true] = async (x, ct) => { + + dbo.TransBegin(IsolationLevel.ReadCommitted); try { var body = this.Request.Body; @@ -75,19 +84,15 @@ namespace WindowsFormsApp1 int isOk = 0; // CCallService.OUT_MOVE_RES outReturn = new CCallService.OUT_MOVE_RES(); foreach (var task in outdata) - { + { IO_CONTROL outtask = new IO_CONTROL(task, wms_wcs.msgTime, task.taskType, wms_wcs.priority.ToString()); - if (outtask.Insert_IOCONTROL() == true) - { - outReturn.data += "ID'" + task.taskId.ToString() + "'浠诲姟姝e父:"; - } - else + if (outtask.Insert_IOCONTROL() == false) { isOk++; outReturn.data += "ID'" + task.taskId.ToString() + "'浠诲姟涓嬪彂澶辫触:"; - } + } if (isOk == 0) { outReturn.code = 0; @@ -103,16 +108,18 @@ namespace WindowsFormsApp1 } returnJson = Model.JsonHelper.Serializer(outReturn); CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); + dbo.TransCommit(); return returnJson; } catch (Exception ex) { string errorjson = Model.JsonHelper.Serializer(new { - code =1, + code = 1, msg = "WCS瑙f瀽json寮傚父", data = ex.Message.ToString() }); - CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + dbo.TransRollback(); return errorjson; } }; @@ -121,112 +128,338 @@ namespace WindowsFormsApp1 #region WMS璋冪敤, 鍦ㄦ澶勭悊锛屽彇娑堜换鍔 鍗曟潯褰㈠紡 Post["/api/wcs/thirdParty/cancelWmsTask", true] = async (x, ct) => { - var body = this.Request.Body; - int length = (int)body.Length; - byte[] data = new byte[length]; - body.Read(data, 0, length); - string jsonStr = System.Text.Encoding.Default.GetString(data); - CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); - CCallService.WMS_WCS_PARAM_CANCEL wms_wcs_cancel = Model.JsonHelper.Deserialize(jsonStr); - CCallService.WCS_WMS_PARAM_CANCEL wcs_wms_cancel = new CCallService.WCS_WMS_PARAM_CANCEL(); //杩斿洖鐨勬姤鏂 - string err = string.Empty; - string returnJson = string.Empty; - DataView dv = new DataView(); - - if (wms_wcs_cancel != null) + try { - switch (wms_wcs_cancel.method) + var body = this.Request.Body; + int length = (int)body.Length; + byte[] data = new byte[length]; + body.Read(data, 0, length); + string jsonStr = System.Text.Encoding.Default.GetString(data); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); + CCallService.WMS_WCS_PARAM_Priority wms_wcs_cancel = Model.JsonHelper.Deserialize(jsonStr); + CCallService.WCS_WMS_PARAM_Priority wcs_wms_cancel = new CCallService.WCS_WMS_PARAM_Priority(); //杩斿洖鐨勬姤鏂 + string err = string.Empty; + string returnJson = string.Empty; + DataView dv = new DataView(); + if (wms_wcs_cancel != null) { - - case "wms_request_cancel": //WMS鍙栨秷浠诲姟 - - CCallService.CANCEL_DATA canceldata = new CCallService.CANCEL_DATA(); - canceldata = wms_wcs_cancel.data; - CCallService.CANCEL_RES_DATA cancelReturn = new CCallService.CANCEL_RES_DATA(); - string sql = "select * from t_manage_task where FID = '" + canceldata.taskId + "' and FPALLETBARCODE = '" + canceldata.containerCode + "'"; - dv = dbo.ExceSQL(sql).Tables[0].DefaultView; - if (dv.Count == 1) + //CCallService.CANCEL_DATA canceldata = new CCallService.CANCEL_DATA(); + //canceldata = wms_wcs_cancel.data; + // CCallService.CANCEL_RES_DATA cancelReturn = new CCallService.CANCEL_RES_DATA(); + string sql = "select * from t_manage_task where FID = '" + wms_wcs_cancel.taskId + "'"; + dv = dbo.ExceSQL(sql).Tables[0].DefaultView; + if (dv.Count == 1) + { + + int stepOk = Convert.ToInt32(dv[0]["FIntoStepOK"]);//鎷嗗垎涓嬪彂 + if (stepOk == 0)//鏈媶鍒 { - - int stepOk = Convert.ToInt32(dv[0]["FIntoStepOK"]); - if (stepOk == 0) + try { - try + sql = "delete from t_manage_task where FMANAGEID = '" + wms_wcs_cancel.taskId + "'"; + int count = dbo.ExecuteSql(sql); + if (count > 0) { - sql = "delete from t_manage_task where FMANAGEID = '" + canceldata.taskId + "' and FPALLETBARCODE = '" + canceldata.containerCode + "'"; - int count = dbo.ExecuteSql(sql); - if (count > 0) - { - cancelReturn.code = "00"; - cancelReturn.msg = "鍙栨秷浠诲姟鎴愬姛!"; - cancelReturn.taskId = cancelReturn.taskId; - } - else - { - cancelReturn.code = "01"; - cancelReturn.msg = "鍙栨秷浠诲姟澶辫触锛學CS鏃犳硶鍒犻櫎浠诲姟!"; - cancelReturn.taskId = cancelReturn.taskId; - } + wcs_wms_cancel.code = 0; + wcs_wms_cancel.msg = ""; + wcs_wms_cancel.data = ""; } - catch (Exception ex) + else { - cancelReturn.code = "01"; - cancelReturn.msg = "鍙栨秷浠诲姟澶辫触锛學CS鏃犳硶鍒犻櫎浠诲姟!"; - cancelReturn.taskId = cancelReturn.taskId; + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "鍙栨秷浠诲姟澶辫触锛學CS鏃犳硶鍒犻櫎浠诲姟!"; + wcs_wms_cancel.data = "鏁版嵁搴撳垹闄ゆ暟鎹け璐"; } } - else + catch (Exception ex) { - cancelReturn.code = "01"; - cancelReturn.msg = "鍙栨秷浠诲姟澶辫触锛屼换鍔″凡鎵ц锛"; - cancelReturn.taskId = cancelReturn.taskId; + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "鍙栨秷浠诲姟澶辫触锛學CS鏃犳硶鍒犻櫎浠诲姟!"; + wcs_wms_cancel.data = ""; } - } - else if (dv.Count == 0) + else { - cancelReturn.code = "00"; - cancelReturn.msg = "鍙栨秷浠诲姟鎴愬姛锛學CS涓棤姝や换鍔★紒" + canceldata.taskId; - cancelReturn.taskId = cancelReturn.taskId; + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "鍙栨秷浠诲姟澶辫触锛屼换鍔″凡鎵ц锛"; + wcs_wms_cancel.data = ""; + } + + } + else if (dv.Count == 0) + { + wcs_wms_cancel.code = 0; + wcs_wms_cancel.msg = "鍙栨秷浠诲姟鎴愬姛锛學CS涓棤姝や换鍔★紒" + wms_wcs_cancel.taskId; + wcs_wms_cancel.data = ""; + } + else + { + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "鍙栨秷浠诲姟澶辫触锛學CS涓湁澶氭潯鐩稿悓浠诲姟锛"; + wcs_wms_cancel.data = ""; + } + } + returnJson = Model.JsonHelper.Serializer(wcs_wms_cancel); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); + return returnJson; + } + catch (Exception ex) + { + string errorjson = Model.JsonHelper.Serializer(new + { + code = 1, + msg = "WCS瑙f瀽json寮傚父", + data = ex.Message.ToString() + }); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + return errorjson; + } + }; + #endregion + #region WMS璋冪敤, 鍦ㄦ澶勭悊锛屼换鍔′紭鍏堢骇 鍗曟潯褰㈠紡 + Post["/api/wcs/thirdParty/changePriorityWmsTask", true] = async (x, ct) => + { + try + { + var body = this.Request.Body; + int length = (int)body.Length; + byte[] data = new byte[length]; + body.Read(data, 0, length); + string jsonStr = System.Text.Encoding.Default.GetString(data); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); + CCallService.WMS_WCS_PARAM_Priority wms_wcs_cancel = Model.JsonHelper.Deserialize(jsonStr); + CCallService.WCS_WMS_PARAM_CANCEL wcs_wms_cancel = new CCallService.WCS_WMS_PARAM_CANCEL(); //杩斿洖鐨勬姤鏂 + string returnJson = string.Empty; + DataView dv = new DataView(); + if (wms_wcs_cancel != null) + { + //CCallService.CANCEL_DATA canceldata = new CCallService.CANCEL_DATA(); + //canceldata = wms_wcs_cancel.data; + // CCallService.CANCEL_RES_DATA cancelReturn = new CCallService.CANCEL_RES_DATA(); + string sql = "select * from t_manage_task where FID = '" + wms_wcs_cancel.taskId + "'"; + dv = dbo.ExceSQL(sql).Tables[0].DefaultView; + if (dv.Count == 1) + { + + string sql1 = "updata t_manage_task set F_MonitorTaskLevel="+ wms_wcs_cancel.priority+ " where FID = '" + wms_wcs_cancel.taskId + "'"; + int count = dbo.ExecuteSql(sql1); + if (count > 0) + { + wcs_wms_cancel.code = 0; + wcs_wms_cancel.msg = ""; + wcs_wms_cancel.data = null; } else { - cancelReturn.code = "01"; - cancelReturn.msg = "鍙栨秷浠诲姟澶辫触锛學CS涓湁澶氭潯鐩稿悓浠诲姟锛佺浉鍚岀殑鏉$爜锛" + canceldata.containerCode; - cancelReturn.taskId = cancelReturn.taskId; + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "璋冩暣澶辫触锛學CS鏁版嵁搴撴棤娉曡皟鏁翠换鍔!"; + wcs_wms_cancel.data = null; } - wcs_wms_cancel.data = cancelReturn; - wcs_wms_cancel.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - wcs_wms_cancel.method = wms_wcs_cancel.method; - break; + } + else if (dv.Count > 1) + { + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "浠诲姟浼樺厛绾ц皟鏁村け璐ワ紝瀛樺湪澶氭潯鐩稿悓浠诲姟鍙风殑浠诲姟!"; + wcs_wms_cancel.data = "鏁版嵁搴撳垹闄ゆ暟鎹け璐"; + } + else { + wcs_wms_cancel.code = 1; + wcs_wms_cancel.msg = "浠诲姟浼樺厛绾ц皟鏁村け璐ワ紝涓嶅瓨鍦ㄤ换鍔!"; + wcs_wms_cancel.data = "鏁版嵁搴撳垹闄ゆ暟鎹け璐"; + } + } + return returnJson; + } + catch (Exception ex) + { + string errorjson = Model.JsonHelper.Serializer(new + { + code = 1, + msg = "WCS瑙f瀽json寮傚父", + data = ex.Message.ToString() + }); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + return errorjson; + } + }; + #endregion + #region WMS璋冪敤, 鍦ㄦ澶勭悊锛屽叆搴撲换鍔 鍗曟潯褰㈠紡 + Post["/api/wcs/thirdParty/deliverWmsInTask", true] = async (x, ct) => + { + try + { + var body = this.Request.Body; + int length = (int)body.Length; + byte[] data = new byte[length]; + body.Read(data, 0, length); + string jsonStr = System.Text.Encoding.Default.GetString(data); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); - default: + CCallService.WMS_WCS_PARAM_IN wms_wcs = Model.JsonHelper.Deserialize(jsonStr); + CCallService.WCS_WMS_PARAM_IN wcs_wms = new CCallService.WCS_WMS_PARAM_IN(); //杩斿洖鐨勬姤鏂 - string errorjson = Model.JsonHelper.Serializer(new - { - method = wms_wcs_cancel.method, - timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - data = new - { - code = "11", - msg = "WCS瑙f瀽jason寮傚父" - } - }); - CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", errorjson, ""); - return errorjson; - } + string err = string.Empty; + string returnJson = string.Empty; + DataView dv = new DataView(); + if (wms_wcs != null) + { + + IO_CONTROL ruku = new IO_CONTROL(wms_wcs, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), wms_wcs.priority); + if (ruku.Insert_IOCONTROL() == true) + { + wcs_wms.code = 0; + wcs_wms.msg = ""; + wcs_wms.data = null; + } + else + { + wcs_wms.code = 1; + wcs_wms.msg = "鍏ュ簱浠诲姟鎺ユ敹澶辫触锛" + ruku.error_code; + wcs_wms.data = null; + } + } + returnJson = Model.JsonHelper.Serializer(wcs_wms); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); + return returnJson; } + catch (Exception ex) { + string errorjson = Model.JsonHelper.Serializer(new + { + code = 1, + msg = "WCS瑙f瀽json寮傚父", + data = ex.Message.ToString() + }); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + return errorjson; + } + }; + #endregion + #region WMS璋冪敤, 鍦ㄦ澶勭悊锛學CS 鍏佽 AGV 鍙彇鍙斁 + Post["/api/wcs/thirdParty/getStationStatus", true] = async (x, ct) => + { + try + { + var body = this.Request.Body; + int length = (int)body.Length; + byte[] data = new byte[length]; + body.Read(data, 0, length); + string jsonStr = System.Text.Encoding.Default.GetString(data); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); + + CCallService.LCS_WCS_AGVStationStauts wms_wcs = Model.JsonHelper.Deserialize(jsonStr); + CCallService.LCS_WCS_AGVStationStautsBack wcs_wms = new CCallService.LCS_WCS_AGVStationStautsBack(); //杩斿洖鐨勬姤鏂 - returnJson = Model.JsonHelper.Serializer(wcs_wms_cancel); - CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); - return returnJson; + string err = string.Empty; + string returnJson = string.Empty; + DataView dv = new DataView(); + if (wms_wcs != null) + { + StringBuilder sql = new StringBuilder(); + sql.Clear(); + sql.Append("select * from T_AGVIOStation where F_DeviceIndex=").Append(wms_wcs.toStation); + DataView dataBackmsg = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataBackmsg.Count > 0) { + wcs_wms.code = 0; + wcs_wms.msg = ""; + LCS_WCS_AGVStationStautsBackData msg = new LCS_WCS_AGVStationStautsBackData(); + msg.taskId = wms_wcs.taskId; + //msg.taskId = dataBackmsg[0]["F_TaskID"].ToString(); + wcs_wms.data = msg; + } + else { + wcs_wms.code = 1; + wcs_wms.msg = $"WCS鏈壘鍒扮珯鍙皗wms_wcs.toStation}淇℃伅"; + } + } + returnJson = Model.JsonHelper.Serializer(wcs_wms); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); + return returnJson; + } + catch (Exception ex) + { + string errorjson = Model.JsonHelper.Serializer(new + { + code = 1, + msg = "WCS瑙f瀽json寮傚父", + data = ex.Message.ToString() + }); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + return errorjson; + } }; #endregion + #region WMS璋冪敤, LCS 杩斿洖 AGV 鍙栨斁璐х姸鎬佺粰 WCS 8鎺ュ彛 + Post["/api/wcs/thirdParty/submitAgvStatus", true] = async (x, ct) => + { + try + { + var body = this.Request.Body; + int length = (int)body.Length; + byte[] data = new byte[length]; + body.Read(data, 0, length); + string jsonStr = System.Text.Encoding.Default.GetString(data); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "鏀跺埌鎶ユ枃", jsonStr.ToString(), ""); + + CCallService.LCS_WCS_AGVStatus wms_wcs = Model.JsonHelper.Deserialize(jsonStr); + CCallService.LCS_WCS_AGVStatusBack wcs_wms = new CCallService.LCS_WCS_AGVStatusBack(); //杩斿洖鐨勬姤鏂 + + string err = string.Empty; + string returnJson = string.Empty; + DataView dv = new DataView(); + if (wms_wcs != null) + { + StringBuilder sql = new StringBuilder(); + sql.Clear(); + sql.Append("select * from T_AGVIOStation where F_DeviceIndex=").Append(wms_wcs.toStation); + DataView dataBackmsg = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView; + if (dataBackmsg.Count > 0) + { + int status = 0;//1AGV杩愬姩涓紝2AGV宸茬寮锛屾垨鑰呭姩浣滃畬鎴 + if (wms_wcs.agvTaskStatus == 23 || wms_wcs.agvTaskStatus == 21 || wms_wcs.agvTaskStatus == 56) + { + status = 2; + } + else { + status = 1; + } + wcs_wms.code = 0; + wcs_wms.msg = ""; + sql.Clear(); + sql.Append("update T_AGVIOStation set F_AGVStatus = ").Append(status). Append(" F_TaskID=").Append(wms_wcs.taskId).Append(" where F_DeviceIndex=").Append(wms_wcs.toStation); + dbo.ExceSQL(sql.ToString()); + LCS_WCS_AGVStatusBackData msg = new LCS_WCS_AGVStatusBackData(); + msg.taskId = wms_wcs.taskId; + wcs_wms.data = msg; + + } + else + { + wcs_wms.code = 1; + wcs_wms.msg = $"WCS鏈壘鍒扮珯鍙皗wms_wcs.toStation}淇℃伅"; + } + } + returnJson = Model.JsonHelper.Serializer(wcs_wms); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", returnJson, ""); + return returnJson; + } + catch (Exception ex) + { + string errorjson = Model.JsonHelper.Serializer(new + { + code = 1, + msg = "WCS瑙f瀽json寮傚父", + data = ex.Message.ToString() + }); + CommonClassLib.CCarryConvert.WriteLog("WEBAPI", "杩斿洖鎶ユ枃", ex.Message.ToString(), ""); + return errorjson; + } + }; + #endregion #region test //Post["/STATUS", true] = async (x, ct) => //{ @@ -307,7 +540,44 @@ namespace WindowsFormsApp1 } + /// + /// 閫氳繃璇诲彇XML鏂囨。鑾峰緱DBFactory.dll.config鐨勫唴瀹 + /// + /// appSettings鎵鏈塳ey鐨勫 + private static IDictionary GetConfig() + { + // Open and parse configuration file for specified + // assembly, returning collection to caller for future + // use outside of this class. + // + try + { + Assembly asm = Assembly.GetCallingAssembly(); + + string cfgFile = asm.Location + ".config"; + const string nodeName = "appSettings"; + + XmlDocument doc = new XmlDocument(); + doc.Load(cfgFile);//20100726 + + XmlNodeList nodes = doc.GetElementsByTagName(nodeName); + + foreach (XmlNode node in nodes) + { + if (node.LocalName == nodeName) + { + DictionarySectionHandler handler = new DictionarySectionHandler(); + return (IDictionary)handler.Create(null, null, node); + } + } + } + catch (Exception ex) + { + throw (ex); + } + return (null); + } #region 鍚 IO_CONTROL 鎻掑叆鍑哄簱鍊掑簱浠诲姟绛 public class IO_CONTROL { @@ -320,6 +590,7 @@ namespace WindowsFormsApp1 int control_type; string warehouse ="1"; string tasklevel; + int needAgv = 0; public StringBuilder error_code = new StringBuilder(); StringBuilder sql = new StringBuilder(); @@ -344,20 +615,29 @@ namespace WindowsFormsApp1 string dTime1 = DateTime.Now.ToString("u"); begintime = dTime1.Substring(0, dTime1.Length - 1); tasklevel = level; - + needAgv = outdata.carryType == 2 ? 1 : 0; } - public IO_CONTROL(CCallService.IN_DATA indata, string time)//鍏ュ簱 + public IO_CONTROL(CCallService.WMS_WCS_PARAM_IN indata, string time, string level)//鍏ュ簱 { error_code.Clear(); wms_id = indata.taskId; relative_id = -1; barcode = indata.containerCode; - startdevice = indata.sourceAddress; - enddevice = indata.targetAddress; + if (indata.taskType == 2 || indata.taskType == 3) + { //璧风偣鏄簱浣 + // startdevice = outdata.startRow.ToString("D2") + "-" + outdata.startColumn.ToString("D2") + "-" + outdata.startLayer.ToString("D2"); + enddevice = indata.endNode; + } + else if (indata.taskType == 1 || indata.taskType == 4) //缁堢偣鏄簱浣 + { + startdevice = indata.startNode; + enddevice = indata.endRow.ToString("D2") + "-" + indata.endColumn.ToString("D2") + "-" + indata.endLayer.ToString("D2"); + } control_type = 1; string dTime1 = DateTime.Now.ToString("u"); begintime = dTime1.Substring(0, dTime1.Length - 1); - tasklevel = indata.tasklevel; + tasklevel = level; + } //妫鏌ュ弬鏁版槸鍚︽纭 @@ -480,7 +760,7 @@ namespace WindowsFormsApp1 error_code.Append(";").Append(all_checking["START_GATE_NOT_EXIST"].des); //璧风偣绔欏彴涓嶅瓨鍦 } } - + #region 鏍¢獙浠g爜闇浼樺寲20250310 if (control_type == 3) //绉诲簱浠诲姟 { if (this.startdevice.Length != 8) @@ -517,7 +797,7 @@ namespace WindowsFormsApp1 } } - + #endregion #endregion //妫鏌ユ墭鐩樼爜 @@ -540,9 +820,10 @@ namespace WindowsFormsApp1 try { sql.Clear(); - sql.Append(string.Format("INSERT INTO IO_CONTROL (CONTROL_ID, RELATIVE_CONTROL_ID, MANAGE_ID, STOCK_BARCODE, CONTROL_TASK_TYPE, CONTROL_TASK_LEVEL, START_WAREHOUSE_CODE, START_DEVICE_CODE, END_WAREHOUSE_CODE, END_DEVICE_CODE, CONTROL_BEGIN_TIME,CONTROL_STATUS) " + + sql.Append(string.Format("INSERT INTO IO_CONTROL (CONTROL_ID, RELATIVE_CONTROL_ID, MANAGE_ID, STOCK_BARCODE, CONTROL_TASK_TYPE, CONTROL_TASK_LEVEL," + + " START_WAREHOUSE_CODE, START_DEVICE_CODE, END_WAREHOUSE_CODE, END_DEVICE_CODE, CONTROL_BEGIN_TIME,CONTROL_STATUS,NeedAgv) " + "VALUES( {0},'{1}','{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}',{11})", - wms_id, -1, 0, barcode, control_type, tasklevel, warehouse, startdevice, warehouse, enddevice, begintime,0)); + wms_id, -1, 0, barcode, control_type, tasklevel, warehouse, startdevice, warehouse, enddevice, begintime,0,needAgv)); dbo.ExceSQL(sql.ToString()); return true; }