using HH.WCS.Hexafluo;
using HH.WCS.Hexafluo.util;
using HH.WCS.SJML.Dto;
using HH.WCS.ZCQTJ.Entitys;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
namespace HH.WCS.ZCQTJ.dispatch
{
public class MesTask
{
private static readonly HttpHelper apiHelper = new HttpHelper();
private static readonly string baseUrl = Settings.MesHelperList;
///
/// 任务取消
///
///
///
public OperateResult MesTaskEntity(ZCReceivePriorityEntity mst)
{
List sendParams = new List();
JObject sendParam = new JObject();
JObject sendData = new JObject
{
// 任务编码
{ "taskNo", mst.taskNo },
// 任务执行状态
{ "taskStatus", mst.Data_status },
//目的库位
{ "endStock", mst.End_big },
//创建人
{ "updater", "WMS" },
//创建时间
{ "updateTime", DateTime.Now.ToString() }
};
//sendData.Add("TOOLS_NO", mst.TOOLS_NO);
sendParams.Add(sendParam);
string sendDatas = JsonConvert.SerializeObject(sendParams);
LogHelper.Info("发送给MES", "任务取消===>:" + sendData.ToString());
LogHelper.Info("发送给MES", "任务取消===>调用接口:" + sendData.ToString());
string result;
result = apiHelper.Post(baseUrl + "/jfly.openapi/agv/updateTask", sendData.ToString());
LogHelper.Info("发送给MES", "任务取消===>MES返回结果:" + result);
if (result == "")
return OperateResult.Error("请检查MES访问地址!");
try
{
MesResponseResult s = JsonConvert.DeserializeObject(result);
if (s.code == 0)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.message);
}
}
catch (Exception ex)
{
LogHelper.Info("发送给MES", "任务取消===>MES返回结果异常" + ex.Message);
return OperateResult.Error("MES返回结果异常");
}
}
///
/// 错误反馈
///
///
///
public OperateResult RollMesAllocation(ZCReceivePriorityEntity model)
{
List sendParams = new List();
JObject sendParam = new JObject();
JObject sendData = new JObject
{
// 任务号
{ "taskNo", model.taskNo },
// 时间
{ "updateTime", model.operattime },
// 错误原因
{ "remark", model.remark }
};
sendParams.Add(sendParam);
string sendDatas = JsonConvert.SerializeObject(sendData);
LogHelper.Info("发送给MES", "错误反馈===>" + sendDatas);
string result;
result = apiHelper.Post(baseUrl + "/jfly.openapi/agv/updateTask", sendData.ToString());
LogHelper.Info("发送给MES", "错误反馈===>MES返回结果:" + result);
if (string.IsNullOrEmpty(result))
return OperateResult.Error("请检查MES访问地址!");
try
{
MesResponseResult s = JsonConvert.DeserializeObject(result);
if (s.code == 0)
{
return OperateResult.Succeed();
}
else
{
return OperateResult.Error(s.message);
}
}
catch (Exception ex)
{
LogHelper.Info("发送给MES", "错误反馈===>MES返回结果异常" + ex.Message);
return OperateResult.Error("MES返回结果异常");
}
}
///
/// 获取工装物料信息
///
///
public MesResponseResultTwo SelectItemList(string stToolsNo, string taskNo)
{
List sendParams = new List();
JObject sendParam = new JObject();
JObject sendData = new JObject();
MesResponseResultTwo res = new MesResponseResultTwo();
// 工装编号
sendData.Add("stToolsNo", stToolsNo);
sendData.Add("taskNo", taskNo);//任务号
string sendDatas = JsonConvert.SerializeObject(sendData);
LogHelper.Info("发送给MES", "获取工装物料信息===>" + sendDatas);
LogHelper.Info("发送给MES", "获取工装物料信息===> 接口" + baseUrl + "/jfly.openapi/job/toolTCardQuery/v2");
var result = apiHelper.Post(baseUrl + "/jfly.openapi/job/toolTCardQuery/v2", sendData.ToString());
LogHelper.Info("发送给MES", "获取工装物料信息 ===> 获取的参数" + JsonConvert.SerializeObject(result));
try
{
return JsonConvert.DeserializeObject(result);
}
catch (Exception ex)
{
LogHelper.Info("发送给MES", "获取工装物料信息===>MES返回结果异常" + ex.Message);
res.message = ex.Message;
res.success = false;
return res;
}
}
}
public class MesResponseResult
{
///
/// 是否成功
///
public bool success { get; set; }
///
/// 接口反馈码
///
public int code { get; set; }
///
/// 时间
///
public DateTime lastTime { get; set; }
///
/// 消息
///
public string message { get; set; }
public ZCReceiveTaskEntity data { get; set; }
}
public class MesResponseResultTwo
{
///
/// 是否成功
///
public bool success { get; set; }
///
/// 接口反馈码
///
public string code { get; set; }
///
/// 时间
///
public DateTime lastTime { get; set; }
///
/// 消息
///
public string message { get; set; }
public ZCReceiveTaskEntityTwo data { get; set; }
}
public class ZCReceiveTaskEntity
{
///
/// 任务号
///
public string task_no { get; set; }
///
/// 任务类型1:入库;2:出库;3-空桶任务
///
public int Task_type { get; set; }
///
/// 周转卡号
///
public string TurnCardNum { get; set; }
///
/// 标准重量
///
public float standardWeight { get; set; }
///
/// 工装类型
///
public string TOOLS_TPYE { get; set; }
///
/// 制品编号
///
public string PROD_NO { get; set; }
///
/// 工艺编号
///
public string PROD_TECH { get; set; }
///
/// 制品规格
///
public string PROD_SPEC { get; set; }
///
/// 制品类型
///
public string PROD_BOM { get; set; }
///
/// 制品特征值
///
public string PROD_Feature { get; set; }
///
/// 工装编号
///
public string TOOLS_NO { get; set; }
///
/// 载料数量
///
public float ST_AMOUNT { get; set; }
///
/// 当前数量
///
public float CURRENT_AMOUNT { get; set; }
///
/// 起始库位编号
///
public string Location_From { get; set; }
///
/// 目的库位编号
///
public string Location_To { get; set; }
///
/// 生产时间
///
public DateTime PRODUCE_TIME { get; set; }
///
/// 生效时间
///
public DateTime SHELF_LIFE_TIME { get; set; }
///
/// 失效时间
///
public DateTime EXPIRED_TIME { get; set; }
///
/// 缩短报告时间
///
public float SHELF_REP { get; set; }
///
/// 延长报告时间
///
public float EXPIRED_REP { get; set; }
///
/// 质检状态代码
///
public string CHECK_CODE { get; set; }
///
/// 质检状态
///
public string CHECK_INFO { get; set; }
///
/// 优先级0-普通:任务生成时,均为此级别;1-加急;2-紧急
///
public int Priority { get; set; }
///
/// 任务状态0-初始状态;1-进行中;2-完成;3-任务取消
///
public int Data_status { get; set; }
///
/// 业务类型
/// 1 半成品满托入库
/// 2 成型机半桶回库
/// 3 成型机空桶回库
/// 4 成型机满托出库
/// 5 成型机带束回库
/// 6 成型机带束满托出库
/// 7 半成品空托出库
/// 8 胶料入库
/// 9 呼叫胶料
/// 10 叠盘机空托入库
/// 11 胶料半桶回库
/// 100 绑定
/// 200 解绑
///
public string BUSI_TYPE { get; set; }
public string Task_PDA { get; set; }
///
/// 用于mes调wms库位查询接口使用
///
public string Location_Area { get; set; }
///
/// 绑定的货位
///
public string LOCATION_CODE { get; set; }
}
public class ZCReceiveTaskEntityTwo
{
///
/// 工单号
///
public string planNo { get; set; }
///
/// 制品类型
///
public string prodName { get; set; }
///
/// 物料编码
///
public string prodNo { get; set; }
///
/// 质检状态
///
public string prodSelfCheck { get; set; }
///
/// 物料规格型号
///
public string prodSpec { get; set; }
///
/// 报产时间
///
public DateTime produceTime { get; set; }
///
/// 生效时间
///
public DateTime shelfLifeTime { get; set; }
///
/// 过期时间
///
public DateTime expiredTime { get; set; }
///
/// 工装
///
public string stToolsNo { get; set; }
///
/// 总数量
///
public float stAmount { get; set; }
///
/// 当前余量
///
public float currentAmount { get; set; }
///
/// 周转卡号
///
public string turnoverNo { get; set; }
public string applyProdSpecList { get; set; }
}
}