From a93b0e99036c24b9bd58c79bf5e7364b1ba28bae Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期二, 01 七月 2025 16:02:33 +0800
Subject: [PATCH] 福建佳通-流程优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs |  104 ++++++++++++++++++++++------------------------------
 1 files changed, 44 insertions(+), 60 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs
index 1a802e0..c5e9168 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/core/WCSCore.cs
@@ -11,6 +11,7 @@
 using System.Web.Http;
 using static HH.WCS.Mobox3.FJJT.api.ApiHelper;
 using static HH.WCS.Mobox3.FJJT.api.ApiModel;
+using HH.WCS.Mobox3.FJJT.util;
 
 namespace HH.WCS.Mobox3.FJJT.core {
     internal class WCSCore {
@@ -53,7 +54,7 @@
                                     case 3:
                                         WCSHelper.UpdateStatus(cst, "寮�鍙栬揣");
                                         var locCntrRels = LocationHelper.GetLocCntr(cst.S_START_LOC);
-                                        if (locCntrRels.Count > 0) 
+                                        if (locCntrRels.Count > 0)
                                         {
                                             cst.S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE;
                                             WCSHelper.UpdateWcsTask(cst);
@@ -61,6 +62,7 @@
                                         break;
                                     case 4:
                                         WCSHelper.UpdateStatus(cst, "鍙栬揣瀹屾垚");
+                                        LocationHelper.UnLockLoc(cst.S_START_LOC);
                                         TaskProcess.OperateStatus(cst, 4);
                                         break;
                                     case 5:
@@ -68,6 +70,7 @@
                                         break;
                                     case 6:
                                         WCSHelper.UpdateStatus(cst, "鍗歌揣瀹屾垚");
+                                        LocationHelper.UnLockLoc(cst.S_END_LOC);
                                         TaskProcess.OperateStatus(cst, 6);
                                         break;
                                     #endregion
@@ -83,26 +86,13 @@
                             else if (model.State == 1012)
                             {
                                 LogHelper.Info("寮�杩涜RFID鎵弿", "AGV");
+                                ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 1);
+                                WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, cst.S_START_LOC, null);
                                 // 鏌ヨ鎵弿鐨凴FID
                                 // 鍙戦� 00 04 71 02鍒版壂鐮佸櫒 锛屾帴鍙楄繑鍥炴暟鎹苟瑙f瀽
-                                /* string hexString = TcpClient.SendHexOnce("127.0.0.1", 8080, "00 04 71 02");
-                                 var rfid = hexString.Substring(6, 8);*/
-                                string rfid = "";
-                                LogHelper.Info($"鎵弿缁撴潫锛孯FID锛歿rfid}", "AGV");
-                                if (rfid == cst.S_CNTR_CODE)
-                                {
-                                    LogHelper.Info($"鎵弿RFID锛歿rfid}涓庝换鍔FID涓�嚧", "AGV");
-                                    // 淇敼1012鐨勫弬鏁�涓�
-                                   /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "1");*/
-                                }
-                                else
-                                {
-                                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "浣�, $"鎵弿RFID锛歿rfid}涓庝换鍔FID:{cst.S_CNTR_CODE}涓嶄竴鑷�, "AGV");
-                                    // 淇敼鍙傛暟6涓�
-                                    /* NDCApi.ChangeOrderParam(cst.S_CODE, 6, "3");*/
-                                    // 淇敼瀹瑰櫒寮傚父鐘舵�
-                                    ContainerHelper.UpdateCntrState(cst.S_CNTR_CODE, 2,$"{model.ForkliftNo}AGV鎵爜鍣�鎵弿RFID:{rfid}涓庝换鍔FID:{cst.S_CNTR_CODE}涓嶄竴鑷�);
-                                }
+                                /*    byte[] bytes = new byte[] { 00, 04, 71, 02 };
+                                    var plc = Settings.carDeviceInfos.Where(a => a.deviceNo == model.ForkliftNo && a.enable == 1).FirstOrDefault();
+                                    TcpServer.TcpServerSend(plc.address, bytes);*/
                             }
                             else if (model.State == 1002)
                             {
@@ -113,28 +103,26 @@
                                 if (container != null)
                                 {
                                     LogHelper.Info($"瀹瑰櫒鐨勫紓甯哥姸鎬佷负锛歿container.N_E_STATE}", "AGV");
-                                    string agvEndLoc = null;
                                     if (container.N_E_STATE == 0)
                                     {
-                                        agvEndLoc = ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "1");
+                                        ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "1");
                                     }
                                     else
                                     {
-                                        agvEndLoc = ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "2");
+                                        ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "2");
                                     }
 
