using HH.WCS.Mobox3.HD.util; using Newtonsoft.Json; using System; using System.Configuration; namespace HH.WCS.Mobox3.HD.dispatch { /// /// 车间控制器 /// internal class ShopFloorControl { private static readonly HttpHelper apiHelper = new HttpHelper(); private static readonly string baseUrl = "http://10.30.10.8:8100/dev-api"; /// /// 容器物料解绑 /// /// /// public static bool trayMaterialUnBind(UnBindInfo model) { var msg = ""; var result = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request); msg = $"[车间控制器-trayMaterialUnBind] request={request} response={response}"; Console.WriteLine(msg); if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-trayMaterialUnBind]托盘物料解绑失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 合力物流调度状态反馈 /// /// /// public static bool updateStatus(HLStatusInfo model) { var msg = ""; var result = false; LogHelper.Info("合力物流调度状态反馈, 入参:" + JsonConvert.SerializeObject(model), "车间控制器"); var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/logistics/updateStatus", request); msg = $"[车间控制器-updateStatus] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info("合力物流调度状态反馈, 出参:" + JsonConvert.SerializeObject(response), "车间控制器"); if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-updateStatus]合力物流调度状态反馈失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 物流调度接口 /// /// /// public static string transferTiled(TransferTiledInfo model) { var msg = ""; string result = null; LogHelper.Info("物流调度接口, 入参:" + JsonConvert.SerializeObject(model), "车间控制器"); var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/logistics/transferTiled", request); msg = $"[车间控制器-transferTiled] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info("物流调度接口, 出参:" + JsonConvert.SerializeObject(response), "车间控制器"); if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { var res = dataResult.code.Equals("200"); if (res) { var data = JsonConvert.DeserializeObject(dataResult.data.ToString()); return data.logisticsTaskId; } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-transferTiled]物流调度接口失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 钢卷称重数据反馈 /// /// /// public static bool reportSteelWeight(SteelWeightInfo model) { var msg = ""; var result = false; LogHelper.Info("钢卷称重数据反馈, 入参:" + JsonConvert.SerializeObject(model), "车间控制器"); var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/processTask/reportSteelWeight", request); msg = $"[车间控制器-reportSteelWeight] request={request} response={response}"; Console.WriteLine(msg); LogHelper.Info("钢卷称重数据反馈, 出参:" + JsonConvert.SerializeObject(response), "车间控制器"); if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-reportSteelWeight]钢卷称重数据反馈失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 半成品、成品称重数据反馈 /// /// /// public static bool reportSemilFinishedProductWeight(ProductWeightInfo model) { var msg = ""; var result = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/processTask/reportSemiFinishedProductWeight", request); msg = $"[车间控制器-reportSemiFinishedProductWeight] request={request} response={response}"; if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-reportSemilFinishedProductWeight] 半成品、成品称重数据反馈失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 输送线托盘码不一致报错反馈 /// /// /// public static bool trayErrorFeedback(TrayErrorFeedbackInfo model) { var msg = ""; var result = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/logistics/wmsUpdateStatus", request); msg = $"[车间控制器-trayErrorFeedback] request={request} response={response}"; if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-trayErrorFeedback] 输送线托盘码不一致报错反馈失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } /// /// 通知车间控制器创建灵动搬运任务接口 /// /// /// public static bool notificationCreateTransportOrder(TransferTiledData model) { var msg = ""; var result = false; var request = JsonConvert.SerializeObject(model); var response = apiHelper.Post(baseUrl + "/api/hecWms/logistics/notificationCreateTransportOrder", request); msg = $"[车间控制器-trayErrorFeedback] request={request} response={response}"; if (response != null && response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.success) { result = dataResult.code.Equals("200"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[车间控制器-trayErrorFeedback] 输送线托盘码不一致报错反馈失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "车间控制器"); return result; } public class TrayErrorFeedbackInfo { public string wmsId { get; set; } public string errMsg { get; set; } } public class ProductWeightInfo { public string wmsId { get; set; } public string trayCode { get; set; } public string weight { get; set; } public string weightTime { get; set; } } public class SteelWeightInfo { public string transferId { get; set; } public string steelcoilCode { get; set; } public double weight { get; set; } public string endStationCode { get; set; } public string endAreaCode { get; set; } } public class TransferTiledInfo { public string businessType { get; set; } // 物流调度类型 public string userCode { get; set; } // 操作人 public string processTaskId { get; set; } // 工序ID public string workCode { get; set; } // 工作号 public string setCode { get; set; } // 部套号 public string partDrawingCode { get; set; } // 零件图号 public string processCode { get; set; } // 工序编码 public string comment { get; set; } // 备注 public string endStationCode { get; set; } // 终点货位 public string endAreaCode { get; set; } // 终点区域编码 public string startStationCode { get; set; } // 起点货位 public string startAreaCode { get; set; } // 起点区域编码 public string trayCode { get; set; } //托盘编号 public string workshopCenterCode { get; set; } } public class HLStatusInfo { public string orderId { get; set; } // 订单ID public string agvId { get; set; } // agv车辆号 public string status { get; set; } // 调度状态 1取货成功 2任务完成 3任务失败 public string reason { get; set; } // 失败原因 } public class UnBindInfo { public string processTaskId { get; set; } // 工序任务ID public string trayCode{ get; set; } // 托盘编码 public string operators{ get; set; } // 操作人 public string materielCode{ get; set; } // 物料编码 } public class ResponseData { public bool success { get; set; } public string code { get; set; } public string message { get; set; } public object data { get; set; } } public class TransferTiledData { public string logisticsTaskId { get; set; } } } }