From 16d2162a833cebeae72c363962917bb9da8145ef Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期五, 06 六月 2025 17:34:47 +0800
Subject: [PATCH] 福建佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs |  141 +++++++++++++++-------------------------------
 1 files changed, 47 insertions(+), 94 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs
index e51ab71..6c0af1a 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/api/ApiHelper.cs
@@ -46,42 +46,18 @@
                 WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"WMS绯荤粺鏈煡璇㈠埌缁堢偣璐т綅锛歿model.endLocCode}");
                 throw new BusinessException($"WMS绯荤粺鏈煡璇㈠埌缁堢偣璐т綅锛歿model.endLocCode},璇锋鏌ョ粓鐐硅揣浣嶇紪鐮佹槸鍚︽纭�);
             }
-            else 
+
+            var areaCodes = Settings.getRelAreaCodes(endLoc.S_AREA_CODE);
+            if (areaCodes.Count == 0) 
             {
-                if (endLoc.C_ENABLE == "Y")
-                {
-                    if (endLoc.N_LOCK_STATE != 0)
-                    {
-                        var existTask = WCSHelper.GetTaskByStartOrEnd(model.endLocCode);
-                        if (existTask != null)
-                        {
-                            WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode} 宸叉湁浠诲姟");
-                            throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode} 宸叉湁浠诲姟");
-                        }
-                        else
-                        {
-                            LocationHelper.UnLockLoc(model.endLocCode);  // 娌℃湁浠诲姟灏憋紝鑷姩瑙i攣缁堢偣璐т綅
-                        }
-                    }
-                }
-                else 
-                {
-                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode} 宸茬鐢紝璇疯仈绯荤鐞嗕汉鍛樿В闄ょ鐢�);
-                    throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode} 宸茬鐢紝璇疯仈绯荤鐞嗕汉鍛樿В闄ょ鐢�);
-                }
+                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鏈厤缃簱鍖�{endLoc.S_AREA_CODE}鐨勫叧鑱斿叧绯�);
+                throw new BusinessException($"鏈厤缃簱鍖�{endLoc.S_AREA_CODE}鐨勫叧鑱斿叧绯�);
             }
 
-            var transfeRelevance = WMSHelper.GetTransfeRelevance(model.endLocCode);  // 鎺ラ┏璐т綅鍏宠仈灞炴�
-            if (transfeRelevance == null) 
-            {
-                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"缁堢偣璐т綅锛歿model.endLocCode},缂哄皯閰嶇疆灞炴�锛岃鑱旂郴绠$悊浜哄憳杩涜閰嶇疆灞炴�");
-                throw new BusinessException($"缁堢偣璐т綅锛歿model.endLocCode},缂哄皯閰嶇疆灞炴�锛岃鑱旂郴绠$悊浜哄憳杩涜閰嶇疆灞炴�");
-            }
-
-            Location startLoc = WMSHelper.getOutStockStartLoc(transfeRelevance.S_RELE_AREA, null);
+            Location startLoc = WMSHelper.getOutStockStartLoc(areaCodes[0], null);
             if (startLoc == null)
             {
-                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鏈煡璇㈠埌绌哄伐瑁咃紝绔嬪簱鍙兘缂哄皯绌哄伐瑁�);
+                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"搴撳尯:{areaCodes[0]}鏈煡璇㈠埌绌哄伐瑁�);
                 throw new BusinessException($"鏈煡璇㈠埌绌哄伐瑁咃紝绔嬪簱鍙兘缂哄皯绌哄伐瑁�);
             }
 
@@ -98,7 +74,7 @@
                     S_END_LOC = endLoc.S_CODE,
                     S_END_AREA = endLoc.S_AREA_CODE,
                     S_TYPE = "绌哄伐瑁呭嚭搴撲换鍔�,
-                    S_OP_DEF_NAME = "绌哄伐瑁呭嚭搴撶紦瀛樹綅",
+                    S_OP_DEF_NAME = "绌哄伐瑁呭嚭搴�,
                     N_PRIORITY = 10,
                     T_START_TIME = DateTime.Now,
                 };
@@ -144,10 +120,10 @@
 
         /// <summary>
         /// WCS璇荤爜璇锋眰娴佺▼
