using HH.WCS.Mobox3.HD.util;
|
using Newtonsoft.Json;
|
using System;
|
using System.Configuration;
|
|
namespace HH.WCS.Mobox3.HD.dispatch
|
{
|
|
/// <summary>
|
/// 车间控制器
|
/// </summary>
|
internal class ShopFloorControl
|
{
|
private static readonly HttpHelper apiHelper = new HttpHelper();
|
private static readonly string baseUrl = "http://10.30.10.8:8100/dev-api";
|
|
|
/// <summary>
|
/// 容器物料解绑
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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;
|
}
|
|
/// <summary>
|
/// 合力物流调度状态反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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;
|
}
|
|
/// <summary>
|
/// 物流调度接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(response);
|
if (dataResult.success)
|
{
|
var res = dataResult.code.Equals("200");
|
if (res) {
|
var data = JsonConvert.DeserializeObject<TransferTiledData>(dataResult.data.ToString());
|
return data.logisticsTaskId;
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
}
|
}
|
else
|
{
|
msg = "[车间控制器-transferTiled]物流调度接口失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "车间控制器");
|
return result;
|
}
|
|
/// <summary>
|
/// 钢卷称重数据反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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;
|
}
|
|
/// <summary>
|
/// 半成品、成品称重数据反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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;
|
}
|
|
/// <summary>
|
/// 输送线托盘码不一致报错反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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;
|
}
|
|
/// <summary>
|
/// 通知车间控制器创建灵动搬运任务接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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<ResponseData>(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; }
|
}
|
}
|
}
|