| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IdentityModel.Protocols.WSTrust; |
| | | using System.Linq; |
| | | using System.Security.Policy; |
| | | using System.Threading.Tasks; |
| | | using HH.WCS.Mobox3.AnGang.util; |
| | | |
| | | using HH.WCS.Mobox3.AnGang.core; |
| | | using HH.WCS.Mobox3.AnGang.models; |
| | | using HH.WCS.Mobox3.AnGang.util; |
| | | |
| | | using Newtonsoft.Json; |
| | | |
| | | using static System.Net.WebRequestMethods; |
| | | using static HH.WCS.Mobox3.AnGang.api.ApiModel; |
| | | |
| | | namespace HH.WCS.Mobox3.AnGang.dispatch { |
| | |
| | | var result = apiHelper.Post(baseUrl + "api/engine/tasks/iostates/", JsonConvert.SerializeObject(data)); |
| | | var dataResult = JsonConvert.DeserializeObject<gzResult<IOStatesInfoResult>>(result); |
| | | } |
| | | |
| | | |
| | | // DOC 1. 创建订单 WMS->RCS |
| | | public static int CreateOrder(string taskNo, int priority, string param, string ts = "churuku", string created_user = "hanhe") { |
| | | LogHelper.Info($"CreateOrder参数信息:taskNo:{taskNo},priority:{priority},param:{param},ts:{ts},created_user:{created_user}", "API"); |
| | | var msg = ""; |
| | |
| | | if (response != "") { |
| | | try { |
| | | var dataResult = JsonConvert.DeserializeObject<gzResult<OrderInfoResult>>(response); |
| | | if (dataResult.code == 0) { |
| | | // 原代码部分 |
| | | //if (dataResult.code == 0) { |
| | | // orderId = dataResult.data[0].in_order_id; |
| | | //} |
| | | // 尊重文档的版本 |
| | | // 返回参数中,code目前不再使用,可通过msg字段判断是否成功,如果msg为”success”则表示成功,否则为报错信息或不存在。http code为422时候的报错为系统报错,其中的msg无法全部获取。 |
| | | // SELFNOTE: 直接调用HttpHelper.Post方法,无法获取header,暂时不考虑 |
| | | if (dataResult.msg == "success") { |
| | | orderId = dataResult.data[0].in_order_id; |
| | | } |
| | | } |
| | |
| | | return result; |
| | | } |
| | | |
| | | // DOC 2. 取消订单 WMS->RCS |
| | | public static bool CancelGZOrder(int orderId) { |
| | | bool result = false; |
| | | string msg = ""; |
| | |
| | | msg = $"[guozi-CancelOrder] request={requests};response={response}"; |
| | | if (response != "") { |
| | | var dataResult = JsonConvert.DeserializeObject<CancelGZOrderResult>(response); |
| | | if (dataResult.code == 0) { |
| | | msg = "[guozi-CancelOrder]取消订单成功"; |
| | | Console.WriteLine(msg); |
| | | // 原代码版本 |
| | | //if (dataResult.code == 0) { |
| | | // msg = "[guozi-CancelOrder]取消订单成功"; |
| | | // Console.WriteLine(msg); |
| | | // result = true; |
| | | // return result; |
| | | //} |
| | | |
| | | // 尊重文档的版本 |
| | | if (dataResult.msg == "success") { // 目前只取消一个任务,成功无需再检查success_list和error_list |
| | | Console.WriteLine("[guozi-CancelOrder]取消订单成功"); |
| | | result = true; |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | else { |
| | | msg = "[guozi-CancelOrder]取消订单失败"; |
| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | // DOC 3. 订单状态推送 RCS->WMS |
| | | /// <summary> |
| | | /// 订单状态反馈 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static GzResult orderStatusReport(orderStatusReportParme model) { |
| | | LogHelper.Info("RCS国自AGV任务状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask"); |
| | | LogHelper.Info("orderStatusReport:RCS国自AGV任务状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask"); |
| | | GzResult result = new GzResult(); |
| | | AgvTaskState agv = new AgvTaskState(); |
| | | |
| | |
| | | break; |
| | | case "waiting": |
| | | agv.state = 1; |
| | | break; |
| | | case "dispatched": |
| | | //调度派车(开始取货)NEW ADDED |
| | | agv.state = 3; |
| | | break; |
| | | case "source_finish": |
| | | //取货完成 |
| | |
| | | return result; |
| | | } |
| | | |
| | | // DOC 6. 交互表查询 |
| | | /// <summary> |
| | | /// 获取交互信息 |
| | | /// </summary> |
| | |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据没有interaction_info_name(task.S_CODE)获取interaction_info_id |
| | | /// </summary> |
| | | /// <param name="taskCode"></param> |
| | | /// <param name="infoId"></param> |
| | | /// <returns></returns> |
| | | public static bool TryGetInteractionInfoId(string taskCode, out int infoId) { |
| | | var list = QueryInteractInfo(3); |
| | | if (list.Count == 0) { |
| | | LogHelper.Info($"查交互表失败!没有读取到交互表!"); |
| | | infoId = 0; |
| | | return false; |
| | | } |
| | | |
| | | var data = list.Where(i => i.interaction_info_name == taskCode).FirstOrDefault(); |
| | | if (data == null) { |
| | | LogHelper.Info($"查交互表失败!没有interaction_info_name='{taskCode}'的值!" + JsonConvert.SerializeObject(list)); |
| | | infoId = 0; |
| | | return false; |
| | | } |
| | | |
| | | infoId = data.interaction_info_id; |
| | | return true; |
| | | } |
| | | |
| | | // DOC 6. 交互表查询(更新终点货位) |
| | | public static bool UpdateInteractInfo(UpdateInteractInfo interactInfo) { |
| | | string msg = ""; |
| | | var result = false; |
| | |
| | | } |
| | | else { |
| | | msg = "[guozi-UpdateInteractInfo]更新交互信息失败"; |
| | | Console.WriteLine(msg); |
| | | //Console.WriteLine(msg); |
| | | LogHelper.Info(msg); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | // DOC 5. 称重信息查询 |
| | | public static List<CustomData> CustomBuf() { |
| | | var res = new List<CustomData>(); |
| | | |
| | | string msg = ""; |
| | | var result = apiHelper.Get(baseUrl + $"/api/engine/agvs/custom-buf/"); |
| | | //var result = apiHelper.Get(baseUrl + $"/api/engine/agvs/custom-buf/", "application/json"); |
| | | LogHelper.Info($"正在请求GET: \"/api/engine/agvs/custom-buf/\"", "API"); |
| | | var result = apiHelper.GetNew(baseUrl + $"api/engine/agvs/custom-buf/"); |
| | | if (!string.IsNullOrEmpty(result)) { |
| | | Console.WriteLine(result); |
| | | |
| | | try { |
| | | LogHelper.Info($"称重信息:" + result); |
| | | var data = JsonConvert.DeserializeObject<gzResult<CustomData>>(result); |
| | | |
| | | if (data.data != null) { |
| | | res = data.data; |
| | | } |
| | |
| | | public class UpdateInteractInfo |
| | | { |
| | | public int interaction_info_id { get; set; } |
| | | public string type_name { get; set; } = "GET_DST"; |
| | | public string info_status { get; set; } |
| | | public string return_value { get; set; } |
| | | public string return_value { get; set; } = ""; |
| | | } |
| | | public class interaction_state |
| | | { |