From 44007a5e9ef385346d7ae0e107b9f983109ee479 Mon Sep 17 00:00:00 2001
From: zxx <Zxx@HanInfo>
Date: 星期五, 11 七月 2025 11:33:37 +0800
Subject: [PATCH] 1

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs   |   16 ++--
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs |  146 ++++++++++++++++++++++++------------
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs |   29 ++++++
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs  |   37 ---------
 HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs  |    3 
 5 files changed, 133 insertions(+), 98 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs
index a13cca6..3dc0b70 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs
@@ -33,14 +33,14 @@
         }
 
 
-        //[HttpPost]
-        //public TaskResponse smallMaterial(smallMaterial model)
-        //{
-        //    LogHelper.Info("smallMaterial 鍙傛暟锛� + JsonConvert.SerializeObject(model), "WMSAPI");
-        //    var res = TaskProcess.smallMaterial(model);
-        //    LogHelper.Info("smallMaterial 杩斿洖锛� + JsonConvert.SerializeObject(res), "WMSAPI");
-        //    return res;
-        //}
+        [HttpPost]
+        public TaskResponse smallMaterial(smallMaterial model)
+        {
+            LogHelper.Info("smallMaterial 鍙傛暟锛� + JsonConvert.SerializeObject(model), "WMSAPI");
+            var res = TaskProcess.smallMaterial(model);
+            LogHelper.Info("smallMaterial 杩斿洖锛� + JsonConvert.SerializeObject(res), "WMSAPI");
+            return res;
+        }
 
     }
 }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs
index af3780d..6c0fb63 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs
@@ -205,7 +205,8 @@
             /// <summary>
             /// 璁㈠崟鍙傛暟
             /// </summary>
-            public PickingParasModel parameters { get; set; }
+            //public PickingParasModel parameters { get; set; }
+            public string parameters { get; set; }
 
             /// <summary>
             /// 璁㈠崟TS鍚嶅瓧
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 ca10fbc..9e8811a 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
@@ -48,32 +48,14 @@
             {
                 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}");
-                if (mst.S_FRAME_CODE != null)
-                {
-                    LocationHelper.UnBindingLocHj(mst.S_START_LOC, mst.S_FRAME_CODE);
+                LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
 
-                }
-                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}");
-                //濡傛灉璐ф灦鏈夊�鍒欑粦璐ф灦
-                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());
-
-                }
+                LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
             }
 
         }
@@ -389,26 +371,89 @@
                 //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;
+                    bool res = false;
+                    if (mst.S_TYPE == "澶т欢")
+                    {
+                        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);
+                        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"
+                        //};
+                        res = RcsHelper.CreateAntsOrder(model);
+                    }
+                    else if (mst.S_TYPE == "灏忎欢閫氱敤杞﹀瀷")
+                    {
+                        string src = $"\"src\":\"{mst.S_START_LOC}\",";
+                        string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
+                        string car_type = $"\"car_type\":\"1\",";
+                        string src_ort = $"\"src_ort\":\"-1\",";
+                        string dst_ort = $"\"dst_ort\":\"-1\"";
+                        string parmeS = "{";
+                        string parmeD = "}";
+                        string parme = parmeS + src + dst + car_type + src_ort + dst_ort + parmeD;
+
+                        LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟");
+
+                        PickingTaskModel model = new PickingTaskModel();
+                        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"
+                        //};
+                        res = RcsHelper.CreatePickingOrder(model);
+                    }
+                    else if (mst.S_TYPE == "inbound")
+                    {
+                        string tote_id = $"\"tote_id\":\"{mst.S_FRAME_CODE}\",";
+                        string task_type = $"\"task_type\":\"{mst.S_TYPE}\",";
+                        string src = $"\"src\":\"{mst.S_START_LOC}\",";
+                        string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
+
+                        string extra_info = $"\"extra_info\":";
+                        string layer = $"\"layer\":[1,2,3,4],";
+                        string put = $"\"put\":true";
+                        string parmeS = "{";
+                        string parmeD = "}";
+                        string parmezS = "[";
+                        string parmezD = "]";
+                        string parme = parmeS + src + dst + extra_info + parmeS + parmezS + layer + put + parmeD + parmezD + parmeD;
+
+                        LogHelper.Info($"鎺ㄩ�浠诲姟鍙傛暟{parme}", "浠诲姟");
+
+                        PickingTaskModel model = new PickingTaskModel();
+                        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"
+                        //};
+                        res = RcsHelper.CreatePickingOrder(model);
+                    }
+
+
                     if (res)
                     {
                         //鏇存柊浠诲姟鐘舵�
@@ -1038,8 +1083,8 @@
 
                 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.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1);
