From c119ea611cc0e3704cc3be71b5009795323982be Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期五, 04 七月 2025 11:35:04 +0800
Subject: [PATCH] xiaomi

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs        |    4 +
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs             |    2 
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs |   71 +++++++++++++++++++++++++++++++++++
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs       |   29 ++++++++++++++
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs |    2 
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs      |    2 +
 6 files changed, 106 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs
index afe639f..3e04fa4 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/Program.cs
@@ -77,7 +77,7 @@
 
                 tasks.Add(GetTask(WCSCore.Dispatch));
                 //澶т欢鍛煎彨绌虹
-                tasks.Add(GetTask(WMSCore.bigMateriala2a));
+                //tasks.Add(GetTask(WMSCore.bigMateriala2a));
 
                 Task.WaitAll(tasks.ToArray());
             }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs
index dba6e77..e3eb499 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/core/WCSCore.cs
@@ -74,7 +74,9 @@
                     if (!TaskProcess.Intercept(task))
                     {
                         //浣跨敤鑷畾涔変换鍔℃帹閫�-                        TaskProcess.SendGZTask(task);
+                        //TaskProcess.SendGZTask(task);
+                        TaskProcess.SendXmTask(task);
+                        
                     }
 
                 });
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs
index ea15476..749123d 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/WCSTask.cs
@@ -53,6 +53,8 @@
 
         public string S_OP_NAME { get; set; }
         public string S_WORKSHOP_NO { get; set; }
+
+        //瀛樺皬绫充换鍔″彿
         public string S_WORKSHOP_NAME { get; set; }
         //public int N_START_LAYER { get; internal set; }
         //public int N_END_LAYER { get; internal set; }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
index d2a5cdf..286d391 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
@@ -27,6 +27,8 @@
 using Newtonsoft.Json.Linq;
 using S7.Net;
 using System.Threading.Tasks;
+using HH.WCS.XiaoMi.LISTA.dispatch;
+using static HH.WCS.XiaoMi.LISTA.dispatch.RcsHelper;
 
 namespace HH.WCS.XiaoMi.process
 {
@@ -368,7 +370,56 @@
             else { result = true; }
             return result;
         }
+        //灏忕背鎺ㄩ�浠诲姟
+        internal static bool SendXmTask(WCSTask mst)
+        {
+            var result = false;
+            var taskState = mst.N_B_STATE;
+            if (taskState == 0)
+            {
+                Console.WriteLine($"浠诲姟mst {JsonConvert.SerializeObject(mst)}");
+                LogHelper.Info($"浠诲姟mst {JsonConvert.SerializeObject(mst)}", "浠诲姟");
+                var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
+                var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
+                if (startLoc != null && endLoc != null)
+                {
+                    string src = $"\"src\":\"{startLoc.S_AGV_SITE}\",";
+                    string dst = $"\"dst\":\"{endLoc.S_AGV_SITE}\"";
+                    string carrier_type_id = $"\"carrier_type_id\":\"-99\"";
+                    string parmeS = "{";
+                    string parmeD = "}";
+                    string parme = parmeS + src + dst + carrier_type_id + parmeD;
+                    
+                    LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟");
+                    AntsTaskModel model = new AntsTaskModel();
+                    model.order_name = mst.S_CODE;
+                    model.priority = 1;
+                    model.dead_line = DateTime.Now.ToString();
+                    model.ts_name = mst.S_TYPE;
 
+                    var res = RcsHelper.CreateAntsOrder(model);
+                    if (res)
+                    {
+                        //鏇存柊浠诲姟鐘舵�
+                        mst.N_B_STATE = 1;
+                        //mst.S_EQ_TASK_CODE = res.ToString();
+                        WCSHelper.UpdateStatus(mst);
+                        WCSHelper.UpdateEQNo(mst);
+                        ////鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔$姸鎬�+                        //TaskHelper.UpdateStatus(mst, "宸叉帹閫�);
+                        ////鎺ㄩ�鎴愬姛锛屼慨鏀瑰浗鑷狪D
+                        //TaskHelper.UpdateGzId(mst, res);
+                        LogHelper.Info($"浠诲姟mst {mst.S_CODE}鎺ㄩ�鎴愬姛", "浠诲姟");
+                        result = true;
+                    }
+
+                }
+
+            }
+
+            else { result = true; }
+            return result;
+        }
 
         /// <summary>
         /// 鍒涘缓鎼繍浠诲姟
