From d66d362ee6d76f02331e56df1fdec1c2114c9f3e Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期三, 16 七月 2025 17:31:41 +0800
Subject: [PATCH] 1

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs |  221 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 180 insertions(+), 41 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs
index c00c28a..4fc5e9a 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/GZRobot.cs
@@ -1,10 +1,15 @@
 锘縰sing HH.WCS.XiaoMi.api;
 using HH.WCS.XiaoMi.core;
+using HH.WCS.XiaoMi.LISTA.dispatch;
+using HH.WCS.XiaoMi.process;
 using HH.WCS.XiaoMi.util;
+using HH.WCS.XiaoMi.wms;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using static HH.WCS.XiaoMi.api.ApiModel;
+using static HH.WCS.XiaoMi.LISTA.dispatch.XMWcsHelper;
 
 namespace HH.WCS.XiaoMi.dispatch
 {
@@ -192,7 +197,8 @@
                 agv.ForkliftNo = model.agvIDList;
                 WCSCore.OperateAgvTaskStatus(agv);
 
-                
+                ////灏忕背鐘舵�涓婃姤
+                //xiaoMiRequestApi(model);
 
             }
 
@@ -209,53 +215,186 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public static GzResult applyReroute(orderStatusReportParme model)
+        public static GzResult applyReroute(orderReroute model)
         {
             GzResult result = new GzResult();
+            try
+            {
+                var wcsTask = WCSHelper.GetTask(model.orderName);
+                if (wcsTask == null)
+                {
+                    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
+                {
+                    //2琛ㄧず鐢宠鐩爣搴撲綅
+                    var apply = new ApplyModel() { wcsTaskCode = wcsTask.S_WORKSHOP_NO };
+
+                    #region 鍐欐娴嬭瘯鐢�+                    if (!string.IsNullOrEmpty("HC43"))
+                    {
+                        result.resultCode = 0;
+                        result.msg = "鐩爣搴撲綅宸茬敵璇�;
+                        result.orderData = "HC43";
+                        //浠诲姟琛ㄨˉ涓�+                        var db = new SqlHelper<WCSTask>().GetInstance();
+                        var task = db.Queryable<WCSTask>().Where(a => a.S_CODE == model.orderName).First();
+                        LogHelper.Info($"task鍙傛暟======={JsonConvert.SerializeObject(task)}");
+                        var endLoc = LocationHelper.GetLocation("HC43");
+                        LogHelper.Info($"endLoc鍙傛暟======={JsonConvert.SerializeObject(endLoc)}");
+                        task.S_END_LOC = "HC43";
+                        task.S_END_AREA = endLoc.S_AREA_CODE;
+                        var res = db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand() > 0;
+                        //閿佷綇缁堢偣璐т綅
+                        LogHelper.Info($"task2鍙傛暟======={JsonConvert.SerializeObject(task)}");
+                        LocationHelper.LockLoc("HC43", 1);
+                        if (!res)
+                        {
+                            result.resultCode = 1;
+                            result.success = false;
+                            result.msg = $"缁堢偣搴撲綅{task.S_END_LOC}鏇存柊澶辫触";
+                        }
+                        LogHelper.Info($"result鍙傛暟======={JsonConvert.SerializeObject(result)}");
+                        return result;
+                    }
+                    #endregion
+
+                    //var db = new SqlHelper<Object>().GetInstance();
+                    //var end = XMWcsHelper.GetPositionApply(apply);
+                    //string endPointCode = null;
+                    //if (end.body.targetType.Equals("AREA")) {
+                    //    var endLoc1 =TaskProcess.InWorkTransport(end.body.pointCode);
+                    //    if (endLoc1!=null)
+                    //    {
+                    //        //濡傛灉娌℃壘鍒板氨绛夌涓�潯
+                    //        endPointCode = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == end.body.pointCode).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
+                    //    }
+                    //} else if (end.body.targetType.Equals("STATION")) {
+                    //    endPointCode= end.body.pointCode;
+                    //}
+
+                    //if (!string.IsNullOrEmpty(endPointCode))
+                    //{
+                    //    result.resultCode = 0;
+                    //    result.msg = "鐩爣搴撲綅宸茬敵璇�;
+                    //    result.orderData = endPointCode;
+                    //    //浠诲姟琛ㄨˉ涓�+                    //    var task = db.Queryable<WCSTask>().Where(a => a.S_CODE == model.orderName).First();
+                    //    var endLoc = LocationHelper.GetLocation(endPointCode);
+                    //    task.S_END_LOC = endPointCode;
+                    //    task.S_END_AREA = endLoc.S_AREA_CODE;
+                    //    var res = db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand() > 0;
+                    //    //閿佷綇缁堢偣璐т綅
+                    //    LocationHelper.LockLoc(endPointCode, 1);
+                    //    if (!res)
+                    //    {
+                    //        result.resultCode = 1;
+                    //        result.success = false;
+                    //        result.msg = $"缁堢偣搴撲綅{task.S_END_LOC}鏇存柊澶辫触";
+                    //    }
+                    //    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;
+            }
             
-            result.resultCode = 0;
-            result.msg = "杩斿洖璁㈠崟鐘舵�鎴愬姛";
-            result.orderID = model.orderID;
-            LogHelper.Info("orderStatusReport 杩斿洖" + JsonConvert.SerializeObject(result), "API");
-            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
-        //    {
-        //        msg = "[xiaoMiRequestApi]鐘舵�姹囨姤澶辫触";
-        //        Console.WriteLine(msg);
-        //    }
+        }
 
-        //    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;
+        }
 
     }
 

--
Gitblit v1.9.1