+                LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLocStr}", "澶т欢");
+                var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, "澶т欢", locCntrRel.S_CNTR_CODE, model.order_name, 1, 1);
                 if (!res)
                 {
                     return new TaskResponse
@@ -1091,9 +1136,7 @@
                 string Message = null;
 
                 //鎷嗗垎鎴愪袱鏉′换鍔★紝涓�潯鏄枡鏋跺埌鎸囧畾鐨勭紦瀛樺尯锛屼簩鏄枡鏋朵笂鐨勬墭鐩樺埌鎸囧畾鐨勫伐浣嶏紙灏忕背wcs浼狅級涓�澶�-                var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.taskList[0].parameters.src).First();
-
-                var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == startFrame.S_FRAME_CODE).First();
+                var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.taskList[0].parameters.src).First();
                 if (startLoc == null || startLoc.N_LOCK_STATE != 0)
                 {
                     return new TaskResponse
@@ -1104,11 +1147,11 @@
                 var endLoc = TaskProcess.InWorkTransport(model.shippingRoute);
                 if (endLoc != null)
                 {
-                    //鍒涘缓鍒扮紦瀛樺尯浠诲姟
-                    var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
+                    ////鍒涘缓鍒扮紦瀛樺尯浠诲姟
+                    //var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
                     //鍒涘缓浠诲姟
-                    LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", "鏂欐灦鍒扮紦瀛樺尯");
-                    var res = TaskProcess.CreateTransportHj(startLoc.S_CODE, endLoc.S_CODE, "鏂欐灦鍒扮紦瀛樺尯", locCntrRel.S_FRAME_CODE, 1, 1);
+                    LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startLoc.S_CODE}缁堢偣:{endLoc.S_CODE}", "灏忎欢閫氱敤杞﹀瀷");
+                    var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLoc.S_CODE, "灏忎欢閫氱敤杞﹀瀷", model.rackNumber, "", 1, 1);
                     if (!res)
                     {
                         return new TaskResponse
@@ -1122,6 +1165,9 @@
                 {
                     if (tasklist.ts_name == "p2p")
                     {
+                        //鍏堢粦瀹氭枡鏋跺拰鏂欑浣�+                        ContainerHelper.BindLocCntrsXmLj(tasklist.parameters.src, model.rackNumber);
+
                         var startloc = db.Queryable<Location>().Where(a => a.S_CODE == tasklist.rackPosition).First();
                         if (startloc == null || startloc.N_LOCK_STATE != 0)
                         {
@@ -1139,8 +1185,8 @@
 
                         var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startloc.S_CODE).First();
                         //鍒涘缓浠诲姟
-                        LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc.S_CODE}缁堢偣:{endlocstr}", tasklist.ts_name);
-                        var res = TaskProcess.CreateTransportDj(startloc.S_CODE, endlocstr, tasklist.ts_name, locCntrRel.S_CNTR_CODE, tasklist.order_name, 1, 1);
+                        LogHelper.Info($"鍒涘缓浠诲姟 璧风偣:{startloc.S_CODE}缁堢偣:{endlocstr}", "inbound");
+                        var res = TaskProcess.CreateTransportDj(startloc.S_CODE, endlocstr, "inbound", locCntrRel.S_CNTR_CODE, tasklist.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 fbf7996..d350e92 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
@@ -558,8 +558,8 @@
                     string cntrCode = list[i];
                     if (db.Queryable<LocCntrRel>().Count(a => a.S_CNTR_CODE.Trim() == cntrCode) == 0)
                     {
-                        var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode};
-                        var con = new Container { S_CODE = cntrCode,N_DETAIL_COUNT = 1,C_FULL="2" };//榛樿婊�涓诲姩缁戝畾鏈嶅姟鐢�+                        var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode };
+                        var con = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1, C_FULL = "2" };//榛樿婊�涓诲姩缁戝畾鏈嶅姟鐢�                         db.Insertable<LocCntrRel>(cir).ExecuteCommand();
                         db.Insertable<Container>(con).ExecuteCommand();
                         if (!string.IsNullOrEmpty(itemCode))
@@ -612,11 +612,34 @@
             return result;
         }
         /// <summary>
+        /// 灏忕背 缁戝畾鏂欐灦鍜屾枡绠变綅
+        /// </summary>
+        /// <param name="cntr"></param>
+        /// <returns></returns>
+        internal static bool BindLocCntrsXmLj(string loc, string frame)
+        {
+            bool result = true;
+            var db = new SqlHelper<object>().GetInstance();
+
+            if (!string.IsNullOrEmpty(frame))
+            {
+                string cntrCode = frame;
+                if (db.Queryable<LocFrameRel>().Count(a => a.S_LOC_CODE.Trim() == loc&& a.S_FRAME_CODE.Trim() == frame) == 0)
+                {
+                    var cir = new LocFrameRel { S_LOC_CODE = loc, S_FRAME_CODE = frame };
+                    db.Insertable<LocFrameRel>(cir).ExecuteCommand();
+                }
+            }
+            return result;
+        }
+
+
+        /// <summary>
         /// 缁戝畾璐т綅瀹瑰櫒琛�         /// </summary>
         /// <param name="cntr"></param>
         /// <returns></returns>
-        internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName,int S_CK)
+        internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName, int S_CK)
         {
             bool result = true;
             List<string> list = new List<string>(cntr.Split(','));
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
index 07d6121..a46b499 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
@@ -469,42 +469,7 @@
             }
             return res;
         }
-        /// <summary>
-        /// 璐т綅缁戝畾璐ф灦 灏忕背
-        /// </summary>
-        /// <param name="loc"></param>
-        /// <param name="cntrs"></param>
-        /// <returns></returns>
-        public static bool BindingLocHj(string loc, string frame)
-        {
-            var res = false;
-            var db = new SqlHelper<object>().GetInstance();
-            var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
-            try
-            {
-                var lcrList = db.Queryable<LocCntrRel>().Includes(a => a.Container).Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
-                db.BeginTran();
-                int count = 0;
-                if (lcrList.Count(b => b.S_CNTR_CODE.Trim() == frame) == 0)
-                {
-                    db.Insertable<LocCntrRel>(new LocCntrRel { S_LOC_CODE = loc, S_FRAME_CODE = frame }).ExecuteCommand();
-                    count++;
-                }
-                location.N_CURRENT_NUM = lcrList.Count + count;
-                location.N_LOCK_STATE = 0;
-                location.S_LOCK_STATE = "鏃�;
-                db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
-
-                db.CommitTran();
-                res = true;
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine(ex.Message);
-                db.RollbackTran();
-            }
-            return res;
-        }
+        
         /// <summary>
         /// 鍒ゆ柇閫昏緫搴撳尯鏄惁鏈夊彲鐢ㄨ揣浣�         /// </summary>

--
Gitblit v1.9.1