1
zxx
2025-07-07 3428deadb4b60ef25dbd06fbf53905fc51c7616e
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs
@@ -195,7 +195,8 @@
                agv.ForkliftNo = model.agvIDList;
                WCSCore.OperateAgvTaskStatus(agv);
                ////小米状态上报
                //xiaoMiRequestApi(model);
            }
@@ -215,90 +216,125 @@
        public static GzResult applyReroute(orderReroute model)
        {
            GzResult result = new GzResult();
            var wcsTask = WCSHelper.GetTask(model.orderName);
            if (wcsTask == null)
            try
            {
                result.resultCode = 1;
                result.msg = "订单不存在!";
                return result;
            }
            if (model.orderType == 1)
            {
                //1表示是否申请绕路
                var endLoc = LocationHelper.GetLoc(wcsTask.S_END_LOC);
                if (endLoc.N_CURRENT_NUM == 0 && endLoc.S_LOCK_STATE == "无")
                var wcsTask = WCSHelper.GetTask(model.orderName);
                if (wcsTask == null)
                {
                    result.resultCode = 0;
                    result.msg = "目标货位已空";
                    result.resultCode = 1;
                    result.msg = "订单不存在!";
                    return result;
                }
                if (model.orderType == 1)
                {
                    //1表示是否申请绕路
                    var endLoc = LocationHelper.GetLoc(wcsTask.S_END_LOC);
               LogHelper.Info($"applyReroute 申请是否绕路货位参数{JsonConvert.SerializeObject(endLoc)}");
                    if (endLoc.N_CURRENT_NUM == 0&& endLoc.S_LOCK_STATE=="入库锁")
                    {
                        result.resultCode = 0;
                        result.success = true;
                        result.msg = "目标货位已空";
                        return result;
                    }
                    else
                    {
                        result.resultCode = 1;
                        result.success = false;
                        result.msg = "目标货位为满";
                        return result;
                    }
                }
                else
                {
                    result.resultCode = 1;
                    result.msg = "目标货位为满";
                    return result;
                    //2表示申请目标库位
                    var apply = new ApplyModel() { wcsTaskCode = wcsTask.S_WORKSHOP_NO };
                    var end = XMWcsHelper.GetPositionApply(apply);
                    if (!string.IsNullOrEmpty(end.body.pointCode))
                    {
                        result.resultCode = 0;
                        result.msg = "目标库位已申请";
                        result.orderData = end.body.pointCode;
                        return result;
                    }
                    else
                    {
                        result.resultCode = 1;
                        result.msg = "目标库位已申请";
                        result.orderData = "";
                        return result;
                    }
                }
            }
            catch (Exception ex)
            {
                result.resultCode = 1;
                result.success = false;
                result.msg = $"agv申请绕路出现错误{JsonConvert.SerializeObject(ex.Message)}";
                return result;
            }
        }
        /// <summary>
        /// 交管申请
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static GzResult agvTraffic(orderTraffic model)
        {
            GzResult result = new GzResult();
            try
            {
                result.resultCode = 0;
                result.msg = "success";
                return result;
            }
            catch (Exception ex)
            {
                result.resultCode = 1;
                result.success = false;
                result.msg = $"交管申请出现错误{JsonConvert.SerializeObject(ex.Message)}";
                return result;
            }
        }
        /// <summary>
        /// 调用小米状态回报接口
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static int xiaoMiRequestApi(orderStatusReportParme model)
        {
            var msg = "";
            var orderId = 0;
            var request = JsonConvert.SerializeObject(model);
            var response = apiHelper.Post(baseUrl + "api/om/order/", request);
            msg = $"[xiaoMiRequestApi] request={request} response={response}";
            Console.WriteLine(msg);
            if (response != "" && model.orderStatus == "6")
            {
                try
                {
                    var dataResult = JsonConvert.DeserializeObject<gzResult<OrderInfoResult>>(response);
                    if (dataResult.code == 0)
                    {
                        orderId = dataResult.data[0].in_order_id;
                    }
                }
                catch (Exception ex)
                {
                }
            }
            else
            {
                //2表示申请目标库位
                var apply = new ApplyModel() { wcsTaskCode = wcsTask.S_WORKSHOP_NO };
                var end = XMWcsHelper.GetPositionApply(apply);
                if (!string.IsNullOrEmpty(end.body.pointCode))
                {
                    result.resultCode = 0;
                    result.msg = "目标库位已申请";
                    result.orderData = end.body.pointCode;
                    return result;
                }
                else
                {
                    result.resultCode = 1;
                    result.msg = "目标库位已申请";
                    result.orderData = "";
                    return result;
                }
                msg = "[xiaoMiRequestApi]状态汇报失败";
                Console.WriteLine(msg);
            }
            return result;
            return orderId;
        }
        ///// <summary>
        ///// 调用小米状态回报接口
        ///// </summary>
        ///// <param name="id"></param>
        ///// <returns></returns>
        //public static int xiaoMiRequestApi(orderStatusReportParme model)
        //{
        //    var msg = "";
        //    var orderId = 0;
        //    var request = JsonConvert.SerializeObject(model);
        //    var response = apiHelper.Post(baseUrl + "api/om/order/", request);
        //    msg = $"[xiaoMiRequestApi] request={request} response={response}";
        //    Console.WriteLine(msg);
        //    if (response != ""&& model.orderStatus == "6")
        //    {
        //        try
        //        {
        //            var dataResult = JsonConvert.DeserializeObject<gzResult<OrderInfoResult>>(response);
        //            if (dataResult.code == 0)
        //            {
        //                orderId = dataResult.data[0].in_order_id;
        //            }
        //        }
        //        catch (Exception ex)
        //        {
        //        }
        //    }
        //    else
        //    {
        //        msg = "[xiaoMiRequestApi]状态汇报失败";
        //        Console.WriteLine(msg);
        //    }
        //    return orderId;
        //}
    }