From a93b0e99036c24b9bd58c79bf5e7364b1ba28bae Mon Sep 17 00:00:00 2001 From: 杨前锦 <1010338399@qq.com> Date: 星期二, 01 七月 2025 16:02:33 +0800 Subject: [PATCH] 福建佳通-流程优化 --- HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs | 272 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 237 insertions(+), 35 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs index d1bb19c..7d82fbf 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs @@ -4,7 +4,9 @@ using System.Text; using System.Threading.Tasks; using HH.WCS.Mobox3.YNJT_PT.util; +using HH.WCS.Mobox3.YNJT_PT.wms; using Newtonsoft.Json; +using static HH.WCS.Mobox3.YNJT_PT.api.ApiModel; namespace HH.WCS.Mobox3.YNJT_PT.dispatch { @@ -13,64 +15,264 @@ private static readonly HttpHelper apiHelper = new HttpHelper(); private static readonly string baseUrl = "http://192.168.1.99:2000/"; + + internal static string GenerateReqId() + { + var id = SYSHelper.GetSerialNumber("璇锋眰ID", "RE"); + var date = DateTime.Now.ToString("yyMMdd"); + return $"{date}{id.ToString().PadLeft(4, '0')}"; + } + /// <summary> - /// WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛�+ /// 浠诲姟涓嬪彂 /// </summary> - /// <param name="roadway"></param> + /// <param name="model"></param> /// <returns></returns> - public static List<StackerState> getStackerState(int roadway) + public static bool sendTask(SendTaskModel model) { - var msg = ""; - List<StackerState> stackerStates = new List<StackerState>(); - var data = new StackerStateModel() { req_no = Guid.NewGuid().ToString("D"), roadway = roadway.ToString() }; - var request = JsonConvert.SerializeObject(data); - var response = apiHelper.Post(baseUrl + "api/StackerState", request); - msg = $"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛塠StackerState] request={request} response={response}"; - LogHelper.Info(msg, "WCS"); - if (response != "") + var result = false; + model.reqId = GenerateReqId(); + model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var request = JsonConvert.SerializeObject(model); + try { - try + var response = apiHelper.Post(baseUrl + "/sendTask", request); + LogHelper.Info($"[WCS-sendTask] request={request} response={response}", "WMS"); + if (response != null && response != "") { - var dataResult = JsonConvert.DeserializeObject<StackerStateResponseData>(response); - if (dataResult.result_flag == 0) + var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response); + if (dataResult.code == 200) { - stackerStates = dataResult.data; + result = true; } - else + else { - LogHelper.Info($"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夊け璐ワ紝WCS鍙嶉閿欒淇℃伅锛歿dataResult.err_msg}", "WCS"); + LogHelper.Info($"璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛鎴愬姛锛屼絾WCS鍙嶉涓嬪彂浠诲姟澶辫触锛屽け璐ュ師鍥狅細{dataResult.msg}", "WMS"); } } - catch (Exception ex) + else { - LogHelper.Info($"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夐敊璇紝閿欒鍘熷洜锛歿ex.Message}", "WCS"); + LogHelper.Info("璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛澶辫触", "WMS"); } } - else + catch (Exception ex) { - msg = "[StackerState]WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夊け璐�; - LogHelper.Info(msg, "WCS"); + LogHelper.Info($"璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS"); } - return stackerStates; + return result; } - public class StackerStateResponseData + /// <summary> + /// 浠诲姟鍙栨秷锛堜换鍔℃墽琛屼腑涓嶅厑璁稿彇娑堬級 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static bool cancelTask(CancelTaskModel model) { - public int result_flag { get; set; } - public string err_msg { get; set; } - public List<StackerState> data { get; set; } - } - public class StackerState - { - public string roadway { get; set; } - public string roadway_state { get; set; } // 鍫嗗灈鏈虹姸鎬�1=绌洪棽锛�=鎵ц涓紝3=鎶ヨ锛�=涓嶅彲鐢�+ var result = false; + model.reqId = GenerateReqId(); + model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var request = JsonConvert.SerializeObject(model); + try + { + var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request); + LogHelper.Info($"[WCS-cancelTask] request={request} response={response}", "WMS"); + if (response != null && response != "") + { + + var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response); + if (dataResult.code == 200) + { + result = true; + } + + } + else + { + LogHelper.Info("璋冪敤WCS浠诲姟鍙栨秷鎺ュ彛澶辫触", "WMS"); + } + } + catch (Exception ex) + { + LogHelper.Info($"璋冪敤WCS浠诲姟鍙栨秷鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS"); + } + return result; } - public class StackerStateModel + /// <summary> + /// 鑾峰彇璁惧鐘舵� + /// </summary> + /// <param name="deviceNoList"></param> + /// <returns></returns> + public static List<DeviceStatusData> getDeviceStatus(List<string> deviceNoList) { - public string req_no { get; set; } - public string roadway { get; set; } + List<DeviceStatusData> deviceStatusDatas = new List<DeviceStatusData>(); + + DeviceStatusModel model = new DeviceStatusModel() + { + reqId = GenerateReqId(), + reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + deviceNoList = deviceNoList + }; + + var request = JsonConvert.SerializeObject(model); + try + { + var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request); + LogHelper.Info($"[WCS-getDeviceStatus] request={request} response={response}", "WMS"); + if (response != null && response != "") + { + + var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response); + if (dataResult.code == 200) + { + deviceStatusDatas = JsonConvert.DeserializeObject<List<DeviceStatusData>>(response); + } + + } + else + { + LogHelper.Info("璋冪敤WCS鑾峰彇璁惧鐘舵�鎺ュ彛澶辫触", "WMS"); + } + } + catch (Exception ex) + { + LogHelper.Info($"璋冪敤WCS鑾峰彇璁惧鐘舵�鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS"); + } + return deviceStatusDatas; } + /// <summary> + /// 淇敼浠诲姟浼樺厛绾�+ /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public static bool changePriority(ChangePriorityModel model) + { + var result = false; + model.reqId = GenerateReqId(); + model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var request = JsonConvert.SerializeObject(model); + try + { + var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request); + LogHelper.Info($"[WCS-changePriority] request={request} response={response}", "WMS"); + if (response != null && response != "") + { + + var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response); + if (dataResult.code == 200) + { + result = true; + } + + } + else + { + LogHelper.Info("璋冪敤WCS淇敼浠诲姟浼樺厛绾ф帴鍙eけ璐�, "WMS"); + } + } + catch (Exception ex) + { + LogHelper.Info($"璋冪敤WCS淇敼浠诲姟浼樺厛绾ф帴鍙i敊璇紝閿欒鍘熷洜锛歿ex.Message}", "WMS"); + } + return result; + } + + /// <summary> + /// AGV瀹夊叏浜や簰 + /// </summary> + /// <param name="req_no"></param> + /// <param name="locCode"></param> + /// <param name="type"></param> + /// <returns></returns> + public static bool safetyInteraction(string req_no, string locCode, string type) + { + var result = false; + LocStateModel model = new LocStateModel() + { + req_no = req_no, + loc_code = locCode, + type = type + }; + + var request = JsonConvert.SerializeObject(model); + try + { + var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request); + LogHelper.Info($"[WCS-changePriority] request={request} response={response}", "WMS"); + if (response != null && response != "") + { + + var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response); + if (dataResult.code == 200) + { + result = true; + } + } + else + { + LogHelper.Info("璋冪敤WCS瀹夊叏璇锋眰鎺ュ彛澶辫触", "AGV"); + } + } + catch (Exception ex) + { + LogHelper.Info($"璋冪敤WCS瀹夊叏璇锋眰鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "AGV"); + } + return result; + } + + + public class LocStateModel + { + public string req_no { get; set; } // 璇锋眰id + public string loc_code { get; set; } // 璐т綅 + public string type { get; set; } // 璐т綅 1 璇锋眰鍙栬揣 2 璇锋眰鏀捐揣 3 鍙栬揣瀹屾垚绂诲紑淇″彿 4 鏀捐揣瀹屾垚绂诲紑淇″彿 + } + + public class ChangePriorityModel + { + public string reqId { get; set; } // 璇锋眰id + public string reqTime { get; set; } // 璇锋眰鏃堕棿 + public string taskNo { get; set; } // 浠诲姟鍙�+ public int priority { get; set; } // 浼樺厛绾�+ } + + public class DeviceStatusData + { + public string deviceNo { get; set; } // 璁惧鍙�+ public int workStatus { get; set; } // 宸ヤ綔鐘舵� 1姝e父 锛�绂佺敤 锛�鏁呴殰 + public int photoStatus { get; set; } // 鍏夌數鐘舵� 1鏄┖杞�,2鏄湁杞�+ public int manualStatus { get; set; } //鎵嬪姩鐘舵� 1鎵嬪姩锛�鑷姩 + } + + public class DeviceStatusModel + { + public string reqId { get; set; } // 璇锋眰id + public string reqTime { get; set; } // 璇锋眰鏃堕棿 + public List<string> deviceNoList { get; set; } // 璁惧鍙�+ } + + public class CancelTaskModel + { + public string reqId { get; set; } // 璇锋眰id + public string reqTime { get; set; } // 璇锋眰鏃堕棿 + public string taskNo { get; set; } // 浠诲姟鍙�+ } + + public class SendTaskModel + { + public string reqId { get; set; } // 璇锋眰id + public string reqTime { get; set; } // 璇锋眰鏃堕棿 + public string taskNo { get; set; } // 浠诲姟鍙�+ public int groupNo { get; set; } // 浠诲姟缁� + public string taskType { get; set; } // 浠诲姟绫诲瀷 1.鐗╂枡鍏ュ簱 2.鐗╂枡鍑哄簱 + public string from { get; set; } // 璧风偣 + public string to { get; set; } // 缁堢偣 + public string cntrNo { get; set; } // 瀹瑰櫒缂栫爜 + public string cntrType { get; set; } // 瀹瑰櫒绫诲瀷 + public List<object> extData { get; set; } // + + } } } -- Gitblit v1.9.1