From 1b6bf29ff7daa1987de65940af52f452cabd6881 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 15 七月 2025 17:27:50 +0800
Subject: [PATCH] 优化AGV任务部分日志、货位绑定内部方法

---
 api/DebugController.cs |  178 +++++++++++++++++++++--------------------------------------
 1 files changed, 63 insertions(+), 115 deletions(-)

diff --git a/api/DebugController.cs b/api/DebugController.cs
index 28e9bed..dd1d711 100644
--- a/api/DebugController.cs
+++ b/api/DebugController.cs
@@ -15,6 +15,7 @@
 
 using static HH.WCS.Mobox3.DSZSH.api.ApiModel;
 using static HH.WCS.Mobox3.DSZSH.api.OtherModel;
+using static HH.WCS.Mobox3.DSZSH.Config;
 using static HH.WCS.Mobox3.DSZSH.core.Monitor;
 
 namespace HH.WCS.Mobox3.DSZSH.api {
@@ -66,6 +67,12 @@
             return returnResult;
         }
 
+        /// <summary>
+        /// 妯℃嫙AGV鍥炴姤浠诲姟鐘舵�锛堟寚瀹氫笅涓�釜鐘舵�锛岀敤浜庨渶瑕佸垎娈垫祴璇曠殑鍦烘櫙锛�br/>
+        /// 鎬ц兘鐩稿杈冨樊锛屼粎鐢ㄤ簬娴嬭瘯锛屼竴鑸笉浣跨敤
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         [HttpPost]
         [Route("AgvReports")]
         public ReturnResults AgvReports(AgvReportsInfo model) {
@@ -216,119 +223,67 @@
         [HttpPost]
         [Route("AddInboundTask")]
         public string AddInboundTask(AddInboundTaskInfo model) {
+            return WCSCore.CreateInboundTask(model.StartLoc, model.CntrCode).Content;
+        }
+
+        /// <summary>
+        /// DEBUG锛氭ā鎷熶汉宸ュ皢鏂欑鎼繍鍒颁骇绾夸笂绾垮彛锛堢洿鎺ヤ慨鏀规暟鎹簱锛�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("GoodpackToProdLine")]
+        public string GoodpackToProdLine(GoodpackToProdLineInfo model) {
+
             var db = new SqlHelper<object>().GetInstance();
-            var info = "";
-
-            const string taskName = TaskName.T鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱;
-            const string startAreaName = AreaName.B鍖呰鍖�
-            const string endAreaName = AreaName.M婊℃墭璐ф灦鍖�
-            const string cntrType = "鎵樼洏";
-
             try {
-                var cntrCode = model.CntrCode;
-                var startLocCode = model.StartLoc;
-
-                var startLoc = db.Queryable<TN_Location>()
-                    .Where(l => l.S_CODE == startLocCode)
-                    .Where(l => Settings.AreaMap[startAreaName].Contains(l.S_AREA_CODE))
-                    .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y")
-                    .Where(l => l.N_CURRENT_NUM == 0) // 缁戝畾鍓�-                    .First();
-
+                // 鏌ヨ璧风偣璐т綅锛氭暟閲�0
+                var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE)
+                    .Where((l,c) => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.S_CODE == model.StartLoc && l.N_CURRENT_NUM == 1 && c.S_CNTR_CODE == model.CntrCode).First();
                 if (startLoc == null) {
-                    info = $"鍦�{startAreaName}'涓病鏈夋壘鍒拌捣鐐硅揣浣�{startLocCode}'锛屾垨涓嶆弧瓒宠姹傦細鏈笂閿併�褰撳墠瀹瑰櫒鏁伴噺=0";
-                    LogHelper.Info(info);
-                    return info;
+                    return $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛屽綋鍓嶅鍣ㄦ暟閲�1";
                 }
 
-                var locCntrRelOld = db.Queryable<TN_Loc_Container>()
-                    .Where(c => c.S_CNTR_CODE == cntrCode).First();
-
-                // 缁戝畾璐т綅鍜屽鍣ㄥ彿
-                var locCntrRel = new TN_Loc_Container {
-                    S_LOC_CODE = startLocCode,
-                    S_CNTR_CODE = cntrCode,
-                    S_CNTR_TYPE = cntrType,
-                };
-
-                startLoc.N_CURRENT_NUM = 1; // 缁戝畾鍚�-
-                var endLoc = db.Queryable<TN_Location>()
-                    .Where(a => Settings.AreaMap[endAreaName].Contains(a.S_AREA_CODE))
-                    .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣
-                    .Where(a => a.N_CURRENT_NUM == 0) // 绛涢�锛氱┖璐т綅
-                    .OrderBy(l => l.N_LAYER)
-                    .First();
-
+                // 鏌ヨ缁堢偣璐т綅
+                // Order锛氭寜璐т綅灞傛暟锛屼粠灏忓埌澶ф帓鍒�+                var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.N_CURRENT_NUM == 0).First();
                 if (endLoc == null) {
-                    info = $"鍦ㄧ粓鐐硅揣鍖�{endAreaName}'涓紝娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆戯紝闇�婊¤冻瑕佹眰锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0";
-                    LogHelper.Info(info);
-                    return info;
+                    return $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0";
                 }
 
-                var cntId = locCntrRel.S_CNTR_CODE;
-                var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName);
+                var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == model.CntrCode).First() ;
+                if (locCntrRel == null) {
+                    return $"璇ュ鍣ㄤ笉瀛樺湪缁戝畾鐨勮揣浣嶏紒";
+                }
 
