From 214000e2677e063284ba21e05af38718f60de9a2 Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期一, 07 七月 2025 14:00:48 +0800
Subject: [PATCH] 1

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs |  350 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 208 insertions(+), 142 deletions(-)

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 ee45e99..d4d5074 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,61 @@
             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 (mst.S_START_LOC != null && mst.S_END_LOC != null)
+                {
+                    string src = $"\"src\":\"{mst.S_START_LOC}\",";
+                    string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
+                    string carrier_type_id = $"\"carrier_type_id\":\"1\"";
+                    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;
+                    model.parameters = parme;
+                    //model.parameters = new AntsParasModel { 
+                    //    src = mst.S_START_LOC,
+                    //    dst = mst.S_END_LOC,
+                    //    carrier_type_id="-99"
+                    //};
+                    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 +446,25 @@
 
 
             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;
@@ -894,70 +969,71 @@
                 switch (model.ts_name)
                 {
                     case "p2p":
-                        startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameter.src).First();
+                        startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameters.src).First();
                         if (startLoc == null || startLoc.N_LOCK_STATE != 0 || startLoc.C_ENABLE != "Y")
                         {
-                            Message = $"{model.parameter.src}搴撲綅宸茶閿佸畾!";
+                            Message = $"{model.parameters.src}搴撲綅宸茶閿佸畾!";
                         }
-                        endLocStr = model.parameter.dst;
+                        endLocStr = model.parameters.dst;
                         
                         break;
                     case "p2a":
-                        startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameter.src).First();
+                        startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameters.src).First();
                         if (startLoc == null || startLoc.N_LOCK_STATE != 0 || startLoc.C_ENABLE != "Y")
                         {
-                            Message = $"{model.parameter.src}搴撲綅宸茶閿佸畾!";
+                            Message = $"{model.parameters.src}搴撲綅宸茶閿佸畾!";
                         }
-                        var endLoc = InWorkTransport(model.parameter.dst_area);
+                        var endLoc = InWorkTransport(model.parameters.dst_area);
                         if (endLoc==null)
                         {
                             //濡傛灉娌℃壘鍒板氨绛夌涓�潯
-                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameter.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
+                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameters.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
 
                         }
                         break;
                     case "a2p":
-                        startLoc = OutWorkTransport(model.parameter.src_area);
+                        startLoc = OutWorkTransport(model.parameters.src_area);
                         if (startLoc==null)
                         {
-                            Message = $"{model.parameter.dst}搴撳尯娌℃湁鍙嚭璐т綅!";
+                            Message = $"{model.parameters.dst}搴撳尯娌℃湁鍙嚭璐т綅!";
                         }
 
-                        endLocStr = model.parameter.dst;
+                        endLocStr = model.parameters.dst;
                         break;
                     case "a2a":
-                        startLoc = OutWorkTransport(model.parameter.src_area);
+                        startLoc = OutWorkTransport(model.parameters.src_area);
                         if (startLoc == null)
                         {
-                            Message = $"{model.parameter.src}搴撳尯娌℃湁鍙嚭璐т綅!";
+                            Message = $"{model.parameters.src}搴撳尯娌℃湁鍙嚭璐т綅!";
                         }
-                        var endLoc1 = InWorkTransport(model.parameter.dst_area);
+                        var endLoc1 = InWorkTransport(model.parameters.dst_area);
                         if (endLoc1 == null)
                         {
                             //濡傛灉娌℃壘鍒板氨绛夌涓�潯
-                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameter.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
+                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameters.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
 
                         }
                         break;
                     case "p2u":
-                        startLoc = OutWorkTransport(model.parameter.src);
+                        startLoc = OutWorkTransport(model.parameters.src);
                         if (startLoc == null)
                         {
-                            Message = $"{model.parameter.src}搴撳尯娌℃湁鍙嚭璐т綅!";
+                            Message = $"{model.parameters.src}搴撳尯娌℃湁鍙嚭璐т綅!";
                         }
                         endLocStr = "";
                         break;
                 }
 
