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