From b67787b031e357c60565d3e1aa8b829706e520e2 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期五, 11 七月 2025 17:30:56 +0800
Subject: [PATCH] Mes接口修改

---
 dispatch/WcsTask.cs |  304 +++++++++++++++++++++++++++-----------------------
 1 files changed, 164 insertions(+), 140 deletions(-)

diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs
index 0fdfb0d..d6c265a 100644
--- a/dispatch/WcsTask.cs
+++ b/dispatch/WcsTask.cs
@@ -41,79 +41,87 @@
             string Traycode = mst.S_CNTR_CODE;
             var isFu = "0";
 
-            var cntr = ContainerHelper.GetCntr(Traycode);
-
-            if (cntr!=null)
+            try
             {
-                if (cntr.N_DETAIL_COUNT>0)
+                var cntr = ContainerHelper.GetCntr(Traycode);
+
+                if (cntr != null)
                 {
-                    isFu = "1";
+                    if (cntr.N_DETAIL_COUNT > 0)
+                    {
+                        isFu = "1";
+                    }
                 }
-            }
-            var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE);
+                var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE);
 
-            
 
-            if (workFlow != null)
-            {
-                if (workFlow.INOROUT.Contains("鍏ュ簱"))
+
+                if (workFlow != null)
                 {
-                    Type = "1";
+                    if (workFlow.INOROUT.Contains("鍏ュ簱"))
+                    {
+                        Type = "1";
+                    }
+
+                    if (workFlow.INOROUT.Contains("鍑哄簱"))
+                    {
+                        Type = "2";
+                        var count = TaskHelper.GetConnectionTask(mst.S_END_LOC);
+                        if (count >= 2)
+                        {
+                            return false;
+                        }
+
+
+                    }
                 }
 
-                if (workFlow.INOROUT.Contains("鍑哄簱"))
+                if (mst.S_CNTR_CODE.Contains("KJZ"))
                 {
-                    Type = "2";
-                    var count = TaskHelper.GetConnectionTask(mst.S_END_LOC);
-                    if (count>=2)
+                    TrayType = "KJZ";
+                }
+
+                var interact = new
+                {
+                    requestPk = mst.S_CODE,//浠诲姟鍙�+                    contNo = Traycode,//鎵樼洏鍙�+                    contType = TrayType,//鎵樼洏绫诲瀷
+                    trkType = Type,//浠诲姟绫诲瀷
+                    trkPrty = mst.N_PRIORITY,//浠诲姟浼樺厛绾�+                    frmPos = mst.S_START_LOC,//璧峰浣嶇疆
+                    toPos = mst.S_END_LOC,//鐩殑鍦�+                    isFull = isFu,//绌烘墭 婊℃墭
+                    groupNo = Item?.S_ITEM_NAME,//鎼�缁勫彿
+                    clientCode = "WMS",//鎿嶄綔浜�+                    operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿
+                };
+                LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍦板潃淇℃伅:" + baseUrl + "receive", "绔嬪簱涓嬪彂浠诲姟");
+                LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "绔嬪簱涓嬪彂浠诲姟");
+                var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact));
+                LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "绔嬪簱涓嬪彂浠诲姟");
+                if (!string.IsNullOrEmpty(result))
+                {
+                    var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result);
+                    if (res.code == "0")
+                    {
+                        TaskHelper.UpdateStatus(mst, "宸叉帹閫�);
+                        return true;
+                    }
+                    else
                     {
                         return false;
                     }
-
-
-                }
-            }
-
-            if (mst.S_CNTR_CODE.Contains("KJZ"))
-            {
-                TrayType = "KJZ";
-            }
-           
-            var interact = new
-            {
-                requestPk = mst.S_CODE,//浠诲姟鍙�-                contNo = Traycode,//鎵樼洏鍙�-                contType = TrayType,//鎵樼洏绫诲瀷
-                trkType = Type,//浠诲姟绫诲瀷
-                trkPrty = mst.N_PRIORITY,//浠诲姟浼樺厛绾�-                frmPos = mst.S_START_LOC,//璧峰浣嶇疆
-                toPos = mst.S_END_LOC,//鐩殑鍦�-                isFull = isFu,//绌烘墭 婊℃墭
-                groupNo = Item?.S_ITEM_NAME,//鎼�缁勫彿
-                clientCode = "WMS",//鎿嶄綔浜�-                operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿
-            };
-            LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍦板潃淇℃伅:" + baseUrl + "receive", "绔嬪簱涓嬪彂浠诲姟");
-            LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "绔嬪簱涓嬪彂浠诲姟");
-            var result = apiHelper.Post(baseUrl + "receive", JsonConvert.SerializeObject(interact));
-            LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "绔嬪簱涓嬪彂浠诲姟");
-            if (!string.IsNullOrEmpty(result))
-            {
-                var res = JsonConvert.DeserializeObject<WcsTaskReturn>(result);
-                if (res.code == "0")
-                {
-                    TaskHelper.UpdateStatus(mst, "宸叉帹閫�);
-                    return true;
                 }
                 else
                 {
+                    LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅涓虹┖", "绔嬪簱涓嬪彂浠诲姟");
                     return false;
                 }
             }
-            else
+            catch (Exception)
             {
-                LogHelper.Info("Wcs绔嬪簱涓嬪彂浠诲姟 杩斿洖淇℃伅涓虹┖", "绔嬪簱涓嬪彂浠诲姟");
-                return false;
+
+                throw;
             }
         }
 