+                LogHelper.Info($"bigMaterial  鎺ユ敹鍙傛暟{JsonConvert.SerializeObject(model) }");
                 //鍒涘缓鎵樼洏璐т綅缁戝畾鍏崇郴
                 string trayCode = ContainerHelper.GenerateCntrNo();
                 //缁戝畾璧风偣璐т綅(浜х嚎)鍜岀墿鏂�-                ContainerHelper.BindLocCntrs(startLoc.S_CODE, trayCode, model.parameter.sku, "");
+                ContainerHelper.BindLocCntrsXm(startLoc.S_CODE, trayCode, model.parameters.sku, "", model.parameters.BatchNo, model.parameters.issueMode, model.parameters.num);
 
                 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
@@ -1000,136 +1076,126 @@
 
         }
 
-        //鑷姩 鎷嗗垎
-        public static TaskResponse autoSmallMaterial(smallMaterial model) {
-            var db = new SqlHelper<Location>().GetInstance();
+        
+        //public static TaskResponse smallMaterial(smallMaterial model) {
+        //    var db = new SqlHelper<Location>().GetInstance();
 
-            string Message = null;
+        //    string Message = null;
 
-            //鎷嗗垎鎴愪袱鏉′换鍔★紝涓�潯鏄枡鏋跺埌鎸囧畾鐨勭紦瀛樺尯锛屼簩鏄枡鏋朵笂鐨勬墭鐩樺埌鎸囧畾鐨勫伐浣嶏紙灏忕背wcs浼狅級涓�澶�-            var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.parameters[0].src).First();
+        //    //鎷嗗垎鎴愪袱鏉′换鍔★紝涓�潯鏄枡鏋跺埌鎸囧畾鐨勭紦瀛樺尯锛屼簩鏄枡鏋朵笂鐨勬墭鐩樺埌鎸囧畾鐨勫伐浣嶏紙灏忕背wcs浼狅級涓�澶�+        //    var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.taskList[0].parameters[0].src).First();
 
-            var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == startFrame.S_FRAME_CODE).First();
-            if (startLoc == null || startLoc.N_LOCK_STATE != 0)
-            {
-                return new TaskResponse
-                {
-                    header = new ResponseHead { code = 0, desc = $"{model.parameters[0].src}搴撲綅宸茶閿佸畾!" }
-                };
-            }
-            var endReservoirs = Settings.ReservoirAreas.Where(s => s.areaName == model.routeType).FirstOrDefault();
-            var endLoc = TaskProcess.InWorkTransport(endReservoirs.areaCode);
-            if (endLoc != null)
-            {
-                //鍒涘缓鍒扮紦瀛樺尯浠诲姟
-                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
-                //鍒涘缓浠诲姟
-                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", model.ts_name);
-                var res = TaskProcess.CreateTransportHj(startLoc.S_CODE, endLoc.S_CODE, model.ts_name, locCntrRel.S_FRAME_CODE, 1, 1);
-                if (!res)
-                {
-                    return new TaskResponse
-                    {
-                        header = new ResponseHead { code = 0, desc = "鑷姩涓婄嚎浠诲姟鍒涘缓澶辫触" }
-                    }; 
-                }
-            }
-            //鏂欐灦涓婄殑鎵樼洏鍒版寚瀹氱殑宸ヤ綅
-            foreach (var parameter in model.parameters)
-            {
-                var startLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.src).First();
-                if (startLocHj == null || startLocHj.N_LOCK_STATE != 0)
-                {
-                     Message = Message==null? $"{model.parameters[0].src}搴撲綅宸茶閿佸畾!": Message+ $"{model.parameters[0].src}搴撲綅宸茶閿佸畾!";
-                }
-                else
-                {
-                    //璐ф灦涓婄殑璐у垽鏂竴涓嬭揣鏋舵湁娌℃湁閿�-                    var startFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.src).First();
-                    if (startFrameParent != null)
-                    {
-                        var startLocParent = db.Queryable<Location>().Where(a => a.S_CODE == startFrameParent.S_FRAME_CODE).First();
-                        if (startLocParent == null || startLocParent.N_LOCK_STATE != 0)
-                        {
-                            return new TaskResponse
-                            {
-                                header = new ResponseHead { code = 0, desc = $"{startFrameParent.S_FRAME_CODE}璐ф灦宸茶閿佸畾!" }
-                            };
-                        }
-                    }
-                    var endLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.dst).First();
-                    if (endLocHj == null || endLocHj.N_LOCK_STATE != 0 || endLocHj.C_ENABLE != "Y")
-                    {
-                        //搴旇缁曡矾
+        //    var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == startFrame.S_FRAME_CODE).First();
+        //    if (startLoc == null || startLoc.N_LOCK_STATE != 0)
+        //    {
+        //        return new TaskResponse
+        //        {
+        //            header = new ResponseHead { code = 0, desc = $"{model.taskList[0].parameters[0].src}搴撲綅宸茶閿佸畾!" }
+        //        };
+        //    }
+        //    var endLoc = TaskProcess.InWorkTransport(model.shippingRoute);
+        //    if (endLoc != null)
+        //    {
+        //        //鍒涘缓鍒扮紦瀛樺尯浠诲姟
+        //        var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
+        //        //鍒涘缓浠诲姟
+        //        LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", model.ts_name);
+        //        var res = TaskProcess.CreateTransportHj(startLoc.S_CODE, endLoc.S_CODE, model.ts_name, locCntrRel.S_FRAME_CODE, 1, 1);
+        //        if (!res)
+        //        {
+        //            return new TaskResponse
+        //            {
+        //                header = new ResponseHead { code = 0, desc = "鑷姩涓婄嚎浠诲姟鍒涘缓澶辫触" }
+        //            }; 
+        //        }
+        //    }
+        //    //鏂欐灦涓婄殑鎵樼洏鍒版寚瀹氱殑宸ヤ綅
+        //    foreach (var parameter in model.parameters)
+        //    {
+        //        var startLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.src).First();
+        //        if (startLocHj == null || startLocHj.N_LOCK_STATE != 0)
+        //        {
+        //             Message = Message==null? $"{model.parameters[0].src}搴撲綅宸茶閿佸畾!": Message+ $"{model.parameters[0].src}搴撲綅宸茶閿佸畾!";
+        //        }
+        //        else
+        //        {
+        //            //璐ф灦涓婄殑璐у垽鏂竴涓嬭揣鏋舵湁娌℃湁閿�+        //            var startFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.src).First();
+        //            if (startFrameParent != null)
+        //            {
+        //                var startLocParent = db.Queryable<Location>().Where(a => a.S_CODE == startFrameParent.S_FRAME_CODE).First();
+        //                if (startLocParent == null || startLocParent.N_LOCK_STATE != 0)
+        //                {
+        //                    return new TaskResponse
+        //                    {
+        //                        header = new ResponseHead { code = 0, desc = $"{startFrameParent.S_FRAME_CODE}璐ф灦宸茶閿佸畾!" }
+        //                    };
+        //                }
+        //            }
+        //            var endLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.dst).First();
+        //            if (endLocHj == null || endLocHj.N_LOCK_STATE != 0 || endLocHj.C_ENABLE != "Y")
+        //            {
+        //                //搴旇缁曡矾
 
-                        Message = Message == null ? $"{parameter.dst}搴撲綅宸茶閿佸畾!" : Message + $"{parameter.dst}搴撲綅宸茶閿佸畾!";
-                    }
-                    else
-                    {
-                        //璐ф灦涓婄殑璐у垽鏂竴涓嬭揣鏋舵湁娌℃湁閿�-                        var endFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.dst).First();
-                        if (endFrameParent != null)
-                        {
-                            var endLocParent = db.Queryable<Location>().Where(a => a.S_CODE == endFrameParent.S_FRAME_CODE).First();
-                            if (endLocParent == null || endLocParent.N_LOCK_STATE != 0)
-                            {
-                                return new TaskResponse
-                                {
-                                    header = new ResponseHead { code = 0, desc = $"{endFrameParent.S_FRAME_CODE}璐ф灦宸茶閿佸畾!" }
-                                };
-                            }
-                        }
-                        //鍒涘缓鍒扮紦瀛樺尯浠诲姟
-                        var locCntrRel1 = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLocHj.S_CODE).First();
-                        //鍒涘缓浠诲姟
-                        LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLocHj.S_CODE}缁堢偣:{endLocHj.S_CODE}", model.ts_name);
-                        var res = TaskProcess.CreateTransport(startLocHj.S_CODE, endLocHj.S_CODE, model.ts_name, locCntrRel1.S_CNTR_CODE, 1, 1);
-                        if (!res)
-                        {
-                            return new TaskResponse
-                            {
-                                header = new ResponseHead { code = 0, desc = "鑷姩涓婄嚎浠诲姟2鍒涘缓澶辫触" }
-                            };
-                        }
+        //                Message = Message == null ? $"{parameter.dst}搴撲綅宸茶閿佸畾!" : Message + $"{parameter.dst}搴撲綅宸茶閿佸畾!";
+        //            }
+        //            else
+        //            {
+        //                //璐ф灦涓婄殑璐у垽鏂竴涓嬭揣鏋舵湁娌℃湁閿�+        //                var endFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.dst).First();
+        //                if (endFrameParent != null)
+        //                {
+        //                    var endLocParent = db.Queryable<Location>().Where(a => a.S_CODE == endFrameParent.S_FRAME_CODE).First();
+        //                    if (endLocParent == null || endLocParent.N_LOCK_STATE != 0)
+        //                    {
+        //                        return new TaskResponse
+        //                        {
+        //                            header = new ResponseHead { code = 0, desc = $"{endFrameParent.S_FRAME_CODE}璐ф灦宸茶閿佸畾!" }
+        //                        };
+        //                    }
+        //                }
+        //                //鍒涘缓鍒扮紦瀛樺尯浠诲姟
+        //                var locCntrRel1 = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLocHj.S_CODE).First();
+        //                //鍒涘缓浠诲姟
+        //                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLocHj.S_CODE}缁堢偣:{endLocHj.S_CODE}", model.ts_name);
+        //                var res = TaskProcess.CreateTransport(startLocHj.S_CODE, endLocHj.S_CODE, model.ts_name, locCntrRel1.S_CNTR_CODE, 1, 1);
+        //                if (!res)
+        //                {
+        //                    return new TaskResponse
+        //                    {
+        //                        header = new ResponseHead { code = 0, desc = "鑷姩涓婄嚎浠诲姟2鍒涘缓澶辫触" }
+        //                    };
+        //                }
 
