kazelee
2025-06-26 f703b278956736aa14c12d1d25c8e8f23b822760
dispatch/GZRobot.cs
@@ -28,7 +28,15 @@
            var result = apiHelper.Post(baseUrl + "api/engine/tasks/iostates/", JsonConvert.SerializeObject(data));
            var dataResult = JsonConvert.DeserializeObject<gzResult<IOStatesInfoResult>>(result);
        }
        /// <summary>
        /// 创建国自任务
        /// </summary>
        /// <param name="taskNo"></param>
        /// <param name="priority"></param>
        /// <param name="param"></param>
        /// <param name="ts"></param>
        /// <param name="created_user"></param>
        /// <returns></returns>
        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 = "";
@@ -42,11 +50,18 @@
            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;
                    }
                }
                catch (Exception ex) {
                    LogHelper.InfoEx(ex);
                }
            }
            else {
@@ -55,29 +70,13 @@
                LogHelper.Info($"创建订单失败", "API");
            }
            return orderId;
        }
        public static bool CancelOrder(int orderId) {
            bool result = false;
            string msg = "";
            var request = new CancelOrderInfo() { order_list = new List<int>(orderId) };
            var response = apiHelper.Post(baseUrl + "api/om/order/cancel/", JsonConvert.SerializeObject(request));
            msg = $"[guozi-CancelOrder] request={request};response={response}";
            Console.WriteLine(msg);
            if (response != "") {
                var dataResult = JsonConvert.DeserializeObject<gzResult<CancelOrderInfoResult>>(response);
                if (dataResult.code == 0) {
                    result = true;
                }
            }
            else {
                msg = "[guozi-CancelOrder]取消订单失败";
                Console.WriteLine(msg);
            }
            return result;
        }
        /// <summary>
        /// 取消国自任务
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public static bool CancelGZOrder(int orderId) {
            bool result = false;
            string msg = "";
@@ -88,9 +87,18 @@
            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;
                //}
                // 返回参数中,code目前不再使用,可通过msg字段判断是否成功,如果msg为”success”则表示成功,否则为报错信息或不存在。http code为422时候的报错为系统报错,其中的msg无法全部获取。
                // SELFNOTE: 直接调用HttpHelper.Post方法,无法获取header,暂时不考虑
                // 尊重文档的版本
                if (dataResult.msg == "success") { // 目前只取消一个任务,成功无需再检查success_list和error_list
                    Console.WriteLine("[guozi-CancelOrder]取消订单成功");
                    result = true;
                    return result;
                }
@@ -101,7 +109,52 @@
            }
            return result;
        }
        /// <summary>
        /// 取消多个任务
        /// </summary>
        /// <param name="orderIds"></param>
        /// <returns></returns>
        public static bool CancelGZOrders(List<int> orderIds) {
            bool result = false;
            string msg = "";
            List<CancelGZOrderInfo> requests = new List<CancelGZOrderInfo>();
            foreach (var id in orderIds) {
                var request = new CancelGZOrderInfo() { order_id = id, order_command_type_id = 2 };
                requests.Add(request);
            }
            var response = apiHelper.Put(baseUrl + "api/om/order/order-command/", JsonConvert.SerializeObject(requests));
            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);
                //    result = true;
                //    return result;
                //}
                // 返回参数中,code目前不再使用,可通过msg字段判断是否成功,如果msg为”success”则表示成功,否则为报错信息或不存在。http code为422时候的报错为系统报错,其中的msg无法全部获取。
                // SELFNOTE: 直接调用HttpHelper.Post方法,无法获取header,暂时不考虑
                // 尊重文档的版本
                if (dataResult.msg == "success") { // 目前只取消一个任务,成功无需再检查success_list和error_list
                    if (dataResult.success_list.Count == requests.Count && dataResult.error_list.Count == 0) {
                        Console.WriteLine("[guozi-CancelOrder]取消订单成功");
                        result = true;
                        return result;
                    }
                    else {
                        Console.WriteLine("[guozi-CancelOrder]取消订单部分失败" + JsonConvert.SerializeObject(dataResult.error_list));
                        result = true;
                        return result;
                    }
                }
            }
            else {
                msg = "[guozi-CancelOrder]取消订单失败";
                Console.WriteLine(msg);
            }
            return result;
        }
        /// <summary>
        /// 订单状态反馈
@@ -173,7 +226,6 @@
        public static QueryOrderResult QueryOrder(int id) {
            //
            var result = new QueryOrderResult() { agv_list = new List<int> { 0 } };
            string msg = "";
            var response = apiHelper.Get(baseUrl + $"/api/om/order/{id}/");
@@ -311,7 +363,7 @@
        public List<ResultInfo> error_list { get; set; }
        public class ResultInfo { public int order_id { get; set; } }
    }
    public class cancle
    public class Cancel
    {
        public List<success_list> success_list { get; set; }
        public List<error_list> error_list { get; set; }
@@ -323,6 +375,7 @@
    public class error_list
    {
        public int order_id { get; set; } // 新补充
    }
    public class CancelGZOrderResult
    {
@@ -330,7 +383,7 @@
        public string version { get; set; }
        public int code { get; set; }
        public string msg { get; set; }
        public cancle data { get; set; }
        public Cancel data { get; set; }
        public List<int> success_list { get; set; }
        public List<int> error_list { get; set; }
    }