From a93b0e99036c24b9bd58c79bf5e7364b1ba28bae Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期二, 01 七月 2025 16:02:33 +0800
Subject: [PATCH] 福建佳通-流程优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs |  272 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 237 insertions(+), 35 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs
index d1bb19c..7d82fbf 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/dispatch/WCSDispatch.cs
@@ -4,7 +4,9 @@
 using System.Text;
 using System.Threading.Tasks;
 using HH.WCS.Mobox3.YNJT_PT.util;
+using HH.WCS.Mobox3.YNJT_PT.wms;
 using Newtonsoft.Json;
+using static HH.WCS.Mobox3.YNJT_PT.api.ApiModel;
 
 namespace HH.WCS.Mobox3.YNJT_PT.dispatch
 {
@@ -13,64 +15,264 @@
         private static readonly HttpHelper apiHelper = new HttpHelper();
         private static readonly string baseUrl = "http://192.168.1.99:2000/";
 
+
+        internal static string GenerateReqId()
+        {
+            var id = SYSHelper.GetSerialNumber("璇锋眰ID", "RE");
+            var date = DateTime.Now.ToString("yyMMdd");
+            return $"{date}{id.ToString().PadLeft(4, '0')}";
+        }
+
         /// <summary>
-        /// WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛�+        /// 浠诲姟涓嬪彂
         /// </summary>
-        /// <param name="roadway"></param>
+        /// <param name="model"></param>
         /// <returns></returns>
-        public static List<StackerState> getStackerState(int roadway)
+        public static bool sendTask(SendTaskModel model)
         {
-            var msg = "";
-            List<StackerState> stackerStates = new List<StackerState>();
-            var data = new StackerStateModel() { req_no = Guid.NewGuid().ToString("D"), roadway = roadway.ToString() };
-            var request = JsonConvert.SerializeObject(data);
-            var response = apiHelper.Post(baseUrl + "api/StackerState", request);
-            msg = $"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛塠StackerState] request={request} response={response}";
-            LogHelper.Info(msg, "WCS");
-            if (response != "")
+            var result = false;
+            model.reqId = GenerateReqId();
+            model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            var request = JsonConvert.SerializeObject(model);
+            try
             {
-                try
+                var response = apiHelper.Post(baseUrl + "/sendTask", request);
+                LogHelper.Info($"[WCS-sendTask] request={request} response={response}", "WMS");
+                if (response != null && response != "")
                 {
-                    var dataResult = JsonConvert.DeserializeObject<StackerStateResponseData>(response);
-                    if (dataResult.result_flag == 0)
+                    var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response);
+                    if (dataResult.code == 200)
                     {
-                        stackerStates = dataResult.data;
+                        result = true;
                     }
-                    else 
+                    else
                     {
-                        LogHelper.Info($"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夊け璐ワ紝WCS鍙嶉閿欒淇℃伅锛歿dataResult.err_msg}", "WCS");
+                        LogHelper.Info($"璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛鎴愬姛锛屼絾WCS鍙嶉涓嬪彂浠诲姟澶辫触锛屽け璐ュ師鍥狅細{dataResult.msg}", "WMS");
                     }
                 }
-                catch (Exception ex)
+                else
                 {
-                    LogHelper.Info($"WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夐敊璇紝閿欒鍘熷洜锛歿ex.Message}", "WCS");
+                    LogHelper.Info("璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛澶辫触", "WMS");
                 }
             }
-            else
+            catch (Exception ex)
             {
-                msg = "[StackerState]WMS鍚慦CS鑾峰彇璁惧鐘舵�锛堝爢鍨涙満锛夊け璐�;
-                LogHelper.Info(msg, "WCS");
+                LogHelper.Info($"璋冪敤WCS浠诲姟涓嬪彂鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS");
             }
-            return stackerStates;
+            return result;
         }
 
-        public class StackerStateResponseData 
+        /// <summary>
+        /// 浠诲姟鍙栨秷锛堜换鍔℃墽琛屼腑涓嶅厑璁稿彇娑堬級
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public static bool cancelTask(CancelTaskModel model)
         {
-            public int result_flag { get; set; }
-            public string err_msg { get; set; }
-            public List<StackerState> data { get; set; }
-        }
-        public class StackerState 
-        {
-            public string roadway { get; set; }
-            public string roadway_state { get; set; }  // 鍫嗗灈鏈虹姸鎬�1=绌洪棽锛�=鎵ц涓紝3=鎶ヨ锛�=涓嶅彲鐢�+            var result = false;
+            model.reqId = GenerateReqId();
+            model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            var request = JsonConvert.SerializeObject(model);
+            try
+            {
+                var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request);
+                LogHelper.Info($"[WCS-cancelTask] request={request} response={response}", "WMS");
+                if (response != null && response != "")
+                {
+
+                    var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response);
+                    if (dataResult.code == 200)
+                    {
+                        result = true;
+                    }
+
+                }
+                else
+                {
+                    LogHelper.Info("璋冪敤WCS浠诲姟鍙栨秷鎺ュ彛澶辫触", "WMS");
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"璋冪敤WCS浠诲姟鍙栨秷鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS");
+            }
+            return result;
         }
 
