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; }
}
}
}