From 23ee356c6f260ecc1a48bbb8bd60932b979e4698 Mon Sep 17 00:00:00 2001
From: zhao
Date: 星期五, 02 七月 2021 16:22:19 +0800
Subject: [PATCH] 成型机带束出入库

---
 HH.WMS.BLL/Pda/ZCBLL.cs |  747 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 550 insertions(+), 197 deletions(-)

diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs
index c24acb9..16613d1 100644
--- a/HH.WMS.BLL/Pda/ZCBLL.cs
+++ b/HH.WMS.BLL/Pda/ZCBLL.cs
@@ -907,11 +907,18 @@
 
                         #region 绌烘墭鍥炲簱
 
+                        #region 璁板綍
+
                         else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_RECORD)
                         {
                             // 鍙敤浜庤褰�                             // 鍦ㄥ悓涓�嚎杈硅揣浣嶇殑婊℃墭鍑哄簱浠诲姟瀹屾垚鍚庢墽琛�                         }
+
+                        #endregion
+
+                        #region 绌烘墭鍏ュ簱
+
                         else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_KTHK_KTRK)
                         {
                             // 绌烘墭鍏ュ簱鐨勬帴椹充綅
@@ -945,6 +952,8 @@
 
                         #endregion
 
+                        #endregion
+
                         #region 婊℃墭鍑哄簱
 
                         else if (task.CN_S_EXT3 == TaskSectionConstants.CXJ_MTCK)
@@ -972,214 +981,69 @@
 
                         #endregion
 
-                        continue;
+                        #region 甯︽潫
 
-                        //鏈墽琛岃〃绀虹涓�釜浠诲姟
-                        if (task.CN_S_STATE == Constants.TaskState_NoExecuted)
+                        #region 鍗婃垚鍝�绌烘墭鍥炲簱
+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.DS_BCPKTHK)
                         {
-                            //绔嬪簱璐т綅
-                            string lkBit = string.Empty;
-                            //鏍规嵁浠诲姟绫诲瀷鍒ゆ柇绔嬪簱璐т綅
-                            if (task.CN_S_TASK_TYPE == Constants.Out)
+                            // 甯︽潫鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
                             {
-                                lkBit = task.CN_S_START_BIT;
+                                // 鍒涘缓绗竴鏉″瓙浠诲姟
+                                ExecDS_BCPKTHK_AddSub1(task, connectBit);
                             }
-                            else if (task.CN_S_TASK_TYPE == Constants.In)
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_1)
                             {
-                                lkBit = task.CN_S_END_BIT;
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                ExecDS_BCPKTHK_Sub1(task, connectBit);
                             }
-                            else
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.CXJ_BCPHK_SUB_2)
                             {
-                                throw new Exception("鑷浠诲姟浠诲姟绫诲瀷涓嶆纭�);
+                                // 鎵ц绗簩鏉″瓙浠诲姟
+                                ExecDS_BCPKTHK_Sub2(task, connectBit);
                             }
-
-                            var locationBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
-                            {
-                                CN_S_LOCATION_CODE = lkBit
-                            });
-                            if (locationBit == null)
-                                throw new Exception("鏈壘鍒扮珛搴撹揣浣嶏細" + lkBit);
-                            var _bit = connectBits.Find(f => f.tunnel == Util.ToString(locationBit.CN_S_ROADWAY).Trim());
-                            if (_bit == null)
-                                throw new Exception("鏈壘鍒伴厤缃贩閬擄細" + locationBit.CN_S_ROADWAY + "鐨勬帴椹充綅");
-
-                            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 + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
-
-                            //璧嬪�鎺ラ┏浣�-                            task.CN_S_CONNECT_BIT = _bit.bit;
-
-                            //string postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_TransTaskNo + "\",\"orgId\":\"\",\"orgFlag\":\"0\"}";
-                            //string taskNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
-                            //if (string.IsNullOrEmpty(taskNo))
-                            //    throw new Exception("浠诲姟鍙风敓鎴愬け璐ワ紝璇锋鏌ュ湪AUTOBOM涓槸鍚﹂厤缃浆杩愪换鍔″彿鐢熸垚瑙勫垯锛�);
-                            string taskNo = task.CN_S_TASK_NO + "_1";
-                            //鍒涘缓绗竴涓换鍔�-                            TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
-                            {
-                                CN_S_TASK_NO = taskNo,
-                                CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
-                                CN_S_START_BIT = task.CN_S_START_BIT,
-                                CN_S_END_BIT = task.CN_S_CONNECT_BIT,
-                                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_END_AREA = connectBit.CN_S_AREA_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_C_IS_AUTO = transport.CN_C_IS_AUTO,
-                                CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_LG : Constants.TaskFlag_AGV,
-                                //CN_C_START_IS_CONTROL_QTY = transport.CN_C_START_IS_CONTROL_QTY,
-                                //CN_C_END_IS_CONTROL_QTY = transport.CN_C_END_IS_CONTROL_QTY,
-                                //CN_S_START_CONTROL_INV = transport.CN_S_START_CONTROL_INV,
-                                //CN_S_END_CONTROL_INV = transport.CN_S_END_CONTROL_INV,
-                                //CN_S_START_AREA_TYPE = transport.CN_S_START_AREA_TYPE,
-                                //CN_S_END_AREA_TYPE = transport.CN_S_END_AREA_TYPE,
-                            };
-                            var or = UseTransaction(trans =>
-                            {
-                                //澧炲姞瀛愪换鍔�-                                CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity, trans);
-                                //鏇存柊鎺ラ┏浣嶇姸鎬�-                                CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                                {
-                                    CN_S_LOCATION_STATE = Constants.Location_State_OutLock
-                                }, new
-                                {
-                                    CN_S_LOCATION_CODE = taskEntity.CN_S_END_BIT
-                                }, trans);
-                                // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�-                                CreateDapperDAL<TN_WM_TASKEntity>().Update(new
-                                {
-                                    CN_S_CONNECT_BIT = task.CN_S_CONNECT_BIT,
-                                    CN_S_STATE = Constants.TaskState_Executing
-                                }, new
-                                {
-                                    CN_S_TASK_NO = task.CN_S_TASK_NO
-                                }, trans);
-                                //绔嬪簱浠诲姟  闇�璋冪敤wcs鎺ュ彛
-                                if (taskEntity.CN_S_TASK_FLAG == Constants.TaskFlag_LG)
-                                {
-                                    //to do...
-                                    #region 寰呮祴璇�-                                    //OperateResult re = new OtherSysApi().SendWcsCreateTask(taskEntity, _bit);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
-                                    #endregion
-                                }
-                                else//agv浠诲姟
-                                {
-                                    //OperateResult re = new OtherSysApi().SendAmsCreateTask(taskEntity);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
-                                }
-                            });
-                            if (!or.Success) throw new Exception(or.Msg);
                         }
