From dc5be5ac7d2a5aae1618fe3d1d8a689d10fdc9dc Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期四, 15 五月 2025 17:09:38 +0800
Subject: [PATCH] 大洋原材料库业务开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs |  317 +++++++++++++---------------------------------------
 1 files changed, 80 insertions(+), 237 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
index b4f04ea..46fa97f 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
@@ -4,6 +4,7 @@
 using HH.WCS.DaYang.util;
 using HH.WCS.DaYang.wms;
 using Newtonsoft.Json;
+using NLog.Fluent;
 using SqlSugar;
 using System;
 using System.Collections.Concurrent;
@@ -139,241 +140,7 @@
             return result;
         }
 
-        #region 搴熷純鑰佹祦绋�-        //internal static Result createtask(CreateTask model)
-        //{
-        //    Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" };
-        //    var db = new SqlHelper<object>().GetInstance();
-        //    string start = model.startBit;
-        //    string end = model.endBit;
-        //    string Type = "";
-        //    string cntrcode = "";
-        //    int startlayer = 1;
-
-        //    int endlayer = 1;
-        //    // string startarea = "";
-        //    //string endarea = "";
-        //    //1鍒涘缓鍙栨墭鐩樹换鍔�-        //    if (model.TaskType == "1")
-        //    {
-        //        if (LocControl(start))
-        //        {
-        //            string startZone = "HJQ";
-        //            //鎵剧┖鎵樼洏
-        //            var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).ToList();
-        //            if (cntr.Count > 0)
-        //            {
-        //                string[] cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
-        //                // 鏍规嵁鎵樼洏鎵捐揣浣�-        //                var trayInfo = db.Queryable<LocCntrRel>().Where(a => cntrcodes.Contains(a.S_CNTR_CODE)).ToList();
-        //                if (trayInfo.Count() > 0)
-        //                {
-        //                    //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅
-        //                    foreach (var item in trayInfo)
-        //                    {
-        //                        var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First();
-        //                        if (locations != null)
-        //                        {
-        //                            start = locations.S_CODE;
-        //                            cntrcode = item.S_CNTR_CODE;
-        //                            break;
-        //                        }
-        //                    }
-        //                }
-        //                else
-        //                {
-        //                    result.resultCode = -1;
-        //                    result.resultMsg = "鏍规嵁鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�;
-        //                    return result;
-        //                }
-        //            }
-        //            else
-        //            {
-        //                result.resultCode = -1;
-        //                result.resultMsg = "鎵句笉鍒扮┖鎵樼洏";
-        //                return result;
-        //            }
-        //        }
-        //        else
-        //        {
-        //            result.resultCode = -1;
-        //            result.resultMsg = "澶栦晶璐т綅鏈夋墭鐩�;
-        //            return result;
-        //        }
-        //    }
-        //    // 2鍒涘缓鍙栫墿鏂欎换鍔�-        //    else if (model.TaskType == "2")
-        //    {
-        //        if (LocControl(start))
-        //        {
-        //            string startZone = "AGVZYQ";
-
-        //            //鏍规嵁鐗╂枡缂栫爜鎵炬墭鐩�-        //            var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).FirstOrDefault();
-        //            if (cntr != null)
-        //            {
-        //                //鏍规嵁鎵樼洏鎵捐揣浣�-        //                var trayInfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntr.S_CNTR_CODE).ToList();
-        //                if (trayInfo.Count() > 0)
-        //                {
-        //                    //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅
-        //                    foreach (var item in trayInfo)
-        //                    {
-        //                        var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First();
-        //                        if (locations != null)
-        //                        {
-        //                            start = locations.S_CODE;
-        //                            cntrcode = cntr.S_CNTR_CODE;
-        //                            //startlayer = locations.N_CURRENT_NUM == 1 ? 1 : 2;
-        //                            // startlayer = locations.N_LAYER;
-        //                            break;
-        //                        }
-        //                    }
-        //                }
-        //                else
-        //                {
-        //                    result.resultCode = -1;
-        //                    result.resultMsg = "鏍规嵁鐗╂枡鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�;
-        //                    return result;
-        //                }
-        //            }
-        //            else
-        //            {
-        //                result.resultCode = -1;
-        //                result.resultMsg = "鏍规嵁鐗╂枡缂栫爜鏈壘鍒版墍灞炲鍣ㄥ彿";
-        //                return result;
-        //            }
-        //        }
-        //        else
-        //        {
-        //            result.resultCode = -1;
-        //            result.resultMsg = "澶栦晶璐т綅鏈夋墭鐩橈紝涓嶅厑璁哥敓鎴愪换鍔�;
-        //            return result;
-        //        }
-
-        //    }
-        //    //3婊℃嫋鍏ュ簱
-        //    else if (model.TaskType == "3")
-        //    {
-
-        //        string endlloc = "JBW_01_01";
-
-
-        //        var locations = LocationHelper.GetLocList(endlloc).FirstOrDefault();
-        //        if (locations.S_LOCK_STATE != "鏃�)
-        //        {
-        //            if (locations.N_CURRENT_NUM > 0)
-        //            {
-        //                result.resultCode = -1;
-        //                result.resultMsg = $"璐т綅{endlloc}宸叉湁鎵樼洏锛屼笉鍏佽鐢熸垚浠诲姟";
-        //                return result;
-        //            }
-        //            else
-        //            {
-        //                end = endlloc;
-        //            }
-
-        //        }
-        //        else
-        //        {
-        //            result.resultCode = -1;
-        //            result.resultMsg = $"璐т綅{endlloc}宸叉湁浠诲姟姝e湪鎵ц涓紝涓嶅厑璁哥敓鎴愪换鍔�;
-        //            return result;
-        //        }
-        //        //var locations = LocationHelper.GetLocListAny(startZone).OrderBy(a => a.N_ROW).ToList();
-        //        //var suo = locations.Find(a => a.S_LOCK_STATE != "鏃�);
-        //        //if (suo != null)
-        //        //{
-        //        //    var endloc = FindEndcolByLocList(locations, model.ItemCode);
-        //        //    if (endloc != null)
-        //        //    {
-        //        //        end = endloc.S_CODE;
-        //        //    }
-        //        //}
-        //        //else
-        //        //{
-        //        //    result.resultCode = -1;
-        //        //    result.resultMsg = $"搴撳尯{suo.S_AREA_CODE}宸叉湁浠诲姟姝e湪鎵ц涓紝涓嶅厑璁哥敓鎴愪换鍔�;
-        //        //    return result;
-        //        //}
-
-
-
-        //    }
-        //    //4鍒嗘嫞鍑�-        //    else if (model.TaskType == "4")
-        //    {
-        //        string startZone = "HJQ";
-
-        //        //鏍规嵁鐗╂枡缂栫爜鎵炬墭鐩�-        //        var cntr = ContainerHelper.GetItemCntrRel(model.ItemCode).FirstOrDefault();
-        //        if (cntr != null)
-        //        {
-        //            //鏍规嵁鎵樼洏鎵捐揣浣�-        //            var trayInfo = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntr.S_CNTR_CODE).ToList();
-        //            if (trayInfo.Count() > 0)
-        //            {
-        //                //鍒ゆ柇璧风偣鏄惁鏄寚瀹氬簱鍖虹殑璐т綅
-        //                foreach (var item in trayInfo)
-        //                {
-        //                    var locations = db.Queryable<Location>().Where(a => a.S_CODE == item.S_LOC_CODE && a.S_AREA_CODE == startZone).First();
-        //                    if (locations != null)
-        //                    {
-        //                        start = locations.S_CODE;
-        //                        cntrcode = cntr.S_CNTR_CODE;
-        //                        break;
-        //                    }
-        //                }
-
-        //            }
-        //            else
-        //            {
-        //                result.resultCode = -1;
-        //                result.resultMsg = "鏍规嵁鐗╂枡鎵樼洏缂栫爜鏈壘鍒版墍灞炶揣浣嶇紪鐮�;
-        //                return result;
-        //            }
-        //        }
-        //        else
-        //        {
-        //            result.resultCode = -1;
-        //            result.resultMsg = "鏍规嵁鐗╂枡缂栫爜鏈壘鍒版墍灞炲鍣ㄥ彿";
-        //            return result;
-        //        }
-        //    }
-        //    else
-        //    {
-        //        result.resultCode = -1;
-        //        result.resultMsg = $"浠诲姟绫诲瀷鏈夎锛寋model.TaskType}浠诲姟绫诲瀷涓嶆槸瑙勫畾浠诲姟绫诲瀷";
-        //        return result;
-        //    }
-        //    if (!string.IsNullOrEmpty(start) && !string.IsNullOrEmpty(end))
-        //    {
-        //        //鍒涘缓wcs浠诲姟
-        //        var wcsTask = new WCSTask
-        //        {
-        //            S_CODE = WCSHelper.GenerateTaskNo(),
-        //            S_TYPE = Type,
-        //            S_START_LOC = start,
-        //            S_END_LOC = end,
-        //            N_CNTR_COUNT = 1,
-        //            N_SCHEDULE_TYPE = 1,
-        //            S_CNTR_CODE = cntrcode,
-        //            N_START_LAYER = startlayer,
-        //            N_END_LAYER = endlayer
-
-        //        };
-        //        LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
-        //        if (WCSHelper.CreateTask(wcsTask))
-        //        {
-        //            LocationHelper.LockLoc(start, 2);
-        //            LocationHelper.LockLoc(end, 1);
-        //            LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
-        //        }
-        //    }
-
-        //    return result;
-        //}
-        #endregion
+      
 
         private static object lockObj = new object();
         /// <summary>