-                    }
+        //            }
                     
-                }
-            }
-            var result = new TaskResponse();
-            if (Message != null)
-            {
-                result = new TaskResponse
-                {
-                    header = new ResponseHead { code = 0, desc = Message }
-                };
-            }
-            else
-            {
-                result = new TaskResponse
-                {
-                    header = new ResponseHead { code = 200, desc = "SUCCESS" },
-                    body = new ResponseBody
-                    {
-                        msg = "success",
-                        app_name = "Guozi client",
-                        data = new List<ResponseData> { new ResponseData { in_order_id = model.taskID } },
-                        version = ""
-                    }
-                };
-            }
-            return result;
-        }
-        //浜哄伐 涓嶆媶鍒�-        public static void artificialSmallMaterial(smallMaterial model)
-        {
-            var db = new SqlHelper<Location>().GetInstance();
-
-
-
-
-
-        }
+        //        }
+        //    }
+        //    var result = new TaskResponse();
+        //    if (Message != null)
+        //    {
+        //        result = new TaskResponse
+        //        {
+        //            header = new ResponseHead { code = 0, desc = Message }
+        //        };
+        //    }
+        //    else
+        //    {
+        //        result = new TaskResponse
+        //        {
+        //            header = new ResponseHead { code = 200, desc = "SUCCESS" },
+        //            body = new ResponseBody
+        //            {
+        //                msg = "success",
+        //                app_name = "Guozi client",
+        //                data = new List<ResponseData> { new ResponseData { in_order_id = model.taskID } },
+        //                version = ""
+        //            }
+        //        };
+        //    }
+        //    return result;
+        //}
+        
 
 
     }

--
Gitblit v1.9.1