From 081df17b8cc4a6e7e4f4e1e1887f24810e3ec2f9 Mon Sep 17 00:00:00 2001
From: zhao
Date: 星期五, 02 七月 2021 09:25:37 +0800
Subject: [PATCH] 成型机出入库

---
 HH.WMS.BLL/Pda/ZCBLL.cs | 1587 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,583 insertions(+), 4 deletions(-)

diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs
index 2fcedf5..c24acb9 100644
--- a/HH.WMS.BLL/Pda/ZCBLL.cs
+++ b/HH.WMS.BLL/Pda/ZCBLL.cs
@@ -783,24 +783,197 @@
         {
             try
             {
-                //鍙栨湭鎵ц鐨勮嚜绠′换鍔�+                //鍙栨湭鎵ц銆佸畬鎴愪竴鍗娿�瀹屾垚閮ㄥ垎鐨勮嚜绠′换鍔�                 var tasks = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetList(new
                 {
                     CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
-                    CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf }
+                    CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf, Constants.TaskState_CompletePart }
                 });
 
+                // 鎺ラ┏浣嶉厤缃�                 var connectBitStr = JsonHelper.GetValue("connectBit");
                 if (string.IsNullOrEmpty(connectBitStr))
                     throw new Exception("鏈壘鍒伴厤缃細connectBit");