@@ -390,6 +441,24 @@
 
 
             var res = WCSHelper.CreateTask(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, trayCarryCount, startLayer, endLayer);
+            if (res)
+            {
+                result = true;
+                //浠诲姟鍒涘缓鎴愬姛锛岃捣鐐硅揣浣嶅嚭搴撻攣瀹氾紝缁堢偣璐т綅鍏ュ簱閿佸畾
+                LocationHelper.LockLoc(start, 2);
+                LocationHelper.LockLoc(end, 1);
+            }
+            return result;
+        }
+        //灏忕背澶т欢
+        public static bool CreateTransportDj(string start, string end, string taskType, string cntrs,string orderName, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1)
+        {
+            var result = false;
+            var trayCodes = cntrs;
+            var taskNo = DateTime.Now.Ticks.ToString();
+
+
+            var res = WCSHelper.CreateTaskDj(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, orderName,trayCarryCount, startLayer, endLayer);
             if (res)
             {
                 result = true;
@@ -957,7 +1026,7 @@
                 var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
                 //鍒涘缓浠诲姟
                 LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", model.ts_name);
-                var res = TaskProcess.CreateTransport(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, 1, 1);
+                var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1);
                 if (!res)
                 {
                     return new TaskResponse
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
index 866be10..fbf7996 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
@@ -685,7 +685,7 @@
             {
                 LogHelper.Info($"BindCntrItem=============");
                 db.BeginTran();
-                var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = itemName, F_QTY = num, S_ITEM_SPEC = issueMode };
+                var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName, S_BATCH_NO = BatchNo, F_QTY = num, S_ITEM_SPEC = issueMode };
                 db.Insertable<CntrItemDetail>(cir).ExecuteCommand();
                 db.Ado.CommitTran();
                 res = true;
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs
index 77d3e09..adccf23 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/WCSHelper.cs
@@ -105,7 +105,36 @@
                 N_SCHEDULE_TYPE = 1,
                 N_B_STATE = 0,
                 S_B_STATE = WCSTask.GetStateStr(0),
+                S_CNTR_CODE = cntrInfo
+                //N_START_LAYER = startLayer,
+                //N_END_LAYER = endLayer,
+                //N_CNTR_COUNT = cntrCount
+
+            };
+
+            return CreateTask(TN_Task);
+        }
+        //灏忕背澶т欢
+        internal static bool CreateTaskDj(string no, string from, string to, string taskType, int pri, string cntrInfo,string orderName, int cntrCount = 1, int startLayer = 1, int endLayer = 1)
+        {
+            var fromLoc = LocationHelper.GetLocation(from);
+            var endLoc = LocationHelper.GetLocation(to);
+            WCSTask TN_Task = new WCSTask()
+            {
+                S_CODE = GenerateTaskNo(),
+                S_START_AREA = fromLoc.S_AREA_CODE,
+                S_END_AREA = endLoc.S_AREA_CODE,
+                S_START_LOC = from,
+                S_END_LOC = to,
+                S_TYPE = taskType,
+                S_OP_CODE = no,
+                N_PRIORITY = pri,
+                N_SCHEDULE_TYPE = 1,
+                N_B_STATE = 0,
+                S_B_STATE = WCSTask.GetStateStr(0),
                 S_CNTR_CODE = cntrInfo,
+                //瀛樺皬绫充换鍔″彿
+                S_WORKSHOP_NO = orderName
                 //N_START_LAYER = startLayer,
                 //N_END_LAYER = endLayer,
                 //N_CNTR_COUNT = cntrCount

--
Gitblit v1.9.1