-        /// 1.鍒ゆ柇RFID 鏄惁璇诲彇鎴愬姛锛堟墭鐩樺彿鏄惁涓虹┖锛�-        /// 2.鏌ヨ鍏充簬RFID鐨勯鍒涘缓浠诲姟
-        /// 3.濡傛灉璇诲彇鎴愬姛锛屽垯婵�椿棰勫垱寤轰换鍔�-        /// 4.濡傛灉璇诲彇涓嶆垚鍔燂紝鏌ョ湅寮傚父鍖烘槸鍚︽湁绌鸿揣浣嶏紝鏈夊垯鍒涘缓鎼繍寮傚父鍖轰换鍔★紝鏃犲垯锛岃褰曞紓甯告縺娲婚鍒涘缓浠诲姟
+        /// 涓氬姟鍦烘櫙锛氳鐮佸叆搴撱�璇荤爜鍑哄簱
+        /// 1.鍒ゆ柇RFID鏄惁瀛樺湪WMS绯荤粺涓紝鍚︼紝鍒欓粯璁や负RFID鏃犳硶璇嗗埆
+        /// 2.鍒ゆ柇RFID鏄惁涓庝换鍔FID鏄惁涓�嚧
+        /// 3.璁板綍RFID寮傚父淇℃伅
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
@@ -155,47 +131,24 @@
             ResponseResult responseResult = new ResponseResult();
 
             Location loc = LocationHelper.GetLoc(request.loc);
-            if (loc == null) 
+            if (loc != null)
             {
-                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�);
-                throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�);
-            }
-
-            var locCntrRels = LocationHelper.GetLocCntr(request.loc);
-            if (locCntrRels.Count > 0)
-            {
-                string taskCntrCode = locCntrRels[0].S_CNTR_CODE;
-                // 2.鏌ヨ鍏充簬RFID鐨勯鍒涘缓浠诲姟
-                var cst = WCSHelper.GetPreCreatedTaskByCntr(taskCntrCode);
+                var cst = WCSHelper.GetTask(request.taskNo);
                 if (cst != null)
                 {
-                    bool errFlag = true;
-                    // 1.鍒ゆ柇RFID 鏄惁璇诲彇鎴愬姛锛堟墭鐩樺彿鏄惁涓虹┖锛�-                    if (request.cntrNo != null)
+                    var container = ContainerHelper.GetCntr(request.cntrNo);
+                    if (container != null)
                     {
-                        if (request.cntrNo == taskCntrCode)
+                        if (cst.S_CNTR_CODE == request.cntrNo)
                         {
-                            Container container = ContainerHelper.GetCntr(request.cntrNo);
-                            if (container.N_E_STATE == 0)
-                            {
-                                errFlag = false;
-                                WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE);
-                            }
-                        }
-                        else
-                        {
-                            ContainerHelper.UpdateCntrState(taskCntrCode, 1,"WCS鍙嶉RFID涓庝换鍔FID涓嶄竴鑷�);
+                            ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1);
+                            WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, request.loc, cst.S_CODE);
                         }
                     }
-                    else
+                    else 
                     {
-                        ContainerHelper.UpdateCntrState(taskCntrCode, 1,"WCS鍙嶉RFID涓簄ull");
-                    }
-
-                    // 鏂规1 4.婵�椿棰勫垱寤轰换鍔�-                    if (errFlag) 
-                    {
-                        WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE,1);
+                        ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1);
+                        WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 1, request.loc, cst.S_CODE);
                     }
 
                     // 鏂规2 4.濡傛灉璇诲彇涓嶆垚鍔燂紝鏌ョ湅寮傚父鍖烘槸鍚︽湁绌鸿揣浣� 
@@ -233,15 +186,15 @@
                          WCSHelper.ActivatePreCreateTask(cst.S_OP_CODE);
                      }*/
                 }
-                else 
+                else
                 {
-                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"璇荤爜浣�{request.loc}瑙﹀彂璇荤爜璇锋眰锛岃鐮佷綅涓婂鍣�{taskCntrCode}娌℃湁棰勫垱寤轰换鍔�);
+                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"娌℃湁鏌ヨ鍒拌鐮佺殑浠诲姟锛屼换鍔″彿:{request.taskNo}");
                 }
             }
             else 
             {
-                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鏌ヨ鍒板鍣�);
-                throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鏌ヨ鍒板鍣�);
+                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�);
+                throw new BusinessException($"璇荤爜浣�{request.loc},娌℃湁鍦╓MS绯荤粺涓綍鍏�);
             }
             return responseResult;
         }