-
-                var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr);
 
                 List<OperateResult> ors = new List<OperateResult>();
                 foreach (var task in tasks)
                 {
                     try
                     {
+                        var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr);
+
+                        OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+                        #region 鍗婃垚鍝�+
+                        #region 绌烘墭鍑哄簱
+
+                        if (task.CN_S_EXT3 == TaskSectionConstants.BCP_KTCK)
+                        {
+                            // 绌烘墭鍑哄簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTCK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�+                                or = ExecBCP_KTCK_Add(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                or = ExecBCP_KTCK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_KTCK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉′换鍔�+                                or = ExecBCP_KTCK_Sub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #region 婊℃墭鍏ュ簱
+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK)
+                        {
+                            // 婊℃墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗竴鏉″瓙浠诲姟
+                                or = ExecBCP_MTRK_AddSub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                or = ExecBCP_MTRK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.BCP_MTRK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉″瓙浠诲姟
+                                or = ExecBCP_MTRK_Sub2(task, connectBit);
+                            }
+                        }
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK_SECOND)
+                        {
+                            // 婊℃墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗簩鏉″瓙浠诲姟
+                                or = ExecBCP_MTRK_AddSub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #endregion
+
+                        #region 鎴愬瀷鏈�+
+                        #region 鍗婃垚鍝佸洖搴�+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_BCPHK)
+                        {
+                            // 婊℃墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗竴鏉″瓙浠诲姟
+                                ExecCXJ_BCPHK_AddSub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                ExecCXJ_BCPHK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉″瓙浠诲姟
+                                ExecCXJ_BCPHK_Sub2(task, connectBit);
+                            }
+                        }
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_BCPHK_SECOND)
+                        {
+                            // 婊℃墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗簩鏉″瓙浠诲姟
+                                ExecCXJ_BCPHK_AddSub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #region 绌烘墭鍥炲簱
+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_RECORD)
+                        {
+                            // 鍙敤浜庤褰�+                            // 鍦ㄥ悓涓�嚎杈硅揣浣嶇殑婊℃墭鍑哄簱浠诲姟瀹屾垚鍚庢墽琛�+                        }
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_KTRK)
+                        {
+                            // 绌烘墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗竴鏉″瓙浠诲姟
+                                ExecCXJ_KTHK_KTRK_AddSub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                ExecCXJ_KTHK_KTRK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉″瓙浠诲姟
+                                ExecCXJ_KTHK_KTRK_Sub2(task, connectBit);
+                            }
+                        }
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_KTRK_SECOND)
+                        {
+                            // 绌烘墭鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓绗簩鏉″瓙浠诲姟
+                                ExecCXJ_KTHK_KTRK_AddSub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #region 婊℃墭鍑哄簱
+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_MTCK)
+                        {
+                            // 婊℃墭鍑哄簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTCK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�+                                or = ExecCXJ_MTCK_Add(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                or = ExecCXJ_MTCK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_MTCK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉′换鍔�+                                or = ExecCXJ_MTCK_Sub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #endregion
+
+                        continue;
+
                         //鏈墽琛岃〃绀虹涓�釜浠诲姟
                         if (task.CN_S_STATE == Constants.TaskState_NoExecuted)
                         {
@@ -1043,6 +1216,27 @@
                     // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 缁堢偣璐т綅
                     AutoBomLocationEntity end_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_To);
 
+                    // 涓讳换鍔℃墽琛屾祦绋嬩腑鐨勮捣濮嬮樁娈�+                    string section = "";
+                    switch (task.BUSI_TYPE)
+                    {
+                        case "1":
+                            section = TaskSectionConstants.BCP_KTCK;
+                            break;
+                        case "2":
+                            section = TaskSectionConstants.CXJ_BCPHK;
+                            break;
+                        case "3":
+                            section = TaskSectionConstants.CXJ_KTHK_RECORD;
+                            break;
+                        case "4":
+                            section = TaskSectionConstants.CXJ_MTCK;
+                            break;
+                        case "5":
+                            break;
+                        case "6":
+                            break;
+                    }
                     // 鍒涘缓WMS涓讳换鍔�                     TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
                     {
@@ -1063,6 +1257,9 @@
                         CN_T_MODIFY = DateTime.Now,
                         CN_S_REMARK = "",
                         CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                        CN_S_EXT1 = "",
+                        CN_S_EXT2 = TaskFlagConstants.ROOT,
+                        CN_S_EXT3 = section
                     };
                     UseTransaction(trans =>
                     {
@@ -1088,5 +1285,1387 @@
                 Log.DomainInfo("ExecTransferTask", JsonConvert.SerializeObject(ors));
             }
         }
+
+        #region 璐т綅鐘舵�
+
+        // 鎺ラ┏浣嶉攣瀹氱姸鎬侊細棰勫叆搴撻攣瀹氥�棰勫嚭搴撻攣瀹�+        // 鎺ラ┏浣嶇┖闂茬姸鎬侊細姝e父
+        // 鍑嗗鐐圭姸鎬佸悓鎺ラ┏浣�+        // 绔嬪簱閿佸畾鐘舵�锛� 棰勫叆搴撻攣瀹氥�棰勫嚭搴撻攣瀹�+        // 绔嬪簱绌洪棽鐘舵�锛� 绌�鍏ュ簱鍓�銆佹弧(鍑哄簱鍓�
+
+        // 鍒涘缓浠诲姟鍓嶃�鎵ц浠诲姟鍓�     妫�煡璐т綅鐘舵�
+        // 瀹屾垚浠诲姟鍚�                 娓呴櫎璐т綅鐘舵�
+        // 鎵ц澶辫触鍚�                 濡備綍澶勭悊?
+
+        #endregion
+
+        #region 鍗婃垚鍝�+
+        #region 绌烘墭鍑哄簱
+
+        /// <summary>
+        /// 鍒涘缓绌烘墭鍑哄簱骞惰瀛愪换鍔�+        /// </summary>
+        public OperateResult ExecBCP_KTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 绌烘墭鍑哄簱鍜屾弧鎵樺叆搴撴槸鍙嶅悜鐨�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+                // 鍑嗗鐐�+                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.readybit
+                });
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                if (readyBit == null)
+                    throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit);
+                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 绔嬪簱->鎺ラ┏浣�+                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = task.CN_S_END_AREA,
+                    CN_S_START_BIT = task.CN_S_END_BIT,
+                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_1,
+                    CN_S_EXT3 = ""
+                };
+                // 鍑嗗鐐�>绾胯竟
+                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = readyBit.CN_S_AREA_CODE,
+                    CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE,
+                    CN_S_END_AREA = task.CN_S_START_AREA,
+                    CN_S_END_BIT = task.CN_S_START_BIT,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_2,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′竴
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 鍒涘缓鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′簩
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑 璁板綍鎺ラ┏浣�+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing,
+                        CN_S_CONNECT_BIT = bit.bit
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔″け璐ワ紝涓讳换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+        /// <summary>
+        /// 鎵ц绌烘墭鍑哄簱鐨勭涓�潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        public OperateResult ExecBCP_KTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 绔嬪簱 棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans);
+                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Wcs浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1));
+                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1);
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+        /// <summary>
+        /// 鎵ц绌烘墭鍑哄簱鐨勭浜屾潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="connectBit"></param>
+        /// <returns></returns>
+        public OperateResult ExecBCP_KTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣嶇殑鍑嗗鐐硅揣浣�+                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.readybit
+                });
+                if (readyBit == null)
+                    throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit);
+                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = bit.readybit }, trans);
+                    // 绾胯竟璐т綅涓嶇鎺�+
+                    // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Ams浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2));
+                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+
+        #endregion
+
+        #region 婊℃墭鍏ュ簱
+
+        /// <summary>
+        /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔′竴
+        /// </summary>
+        public OperateResult ExecBCP_MTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 绾胯竟->鎺ラ┏浣�+                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_3",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = task.CN_S_START_AREA,
+                    CN_S_START_BIT = task.CN_S_START_BIT,
+                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_1,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′竴
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+        /// <summary>
+        /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔′簩
+        /// </summary>
+        public OperateResult ExecBCP_MTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 鎺ラ┏浣�>绔嬪簱
+                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_4",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_S_END_AREA = task.CN_S_END_AREA,
+                    CN_S_END_BIT = task.CN_S_END_BIT,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_2,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓婊℃墭鍏ュ簱瀛愪换鍔′簩
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+
+        /// <summary>
+        /// 鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱鐨勭涓�潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        public OperateResult ExecBCP_MTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 绾胯竟璐т綅涓嶇鎺�+
+                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 瀛愪换鍔′竴鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Ams浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1));
+                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+        /// <summary>
+        /// 鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱鐨勭浜屾潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="connectBit"></param>
+        /// <returns></returns>
+        public OperateResult ExecBCP_MTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 绔嬪簱棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
+
+                    // 瀛愪换鍔′簩鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Wcs浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2));
+                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+
+        #endregion
+
+        #endregion
+
+        #region 鎴愬瀷鏈�+
+        #region 鍗婃垚鍝佸洖搴�+
+        /// <summary>
+        /// 鍒涘缓 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴
+        /// </summary>
+        public OperateResult ExecCXJ_BCPHK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 绾胯竟->鎺ラ┏浣�+                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = task.CN_S_START_AREA,
+                    CN_S_START_BIT = task.CN_S_START_BIT,
+                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_1,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟涓�+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟涓�け璐ワ紝浠诲姟缂栧彿=" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+        /// <summary>
+        /// 鍒涘缓 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′簩
+        /// </summary>
+        public OperateResult ExecCXJ_BCPHK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 鎺ラ┏浣�>绔嬪簱
+                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_S_END_AREA = task.CN_S_END_AREA,
+                    CN_S_END_BIT = task.CN_S_END_BIT,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_2,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟浜�+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟浜屽け璐ワ紝浠诲姟缂栧彿=" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+
+        /// <summary>
+        /// 鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撶殑绗竴鏉″瓙浠诲姟
+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_BCPHK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 绾胯竟璐т綅涓嶇鎺�+
+                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 瀛愪换鍔′竴鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Ams浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1));
+                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟涓�け璐ワ紝浠诲姟缂栧彿=" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+        /// <summary>
+        /// 鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撶殑绗竴鏉″瓙浠诲姟
+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="connectBit"></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_BCPHK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 绔嬪簱棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
+
+                    // 瀛愪换鍔′簩鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Wcs浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2));
+                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撳瓙浠诲姟浜屽け璐ワ紝浠诲姟缂栧彿=" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+
+        #endregion
+
+        #region 婊℃墭鍑哄簱
+
+        /// <summary>
+        /// 鍒涘缓婊℃墭鍑哄簱骞惰瀛愪换鍔�+        /// </summary>
+        public OperateResult ExecCXJ_MTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+                // 鍑嗗鐐�+                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.readybit
+                });
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                if (readyBit == null)
+                    throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit);
+                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 绔嬪簱->鎺ラ┏浣�+                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = task.CN_S_START_AREA,
+                    CN_S_START_BIT = task.CN_S_START_BIT,
+                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_1,
+                    CN_S_EXT3 = ""
+                };
+                // 鍑嗗鐐�>绾胯竟
+                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = readyBit.CN_S_AREA_CODE,
+                    CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE,
+                    CN_S_END_AREA = task.CN_S_END_AREA,
+                    CN_S_END_BIT = task.CN_S_END_BIT,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_2,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔′竴
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 鍒涘缓鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔′簩
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑 璁板綍鎺ラ┏浣�+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing,
+                        CN_S_CONNECT_BIT = bit.bit
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔″け璐ワ紝涓讳换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+        /// <summary>
+        /// 鎵ц婊℃墭鍑哄簱鐨勭涓�潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_MTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 绔嬪簱 棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans);
+                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Wcs浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1));
+                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1);
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+        /// <summary>
+        /// 鎵ц婊℃墭鍑哄簱鐨勭浜屾潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="connectBit"></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_MTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣嶇殑鍑嗗鐐硅揣浣�+                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.readybit
+                });
+                if (readyBit == null)
+                    throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + bit.readybit);
+                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鍑嗗鐐硅揣浣嶏細" + bit.readybit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 鍑嗗鐐�棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = bit.readybit }, trans);
+                    // 绾胯竟璐т綅涓嶇鎺�+
+                    // 瀛愪换鍔�鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Ams浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2));
+                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�婊℃墭鍑哄簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+
+        #endregion
+
+        #region 鍥炴墭鍥炲簱-绌烘墭鍏ュ簱
+
+        /// <summary>
+        /// 鍒涘缓 鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱 瀛愪换鍔′竴
+        /// </summary>
+        public OperateResult ExecCXJ_KTHK_KTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 绾胯竟->鎺ラ┏浣�+                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = task.CN_S_START_AREA,
+                    CN_S_START_BIT = task.CN_S_START_BIT,
+                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_1,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′竴
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+        /// <summary>
+        /// 鍒涘缓 鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱 瀛愪换鍔′簩
+        /// </summary>
+        public OperateResult ExecCXJ_KTHK_KTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
+        {
+            OperateResult re = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                // 鎺ラ┏浣�>绔嬪簱
+                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
+                {
+                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
+                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
+                    CN_S_STATE = Constants.TaskState_NoExecuted,
+                    CN_S_BF_TASK_NO = "",
+                    CN_S_AF_TASK_NO = "",
+                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
+                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
+                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
+                    CN_S_END_AREA = task.CN_S_END_AREA,
+                    CN_S_END_BIT = task.CN_S_END_BIT,
+                    CN_N_PRIORITY = 1,
+                    CN_S_CREATOR = "sys",
+                    CN_S_CREATOR_BY = "sys",
+                    CN_T_CREATE = DateTime.Now,
+                    CN_T_MODIFY = DateTime.Now,
+                    CN_S_REMARK = "",
+                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
+                    CN_S_EXT1 = task.CN_S_TASK_NO,
+                    CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_2,
+                    CN_S_EXT3 = ""
+                };
+
+                UseTransaction(trans =>
+                {
+                    // 鍒涘缓鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′簩
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+
+                    // 涓讳换鍔$姸鎬佺疆涓烘墽琛屼腑
+                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
+                    if (!re.Success)
+                        throw new Exception(re.Msg);
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鍒涘缓鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+
+            return re;
+        }
+
+        /// <summary>
+        /// 鎵ц鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱鐨勭涓�潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name=""></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_KTHK_KTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 绾胯竟璐т綅涓嶇鎺�+
+                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 瀛愪换鍔′竴鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Ams浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task1));
+                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
+                    Log.Detail(LogType.LogPara("璋冪敤AMS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′竴澶辫触锛屼换鍔$紪鍙�" + task1.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+        /// <summary>
+        /// 鎵ц鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱鐨勭浜屾潯瀛愪换鍔�+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="connectBit"></param>
+        /// <returns></returns>
+        public OperateResult ExecCXJ_KTHK_KTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
+        {
+            OperateResult or = OperateResult.Error("鏈煡閿欒");
+
+            try
+            {
+                // 鎵ц鍓嶆鏌ヨ揣浣嶇姸鎬�+                // 鎺ラ┏浣�+                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                {
+                    CN_S_LOCATION_CODE = bit.bit
+                });
+
+                if (connectBit == null)
+                    throw new Exception("鏈壘鍒版帴椹充綅璐т綅锛� + bit.bit);
+                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                    throw new Exception("鎺ラ┏浣嶏細" + bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
+                UseTransaction(trans =>
+                {
+                    // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
+                    // 绔嬪簱棰勫叆搴撻攣瀹�+                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
+                    {
+                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
+                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
+
+                    // 瀛愪换鍔′簩鐘舵�缃负鎵ц涓�+                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
+                    {
+                        CN_S_STATE = Constants.TaskState_Executing
+                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
+                    // 鍙戦�Wcs浠诲姟
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task2));
+                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
+                    Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(or));
+                });
+            }
+            catch (Exception ex)
+            {
+                OperateResult.Error("鎵ц鎴愬瀷鏈�绌烘墭鍥炲簱-绌烘墭鍏ュ簱瀛愪换鍔′簩澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
+            }
+            return or;
+        }
+
+        #endregion
+
+        #endregion
+
+        #region 甯︽潫
+
+        #region 鍗婃垚鍝佸強绌烘墭鍥炲簱
+
+        #endregion
+
+        #region 婊℃墭鍑哄簱
+
+        #endregion
+
+        #endregion
+    }
+
+    /// <summary>
+    /// 閰嶇疆鏂囦欢涓殑甯搁噺瀹氫箟
+    /// </summary>
+    public class ConnectBitConstants
+    {
+        /// <summary>
+        /// 甯︽潫鍏ュ簱
+        /// </summary>
+        public static string DSRK = "甯︽潫鍏ュ簱";
+        /// <summary>
+        /// 甯︽潫鍑哄簱
+        /// </summary>
+        public static string DSCK = "甯︽潫鍑哄簱";
+        /// <summary>
+        /// 婊℃墭鍏ュ簱
+        /// </summary>
+        public static string MTRK = "婊℃墭鍏ュ簱";
+        /// <summary>
+        /// 绌烘墭鍑哄簱
+        /// </summary>
+        public static string KTCK = "绌烘墭鍑哄簱";
+        /// <summary>
+        /// 婊℃墭鍑哄簱
+        /// </summary>
+        public static string MTCK = "婊℃墭鍑哄簱";
+        /// <summary>
+        /// 绌烘墭鍏ュ簱
+        /// </summary>
+        public static string KTRK = "绌烘墭鍏ュ簱";
+    }
+
+    /// <summary>
+    /// 鎺ュ彛鍚屾鐨勪笟鍔$被鍨嬪畾涔�+    /// </summary>
+    public class BusinessTypeConstants
+    {
+        /// <summary>
+        /// 鍗婃垚鍝佹弧鎵樺叆搴�+        /// </summary>
+        public static string BCP_MTRK = "1";
+        /// <summary>
+        /// 鎴愬瀷鏈哄崐鎴愬搧鍥炲簱
+        /// </summary>
+        public static string CXJ_BCPHK = "2";
+        /// <summary>
+        /// 鎴愬瀷鏈虹┖妗跺洖搴�+        /// </summary>
+        public static string CXJ_KTHK = "3";
+        /// <summary>
+        /// 鎴愬瀷鏈烘弧鎵樺嚭搴�+        /// </summary>
+        public static string CXJ_MTCK = "4";
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉熷洖搴�+        /// </summary>
+        public static string CXJ_DSHK = "5";
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉熸弧鎵樺嚭搴�+        /// </summary>
+        public static string CXJ_DSMTCK = "6";
+    }
+
+    /// <summary>
+    /// 浠诲姟闃舵甯搁噺
+    /// </summary>
+    public class TaskSectionConstants
+    {
+        /// <summary>
+        /// 浠诲姟瀹屾垚
+        /// </summary>
+        public static string COMPLETE = "浠诲姟瀹屾垚";
+
+        #region 鍗婃垚鍝�+
+        /// <summary>
+        /// 鍗婃垚鍝�绌烘墭鍑哄簱
+        /// </summary>
+        public static string BCP_KTCK = "绌烘墭鍑哄簱";
+        /// <summary>
+        /// 鍗婃垚鍝�婊℃墭鍏ュ簱
+        /// </summary>
+        public static string BCP_MTRK = "鍗婃垚鍝�婊℃墭鍏ュ簱";
+        /// <summary>
+        /// 鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵
+        /// </summary>
+        public static string BCP_MTRK_SECOND = "鍗婃垚鍝�婊℃墭鍏ュ簱-绗簩闃舵";
+
+        #endregion
+
+        #region 鎴愬瀷鏈�+
+        /// <summary>
+        /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�+        /// </summary>
+        public static string CXJ_BCPHK = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�;
+
+        /// <summary>
+        /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵
+        /// </summary>
+        public static string CXJ_BCPHK_SECOND = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�绗簩闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵
+        /// </summary>
+        public static string CXJ_KTHK_RECORD = "鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵
+        /// </summary>
+        public static string CXJ_KTHK_KTRK = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-绗簩闃舵
+        /// </summary>
+        public static string CXJ_KTHK_KTRK_SECOND = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-绗簩闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�婊℃墭鍑哄簱
+        /// </summary>
+        public static string CXJ_MTCK = "鎴愬瀷鏈�婊℃墭鍑哄簱";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍏ュ簱
+        /// </summary>
+        public static string CXJ_KTRK = "鎴愬瀷鏈�绌烘墭鍏ュ簱";
+
+        #endregion
+    }
+
+    /// <summary>
+    /// 浠诲姟鏍囪瘑甯搁噺
+    /// </summary>
+    public class TaskFlagConstants
+    {
+        /// <summary>
+        /// 涓讳换鍔�+        /// </summary>
+        public static string ROOT = "涓讳换鍔�;
+
+        #region 鍗婃垚鍝�+
+        /// <summary>
+        /// 鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′竴
+        /// </summary>
+        public static string BCP_KTCK_SUB_1 = "鍗婃垚鍝�绌烘墭鍑哄簱-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鍗婃垚鍝�绌烘墭鍑哄簱瀛愪换鍔′簩
+        /// </summary>
+        public static string BCP_KTCK_SUB_2 = "鍗婃垚鍝�绌烘墭鍑哄簱-瀛愪换鍔′簩";
+        /// <summary>
+        /// 鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′竴
+        /// </summary>
+        public static string BCP_MTRK_SUB_1 = "鍗婃垚鍝�婊℃墭鍏ュ簱-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鍗婃垚鍝�婊℃墭鍏ュ簱瀛愪换鍔′簩
+        /// </summary>
+        public static string BCP_MTRK_SUB_2 = "鍗婃垚鍝�婊℃墭鍏ュ簱-瀛愪换鍔′簩";
+
+        #endregion
+
+        #region 鎴愬瀷鏈�+
+        /// <summary>
+        /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴
+        /// </summary>
+        public static string CXJ_BCPHK_SUB_1 = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′簩
+        /// </summary>
+        public static string CXJ_BCPHK_SUB_2 = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍浠诲姟
+        /// </summary>
+        public static string CXJ_KTHK_RECORD = "鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍浠诲姟";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′竴
+        /// </summary>
+        public static string CXJ_KTHK_KTRK_SUB_1 = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′簩
+        /// </summary>
+        public static string CXJ_KTHK_KTRK_SUB_2 = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵-瀛愪换鍔′簩";
+        /// <summary>
+        /// 鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′竴
+        /// </summary>
+        public static string CXJ_MTCK_SUB_1 = "鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′簩
+        /// </summary>
+        public static string CXJ_MTCK_SUB_2 = "鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′簩";
+
+        #endregion
     }
 }

--
Gitblit v1.9.1