From e1a97fc8b29f063e96e3ebbae2f07ee95b276069 Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期四, 05 六月 2025 17:25:31 +0800
Subject: [PATCH] 合肥佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs |  211 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 180 insertions(+), 31 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
index cd60f55..c86d343 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -162,19 +162,19 @@
                     startloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == taskData.pickStation).First();
                     if (startloc != null)
                     {
+                        Start = startloc.S_CODE;
                         var CntrRel = LocationHelper.GetLocCntrRel(startloc.S_CODE).FirstOrDefault();
                         if (CntrRel != null)
                         {
-                            Start = startloc.S_CODE;
                             CntrCode = CntrRel.S_CNTR_CODE;
                         }
-                        else
-                        {
-                            result.code = "1";
-                            result.msg = $"鏍规嵁璧风偣{Start},鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�;
-                            AddErrorInfo("鎵樼洏鏌ユ壘澶辫触", result.msg, Source);
-                            return result;
-                        }
+                        //else
+                        //{
+                        //    result.code = "1";
+                        //    result.msg = $"鏍规嵁璧风偣{Start},鏈壘鍒版墭鐩樿揣浣嶇粦瀹氬叧绯�;
+                        //    AddErrorInfo("鎵樼洏鏌ユ壘澶辫触", result.msg, Source);
+                        //    return result;
+                        //}
 
                     }
 
@@ -273,9 +273,16 @@
                             LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                             if (WCSHelper.CreateTask(wcsTask))
                             {
-                                LocationHelper.LockLoc(End, 2);
+                             //   LocationHelper.LockLoc(End, 2);
 
                                 LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                            }
+                            else
+                            {
+                                result.code = "1";
+                                result.msg = $"浠诲姟鍒涘缓澶辫触";
+                                AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                                return result;
                             }
                         }
                         else if (startArea.N_FLOOR != endArea.N_FLOOR)
@@ -333,8 +340,15 @@
                                 {
 
                                     // LocationHelper.LockLoc(Start, 1);
-                                    LocationHelper.LockLoc(End, 2);
+                                    //LocationHelper.LockLoc(End, 2);
                                     LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                                }
+                                else
+                                {
+                                    result.code = "1";
+                                    result.msg = $"浠诲姟鍒涘缓澶辫触";
+                                    AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                                    return result;
                                 }
                             }
 