@@ -267,43 +220,40 @@
         /// <returns></returns>
         public static ResponseResult offLineProcess(OffLineRequest model) {
             ResponseResult responseResult = new ResponseResult();
+
+            // 鏌ヨ璧风偣璐т綅鏄惁瀛樺湪宸插瓨鍦ㄤ换鍔★紝闃叉浠诲姟閲嶅鍙戣捣
             var existWmsTask = WMSHelper.GetWmsTaskByStart(model.loc);
             if (existWmsTask == null)
             {
-                // 鍒ゆ柇婊℃枡鎺ラ┏浣嶅搴旂殑绌哄伐瑁呯紦瀛樹綅鐘舵�锛堟煡璇㈢嚎浣撳厜鐢碉級
+                // 鏌ヨ瀵瑰簲鏈哄彴鐨勭墿鏂欎笅绾块厤缃俊鎭�                 var logicConfig = WMSHelper.getLogicConfigByJtCode(model.jtNo);
                 if (logicConfig != null)
                 {
+                    // 鏍规嵁鐗╂枡涓嬬嚎閰嶇疆淇℃伅锛屽垽鏂换鍔$被鍨嬫槸鐩磋繛涓嬬嚎杩樻槸闈炵洿杩炰笅绾�                     if (logicConfig.S_TASK_TYPE == "1" || logicConfig.S_TASK_TYPE == "2")
                     {
-                        // 婊℃枡涓嬬嚎锛堢洿杩烇級
+                        // 鐩磋繛涓嬬嚎锛岄渶瑕佸垽鏂牎楠孯FID
                         LjMesTask mesTask = null;
-                        if (model.cntrNo != null && model.cntrNo != "")
+                        var container = ContainerHelper.GetCntr(model.cntrNo);
+                        if (container != null)
                         {
-                            var container = ContainerHelper.GetCntr(model.cntrNo);
-                            if (container == null)
+                            mesTask = WMSHelper.getLjMesTaskByCntr(model.cntrNo);
+                            if (mesTask == null)
                             {
-                                ContainerHelper.AddCntr(model.cntrNo);
-                                ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"婊℃枡涓嬬嚎锛堢洿杩烇級,WCS鍙嶉鐨凴FID:{model.cntrNo}鍦╓MS绯荤粺涓笉瀛樺湪");
-                                WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"婊℃枡涓嬬嚎锛堢洿杩烇級,WCS鍙嶉鐨凴FID:{model.cntrNo}鍦╓MS绯荤粺涓笉瀛樺湪");
-                            }
-                            else
-                            {
-                                ContainerHelper.UpdateCntrState(model.cntrNo, 0, "");
-                                mesTask = WMSHelper.getLjMesTaskByCntr(model.cntrNo);
-                                if (mesTask == null)
-                                {
-                                    ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"鏈煡璇㈠埌MES浠诲姟");
-                                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"婊℃枡涓嬬嚎锛堢洿杩烇級,瀹瑰櫒:{model.cntrNo}鏈煡璇㈠埌MES浠诲姟");
-                                }
+                                ContainerHelper.UpdateCntrState(model.cntrNo, 1);
+                                WMSHelper.addRfidAnomalyRecord(model.cntrNo, 3, model.loc, null);
                             }
                         }
                         else 
                         {
-                            model.cntrNo = ContainerHelper.GenerateCntrNo();
+                            model.isNormal = false;
+                        }
+
+                        if (!model.isNormal) 
+                        {
                             ContainerHelper.AddCntr(model.cntrNo);
-                            ContainerHelper.UpdateCntrState(model.cntrNo, 1, $"WCS鍙嶉鐨凴FID:{model.cntrNo} 涓虹┖");
-                            WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"WCS鍙嶉鐨凴FID:{model.cntrNo} 涓虹┖");
+                            ContainerHelper.UpdateCntrState(model.cntrNo, 1);
+                            WMSHelper.addRfidAnomalyRecord(model.cntrNo, 1, model.loc, null);
                         }
                         triggerItemOffLineFlow(model.loc, model.cntrNo, logicConfig, mesTask);
                     }
@@ -2194,6 +2144,7 @@
         {
             public string reqId { get; set; }
             public string reqTime { get; set; }
+            public string taskNo { get; set; } // 鎵樼洏鍙�             public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛�             public string cntrNo { get; set; } // 鎵樼洏鍙�             public int signalType { get; set; } //璇锋眰绫诲瀷 1:涓嬬嚎璇锋眰 2锛氬彨鏂欒姹�3锛氳鐮佽姹傦紙蹇呭~锛�@@ -2218,6 +2169,7 @@
             public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛�             public string cntrNo { get; set; } // 鎵樼洏鍙�             public string jtNo { get; set; } // 鏈哄彴鍙�+            public bool isNormal { get; set; } //鏄惁寮傚父
         }
 
         /// <summary>
@@ -2227,6 +2179,7 @@
         {
             public string loc { get; set; } // 璐т綅 涓婃枡鐐广�涓嬫枡鐐广�璇荤爜浣嶃�绉伴噸浣嶏紙蹇呭~锛�             public string cntrNo { get; set; } // 鎵樼洏鍙�+            public string taskNo { get; set; } // 浠诲姟鍙�         }
 
         public class AddTaskModel {

--
Gitblit v1.9.1