From b2c070eaf8cc59b40d27bda904312d0c394a51f4 Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期五, 20 六月 2025 17:23:37 +0800
Subject: [PATCH] 开发与优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs |  128 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 122 insertions(+), 6 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 5f0163d..92791ce 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
@@ -143,6 +143,7 @@
 
 
         private static object lockObj = new object();
+
         /// <summary>
         /// 鍒涘缓浠诲姟
         /// </summary>
@@ -167,7 +168,6 @@
             {
                 try
                 {
-
                     // 1 绌烘墭鍥炲簱
                     if (model.TaskType == "1")
                     {
@@ -200,7 +200,8 @@
                         #endregion
 
                         #region 璁$畻绔嬪簱缁堢偣
-                        endloc = LocationHelper.InStorage(startloc);
+
+                        endloc = LocationHelper.InStorage("");
                         if (endloc == null)
                         {
                             result.Code = -1;
@@ -208,6 +209,65 @@
                             LogHelper.Info($"creattask:{result.Msg}");
                             return result;
                         }
+                        #endregion
+
+                        #region 鍒涘缓浣滀笟
+                        if (startloc != null && endloc != null)
+                        {
+                            //鍒涘缓浣滀笟
+                            var wcsTask = new WMSTask
+                            {
+                                S_CODE = WMSHelper.GenerateTaskNo(),
+                                S_TYPE = Type,
+                                N_TYPE = int.Parse(model.TaskType),
+                                S_START_LOC = start,
+                                S_END_LOC = endloc.S_CODE,
+                                S_CNTR_CODE = cntrcode,
+                                S_END_WH = endloc.S_WH_CODE,
+                                S_START_WH = startloc.S_WH_CODE,
+                                S_START_AREA = startloc.S_AREA_CODE,
+                                S_END_AREA = endloc.S_AREA_CODE,
+
+                            };
+                            LogHelper.Info("鍒涘缓浣滀笟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
+                            if (WMSHelper.CreateTask(wcsTask))
+                            {
+                                LocationHelper.LockLoc(startloc.S_CODE, 2);
+                                LocationHelper.LockLoc(endloc.S_CODE, 1);
+                                LogHelper.Info("鍒涘缓浣滀笟鎴愬姛");
+                                //绌烘墭鍥炲簱鎴愬姛锛屽鏋滃瓨鍦ㄧ墿鏂欐暟鎹紝鍒犻櫎
+                                var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First();
+                                if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand(); }
+                                LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                            }
+                        }
+                        #endregion
+
+                    }
+                    // 2 鍑哄簱
+                    if (model.TaskType == "2")
+                    {
+                        Type = "鍑哄簱";
+
+                        #region 鑾峰彇缁堢偣淇℃伅
+                        startloc = LocationHelper.GetLoc(model.endBit);
+                        if (startloc == null)
+                        {
+                            result.Code = -1;
+                            result.Msg = $"鏍规嵁缁堢偣:{model.startBit}鏈壘鍒拌揣浣嶄俊鎭�;
+                            LogHelper.Info($"creattask:{result.Msg}");
+                            return result;
+                        }
+                        #endregion
+
+                        #region 鏍规嵁鐗╂枡璁$畻鍑哄簱鎵樼洏锛屽厛杩涘厛鍑猴紝浼樺厛鍑哄渚�+                        //鍏堣绠楀唴渚ц揣浣嶏紝鍒ゆ柇鏄惁鏈夊崟缁勬墭鐩�+                        var locations = LocationHelper.GetLocByItemCodeOrderyTime("", model.ItemCode);
+                        if (locations.Count > 0)
+                        {
+                            endloc = locations.OrderBy(a => a.N_COL).First();
+                        }
+
                         #endregion
 
                         #region 鍒涘缓浣滀笟
@@ -247,8 +307,6 @@
                         return result;
                     }
 
-
-
                     return result;
                 }
                 catch (Exception ex)
@@ -280,6 +338,7 @@
             Location endloc = new Location();
             Location startloc = new Location();
             string cntrcode = model.CntrNo;
+            // string itemCode = "";
             var db = new SqlHelper<object>().GetInstance();
 
             if (model.DeviceNo == "1")//鍙犵洏鏈�@@ -311,7 +370,8 @@
                 #endregion
 
                 #region 璁$畻绔嬪簱缁堢偣
-                endloc = LocationHelper.InStorage(startloc);
+
+                endloc = LocationHelper.InStorage("");
                 if (endloc == null)
                 {
                     result.Code = -1;
@@ -376,7 +436,16 @@
                     #endregion
 
                     #region 璁$畻绔嬪簱缁堢偣
-                    endloc = LocationHelper.InStorage(startloc);
+                    //鑾峰彇鎵樼洏鐗╂枡缁戝畾鍏崇郴
+                    var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == model.CntrNo).First();
+                    if (cntrItem == null)
+                    {
+                        result.Code = -1;
+                        result.Msg = $"鏍规嵁鎵樼洏:{model.CntrNo}鏈壘鍒扮墿鏂欎俊鎭�;
+                        LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                        return result;
+                    }
+                    endloc = LocationHelper.InStorage(cntrItem.S_ITEM_CODE);
                     if (endloc == null)
                     {
                         result.Code = -1;
@@ -496,6 +565,53 @@
             return result;
         }
 
+        internal static Result<ReseltApplyDestModel> ApplyDest(ApplyDestModel model)
+        {
+            Result<ReseltApplyDestModel> result = new Result<ReseltApplyDestModel> { Code = 0, Msg = "鍒涘缓鎴愬姛" };
+            if (model == null)
+            {
+                result.Code = -1;
+                result.Msg = "鍏ュ弬涓虹┖";
+                return result;
+            }
+            var db = new SqlHelper<object>().GetInstance();
+            string ItemCode = "";
+            var task = WCSHelper.GetTask(model.TaskNo);
+            if (task != null)
+            {
+
+                //鏍规嵁浠诲姟鎵樼洏鑾峰彇鐗╂枡淇℃伅
+
+                var cntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == task.S_CNTR_CODE).First();
+                if (cntrItem != null)
+                {
+                    ItemCode = cntrItem.S_ITEM_CODE;
+                }
+
+                var endloc = LocationHelper.InStorage(ItemCode);
+                if (endloc != null) { 
+                    result.Data = new ReseltApplyDestModel() { Loc = endloc.S_CODE };
+                }
+                else
+                {
+                    result.Code = -1;
+                    result.Msg = "褰撳墠娌℃湁鍙敤缁堢偣鍙互鍒嗛厤";
+                    return result;
+                }
+             
+            }
+            else
+            {
+                result.Code = 1;
+                result.Msg = "浠诲姟涓嶅瓨鍦�;
+                return result;
+            }
+
+
+
+            return result;
+        }
+
         /// <summary>
         /// 鑾峰彇鎵樼洏鐗╂枡淇℃伅
         /// </summary>

--
Gitblit v1.9.1