@@ -351,6 +365,7 @@
                 }
                 else if (taskData.taskType == 5)//绉诲簱娴佺▼锛岀洿鎺ヤ娇鐢ㄨ捣鐐硅揣浣嶅拰缁堢偣璐т綅鐢熸垚浠诲姟锛屽苟缁戝畾鎵樼洏
                 {
+                    note = "鍑哄簱";
                     //鍒涘缓鎵樼洏鐗╂枡缁戝畾淇℃伅锛屽苟璁$畻缁堢偣璐т綅
                     if (CreateCntrIteminfo(partData, taskData))
                     {
@@ -551,9 +566,16 @@
                         LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                         if (WCSHelper.CreateTask(wcsTask))
                         {
-                            LocationHelper.LockLoc(Start, 2);
-                            LocationHelper.LockLoc(End, 1);
+                           // LocationHelper.LockLoc(Start, 2);
+                            //LocationHelper.LockLoc(End, 1);
                             LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                        }
+                        else
+                        {
+                            result.code = "1";
+                            result.msg = $"浠诲姟鍒涘缓澶辫触";
+                            AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                            return result;
                         }
                     }
                     else
@@ -889,9 +911,16 @@
                     LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
                     if (WCSHelper.CreateTask(wcsTask))
                     {
-                        LocationHelper.LockLoc(Start, 2);
-                        LocationHelper.LockLoc(End, 1);
+                        //LocationHelper.LockLoc(Start, 2);
+                        //LocationHelper.LockLoc(End, 1);
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -1065,8 +1094,15 @@
                     if (WCSHelper.CreateTask(wcsTask))
                     {
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
-                        LocationHelper.LockLoc(Start, 2);
-                        LocationHelper.LockLoc(End, 1);
+                        //LocationHelper.LockLoc(Start, 2);
+                        //LocationHelper.LockLoc(End, 1);
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -1211,7 +1247,7 @@
                         var whcode = Settings.wareLoc.Where(a => a.AreaCode == startloc.S_WH_CODE).FirstOrDefault();
                         if (whcode != null)
                         {
-                            if (startloc.S_NOTE == "PM" || string.IsNullOrEmpty(startloc.S_NOTE))
+                            if ( string.IsNullOrEmpty(startloc.S_NOTE))
                             {
                                 areacode = whcode.PMK;
                             }
@@ -1288,15 +1324,22 @@
                         N_END_LAYER = endlayer,
                         Z_TYPE = 5
                     };
-                    LogHelper.Info("鍒涘缓鍑哄钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
+                    LogHelper.Info("鍒涘缓绌烘墭鍥炲簱浠诲姟锛� + JsonConvert.SerializeObject(wcsTask));
                     if (WCSHelper.CreateTask(wcsTask))
                     {
-                        LocationHelper.LockLoc(startloc.S_CODE, 2);
-                        LocationHelper.LockLoc(loc.S_CODE, 1);
+                        //LocationHelper.LockLoc(startloc.S_CODE, 2);
+                        //LocationHelper.LockLoc(loc.S_CODE, 1);
                         //  绌烘墭鍥炲簱鍒ゆ柇鎵樼洏鏈夋棤缁戝畾鐗╂枡淇℃伅 濡傛灉鏈夊垯鍒犻櫎
                         var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First();
                         if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).ExecuteCommand(); }
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -1431,12 +1474,19 @@
                         Z_TYPE = 5
 
                     };
-                    LogHelper.Info("鍒涘缓鍑哄钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
+                    LogHelper.Info("鍒涘缓鍛煎彨绌烘墭浠诲姟锛� + JsonConvert.SerializeObject(wcsTask));
                     if (WCSHelper.CreateTask(wcsTask))
                     {
-                        LocationHelper.LockLoc(Start, 2);
-                        LocationHelper.LockLoc(End, 1);
+                        //LocationHelper.LockLoc(Start, 2);
+                        //LocationHelper.LockLoc(End, 1);
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -1670,8 +1720,8 @@
                     LogHelper.Info("鍒涘缓鍑哄钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
                     if (WCSHelper.CreateTask(wcsTask))
                     {
-                        LocationHelper.LockLoc(Start, 2);
-                        LocationHelper.LockLoc(End, 1);
+                        //LocationHelper.LockLoc(Start, 2);
+                        //LocationHelper.LockLoc(End, 1);
                         //鍒涘缓浠诲姟鎴愬姛 鏇存柊浣欐枡淇℃伅
                         var CntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First();
                         if (CntrItem != null)
@@ -1684,6 +1734,13 @@
                             db.Updateable(CntrItem).UpdateColumns(a => new { a.F_WEIGHT, a.S_BS_TYPE }).ExecuteCommand();
                         }
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -1897,9 +1954,16 @@
                     LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                     if (WCSHelper.CreateTask(wcsTask))
                     {
-                        LocationHelper.LockLoc(Start, 2);
-                        LocationHelper.LockLoc(End, 1);
+                        //LocationHelper.LockLoc(Start, 2);
+                        //LocationHelper.LockLoc(End, 1);
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
                 }
                 else
@@ -2030,9 +2094,16 @@
                     if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1))
                     {
 
-                        LocationHelper.LockLoc(startloc.S_CODE, 2);
-                        LocationHelper.LockLoc(endloc.S_CODE, 1);
+                        //LocationHelper.LockLoc(startloc.S_CODE, 2);
+                        //LocationHelper.LockLoc(endloc.S_CODE, 1);
                         LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = $"浠诲姟鍒涘缓澶辫触";
+                        AddErrorInfo("浠诲姟鍒涘缓澶辫触", result.msg, Source);
+                        return result;
                     }
 
                 }
@@ -2130,6 +2201,73 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
+        internal static Result ClearLocCntr(ClearTask model)
+        {
+            Result result = new Result() { code = "200", msg = "搴撲綅娓呴櫎鎴愬姛" };
+            string Source = "MES";
+            if (model == null)
+            {
+                result.code = "1";
+                result.msg = "鍙傛暟涓簄ull";
+                AddErrorInfo("鍙傛暟涓虹┖", result.msg, Source);
+                return result;
+            }
+            string loc = model.LocationNum;
+            var db = new SqlHelper<object>().GetInstance();
+            try
+            {
+                var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
+                if (location != null)
+                {
+                    var loccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == loc).First();
+
+                    if (loccntr != null)
+                    {
+
+                        string cntrcode = loccntr.S_CNTR_CODE;
+                        var CntrItem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntrcode).First();
+                        if (CntrItem != null)
+                        {
+                            if (LocationHelper.UnBindingLoc(loc, new List<string>() { cntrcode }))
+                            {
+                                LogHelper.Info($"娓呴櫎鎵樼洏璐т綅鍏崇郴鎴愬姛");
+                            }
+                        }
+                        else
+                        {
+                            LogHelper.Info($"ClearLocCntr 鎵樼洏{cntrcode}鏃犵墿鏂欑粦瀹氬叧绯�);
+                        }
+
+                    }
+                    else
+                    {
+                        LogHelper.Info($"ClearLocCntr 璐т綅{loc}鏃犳墭鐩樿揣浣嶇粦瀹氬叧绯�);
+                    }
+                }
+                else
+                {
+                    result.code = "1";
+                    result.msg = $"鏍规嵁璐т綅:{loc}鎵句笉鍒拌揣浣嶅叧绯�;
+                    AddErrorInfo("璐т綅涓虹┖", result.msg, Source);
+                    return result;
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info($"ClearLocCntr Error锛歿ex}");
+                db.Ado.CommitTran();
+                result.code = "1";
+                result.msg = $"Error锛歿ex}";
+                return result;
+
+            }
+
+            return result;
+        }  /// <summary>
+        /// 搴撲綅娓呯┖
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         internal static Result ClearLoc(ClearTask model)
         {
             Result result = new Result() { code = "200", msg = "搴撲綅娓呴櫎鎴愬姛" };
@@ -2160,7 +2298,18 @@
 
                             LocationHelper.UnBindingLoc(loc, new List<string>() { cntrcode });
                             // db.Deleteable<LocCntrRel>().Where(it => it.S_LOC_CODE.Trim() == loc).ExecuteCommand();
-                            db.Deleteable<CntrItemDetail>().Where(it => it.S_CNTR_CODE.Trim() == cntrcode).ExecuteCommand();
+                            if (db.Deleteable<CntrItemDetail>().Where(it => it.S_CNTR_CODE == cntrcode).ExecuteCommand() > 0)
+                            {
+                                LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎鎴愬姛");
+                            }
+                            else
+                            {
+                                LogHelper.Info($"ClearLoc 搴撲綅娓呴櫎澶辫触");
+                                result.code = "1";
+                                result.msg = "搴撲綅娓呴櫎澶辫触";
+                                AddErrorInfo("搴撲綅娓呴櫎澶辫触", result.msg, Source);
+                                return result;
+                            }
 
                         }
                         else
@@ -2480,7 +2629,7 @@
 
             lock (_lockLocation)
             {
-                var loc = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == jtcode.Trim() && a.S_NOTE == cntrType && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).First();
+                var loc = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == jtcode.Trim() && a.S_NOTE == cntrType && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0&&a.S_LOCK_STATE=="鏃�).First();
                 if (loc != null)
                 {
                     End = loc;

--
Gitblit v1.9.1