-                                    ChangeParamModel paramModel = new ChangeParamModel() 
+                                    ChangeParamModel paramModel = new ChangeParamModel()
                                     {
                                         task_no = model.No,
                                         param_no = 0,
                                         param = $"{model.No};{cst.S_START_LOC};{cst.S_END_LOC};4;512;0;1"
                                     };
                                     NDCApi.ChangeOrderParam(paramModel);
-                                    LogHelper.Info($"鑾峰彇AGV缁堢偣锛歿agvEndLoc}", "AGV");
                                 }
                                 else
                                 {
-                                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"AGV浠诲姟鍥炴姤,浠诲姟瀹瑰櫒缂栫爜:{cst.S_CNTR_CODE}鐨勫鍣ㄦ病鏈夊綍鍏ュ埌WMS绯荤粺","AGV");
+                                    WMSHelper.addAlarmRecord("娴佺▼寮傚父", "涓�, $"AGV浠诲姟鍥炴姤,浠诲姟瀹瑰櫒缂栫爜:{cst.S_CNTR_CODE}鐨勫鍣ㄦ病鏈夊綍鍏ュ埌WMS绯荤粺", "AGV");
                                 }
                             }
                             else
@@ -146,35 +134,9 @@
                             // AGV浠诲姟瀹屾垚
                             if (model.State == 2)
                             {
-                                // 妫�祴鐗╂枡鏄惁鍚堟牸,濡備笉鍚堟牸锛�-                                // 鍒ゆ柇鐗╂枡鏄惁鏄幆甯﹀簱鐗╂枡锛屾槸鍒欏洖鐜甫搴擄紝骞惰鐜甫涓嬪彂鏂扮殑鐗╂枡
-                                // 闈炵幆甯﹀簱鐗╂枡锛屽垯閫�嚭绔嬪簱锛屽悓鏃朵笅鍙戞柊鐨勭墿鏂欏嚭搴撲换鍔�-                                if (cst.S_TYPE.Contains("鍙枡鍑哄簱浠诲姟"))
-                                {
-                                    var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE);
-                                    if (cntrItemRels != null && cntrItemRels.Count > 0)
-                                    {
-                                        if (cntrItemRels[0].S_ITEM_STATE == "2")
-                                        {
-                                            // 涓嶅悎鏍煎搧鍥炲簱
-                                            ApiHelper.rejectReturnStock(mst, cst);
-                                        }
-                                    }
-                                }
-
-                                // 妫�祴鏄惁鏄鐮佷綅锛岄潪璇荤爜浣嶏紝鍙互婵�椿棰勫垱寤轰换鍔�-                                var transfe = WMSHelper.GetTransfeRelevance(cst.S_END_LOC);  // 鎺ラ┏浣嶅睘鎬�-                                if ((transfe == null || transfe.N_READ_LOC == 0))
-                                {
-                                    if (cst.S_TYPE.Contains("銆愬紓甯搞�"))
-                                    {
-                                        WCSHelper.ActivatePreCreateTask(mst.S_CODE,1);
-                                    }
-                                    else 
-                                    {
-                                        WCSHelper.ActivatePreCreateTask(mst.S_CODE);
-                                    }
-                                }
+                                // 婵�椿棰勫垱寤轰换鍔�+                                // 鍦烘櫙锛�.璇荤爜浣嶆縺娲婚鍒涘缓浠诲姟 2.绌哄伐瑁呭嚭搴撴縺娲绘弧鏂欎笅绾夸换鍔�闈炵洿杩�
+                                WCSHelper.ActivatePreCreateTask(mst.S_CODE);
 
                                 // 鏌ヨ鏄惁鏈夋湭瀹屾垚鐨勪换鍔�                                 if (WMSHelper.isFinishTask(mst.S_CODE))