-                        else//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔�+                        else if (task.CN_S_EXT3 == TaskSectionConstants.DS_BCPKTHK_SECOND)
                         {
-                            //string postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_TransTaskNo + "\",\"orgId\":\"\",\"orgFlag\":\"0\"}";
-                            //string taskNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
-                            //if (string.IsNullOrEmpty(taskNo))
-                            //    throw new Exception("浠诲姟鍙风敓鎴愬け璐ワ紝璇锋鏌ュ湪AUTOBOM涓槸鍚﹂厤缃浆杩愪换鍔″彿鐢熸垚瑙勫垯锛�);
-                            string taskNo = task.CN_S_TASK_NO + "_2";
-                            var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                            // 甯︽潫鍏ュ簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSRK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
                             {
-                                CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT
-                            });
-                            var _bit = connectBits.Find(f => f.tunnel == Util.ToString(connectBit.CN_S_ROADWAY).Trim());
-                            if (_bit == null)
-                                throw new Exception("鏈壘鍒伴厤缃贩閬擄細" + connectBit.CN_S_ROADWAY + "鐨勬帴椹充綅");
-                            //鍒涘缓绗簩涓换鍔�-                            TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
-                            {
-                                CN_S_TASK_NO = taskNo,
-                                CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
-                                CN_S_START_BIT = task.CN_S_CONNECT_BIT,
-                                CN_S_END_BIT = task.CN_S_END_BIT,
-                                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_END_AREA = task.CN_S_END_AREA,
-                                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_C_IS_AUTO = transport.CN_C_IS_AUTO,
-                                CN_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_AGV : Constants.TaskFlag_LG,
-                                //CN_C_START_IS_CONTROL_QTY = transport.CN_C_START_IS_CONTROL_QTY,
-                                //CN_C_END_IS_CONTROL_QTY = transport.CN_C_END_IS_CONTROL_QTY,
-                                //CN_S_START_CONTROL_INV = transport.CN_S_START_CONTROL_INV,
-                                //CN_S_END_CONTROL_INV = transport.CN_S_END_CONTROL_INV,
-                                //CN_S_START_AREA_TYPE = transport.CN_S_START_AREA_TYPE,
-                                //CN_S_END_AREA_TYPE = transport.CN_S_END_AREA_TYPE,
-                            };
-
-                            var or = UseTransaction(trans =>
-                            {
-                                //澧炲姞瀛愪换鍔�-                                CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity, trans);
-                                //鏇存柊鎺ラ┏浣嶇姸鎬�-                                CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                                {
-                                    CN_S_LOCATION_STATE = Constants.Location_State_InLock
-                                }, new
-                                {
-                                    CN_S_LOCATION_CODE = taskEntity.CN_S_START_BIT
-                                }, trans);
-                                // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�-                                CreateDapperDAL<TN_WM_TASKEntity>().Update(new
-                                {
-                                    CN_S_STATE = Constants.TaskState_Executing
-                                }, new
-                                {
-                                    CN_S_TASK_NO = task.CN_S_TASK_NO
-                                }, trans);
-
-                                //绔嬪簱浠诲姟  闇�璋冪敤wcs鎺ュ彛
-                                if (taskEntity.CN_S_TASK_FLAG == Constants.TaskFlag_LG)
-                                {
-                                    //to do...
-                                    #region 寰呮祴璇�-                                    //OperateResult re = new OtherSysApi().SendWcsCreateTask(taskEntity, _bit);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
-                                    #endregion
-                                }
-                                else//agv浠诲姟
-                                {
-                                    //OperateResult re = new OtherSysApi().SendAmsCreateTask(taskEntity);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
-                                }
-                            });
-                            if (!or.Success) throw new Exception(or.Msg);
+                                // 鍒涘缓绗簩鏉″瓙浠诲姟
+                                ExecDS_BCPKTHK_AddSub2(task, connectBit);
+                            }
                         }
