From 46dc31d4e66e45cde693b9c909691a710fabfcee Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期四, 10 七月 2025 17:31:14 +0800
Subject: [PATCH] mes接口修改

---
 process/TaskProcess.cs |  265 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 261 insertions(+), 4 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index 8fff495..83a4897 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -955,7 +955,9 @@
             try
             {
                 var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv");
+
                 var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs");
+
                 if (task != null && wcsTask != null)
                 {
                     if (task.S_B_STATE.Trim() == "鏈墽琛�)
@@ -1340,7 +1342,262 @@
 
         }
 
-       
+
+        /// <summary>
+        /// 娣诲姞mes浠诲姟
+        /// </summary>
+        internal static Result addMesTaskInWorkArea(InWorkAreaParme model)
+        {
+            var result = new Result();
+            var TOOLSTYPE = "";
+            try
+            {
+                if (string.IsNullOrEmpty(model.BUSI_TYPE.ToString()))
+                {
+                    LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癇USI_TYPE銆�, "Mes浠诲姟涓嬪彂");
+                    throw new Exception("缂哄皯鍙傛暟BUSI_TYPE");
+                }
+                if (string.IsNullOrEmpty(model.PROD_NO))
+                {
+                    LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癙ROD_NO銆�, "Mes浠诲姟涓嬪彂");
+                    throw new Exception("缂哄皯鍙傛暟PROD_NO");
+                }
+                if (string.IsNullOrEmpty(model.Location_To))
+                {
+                    LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀粓鐐逛负绌恒�", "Mes浠诲姟涓嬪彂");
+                    throw new Exception("缂哄皯缁堢偣Location_To");
+                }
+                if (string.IsNullOrEmpty(model.CHECK_INFO))
+                {
+                    LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁癈HECK_INFO銆�, "Mes浠诲姟涓嬪彂");
+                    throw new Exception("缂哄皯鍙傛暟CHECK_INFO");
+                }
+                if (string.IsNullOrEmpty(model.task_no))
+                {
+                    LogHelper.Info("InWorkArea浠诲姟涓嬪彂澶辫触锛岀己灏戝弬鏁皌ask_no銆�, "Mes浠诲姟涓嬪彂");
+                    throw new Exception("缂哄皯鍙傛暟task_no");
+                }
+
+                if (model.Task_type==2)
+                {
+                    //鍛煎彨鑳舵枡鍑哄簱
+
+
+
+                  var   workFlow = TaskHelper.selectWorkFlowByType(model.BUSI_TYPE);
+
+                  
+
+
+                    if (workFlow == null)
+                    {
+                        LogHelper.Info($"InWorkArea浠诲姟涓嬪彂澶辫触锛孊USI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�, "Mes浠诲姟涓嬪彂");
+                        throw new Exception($"BUSI_TYpe:{model.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�);
+                    }
+                    else
+                    {
+                        LogHelper.Info($"浣滀笟娴佺▼淇℃伅" + JsonConvert.SerializeObject(workFlow), "Mes浠诲姟涓嬪彂");
+                    }
+
+                    //鍑哄簱浠诲姟
+
+                    //鎺ラ┏浣�+                    var connection = "";
+
+                    //鎺ラ┏浣嶅簱鍖�+                    var connectionArea = "";
+
+
+                    //鏌ユ壘缁欏畾缁堢偣
+                    var end = LocationHelper.GetLoc(model.Location_To);
+                    LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂");
+
+
+                    if (end == null)
+                    {
+                        LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To},娌℃壘鍒�, "Mes浠诲姟涓嬪彂");
+                        throw new Exception($"缁堢偣:{model.Location_To},娌℃壘鍒�);
+                    }
+
+
+                    var unlimitedLocation = TaskHelper.GetMesKtLoc();
+
+                    //鏍囪缁堢偣璐т綅鏄惁鍙互鏃犻檺鍒朵笅浠诲姟
+                    var endLocFlag = true;
+
+                    foreach (var item in unlimitedLocation)
+                    {
+                        //鍑哄簱缁堢偣璐т綅鍦ㄩ厤缃噷 鍙互鏃犻檺鍒朵笅浠诲姟
+                        if (item.Loc.Contains(model.Location_To))
+                        {
+                            endLocFlag = false;
+                            break;
+                        }
+                    }
+
+                    if (endLocFlag)
+                    {
+                        var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To);
+                        if (endTask != null)
+                        {
+                            LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}", "Mes浠诲姟涓嬪彂");
+                            throw new Exception($"缁堢偣:{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}");
+                        }
+                    }
+
+
+
+                    //鏌ユ壘璧风偣
+                    List<Location> strrtList;
+
+                    Location start = null;
+
+
+                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                    {
+                        strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                    }
+                    else
+                    {
+                        strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
+                    }
+
+
+
+                    if (workFlow.FLOWCODE == "9")
+                    {
+                            //鏍规嵁鍒跺搧缂栧彿瀵绘壘绔嬪簱鍖哄搴旂墿鏂欐墭鐩�+                            start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY, workFlow.CONNECTION);
+                            if (start == null)
+                            {
+                                strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
+                                var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA);
+                                LogHelper.Info($"InWorkArea婊℃墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂");
+                                if (itemFlag)
+                                {
+                                    result.errMsg = "婊℃墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
+                                    result.errCode = 2001;
+                                    result.success = true;
+                                    return result;
+                                }
+                            }
+
+
+                        LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂");
+
+                        if (start == null)
+                        {
+                            LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰簱鍖簕workFlow.STARTAREA},娌℃壘鍒拌捣鐐�, "Mes浠诲姟涓嬪彂");
+                            throw new Exception($"璧风偣搴撳尯{workFlow.STARTAREA},娌℃壘鍒拌捣鐐�);
+                        }
+
+
+
+
+                        //鑾峰彇鎵樼洏鐮�+                        var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE);
+
+                        if (workFlow.SENDWCS == "Y")
+                        {
+
+                            //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅
+                            var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
+                                 
+                            //鏍规嵁鎺ラ┏浣嶄换鍔℃暟閲忚幏鍙栧潎琛℃帴椹充綅闆嗗悎浼樺厛浠诲姟鏁板皯鐨勬帴椹充綅
+                            var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
+                            foreach (var item in balanceConnectionList)
+                            {
+                                if (item.loc.CONNEC_ROADWAY == start.N_ROADWAY)
+                                {
+                                    connection = item.loc.S_CODE;
+                                    connectionArea = item.loc.S_AREA_Name;
+                                    LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
+                                    break;
+                                }
+                            }
+
+                            if (connection == "")
+                            {
+                                LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂");
+                                throw new Exception($"InWorkArea鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
+                            }
+                        }
+
+
+                        //璧风偣缁堢偣鏌ユ壘鎴愬姛锛屽垱寤轰綔涓�+
+                        var taskType = int.Parse(workFlow.FLOWCODE);
+
+                        var operation = new WmsWork
+                        {
+                            // 浣滀笟鍙�+                            S_CODE = model.task_no,
+                            // 浣滀笟绫诲瀷
+                            N_TYPE = taskType,
+                            // 浣滀笟绫诲瀷
+                            S_TYPE = workFlow.FLOWNAME,
+                            // 璧风偣璐т綅
+                            S_START_LOC = start.S_CODE,
+                            // 璧风偣搴撳尯缂栫爜
+                            S_START_AREA = start.S_AREA_CODE,
+                            //鎺ラ┏浣�+                            CONNECTION = connection,
+                            // 缁堢偣璐т綅
+                            S_END_LOC = end.S_CODE,
+                            // 缁堢偣搴撳尯缂栫爜
+                            S_END_AREA = end.S_AREA_CODE,
+                            // 瀹瑰櫒缂栫爜
+                            S_CNTR_CODE = cntrCode,
+                            // 浣滀笟瀹氫箟鍚嶇О
+                            S_OP_DEF_NAME = workFlow.FLOWNAME,
+                            //浼樺厛绾�+                            N_PRIORITY = model.Priority,
+                            //宸ヨ绫诲瀷
+                            TOOLSTYPE = TOOLSTYPE,
+                            //璧风偣搴撳尯鍚嶇О
+                            S_START_AREA_NAME = start.S_AREA_Name,
+                            //璧风偣搴撳尯鍚嶇О
+                            S_END_AREA_NAME = end.S_AREA_Name,
+                            //璧风偣搴撳尯鍚嶇О
+                            CONNECTION_AREA = connectionArea
+                        };
+
+                        //鍒涘缓浣滀笟
+                        if (WMSHelper.CreateWmsWork(operation))
+                        {
+                            if (connection != "")
+                            {
+                                LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2);
+                                LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1);
+                                LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1);
+                            }
+
+
+                            LogHelper.Info($"InWorkArea鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂");
+                            result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛";
+                            result.errCode = 0;
+                            result.success = true;
+                            return result;
+                        }
+                        else
+                        {
+                            LogHelper.Info($"InWorkArea鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触", "Mes浠诲姟涓嬪彂");
+                            throw new Exception($"InWorkArea鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触");
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Info("InWorkArea浠诲姟涓嬪彂寮傚父" + ex.Message, "Mes浠诲姟涓嬪彂");
+                result.errMsg = "InWorkArea浠诲姟涓嬪彂寮傚父" + ex.Message;
+                result.errCode = 1;
+                result.success = false;
+                throw;
+            }
+
+            return result;
+        }
 
 
             /// <summary>
@@ -1572,7 +1829,7 @@
                         //}
 
 
-                        if (workFlow.FLOWCODE == "1" || workFlow.FLOWCODE == "2")
+                        if (workFlow.FLOWCODE == "1" || workFlow.FLOWCODE == "2" || workFlow.FLOWCODE == "5" || workFlow.FLOWCODE == "8" || workFlow.FLOWCODE == "11")
                         {
                             //婊℃墭鍏� 
@@ -1587,7 +1844,7 @@
                             }
 
                         }
-                        else if (workFlow.FLOWCODE == "3")
+                        else if (workFlow.FLOWCODE == "3" || workFlow.FLOWCODE == "10")
                         {
                             //绌烘墭鍏ョ珛搴撳尯
                             cntrCount = 0;
@@ -1848,7 +2105,7 @@
 
 
 
-                    if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4")
+                    if (workFlow.FLOWCODE == "9" || workFlow.FLOWCODE == "4" || workFlow.FLOWCODE == "6")
                     {
                         if (TOOLSTYPE == "85" || TOOLSTYPE == "95")
                         {

--
Gitblit v1.9.1