From 968d603a08117e7e6707ffe07c6da9c325e36c08 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期一, 12 五月 2025 17:04:17 +0800
Subject: [PATCH] 完成并测试抽检出库的逻辑,修复相关问题

---
 ServiceCore/TaskCore.cs |   94 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 1 deletions(-)

diff --git a/ServiceCore/TaskCore.cs b/ServiceCore/TaskCore.cs
index dbff385..ecfd717 100644
--- a/ServiceCore/TaskCore.cs
+++ b/ServiceCore/TaskCore.cs
@@ -7,6 +7,9 @@
 
 using static HH.WCS.Mobox3.DSZSH.Dtos.Request.AgvRequest;
 using static HH.WCS.Mobox3.DSZSH.Dtos.Response.AgvResponse;
+using HH.WCS.Mobox3.DSZSH.Dispatch;
+using HH.WCS.Mobox3.DSZSH.Models;
+using System.Collections.Generic;
 
 namespace HH.WCS.Mobox3.DSZSH.ServiceCore {
     internal class TaskCore {
@@ -21,7 +24,7 @@
             if (list.Count > 0) {
                 list.ForEach(task => {
                     // 浣跨敤鑷畾涔変换鍔℃帹閫�-                    TaskHelper.SendTask(task); // 璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
+                    SendTask(task); // 璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
                     //TaskProcess.SendGZTask(task); // 璋冨害鍥借嚜璁惧
                 });
             }
@@ -29,5 +32,94 @@
                 LogHelper.Info("鏆傛棤浠诲姟");
             }
         }
+
+        /// <summary>
+        /// 鎺ㄩ�浠诲姟
+        /// </summary>
+        /// <param name="mst"></param>
+        internal static bool SendTask(TN_Task mst) {
+            var result = false;
+            var start = "0"; var end = "0";
+            var taskType = mst.S_TYPE.Trim();
+            if (mst.N_B_STATE == 0) {
+                if (mst.N_SCHEDULE_TYPE == 1)//閫氳繃NDC锛宧osttoagv璋冨害璁惧
+                {
+                    start = LocationHelper.GetAgvSite(mst.S_START_LOC);
+                    end = LocationHelper.GetAgvSite(mst.S_END_LOC);
+
+                    if (mst.S_TYPE == "绌烘墭涓嬬嚎鍫嗗彔") {
+                        end = LocationHelper.GetAgvSite(mst.S_END_LOC, true);
+                    }
+
+                    LogHelper.Info($"NDC鎺ㄩ�浠诲姟 {mst.S_CODE};" + "start=" + start + "end= " + end);
+                    var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
+                    var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
+                    var dic = new List<param>();
+                    dic.Add(new param() { name = "IKey", value = "IKey" });
+                    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 = startLoc.N_LAYER.ToString() });
+
+                    dic.Add(new param() { name = "Ctype", value = "0" });
+
+
+                    if (mst.S_TYPE == "浣欐枡涓嬬嚎鍏ュ簱" || mst.S_TYPE == "浜哄伐鎷嗙洏鍏ュ簱") {
+                        dic.Add(new param() { name = "DATA", value = "1024" });
+                    }
+                    else {
+                        dic.Add(new param() { name = "DATA", value = "0" });
+                    }
+
+                    var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠�+                    if (res != null && (res.err_code == 0 || res.err_code == 50009)) {
+                        //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇
+                        mst.N_B_STATE = 1;
+                        mst.S_B_STATE = TN_Task.GetStateStr(1);
+                        TaskHelper.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 == 5)//閫氳繃鏉ゥ璋冨害璁惧 
+                {
+                    //璋冪涓夋柟鎺ュ彛
+                    var model = new HanAo.TaskInfoModel {
+                        requestPk = mst.S_CODE,
+                        frmPos = mst.S_START_LOC,
+                        toPos = mst.S_END_LOC,
+                        trkType = mst.S_OP_NAME == "鍏ュ簱" ? "1" : "2",
+                        contNo = mst.S_CNTR_CODE
+                    };
+                    if (HanAo.CreateOrder(model)) {
+                        mst.N_B_STATE = 1;
+                        TaskHelper.UpdateStatus(mst);
+                        LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos);
+                    }
+                    else {
+                        LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(model));
+                    }
+                }
+                else if (mst.N_SCHEDULE_TYPE == 3) //閫氳繃鍥借嚜璋冨害璁惧
+                {
+                    var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p");
+                    if (code > 0) {
+                        //鏇存柊浠诲姟鐘舵�
+                        mst.N_B_STATE = 1;
+                        mst.S_EQ_TASK_CODE = code.ToString();
+                        TaskHelper.UpdateStatus(mst);
+                        TaskHelper.UpdateEqNo(mst);
+                        LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC);
+                    }
+                    else {
+                        LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst));
+                    }
+                }
+
+            }
+            return result;
+        }
     }
 }

--
Gitblit v1.9.1