From b1161509ecc6f599b1c06c7f54ff3b27f0618178 Mon Sep 17 00:00:00 2001
From: pengmn <pmn@HanInfo>
Date: 星期二, 01 七月 2025 17:33:04 +0800
Subject: [PATCH] 1

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs |  166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 163 insertions(+), 3 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 e47f1b8..3aa07fd 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
@@ -46,13 +46,32 @@
             {
                 Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}");
                 LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}");
-                LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
+                if (mst.S_FRAME_CODE != null)
+                {
+                    LocationHelper.UnBindingLocHj(mst.S_START_LOC, mst.S_FRAME_CODE);
+
+                }
+                else
+                {
+                    LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
+
+                }
             }
             else
             {
                 Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}");
                 LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}");
-                LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
+                //濡傛灉璐ф灦鏈夊�鍒欑粦璐ф灦
+                if (mst.S_FRAME_CODE!=null)
+                {
+                    LocationHelper.BindingLocHj(mst.S_END_LOC, mst.S_FRAME_CODE);
+
+                }
+                else
+                {
+                    LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
+
+                }
             }
 
         }
@@ -380,7 +399,24 @@
             }
             return result;
         }
+        //灏忕背璐ф灦浠诲姟
+        public static bool CreateTransportHj(string start, string end, string taskType, string frame, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1)
+        {
+            var result = false;
+            var trayCodes = frame;
+            var taskNo = DateTime.Now.Ticks.ToString();
 
+
+            var res = WCSHelper.CreateTaskHj(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;
+        }
         /// <summary>
         /// 鍒涘缓鎼繍浠诲姟
         /// </summary>
@@ -1834,9 +1870,133 @@
 
         }
 
-        
+        //鑷姩 鎷嗗垎
+        public static TaskResponse autoSmallMaterial(smallMaterial model) {
+            var db = new SqlHelper<Location>().GetInstance();
+
+            string Message = null;
+
+            //鎷嗗垎鎴愪袱鏉′换鍔★紝涓�潯鏄枡鏋跺埌鎸囧畾鐨勭紦瀛樺尯锛屼簩鏄枡鏋朵笂鐨勬墭鐩樺埌鎸囧畾鐨勫伐浣嶏紙灏忕背wcs浼狅級涓�澶�+            var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.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")
+                    {
+                        //搴旇缁曡矾
+
+                        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();
 
 
+        }
 
 
     }

--
Gitblit v1.9.1