From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期二, 15 七月 2025 17:30:13 +0800
Subject: [PATCH] 1111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs |  168 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 121 insertions(+), 47 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs
index cc3be88..bcc1c77 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs
@@ -2,16 +2,19 @@
 using HH.WCS.DaYang.dispatch;
 using HH.WCS.DaYang.util;
 using HH.WCS.DaYang.wms;
+using HH.WCS.JunzhouNongfu.device;
 using Newtonsoft.Json;
 using NLog.Fluent;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection.Emit;
 using System.Security.Cryptography;
 using System.Text;
 using static HH.WCS.DaYang.api.ApiModel;
 using static HH.WCS.DaYang.util.Settings;
+using static System.Net.WebRequestMethods;
 
 namespace HH.WCS.DaYang.process
 {
@@ -109,33 +112,88 @@
         internal static bool Intercept(WCSTask mst)
         {
             var result = false;
-            #region 绌烘墭鍥炲簱浠诲姟闇�鍒ゆ柇鏈夋病鏈夋墽琛屼腑鐨勫嚭搴撲换鍔★紝鎺ラ┏浣嶆湁鏃犳墭鐩橈紝濡傛灉鏈夊厛涓嶆帹閫佷换鍔�-            if (mst.S_TYPE == "绌烘墭鍥炲簱" && mst.N_SCHEDULE_TYPE == 1)
+            #region 绌烘墭鍥炲簱浠诲姟闇�鍒ゆ柇鏈夋病鏈夋墽琛屼腑鐨勫嚭搴撲换鍔★紝鎺ラ┏浣嶆湁鏃犳墭鐩橈紝濡傛灉鏈夊厛涓嶆帹閫佷换鍔�浠诲姟浠诲姟闇�agv浠诲姟瀹屾垚鍐嶆帹
+            if (mst.S_TYPE == "绌烘墭鍥炲簱")
             {
-                //鍒ゆ柇鏈夋棤鍑哄簱涓殑浠诲姟
-                var task = WCSHelper.GetTaskbyType("鍑哄簱");
-                if (task.Count == 0)
-                {   //鑾峰彇鎺ラ┏浣嶈澶囩姸鎬�-                    HttpHelper httpHelper = new HttpHelper();
-                    TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
-                    if (tableUrl != null)
-                    {
-                        Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url);
-                        //璁惧鐘舵�绌哄垯鍏佽鎺ㄩ�
-                        if (DeviceStatu != null && DeviceStatu.Data[0].PhotoStatus == 0)
+                if (mst.N_SCHEDULE_TYPE == 1)
+                {
+                    //鍒ゆ柇鏈夋棤鍑哄簱涓殑浠诲姟
+                    var task = WCSHelper.GetTaskbyType("鍑哄簱");
+                    if (task.Count == 0)
+                    {   //鑾峰彇鎺ラ┏浣嶈澶囩姸鎬�+                        HttpHelper httpHelper = new HttpHelper();
+                        TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
+                        if (tableUrl != null)
                         {
-                            result = true;
+                            Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url);
+                            //璁惧鐘舵�绌哄垯鍏佽鎺ㄩ�
+                            if (DeviceStatu != null && DeviceStatu.Data.PhotoStatus == 0)
+                            {
 
+
+                            }
+                            else
+                            {
+                                LogHelper.Info($"Intercept:璁惧鐘舵�涓嶅厑璁告帹閫�);
+                                result = true;
+                            }
                         }
                         else
                         {
-                            LogHelper.Info($"Intercept:璁惧鐘舵�涓嶅厑璁告帹閫�);
+                            LogHelper.Info($"Intercept:鑾峰彇鎺ュ彛url澶辫触");
+                            result = true;
+                        }
+                    }
+                }
+                if (mst.N_SCHEDULE_TYPE == 2)
+                {
+                    var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3);
+                    if (task == null)
+                    {
+                        result = true;
+                    }
+                }
+            }
+            if (mst.S_TYPE.Contains("鍑哄簱"))
+            {
+
+                //鎺ㄩ�agv浠诲姟锛屽垽鏂澶囦换鍔℃槸鍚﹀畬鎴�+                if (mst.N_SCHEDULE_TYPE == 1)
+                {
+                    var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3);
+                    if (task == null)
+                    {
+                        result = true;
+                    }
+                }
+                else
+                {
+                    //濡傛灉褰撳墠浠诲姟涓嶆槸绉诲簱浠诲姟锛岄渶瑕佸垽鏂Щ搴撲换鍔℃槸鍚﹀畬鎴�+                    if (!mst.S_TYPE.Contains("绉诲簱"))
+                    {
+                        var db = new SqlHelper<object>().GetInstance();
+                        var ykmst = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == mst.S_OP_NAME && a.N_B_STATE == 3 && a.S_TYPE == "绉诲簱").First();
+                        if (ykmst != null)
+                        {
+                            result = true;
                         }
                     }
                     else
                     {
-                        LogHelper.Info($"Intercept:鑾峰彇鎺ュ彛url澶辫触");
+                        //鍑哄簱浠诲姟鍒ゆ柇澶栦晶鏈夋病鏈夐攣
+                        var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
+                        if (startLoc != null && startLoc.N_POS == 1)
+                        {
+                            var db = new SqlHelper<WCSTask>().GetInstance();
+                            var OutLoc = db.Queryable<Location>().Where(b => b.S_AREA_CODE == startLoc.S_AREA_CODE && b.N_LAYER == startLoc.N_LAYER && b.N_POS == 2).First();
+                            if (OutLoc != null && OutLoc.N_LOCK_STATE != 0)
+                            {
+                                result = true;
+                            }
+                        }
+
                     }
+
                 }
             }
             #endregion
@@ -318,58 +376,74 @@
             var start = "0"; var end = "0";
             var taskType = mst.S_TYPE.Trim();
 
-            if (mst.N_SCHEDULE_TYPE == 1)//agv浠诲姟
+            if (mst.N_SCHEDULE_TYPE == 1)
             {
+                LogHelper.Info($"浠诲姟鎺ㄩ�鏁版嵁锛歿JsonConvert.SerializeObject(mst)}");
+                if (string.IsNullOrEmpty(mst.S_START_LOC) || string.IsNullOrEmpty(mst.S_END_LOC))
+                {
+                    LogHelper.Info($"浠诲姟{mst.S_CODE},璧风偣缁堢偣鏈夌┖鍙傛暟锛屼笉鎺ㄩ�浠诲姟");
+                }
+
+
                 start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                 end = LocationHelper.GetAgvSite(mst.S_END_LOC);
+                //if (mst.N_START_LAYER > 1)
+                //{
+                //    start = LocationHelper.GetAgvSite(mst.S_START_LOC, mst.N_START_LAYER.ToString()).ToString();
+                //}
+                if (mst.N_END_LAYER > 1)
+                {
+                    end = LocationHelper.GetAgvSite(mst.S_END_LOC, mst.N_END_LAYER.ToString()).ToString();
+                    LogHelper.Info($"浠诲姟鎺ㄩ�锛氱粓鐐瑰眰鏁颁负{mst.N_END_LAYER}锛屾帹閫佺珯鐐逛负:{end}");
+                }
+                Console.WriteLine($"SendTask {mst.S_CODE}");
+                Console.WriteLine("start=" + start);
+                Console.WriteLine("end= " + end);
+                List<param> dic = new List<param>();
+                dic.Add(new param() { name = "From", value = start.ToString() });
+                dic.Add(new param() { name = "To", value = end.ToString() });
+                dic.Add(new param() { name = "FUNC", value = "0" });
+                dic.Add(new param() { name = "DATA", value = "0" });
+                dic.Add(new param() { name = "Ctype", value = "0" });
 
 
-                //Console.WriteLine($"SendTask {mst.S_CODE}");
-                //Console.WriteLine("start=" + start);
-                //Console.WriteLine("end= " + end);
-                var dic = new Dictionary<string, string>();
-                var sb1 = new StringBuilder();
+                var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�+                                                                    //dic.Add("Pri", mst.N_PRIORITY.ToString());
+                                                                    //dic.Add("From", start.ToString());
+                                                                    //dic.Add("To", end.ToString());
+                                                                    //dic.Add("task_no", mst.S_CODE.Trim());// dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
+                                                                    //var res = NDC.AddNewOrder(1, dic);
 
-                //dic.Add("No", mst.S_CODE.Trim());
-                //dic.Add("Pri", mst.N_PRIORITY.ToString());
-                dic.Add("From", start.ToString());
-                dic.Add("To", end.ToString());
-                dic.Add("Func", "0");
-                dic.Add("DATA", "0");
-                dic.Add("ItemHeight", "0");
-                dic.Add("CntrType", "1");
-                dic.Add("FromCol", "0");
-                dic.Add("ToCol", "0");
-                dic.Add("Ctype", "0");
 
-                // dic.Add("Ext1", "1"); dic.Add("Ext2", "CALLADDAGV"); dic.Add("N_CNTR_COUNT", "");
-                var res = NDC.AddNewOrderNew(5, mst.N_PRIORITY, mst.S_CODE.Trim(), dic);
-                if (res != null && (res.Res.ErrCode == 0 || res.Res.ErrCode == 50009))
+
+                if (res != null && (res.err_code == 0 || res.err_code == 50009))
                 {
                     //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇
                     mst.N_B_STATE = 1;
-                    WCSHelper.UpdateStatus(mst);
+                    mst.S_B_STATE = WCSTask.GetStateStr(1);
+                    WCSHelper.UpdateStatus(mst);//鏇存柊浠诲姟鐘舵�
                     result = true;
+                    LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
+                  
+                }
+                else
+                {
+                    LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                 }
             }
             else if (mst.N_SCHEDULE_TYPE == 2)//杈撻�绾夸换鍔�             {
                 HttpHelper http = new HttpHelper();
-                var url = Settings.tableUrls.Find(a => a.id == 1);
-                if (url != null)
+                TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
+                if (tableUrl != null)
                 {
-                    //鎺ㄩ�杈撻�绾夸换鍔�-                    var SendResult = http.TaskAssignment(mst, url.url);
-                    if (SendResult != null && SendResult.Code == 0)
+                    var Wcsrsult = http.TaskAssignment(mst, tableUrl.url);
+                    if (Wcsrsult.Code == 200)
                     {
                         mst.N_B_STATE = 1;
                         WCSHelper.UpdateStatus(mst);
                         result = true;
                     }
-                }
-                else
-                {
-                    LogHelper.Info($"鏈壘鍒颁换鍔′笅鍙戞帴鍙e湴鍧�紝璇锋鏌ラ厤缃枃浠�);
                 }
             }
             return result;
@@ -427,7 +501,7 @@
         }
         #endregion
 
-
+     
 
     }
 }

--
Gitblit v1.9.1