-                        ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛"));
+
+                        #endregion
+
+                        #region 婊℃墭鍑哄簱
+
+                        else if (task.CN_S_EXT3 == TaskSectionConstants.DS_MTCK)
+                        {
+                            // 甯︽潫鍑哄簱鐨勬帴椹充綅
+                            var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.DSCK);
+                            if (task.CN_S_EXT2 == TaskFlagConstants.ROOT)
+                            {
+                                // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�+                                or = ExecCXJ_MTCK_Add(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.DS_MTCK_SUB_1)
+                            {
+                                // 鎵ц绗竴鏉″瓙浠诲姟
+                                or = ExecCXJ_MTCK_Sub1(task, connectBit);
+                            }
+                            else if (task.CN_S_EXT2 == TaskFlagConstants.DS_MTCK_SUB_2)
+                            {
+                                // 鎵ц绗簩鏉′换鍔�+                                or = ExecCXJ_MTCK_Sub2(task, connectBit);
+                            }
+                        }
+
+                        #endregion
+
+                        #endregion
                     }
                     catch (Exception ex)
                     {
@@ -1233,8 +1097,10 @@
                             section = TaskSectionConstants.CXJ_MTCK;
                             break;
                         case "5":
+                            section = TaskSectionConstants.DS_BCPKTHK;
                             break;
                         case "6":
+                            section = TaskSectionConstants.DS_MTCK;
                             break;
                     }
                     // 鍒涘缓WMS涓讳换鍔�@@ -1952,7 +1818,7 @@
             return or;
         }
         /// <summary>
-        /// 鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撶殑绗竴鏉″瓙浠诲姟
+        /// 鎵ц鎴愬瀷鏈�鍗婃垚鍝佸洖搴撶殑绗簩鏉″瓙浠诲姟
         /// </summary>
         /// <param name="task"></param>
         /// <param name="connectBit"></param>
@@ -2471,9 +2337,458 @@
 
         #region 鍗婃垚鍝佸強绌烘墭鍥炲簱
 
+        /// <summary>
+        /// 鍒涘缓 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱 瀛愪换鍔′竴
+        /// </summary>
+        public OperateResult ExecDS_BCPKTHK_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.DS_BCPKTHK_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 ExecDS_BCPKTHK_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.DS_BCPKTHK_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 ExecDS_BCPKTHK_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 ExecDS_BCPKTHK_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 ExecDS_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.DS_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.DS_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 ExecDS_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 ExecDS_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
 
@@ -2602,6 +2917,23 @@
         public static string CXJ_KTRK = "鎴愬瀷鏈�绌烘墭鍏ュ簱";
 
         #endregion
+
+        #region 甯︽潫
+
+        /// <summary>
+        /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱
+        /// </summary>
+        public static string DS_BCPKTHK = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱";
+        /// <summary>
+        /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵
+        /// </summary>
+        public static string DS_BCPKTHK_SECOND = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-绗簩闃舵";
+        /// <summary>
+        /// 甯︽潫-婊℃墭鍑哄簱
+        /// </summary>
+        public static string DS_MTCK = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱";
+
+        #endregion
     }
 
     /// <summary>
@@ -2667,5 +2999,26 @@
         public static string CXJ_MTCK_SUB_2 = "鎴愬瀷鏈�婊℃墭鍑哄簱-瀛愪换鍔′簩";
 
         #endregion
+
+        #region 甯︽潫
+
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′竴
+        /// </summary>
+        public static string DS_BCPKTHK_SUB_1 = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′簩
+        /// </summary>
+        public static string DS_BCPKTHK_SUB_2 = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱-瀛愪换鍔′簩";
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′竴
+        /// </summary>
+        public static string DS_MTCK_SUB_1 = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′竴";
+        /// <summary>
+        /// 鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′簩
+        /// </summary>
+        public static string DS_MTCK_SUB_2 = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱-瀛愪换鍔′簩";
+
+        #endregion
     }
 }

--
Gitblit v1.9.1