@@ -408,7 +175,7 @@
 
                         #region 鑾峰彇璧风偣淇℃伅
                         startloc = LocationHelper.GetLoc(model.startBit);
-                        if (endloc == null)
+                        if (startloc == null)
                         {
                             result.resultCode = -1;
                             result.resultMsg = $"鏍规嵁璧风偣:{model.startBit}鏈壘鍒拌揣浣嶄俊鎭�;
@@ -496,7 +263,12 @@
 
         }
 
-        internal static Result PutIn(PutInModel model)
+        /// <summary>
+        /// 璁惧淇″彿鍙嶉
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        internal static Result EquipmentInfo(EquipmentInfoModel model)
         {
             Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" };
             if (model == null)
@@ -505,6 +277,77 @@
                 result.resultMsg = "鍏ュ弬涓虹┖";
                 return result;
             }
+            Location endloc = new Location();
+            Location startloc = new Location();
+            string cntrcode = model.CntrNo;
+            var db = new SqlHelper<object>().GetInstance();
+
+            if (model.DeviceNo=="1")//鍙犵洏鏈�+            {
+
+            }
+            else //鍏ュ簱绌�+            {
+                #region 鑾峰彇璧风偣淇℃伅
+                //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
+                var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
+                if (CntrLoc == null)
+                {
+                    result.resultCode = -1;
+                    result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
+                    LogHelper.Info($"creattask:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�);
+                    return result;
+                }
+                startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+                if (startloc == null)
+                {
+                    result.resultCode = -1;
+                    result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
+                    LogHelper.Info($"creattask:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�);
+                    return result;
+                }
+
+                #endregion
+
+                #region 璁$畻绔嬪簱缁堢偣
+                endloc = LocationHelper.InStorage(startloc);
+                if (endloc == null)
+                {
+                    result.resultCode = -1;
+                    result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌";
+                    LogHelper.Info($"creattask:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌");
+                    return result;
+                }
+                #endregion
+
+                #region 鍒涘缓浠诲姟
+                if (startloc != null && endloc != null)
+                {
+                    var wcsTask = new WCSTask
+                    {
+                        S_CODE = WCSHelper.GenerateTaskNo(),
+                        S_TYPE = "鍏ュ簱",
+                        S_START_LOC = startloc.S_CODE,
+                        S_END_LOC = endloc.S_CODE,
+                        S_START_WH = startloc.S_WH_CODE,
+                        S_START_AREA = startloc.S_AREA_CODE,
+                        S_END_WH = endloc.S_WH_CODE,
+                        S_END_AREA = endloc.S_AREA_CODE,
+                        N_CNTR_COUNT = 1,
+                        N_SCHEDULE_TYPE = 2,
+                        S_CNTR_CODE = cntrcode
+                    };
+                    LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
+                    if (WCSHelper.CreateTask(wcsTask))
+                    {
+                        LocationHelper.LockLoc(startloc.S_CODE, 2);
+                        LocationHelper.LockLoc(endloc.S_CODE, 1);
+                        LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                }
+                #endregion
+            }
+
 
             return result;
         }

--
Gitblit v1.9.1