@@ -186,18 +148,40 @@
 
                                     // 鏇存柊浠诲姟涓棿琛ㄧ姸鎬�                                     WMSHelper.updateMesTaskStatus(mst.S_CODE, "3");
-
-                                    // 濡傛灉浣滀笟鍚嶇О涓烘垚鍨嬫満鍙枡鍑哄簱浠诲姟锛屽垯瑙﹀彂浣欐枡/绌烘墭鎼繍浠诲姟
-                                    string locCode = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC);
-                                    ApiHelper.returnMaterialOrEmptyTray(locCode);
                                 }
 
-                                
+                                // 妫�祴鐗╂枡鏄惁鍚堟牸,濡備笉鍚堟牸锛�+                                // 鍒ゆ柇鐗╂枡鏄惁鏄幆甯﹀簱鐗╂枡锛屾槸鍒欏洖鐜甫搴擄紝骞惰鐜甫涓嬪彂鏂扮殑鐗╂枡
+                                // 闈炵幆甯﹀簱鐗╂枡锛屽垯閫�嚭绔嬪簱锛屽悓鏃朵笅鍙戞柊鐨勭墿鏂欏嚭搴撲换鍔�+                                if (cst.S_TYPE.Contains("鍙枡鍑哄簱浠诲姟"))
+                                {
+                                    var bo = int.TryParse(mst.S_OP_DEF_CODE, out int mesId);
+                                    if (bo) 
+                                    {
+                                        var mesTask = WMSHelper.GetLjMesTaskById(mesId);
+                                        var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE);
+                                        if (cntrItemRels != null && cntrItemRels.Count > 0)
+                                        {
+                                            if (cntrItemRels[0].S_ITEM_STATE == "2")
+                                            {
+                                                mesTask.AWAIT_MSG = "鐗╂枡妫�獙鐘舵�涓轰笉鍚堟牸锛岄噸鏂板彨鏂欎腑";
+                                                WMSHelper.updateLjMesTask(mesTask);
+
+                                                // 涓嶅悎鏍煎搧鍥炲簱
+                                                ApiHelper.rejectReturnStock(mst, cst);
+                                            }
+                                        }
+
+                                        // 濡傛灉浣滀笟鍚嶇О涓烘垚鍨嬫満鍙枡鍑哄簱浠诲姟锛屽垯瑙﹀彂浣欐枡/绌烘墭鎼繍浠诲姟
+                                        var sideLocConfig = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC);
+                                        ApiHelper.returnMaterialOrEmptyTray(sideLocConfig.S_RETURN_LOC_CODE, sideLocConfig.EQP);
+                                    } 
+                                }
                             }
                         }
                         else
                         {
-                            WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"AGV浠诲姟鐘舵�鍥炴姤锛屼綔涓氬彿:{cst.S_OP_CODE}锛屾湭鏌ヨ鍒颁綔涓�,"AGV");
+                            WMSHelper.addAlarmRecord("绯荤粺閿欒", "楂�, $"AGV浠诲姟鐘舵�鍥炴姤锛屼綔涓氬彿:{cst.S_OP_CODE}锛屾湭鏌ヨ鍒颁綔涓�, "AGV");
                         }
                     }
                     else

--
Gitblit v1.9.1