-        public class StackerStateModel
+        /// <summary>
+        /// 鑾峰彇璁惧鐘舵�
+        /// </summary>
+        /// <param name="deviceNoList"></param>
+        /// <returns></returns>
+        public static List<DeviceStatusData> getDeviceStatus(List<string> deviceNoList)
         {
-            public string req_no { get; set; }
-            public string roadway { get; set; }
+            List<DeviceStatusData> deviceStatusDatas = new List<DeviceStatusData>();
+
+            DeviceStatusModel model = new DeviceStatusModel()
+            {
+                reqId = GenerateReqId(),
+                reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                deviceNoList = deviceNoList
+            };
+
+            var request = JsonConvert.SerializeObject(model);
+            try
+            {
+                var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request);
+                LogHelper.Info($"[WCS-getDeviceStatus] request={request} response={response}", "WMS");
+                if (response != null && response != "")
+                {
+
+                    var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response);
+                    if (dataResult.code == 200)
+                    {
+                        deviceStatusDatas = JsonConvert.DeserializeObject<List<DeviceStatusData>>(response);
+                    }
+
+                }
+                else
+                {
+                    LogHelper.Info("璋冪敤WCS鑾峰彇璁惧鐘舵�鎺ュ彛澶辫触", "WMS");
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"璋冪敤WCS鑾峰彇璁惧鐘舵�鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "WMS");
+            }
+            return deviceStatusDatas;
         }
 
+        /// <summary>
+        /// 淇敼浠诲姟浼樺厛绾�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public static bool changePriority(ChangePriorityModel model)
+        {
+            var result = false;
+            model.reqId = GenerateReqId();
+            model.reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            var request = JsonConvert.SerializeObject(model);
+            try
+            {
+                var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request);
+                LogHelper.Info($"[WCS-changePriority] request={request} response={response}", "WMS");
+                if (response != null && response != "")
+                {
+
+                    var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response);
+                    if (dataResult.code == 200)
+                    {
+                        result = true;
+                    }
+
+                }
+                else
+                {
+                    LogHelper.Info("璋冪敤WCS淇敼浠诲姟浼樺厛绾ф帴鍙eけ璐�, "WMS");
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"璋冪敤WCS淇敼浠诲姟浼樺厛绾ф帴鍙i敊璇紝閿欒鍘熷洜锛歿ex.Message}", "WMS");
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// AGV瀹夊叏浜や簰
+        /// </summary>
+        /// <param name="req_no"></param>
+        /// <param name="locCode"></param>
+        /// <param name="type"></param>
+        /// <returns></returns>
+        public static bool safetyInteraction(string req_no, string locCode, string type)
+        {
+            var result = false;
+            LocStateModel model = new LocStateModel()
+            {
+                req_no = req_no,
+                loc_code = locCode,
+                type = type
+            };
+
+            var request = JsonConvert.SerializeObject(model);
+            try
+            {
+                var response = apiHelper.Post(baseUrl + "/api/hecWms/produceProcessTracing/trayMaterialUnBind", request);
+                LogHelper.Info($"[WCS-changePriority] request={request} response={response}", "WMS");
+                if (response != null && response != "")
+                {
+
+                    var dataResult = JsonConvert.DeserializeObject<ResponseResult>(response);
+                    if (dataResult.code == 200)
+                    {
+                        result = true;
+                    }
+                }
+                else
+                {
+                    LogHelper.Info("璋冪敤WCS瀹夊叏璇锋眰鎺ュ彛澶辫触", "AGV");
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"璋冪敤WCS瀹夊叏璇锋眰鎺ュ彛閿欒锛岄敊璇師鍥狅細{ex.Message}", "AGV");
+            }
+            return result;
+        }
+       
+
+        public class LocStateModel
+        {
+            public string req_no { get; set; } // 璇锋眰id
+            public string loc_code { get; set; } // 璐т綅
+            public string type { get; set; } // 璐т綅 1 璇锋眰鍙栬揣 2 璇锋眰鏀捐揣 3 鍙栬揣瀹屾垚绂诲紑淇″彿 4 鏀捐揣瀹屾垚绂诲紑淇″彿
+        }
+
+        public class ChangePriorityModel
+        {
+            public string reqId { get; set; } // 璇锋眰id
+            public string reqTime { get; set; } // 璇锋眰鏃堕棿
+            public string taskNo { get; set; } // 浠诲姟鍙�+            public int priority { get; set; } // 浼樺厛绾�+        }
+
+        public class DeviceStatusData
+        {
+            public string deviceNo { get; set; } // 璁惧鍙�+            public int workStatus { get; set; } // 宸ヤ綔鐘舵�  1姝e父 锛�绂佺敤 锛�鏁呴殰 
+            public int photoStatus { get; set; } // 鍏夌數鐘舵� 1鏄┖杞�,2鏄湁杞�+            public int manualStatus { get; set; } //鎵嬪姩鐘舵�  1鎵嬪姩锛�鑷姩
+        }
+
+        public class DeviceStatusModel
+        {
+            public string reqId { get; set; } // 璇锋眰id
+            public string reqTime { get; set; } // 璇锋眰鏃堕棿
+            public List<string> deviceNoList { get; set; } // 璁惧鍙�+        }
+
+        public class CancelTaskModel
+        {
+            public string reqId { get; set; } // 璇锋眰id
+            public string reqTime { get; set; } // 璇锋眰鏃堕棿
+            public string taskNo { get; set; } // 浠诲姟鍙�+        }
+
+        public class SendTaskModel
+        {
+            public string reqId { get; set; } // 璇锋眰id
+            public string reqTime { get; set; } // 璇锋眰鏃堕棿
+            public string taskNo { get; set; } // 浠诲姟鍙�+            public int groupNo { get; set; } // 浠诲姟缁�
+            public string taskType { get; set; } // 浠诲姟绫诲瀷  1.鐗╂枡鍏ュ簱 2.鐗╂枡鍑哄簱
+            public string from { get; set; } // 璧风偣
+            public string to { get; set; } // 缁堢偣
+            public string cntrNo { get; set; } // 瀹瑰櫒缂栫爜
+            public string cntrType { get; set; } // 瀹瑰櫒绫诲瀷
+            public List<object> extData { get; set; } // 
+
+        }
     }
 }

--
Gitblit v1.9.1