-                LocationHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�-                LocationHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿�+                locCntrRel.S_LOC_CODE = model.StartLoc;
+                startLoc.N_CURRENT_NUM = 0;
+                endLoc.N_CURRENT_NUM = 1;
 
                 using (var tran = db.Ado.UseTran()) {
-                    if (locCntrRelOld != null) {
-                        if (db.Deleteable<TN_Loc_Container>(locCntrRelOld).ExecuteCommand() <= 0 &&
-                            db.Updateable<TN_Location>().SetColumns(l => l.N_CURRENT_NUM == 0).Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).ExecuteCommand() <= 0) {
-                            tran.RollbackTran();
-                            info = $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触锛氳揣浣嶇紪鐮亄locCntrRelOld.S_LOC_CODE}锛屽鍣ㄧ紪鐮亄locCntrRelOld.S_CNTR_CODE}";
-                            LogHelper.Info(info);
-                            return info;
-                        }
-                    }
-
-                    if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) {
+                    if (db.Updateable<TN_Location>(startLoc).ExecuteCommand() <= 0 &&
+                        db.Updateable<TN_Location>(endLoc).ExecuteCommand() <= 0 &&
+                        db.Updateable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) {
+                        
                         tran.RollbackTran();
-                        info = $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ細璐т綅缂栫爜{locCntrRel.S_LOC_CODE}锛屽鍣ㄧ紪鐮亄locCntrRel.S_CNTR_CODE}";
-                        LogHelper.Info(info);
-                        return info;
+                        return "鏁版嵁搴撴搷浣滃け璐ワ紒";
                     }
 
-                    if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM }).ExecuteCommand() <= 0) {
-                        tran.RollbackTran();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�;
-                        LogHelper.Info(info);
-                        return info;
-                    }
-
-                    if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new {
-                        it.N_LOCK_STATE,
-                        it.S_LOCK_STATE,
-                        it.S_LOCK_OP,
-                        it.T_MODIFY
-                    }).ExecuteCommand() <= 0) {
-                        tran.RollbackTran();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�;
-                        LogHelper.Info(info);
-                        return info;
-                    }
-
-                    if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
-                        tran.RollbackTran();
-                        info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
-                        LogHelper.Info(info);
-                        return info;
-                    }
-
-                    tran.CommitTran();
-                    info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屽鍣ㄥ彿{cntId}锛岃捣鐐箋startLoc.S_CODE}锛岀粓鐐硅揣鏋秢endLoc.S_CODE}";
-                    LogHelper.Info(info);
-                    return info;
+                    tran.CommitTran() ;
+                    return "鏁版嵁搴撴搷浣滄垚鍔�;
                 }
-
             }
             catch (Exception ex) {
-                LogHelper.InfoEx(ex);
+
                 return ex.Message;
             }
         }
 
+        /// <summary>
+        /// DEBUG锛氭ā鎷烢rp涓嬪彂鍑哄簱璁″垝鍗�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         [HttpPost]
         [Route("TestErpSendOutboundPlan")]
         public ErpResult TestErpSendOutboundPlan(TestErpSendOutboundPlanInfo model) {
@@ -345,6 +300,11 @@
             return ApiHelper.ErpSendOutboundPlan(erpModel);
         }
 
+        /// <summary>
+        /// 锛堝唴閮ㄦ柟娉曡鍕胯皟鐢級妯℃嫙鍙栬揣瀹屾垚鍙嶉Erp鍥炴姤缁撴灉锛堥粯璁や负success锛�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         [HttpPost]
         [Route("PickUpReturn")]
         public TestErpResult PickUpReturn(PickUpReturnErpInfo model) {
@@ -361,6 +321,11 @@
             };
         }
 
+        /// <summary>
+        /// 锛堝唴閮ㄦ柟娉曡鍕胯皟鐢級妯℃嫙浠诲姟鍒涘缓瀹屾垚鍙嶉Erp鍥炴姤缁撴灉锛堥粯璁や负success锛�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         [HttpPost]
         [Route("CreateTaskReturn")]
         public TestErpResult CreateTaskReturn(CreateTaskReturnErpInfo model) {
@@ -376,6 +341,12 @@
                 message = "success"
             };
         }
+    }
+
+    public class GoodpackToProdLineInfo {
+        public string CntrCode { get; set; }
+        public string StartLoc { get; set; }
+        public string EndLoc { get; set; }
     }
 
     public class TestErpSendOutboundPlanInfo {
@@ -429,10 +400,6 @@
         /// AGV 灏忚溅鍙�         /// </summary>
         public string ForkliftNo { set; get; }
-        ///// <summary>
-        ///// AGV 涓嬩竴涓姸鎬�-        ///// </summary>
-        //public int NextState { set; get; }
     }
 
     public class AgvReportsInfo {
@@ -450,15 +417,6 @@
         public int NextState { set; get; } = 0;
     }
 
-    public class FalseOk {
-        public bool JumpOut { set; get; } = true;
-    }
-
-    public class InsertCntrItemInfo {
-        public string Cntr { set; get; }
-        public string Item { set; get; }
-    }
-
     /// <summary>
     /// 
     /// </summary>
@@ -466,14 +424,4 @@
         public List<ReturnResult> ResultList { set; get; }
     }
 
-    public class LocCntrCg {
-        public string Note { get; set; } // 浠呯敤浜庡娉�-
-        public string LocCode { get; set; }
-        public string LocArea { get; set; }
-        public string CntrCode { get; set; }
-        public string CntrType { get; set; }
-        public string ItemCode { get; set; }
-        public string BatchNo { get; set; }
-    }
 }

--
Gitblit v1.9.1