@@ -673,8 +681,7 @@
                                 RfidChek.S_RESULT = "RFID鏍¢獙澶辫触";
                                 if (WcsCancellTask(transportTask))
                                 {
-                                    ContainerHelper.delCntr(transportTask.S_CNTR_CODE);
-                                    ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE);
+                                   
                                     TaskHelper.Fail(transportTask);
                                     TaskProcess.OperateStatus(transportTask, 7);
 
@@ -721,6 +728,11 @@
                                         throw new Exception("淇敼浠诲姟琛ㄥけ璐�);
                                     }
                                     newDb.CommitTran();
+
+                                    var agvTask1 = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv");
+                                    TaskHelper.opMesTask(agvTask1, 3);
+                                    ContainerHelper.delCntr(transportTask.S_CNTR_CODE);
+                                    ContainerHelper.delCntrItem(transportTask.S_CNTR_CODE);
                                 }
                                 else {
                                     LogHelper.Info($"RFID鏍¢獙澶辫触锛岄�鐭cs鍙栨秷浠诲姟澶辫触", "Wcs浠诲姟鎵ц閫氱煡");
@@ -989,100 +1001,112 @@
             string bit = "";
             var Meshod = "";
             var newDb = new SqlHelper<object>().GetInstance();
-            var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList();
-            if (tac.Count() > 0)
+
+            try
             {
-                LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡");
-                return true;
-            }
-            switch (state)
-            {
-                case 1101:
-                    Type = "1";
-                    bit = mst.S_START_LOC;
-                    Meshod = "AgvRequest";
-                    break;
-                case 1102:
-                    Type = "1";
-                    bit = mst.S_START_LOC;
-                    Meshod = "Complete";
-                    break;
-                case 1103:
-                    Type = "2";
-                    bit = mst.S_END_LOC;
-                    Meshod = "AgvRequest";
-                    break;
-                case 1104:
-                    Type = "2";
-                    bit = mst.S_END_LOC;
-                    Meshod = "Complete";
-                    break;
-                case 7:
-                    Type = "5";
-                    if (mst.S_TYPE.Contains("鍑哄簱"))
-                    {
-                        bit = mst.S_START_LOC;
-                    }
-                    else {
-                        bit = mst.S_END_LOC;
-                    }
-
-                    //閫�簱鍙栨秷鍙慳gv璧风偣
-                    if (LocationHelper.GetErroArea(mst.S_END_AREA))
-                    {
-                        bit = mst.S_START_LOC;
-                    }
-
-
-                    Meshod = "AgvRequestCancel";
-                    break;
-            }
-
-
-
-
-            var interact = new
-            {
-                requestPk = mst.S_CODE,//浠诲姟鍙�-                trkType = Type,//浠诲姟绫诲瀷
-                method = Meshod,//API鍚嶇О
-                stnNo = bit,//鐩殑鍦扮珯鍙板彿
-                carNo = forkliftNo,// 杞﹀彿
-                clientCode = "WMS",//鎿嶄綔浜�-                operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿
-            };
-            LogHelper.Info("agv鎵ц閫氱煡 鍦板潃淇℃伅:" + baseUrl + "agvCallback", "agv鎵ц閫氱煡");
-            LogHelper.Info("agv鎵ц閫氱煡 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "agv鎵ц閫氱煡");
-            var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact));
-            LogHelper.Info("agv鎵ц閫氱煡 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "agv鎵ц閫氱煡");
-            if (!string.IsNullOrEmpty(result))
-            {
-                var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result);
-                if (res.code == "0")
+                var tac = newDb.Queryable<WcsSafety>().Where(a => a.TaskNo == mst.S_CODE && a.Sign == state).ToList();
+                if (tac.Count() > 0)
                 {
-                    WcsSafety Sign = new WcsSafety();
-                    Sign.TaskNo = mst.S_CODE;
-                    Sign.Sign = state;
-                    newDb.BeginTran();
-                    var B = newDb.Insertable(Sign).ExecuteCommand();
-                    if (B == 0)
-                    {
-                        newDb.RollbackTran();
-                    }
-                    newDb.CommitTran();
-                    LogHelper.Info("agv鎵ц閫氱煡鎴愬姛:", "agv鎵ц閫氱煡");
+                    LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡");
                     return true;
+                }
+                switch (state)
+                {
+                    case 1101:
+                        Type = "1";
+                        bit = mst.S_START_LOC;
+                        Meshod = "AgvRequest";
+                        break;
+                    case 1102:
+                        Type = "1";
+                        bit = mst.S_START_LOC;
+                        Meshod = "Complete";
+                        break;
+                    case 1103:
+                        Type = "2";
+                        bit = mst.S_END_LOC;
+                        Meshod = "AgvRequest";
+                        break;
+                    case 1104:
+                        Type = "2";
+                        bit = mst.S_END_LOC;
+                        Meshod = "Complete";
+                        break;
+                    case 7:
+                        Type = "5";
+                        if (mst.S_TYPE.Contains("鍑哄簱"))
+                        {
+                            bit = mst.S_START_LOC;
+                        }
+                        else
+                        {
+                            bit = mst.S_END_LOC;
+                        }
+
+                        //閫�簱鍙栨秷鍙慳gv璧风偣
+                        if (LocationHelper.GetErroArea(mst.S_END_AREA))
+                        {
+                            bit = mst.S_START_LOC;
+                        }
+
+
+                        Meshod = "AgvRequestCancel";
+                        break;
+                }
+
+
+
+
+                var interact = new
+                {
+                    requestPk = mst.S_CODE,//浠诲姟鍙�+                    trkType = Type,//浠诲姟绫诲瀷
+                    method = Meshod,//API鍚嶇О
+                    stnNo = bit,//鐩殑鍦扮珯鍙板彿
+                    carNo = forkliftNo,// 杞﹀彿
+                    clientCode = "WMS",//鎿嶄綔浜�+                    operationTime = DateTime.Now.ToString()//鎿嶄綔鏃堕棿
+                };
+                LogHelper.Info("agv鎵ц閫氱煡 鍦板潃淇℃伅:" + baseUrl + "agvCallback", "agv鎵ц閫氱煡");
+                LogHelper.Info("agv鎵ц閫氱煡 鍙傛暟淇℃伅:" + JsonConvert.SerializeObject(interact), "agv鎵ц閫氱煡");
+                var result = apiHelper.Post(baseUrl + "agvCallback", JsonConvert.SerializeObject(interact));
+                LogHelper.Info("agv鎵ц閫氱煡 杩斿洖淇℃伅:" + JsonConvert.SerializeObject(result), "agv鎵ц閫氱煡");
+                if (!string.IsNullOrEmpty(result))
+                {
+                    var res = JsonConvert.DeserializeObject<WcsTaskCallBack>(result);
+                    if (res.code == "0")
+                    {
+                        WcsSafety Sign = new WcsSafety();
+                        Sign.TaskNo = mst.S_CODE;
+                        Sign.Sign = state;
+                        newDb.BeginTran();
+                        var B = newDb.Insertable(Sign).ExecuteCommand();
+                        if (B == 0)
+                        {
+                            newDb.RollbackTran();
+                        }
+                        newDb.CommitTran();
+                        LogHelper.Info("agv鎵ц閫氱煡鎴愬姛:", "agv鎵ц閫氱煡");
+                        return true;
+                    }
+                    else
+                    {
+                        return false;
+                    }
                 }
                 else
                 {
+                    LogHelper.Info("agv鎵ц閫氱煡鎴愬姛 杩斿洖淇℃伅涓虹┖", "agv鎵ц閫氱煡");
                     return false;
                 }
             }
-            else
+            catch (Exception)
             {
-                LogHelper.Info("agv鎵ц閫氱煡鎴愬姛 杩斿洖淇℃伅涓虹┖", "agv鎵ц閫氱煡");
-                return false;
+
+                throw;
             }
+
+           
 
         }
 
@@ -1351,7 +1375,7 @@
         public string code { get; set; }
         public string msg { get; set; }
         public bool success { get; set; }
-        public DataItem lastTime { get; set; }
+        public DateTime lastTime { get; set; }
     }
 
     /// <summary>

--
Gitblit v1.9.1