From 0821715ebc11d3934d0594a1cc2c39686d808906 Mon Sep 17 00:00:00 2001
From: zhao
Date: 星期五, 09 七月 2021 14:12:43 +0800
Subject: [PATCH] 增加ChageWay接口

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

diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs
index ae9cbb5..afe1ceb 100644
--- a/HH.WMS.BLL/Pda/ZCBLL.cs
+++ b/HH.WMS.BLL/Pda/ZCBLL.cs
@@ -242,20 +242,6 @@
         /// <param name="transportReqs"></param>
         public List<OperateResult> ExecTransferTask(List<TN_MES_TASK> transportReqs)
         {
-            var mapStr = JsonHelper.GetValue("workFlowTransType");
-            if (string.IsNullOrEmpty(mapStr))
-                throw new Exception("鏈壘鍒伴厤缃細workFlowTransType");
-
-            var isEnableAms = new ZCTransferDto();
-            var _isEnableAmsStr = JsonHelper.GetValue("isSendAms");
-            if (!string.IsNullOrEmpty(_isEnableAmsStr))
-            {
-                isEnableAms = JsonConvert.DeserializeObject<ZCTransferDto>(_isEnableAmsStr);
-                isEnableAms = isEnableAms ?? new ZCTransferDto();
-            }
-
-            var workFlowTransType = JsonConvert.DeserializeObject<List<ZCTransferDto>>(mapStr);
-
             List<OperateResult> ors = new List<OperateResult>();
             if (transportReqs.Any())
             {
@@ -265,214 +251,209 @@
                     string endBit = req.Location_To;
 
                     string startArea = string.Empty, endArea = string.Empty;
-                    //鏍¢獙璧风偣
-                    if (!string.IsNullOrEmpty(startBit))
-                    {
-                        var _location = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
-                        {
-                            CN_S_LOCATION_CODE = startBit
-                        });
-                        if (_location == null)
-                        {
-                            ors.Add(OperateResult.Error("鏈壘鍒拌捣濮嬭揣浣嶏細" + startBit, req));
-                            continue;
-                        }
-                        startArea = Util.ToString(_location.CN_S_AREA_CODE).Trim();
-                    }
-                    //鏍¢獙缁堢偣
-                    if (!string.IsNullOrEmpty(endBit))
-                    {
-                        var _location = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
-                        {
-                            CN_S_LOCATION_CODE = endBit
-                        });
-                        if (_location == null)
-                        {
-                            ors.Add(OperateResult.Error("鏈壘鍒扮粓鐐硅揣浣嶏細" + endBit, req));
-                            continue;
-                        }
-                        endArea = Util.ToString(_location.CN_S_AREA_CODE).Trim();
-                    }
-                    if (string.IsNullOrEmpty(startArea) && string.IsNullOrEmpty(endArea))
-                    {
-                        ors.Add(OperateResult.Error("璧风偣缁堢偣涓嶅彲鍚屾椂涓虹┖"));
-                        continue;
-                    }
-                    //鎵句綔涓氳矾寰�-                    //var workRoute = BLLCreator.Create<TN_AB_B_WORK_AREA_PROBLL>().GetSingleRoute(startArea, endArea);
-                    //if (workRoute == null)
-                    //{
-                    //    ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req));
-                    //    continue;
-                    //}
 
-                    var workRoute = new TN_AB_B_WORK_AREA_PROEntity();
-                    var workRoutes = BLLCreator.Create<TN_AB_B_WORK_AREA_PROBLL>().GetRoute("", startArea, endArea);
-                    if (!workRoutes.Any())
+                    try
                     {
-                        ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req));
-                        continue;
-                    }
-                    else
-                    {
-                        workRoute = workRoutes[0];
-                        if (workRoutes.Count > 1)
+                        InWorkAreaEntity inModel = new InWorkAreaEntity();
+                        inModel.itemCode = req.PROD_NO;
+                        inModel.trayCode = req.TurnCardNum;
+                        inModel.priority = req.Priority;
+                        inModel.startBit = req.Location_From;
+                        inModel.endBit = req.Location_To;
+                        inModel.remark = "涓氬姟绫诲瀷锛� + req.BUSI_TYPE;
+
+                        OutWorkAreaEntity outModel = new OutWorkAreaEntity();
+                        outModel.itemCode = req.PROD_NO;
+                        outModel.trayCode = req.TurnCardNum;
+                        outModel.priority = req.Priority;
+                        outModel.startBit = req.Location_From;
+                        outModel.endBit = req.Location_To;
+                        outModel.remark = "涓氬姟绫诲瀷锛� + req.BUSI_TYPE;
+
+                        // 涓嬩竴姝ヨ鎵ц鐨勯樁娈�+                        string section = NextSection(req);
+                        bool needCreateTask = true;
+                        string direction = "";
+
+                        if (section == TaskSectionConstants.ERROR)
                         {
-                            if (workRoutes.Exists(e => Util.ToString(e.CN_S_TYPE_CODE) == "X6" || Util.ToString(e.CN_S_TYPE_CODE) == "X7"))
+                            // "鎵ц澶辫触锛孧ES浠诲姟涓氬姟绫诲瀷鎴栭樁娈典笉姝g‘"
+                            needCreateTask = false;
+                        }
+                        else if (string.IsNullOrEmpty(section))
+                        {
+                            needCreateTask = false;
+                        }
+                        else if (section == TaskSectionConstants.BCP_KTCK)
+                        {
+                            direction = Constants.Out;
+                        }
+                        else if (section == TaskSectionConstants.BCP_MTRK)
+                        {
+                            direction = Constants.In;
+                        }
+                        else if (section == TaskSectionConstants.CXJ_BCPHK)
+                        {
+                            direction = Constants.In;
+                        }
+                        else if (section == TaskSectionConstants.CXJ_KTHK_RECORD)
+                        {
+                            needCreateTask = false;
+                        }
+                        else if (section == TaskSectionConstants.CXJ_MTCK)
+                        {
+                            direction = Constants.Out;
+                        }
+                        else if (section == TaskSectionConstants.CXJ_KTHK_KTRK)
+                        {
+                            direction = Constants.In;
+                        }
+                        else if (section == TaskSectionConstants.DS_BCPKTHK)
+                        {
+                            direction = Constants.In;
+                        }
+                        else if (section == TaskSectionConstants.DS_MTCK)
+                        {
+                            direction = Constants.Out;
+                        }
+                        // 鏇存柊MES浠诲姟闃舵
+                        req.SECTION = section;
+
+                        var externalRes = new ExternalResponse();
+                        string taskNo = "";
+
+                        if (needCreateTask)
+                        {
+                            if (direction == Constants.In)
                             {
-                                if (string.IsNullOrEmpty(req.PROD_NO))
+                                //浼犻�鍙傛暟
+                                List<InWorkAreaEntity> inWorkAreaEntitys = new List<InWorkAreaEntity>();
+                                inWorkAreaEntitys.Add(inModel);
+
+                                try
                                 {
-                                    workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X6");
+                                    Log.Info("鍏ヤ綔涓氬尯寮�锛屼紶鍙傦細", JsonConvert.SerializeObject(inWorkAreaEntitys));
+                                    externalRes = BLLCreator.Create<WmsApiBaseBLL>().InWorkArea(inWorkAreaEntitys);
+                                    taskNo = inModel.taskNo;
                                 }
-                                else
+                                catch (Exception ex)
                                 {
-                                    workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X7");
+                                    Log.Error("鍏ヤ綔涓氬尯澶辫触锛屼紶鍙傦細", JsonConvert.SerializeObject(inWorkAreaEntitys) + ex.ToString());
+                                    ors.Add(OperateResult.Error("鍏ヤ綔涓氬尯澶辫触锛� + ex.Message, req));
+                                    continue;
                                 }
                             }
-                        }
-                        if (workRoute == null)
-                        {
-                            ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req));
-                            continue;
-                        }
-                    }
+                            else if (direction == Constants.Out)
+                            {
+                                //浼犻�鍙傛暟
+                                List<OutWorkAreaEntity> outWorkAreaEntitys = new List<OutWorkAreaEntity>();
+                                outWorkAreaEntitys.Add(outModel);
 
-
-                    var existsWorkFlow = workFlowTransType.Find(f => f.workFlowCode == workRoute.CN_S_TYPE_CODE);
-                    if (existsWorkFlow == null)
-                    {
-                        ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氭柟鍚�, req));
-                        continue;
-                    }
-
-                    TN_WM_B_MAKE_TASKEntity makeReq = new TN_WM_B_MAKE_TASKEntity()
-                    {
-                        CN_S_ITEM_CODE = req.PROD_NO,
-                        CN_S_ITEM_NAME = "",
-                        CN_S_START_BIT = req.Location_From,
-                        CN_S_START_AREA = workRoute.CN_S_START_AREA_CODE,
-                        CN_S_END_BIT = req.Location_To,
-                        CN_S_END_AREA = workRoute.CN_S_END_AREA_CODE,
-                        CN_S_TRAY_CODE = req.TurnCardNum,
-                        CN_S_PRIORITY = req.Priority.ToString(),
-                        CN_S_WORKFLOW_NAME = WorkFlowName.FlowNameList[existsWorkFlow.workFlowCode],
-                        CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT),
-                        CN_S_NEED_AMS = isEnableAms.transferEnableAms,
-                        CN_S_ISTRANSPORT = existsWorkFlow.isTransport
-                    };
-
-                    var externalRes = new ExternalResponse();
-                    if (existsWorkFlow.transType == "In")
-                    {
-                        try
-                        {
-                            var res = BLLCreator.Create<ZCBLL>().GLInWorkArea(makeReq);
-                            externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res);
-                        }
-                        catch (Exception ex)
-                        {
-                            ors.Add(OperateResult.Error("鍏ヤ綔涓氬尯澶辫触锛� + ex.Message, req));
-                            continue;
-                        }
-                    }
-                    else
-                    {
-                        try
-                        {
-                            var res = BLLCreator.Create<ZCBLL>().GLOutWorkArea(makeReq);
-                            externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res);
-                        }
-                        catch (Exception ex)
-                        {
-                            ors.Add(OperateResult.Error("鍑轰綔涓氬尯澶辫触锛� + ex.Message, req));
-                            continue;
-                        }
-                    }
-
-                    var _serviceExec = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetSingleEntity(new
-                    {
-                        CN_S_TASK_NO = req.task_no
-                    });
-                    if (_serviceExec != null)
-                    {
-                        _serviceExec.Update = true;
-                    }
-                    else
-                    {
-                        _serviceExec = new TN_WM_SERVICE_EXECEntity()
-                        {
-                            CN_S_TASK_NO = req.task_no,
-                            CN_S_ITEM_CODE = req.PROD_NO,
-                            CN_S_ITEM_NAME = "",
-                            CN_S_TASK_TYPE = "绉婚�",
-                            CN_S_TRANS_TYPE = WorkFlowName.FlowNameList[existsWorkFlow.workFlowCode],
-                            CN_S_TRAY_CODE = req.TurnCardNum,
-                            CN_N_PRIORITY = req.Priority,
-                            CN_S_START_LOCATION = req.Location_From,
-                            CN_S_END_LOCATION = req.Location_To,
-                            CN_T_CREATE = DateTime.Now,
-                            CN_C_COMPLETE = Constants.N,
-                            CN_C_SEND_MES = Constants.N,
-                            CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT),
-                            CN_N_REQUEST_TYPE = 0,//req.RequestType,
-                            CN_S_TRAY_TYPE = "0"//req.LoadType
-                        };
-                    }
-
-                    if (!externalRes.success)
-                    {
-                        //鍐欎换鍔℃墽琛岃〃锛屽苟鍥炴姤mes
-                        if (externalRes.errCode == "7" || externalRes.errCode == "8")
-                        {
-
-                            _serviceExec.CN_C_COMPLETE = Constants.Y;
-                            _serviceExec.CN_C_SEND_MES = Constants.Y;
-                            _serviceExec.CN_S_MSG = externalRes.errMsg;
+                                try
+                                {
+                                    Log.Info("鍑轰綔涓氬尯寮�锛屼紶鍙傦細", JsonConvert.SerializeObject(outWorkAreaEntitys));
+                                    externalRes = BLLCreator.Create<WmsApiBaseBLL>().OutWorkArea(outWorkAreaEntitys);
+                                    taskNo = outModel.taskNo;
+                                }
+                                catch (Exception ex)
+                                {
+                                    Log.Error("鍑轰綔涓氬尯澶辫触锛屼紶鍙傦細", JsonConvert.SerializeObject(outWorkAreaEntitys) + ex.ToString());
+                                    ors.Add(OperateResult.Error("鍑轰綔涓氬尯澶辫触锛� + ex.Message, req));
+                                    continue;
+                                }
+                            }
+                            else
+                            {
+                                ors.Add(OperateResult.Error("鏈煡鐨勫嚭鍏ュ簱绫诲瀷锛� + direction, req));
+                                continue;
+                            }
                         }
                         else
+                        {
+                            // 涓嶉渶瑕佸垱寤簑ms浠诲姟鐨勬墽琛屾祦绋嬶紝鏍囪瘑涓烘垚鍔�+                            externalRes.success = true;
+                        }
+
+                        var _serviceExec = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetSingleEntity(new
+                        {
+                            CN_S_TASK_NO = req.task_no
+                        });
+                        if (_serviceExec != null)
+                        {
+                            _serviceExec.Update = true;
+                        }
+                        else
+                        {
+                            _serviceExec = new TN_WM_SERVICE_EXECEntity()
+                            {
+                                CN_S_TASK_NO = req.task_no,
+                                CN_S_ITEM_CODE = req.PROD_NO,
+                                CN_S_ITEM_NAME = "",
+                                CN_S_TASK_TYPE = "绉婚�",
+                                CN_S_TRANS_TYPE = req.BUSI_TYPE_NAME,
+                                CN_S_TRAY_CODE = req.TurnCardNum,
+                                CN_N_PRIORITY = req.Priority,
+                                CN_S_START_LOCATION = req.Location_From,
+                                CN_S_END_LOCATION = req.Location_To,
+                                CN_T_CREATE = DateTime.Now,
+                                CN_C_COMPLETE = Constants.N,
+                                CN_C_SEND_MES = Constants.N,
+                                CN_F_QUANTITY = Convert.ToDecimal(req.CURRENT_AMOUNT),
+                                CN_N_REQUEST_TYPE = null,
+                                CN_S_TRAY_TYPE = ""
+                            };
+                        }
+
+                        if (!externalRes.success)
                         {
                             _serviceExec.CN_C_COMPLETE = Constants.N;
                             _serviceExec.CN_C_SEND_MES = Constants.N;
                             _serviceExec.CN_S_MSG = externalRes.errMsg;
-                        }
 
-                        var _or = TransportSuccess(_serviceExec);
+                            var _or = BLLCreator.Create<ZCMiddleOperateBll>().TransportSuccess(req, _serviceExec, taskNo);
 
-                        if (!_or.Success)
-                        {
-                            Log.DomainInfo("TransportSuccess error", _or.Msg);
-                            Log.DomainInfo("externalRes Error锛�" + externalRes.errMsg, JsonConvert.SerializeObject(req));
-
-                            ors.Add(OperateResult.Error("TransportSuccess error", _or.Msg));
-                        }
-                        else
-                        {
-                            if (externalRes.errCode == "7" || externalRes.errCode == "8")
+                            if (!_or.Success)
                             {
-                                ors.Add(OperateResult.Warning("宸插弽棣堣嚦mes锛屾秷鎭細 " + externalRes.errMsg, req));
+                                Log.DomainInfo("TransportSuccess error", _or.Msg);
+                                Log.DomainInfo("externalRes Error锛�" + externalRes.errMsg, JsonConvert.SerializeObject(req));
+
+                                ors.Add(OperateResult.Error("TransportSuccess error", _or.Msg));
                             }
                             else
                             {
                                 ors.Add(OperateResult.Error("externalRes Error锛�" + externalRes.errMsg, req));
                             }
                         }
-                    }
-                    else//鎴愬姛鐨勮瘽鍐欑Щ閫佷换鍔℃棩蹇�-                    {
-                        var ok = externalRes.okList[0];
-
-                        _serviceExec.CN_S_START_LOCATION = ok.startBit;
-                        _serviceExec.CN_S_END_LOCATION = ok.endBit;
-                        _serviceExec.CN_C_COMPLETE = Constants.Y;
-                        _serviceExec.CN_C_SEND_MES = Constants.Y;
-                        _serviceExec.CN_S_MSG = "涓嬭揪鎴愬姛";
-                        var _or = TransportSuccess(_serviceExec);
-                        if (!_or.Success)
+                        else
                         {
-                            ors.Add(OperateResult.Warning("涓嬭揪鎴愬姛,鏇存柊绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req));
-                            continue;
+                            var ok = externalRes.okList[0];
+
+                            _serviceExec.CN_S_START_LOCATION = ok.startBit;
+                            _serviceExec.CN_S_END_LOCATION = ok.endBit;
+                            _serviceExec.CN_C_COMPLETE = Constants.Y;
+                            _serviceExec.CN_C_SEND_MES = Constants.Y;
+                            _serviceExec.CN_S_MSG = "涓嬭揪鎴愬姛";
+
+                            req.Data_status = req.SECTION == TaskSectionConstants.COMPLETE ? 2 : 1;
+                            req.NeedTrig = Constants.N;
+                            req.SECTION = section;
+
+                            var _or = BLLCreator.Create<ZCMiddleOperateBll>().TransportSuccess(req, _serviceExec, taskNo);
+
+                            if (!_or.Success)
+                            {
+                                ors.Add(OperateResult.Warning("涓嬭揪鎴愬姛,鏇存柊绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req));
+                                continue;
+                            }
+                            ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛", req));
                         }
-                        ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛", req));
+
+                        Log.DomainInfo("绉婚�浠诲姟 缁撴灉", JsonConvert.SerializeObject(ors));
+                    }
+                    catch (Exception ex)
+                    {
+                        ors.Add(OperateResult.Error("绉婚�浠诲姟澶辫触锛� + ex.Message, req));
+                        continue;
                     }
                 }
                 Log.DomainInfo("绉婚�浠诲姟 缁撴灉", JsonConvert.SerializeObject(ors));
@@ -480,6 +461,72 @@
             return ors;
         }
         #endregion
+
+        public string NextSection(TN_MES_TASK task)
+        {
+            if (task.BUSI_TYPE == "1")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.BCP_KTCK;
+                else if (task.SECTION == TaskSectionConstants.BCP_KTCK)
+                    return TaskSectionConstants.BCP_MTRK;
+                else if (task.SECTION == TaskSectionConstants.BCP_MTRK)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else if (task.BUSI_TYPE == "2")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.CXJ_BCPHK;
+                else if (task.SECTION == TaskSectionConstants.CXJ_BCPHK)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else if (task.BUSI_TYPE == "3")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.CXJ_KTHK_RECORD;
+                else if (task.SECTION == TaskSectionConstants.CXJ_KTHK_RECORD)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else if (task.BUSI_TYPE == "4")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.CXJ_MTCK;
+                else if (task.SECTION == TaskSectionConstants.CXJ_MTCK)
+                    return TaskSectionConstants.CXJ_KTHK_KTRK;
+                else if (task.SECTION == TaskSectionConstants.CXJ_KTHK_KTRK)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else if (task.BUSI_TYPE == "5")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.DS_BCPKTHK;
+                else if (task.SECTION == TaskSectionConstants.DS_BCPKTHK)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else if (task.BUSI_TYPE == "6")
+            {
+                if (string.IsNullOrEmpty(task.SECTION))
+                    return TaskSectionConstants.DS_MTCK;
+                else if (task.SECTION == TaskSectionConstants.DS_MTCK)
+                    return TaskSectionConstants.COMPLETE;
+                else
+                    return TaskSectionConstants.ERROR;
+            }
+            else
+            {
+                return TaskSectionConstants.ERROR;
+            }
+        }
 
         #region 鍒ゆ柇鏄惁鍦ㄥ伐浣滄椂闂�         /// <summary>
@@ -524,9 +571,6 @@
 
                 //浼犻�鍙傛暟
                 List<InWorkAreaEntity> inWorkAreaEntitys = new List<InWorkAreaEntity>();
-
-
-
 
 
                 InWorkAreaEntity model = new InWorkAreaEntity();
@@ -738,35 +782,6 @@
             Log.Info("澶勭悊浣嶇疆淇℃伅浣嶇疆涓夛細", JsonConvert.SerializeObject(entity));
         }
 
-        private OperateResult TransportSuccess(TN_WM_SERVICE_EXECEntity _serviceExec)
-        {
-            return UseTransaction(trans =>
-            {
-                if (_serviceExec.Update)
-                {
-                    var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Update(new
-                    {
-                        CN_S_START_LOCATION = _serviceExec.CN_S_START_LOCATION,
-                        CN_S_END_LOCATION = _serviceExec.CN_S_END_LOCATION,
-                        CN_C_COMPLETE = _serviceExec.CN_C_COMPLETE,
-                        CN_C_SEND_MES = _serviceExec.CN_C_SEND_MES,
-                        CN_S_MSG = _serviceExec.CN_S_MSG
-                    }, new
-                    {
-                        CN_S_TASK_NO = _serviceExec.CN_S_TASK_NO
-                    });
-                    if (!or.Success)
-                        throw new Exception(or.Msg);
-                }
-                else
-                {
-                    var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Add(_serviceExec);
-                    if (!or.Success)
-                        throw new Exception(or.Msg);
-                }
-            });
-        }
-
         #region 鏈嶅姟鎵ц璁板綍鏃ュ織鍒嗛〉
         /// <summary>
         /// 鏈嶅姟鎵ц璁板綍鏃ュ織鍒嗛〉
@@ -779,102 +794,47 @@
         }
         #endregion
 
-        // CN_S_EXT1:涓氬姟绫诲瀷
-        // CN_S_EXT2:瀛愪换鍔℃爣璇�-        // CN_S_EXT3:浠诲姟鎵ц闃舵
         public void SelfManageTask()
         {
             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, Constants.TaskState_CompletePart }
+                    CN_S_STATE = new List<string>() { Constants.TaskState_NoExecuted, Constants.TaskState_CompleteHalf }
                 });
+
+                var mes_tasks = BLLCreator.CreateDapper<TN_MES_TASK>().GetList(new
+                {
+                    task_no = tasks.ConvertAll(t => t.CN_S_EXT1).ToList()
+                });
+
+                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 connectBitStr = JsonHelper.GetValue("connectBit");
-                        if (string.IsNullOrEmpty(connectBitStr))
-                            throw new Exception("鏈壘鍒伴厤缃細connectBit");
-                        var connectBits = JsonConvert.DeserializeObject<List<ConnectBitDto>>(connectBitStr);
-                        OperateResult or = OperateResult.Error("鏈煡閿欒");
-                        if (task.CN_S_EXT1 == BusinessTypeConstants.BCP_MTRK)// 鍗婃垚鍝佹弧鎵樺叆搴撴祦绋�+                        var mes_task = mes_tasks.FirstOrDefault(t => t.task_no == task.CN_S_EXT1);
+                        if (mes_task == null)
                         {
-                            // -绌烘墭鍑哄簱闃舵
-                            if (task.CN_S_EXT3 == TaskSectionConstants.KTCK)
-                            {
-                                var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.KTCK);
-                                // 鍒涘缓涓ゆ潯骞惰瀛愪换鍔�-                                if (string.IsNullOrEmpty(task.CN_S_EXT2))
-                                {
-                                    or = ExecKTCK(task, connectBit);
-                                }
-                                // sub_1 -鐢ㄤ簬鍚慦CS鍙戦�绌烘墭->鎺ラ┏浣嶇殑鍑哄簱浠诲姟
-                                else if (task.CN_S_EXT2 == "ktck_sub_1")
-                                {
-                                    or = ExecKTCK_Sub1(task, connectBit);
-                                }
-                                // sub_2 - 鐢ㄤ簬鍚慉MS鍙戦�鍑嗗鐐�>缁堢偣鐨勭┖鎵樻惉杩愪换鍔�-                                else if (task.CN_S_EXT2 == "ktck_sub_2")
-                                {
-                                    or = ExecKTCK_Sub2(task, connectBit);
-                                }
-                            }
-                            else if (task.CN_S_EXT3 == TaskSectionConstants.BCP_MTRK)
-                            {
-                                var connectBit = connectBits.Find(f => f.tasktype == ConnectBitConstants.MTRK);
-                                // 鍒涘缓绗竴鏉″瓙浠诲姟
-                                if (string.IsNullOrEmpty(task.CN_S_EXT2))
-                                {
-                                    or = ExecBCP_MTRK_AddSub1(task, connectBit);
-                                }
-                                // 鎵ц绗竴鏉″瓙浠诲姟
-                                else if (task.CN_S_EXT2 == "bcp_mtrk_sub_1")
-                                {
-                                    or = ExecBCP_MTRK_Sub1(task, connectBit);
-                                }
-                                // 鍒涘缓绗簩鏉″瓙浠诲姟
-                                else if (task.CN_S_EXT2 == "bcp_mtrk_sub_1_completed")
-                                {
-                                    or = ExecBCP_MTRK_AddSub2(task, connectBit);
-                                }
-                                // 鎵ц绗簩鏉″瓙浠诲姟
-                                else if (task.CN_S_EXT2 == "bcp_mtrk_sub_2")
-                                {
-                                    or = ExecBCP_MTRK_Sub2(task, connectBit);
-                                }
-                            }
+                            ors.Add(OperateResult.Error("浠嶵N_MES_TASK琛ㄤ腑鏈壘鍒版浠诲姟鐨勬潵婧怣ES浠诲姟锛屼换鍔$紪鍙凤細" + task.CN_S_TASK_NO));
+                            continue;
                         }
-                        else
+                        // 鍑哄簱涓讳换鍔℃槸鍚屾椂涓嬩袱鏉″瓙浠诲姟
+                        if (mes_task.SECTION == TaskSectionConstants.BCP_KTCK ||
+                            mes_task.SECTION == TaskSectionConstants.CXJ_MTCK ||
+                            mes_task.SECTION == TaskSectionConstants.DS_MTCK)
                         {
-                            or = OperateResult.Error("鏈煡鐨勪笟鍔$被鍨嬶細task.CN_S_EXT1=" + task.CN_S_EXT1);
-                        }
-
-                        continue;
-
-                        //鏈墽琛岃〃绀虹涓�釜浠诲姟
-                        if (task.CN_S_STATE == Constants.TaskState_NoExecuted)
-                        {
+                            string tasktype = mes_task.SECTION == TaskSectionConstants.BCP_KTCK ? ConnectBitConstants.KTCK : mes_task.SECTION == TaskSectionConstants.CXJ_MTCK ? ConnectBitConstants.MTCK : mes_task.SECTION == TaskSectionConstants.DS_MTCK ? ConnectBitConstants.DSCK : "";
                             //绔嬪簱璐т綅
-                            string lkBit = string.Empty;
-                            //鏍规嵁浠诲姟绫诲瀷鍒ゆ柇绔嬪簱璐т綅
-                            if (task.CN_S_TASK_TYPE == Constants.Out)
-                            {
-                                lkBit = task.CN_S_START_BIT;
-                            }
-                            else if (task.CN_S_TASK_TYPE == Constants.In)
-                            {
-                                lkBit = task.CN_S_END_BIT;
-                            }
-                            else
-                            {
-                                throw new Exception("鑷浠诲姟浠诲姟绫诲瀷涓嶆纭�);
-                            }
+                            string lkBit = task.CN_S_START_BIT;
 
                             var locationBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                             {
@@ -882,9 +842,9 @@
                             });
                             if (locationBit == null)
                                 throw new Exception("鏈壘鍒扮珛搴撹揣浣嶏細" + lkBit);
-                            var _bit = connectBits.Find(f => f.tunnel == Util.ToString(locationBit.CN_S_ROADWAY).Trim());
+                            var _bit = connectBits.Find(f => f.tasktype == tasktype);
                             if (_bit == null)
-                                throw new Exception("鏈壘鍒伴厤缃贩閬擄細" + locationBit.CN_S_ROADWAY + "鐨勬帴椹充綅");
+                                throw new Exception("鏈壘鍒伴厤缃被鍨嬩负锛� + tasktype + "鐨勬帴椹充綅");
 
                             var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                             {
@@ -895,18 +855,24 @@
                             if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                                 throw new Exception("鎺ラ┏浣嶏細" + _bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
 
+                            var readytBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                            {
+                                CN_S_LOCATION_CODE = _bit.readybit
+                            });
+                            if (readytBit == null)
+                                throw new Exception("鏈壘鍒板噯澶囩偣璐т綅锛� + _bit.bit);
+                            if (readytBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
+                                throw new Exception("鍑嗗鐐癸細" + _bit.bit + "瀛樺湪鏈墽琛屽畬鐨勪换鍔�);
+
                             //璧嬪�鎺ラ┏浣�                             task.CN_S_CONNECT_BIT = _bit.bit;
+                            task.CN_S_EXT2 = _bit.readybit;
 
-                            //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";
+                            string taskNo1 = task.CN_S_TASK_NO + "_1";
                             //鍒涘缓绗竴涓换鍔�-                            TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
+                            TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                             {
-                                CN_S_TASK_NO = taskNo,
+                                CN_S_TASK_NO = taskNo1,
                                 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,
@@ -922,77 +888,14 @@
                                 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,
+                                CN_S_TASK_FLAG = Constants.TaskFlag_LG,
+                                CN_S_TASK_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//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔�-                        {
-                            //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
-                            {
-                                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 + "鐨勬帴椹充綅");
+                            string taskNo2 = task.CN_S_TASK_NO + "_2";
                             //鍒涘缓绗簩涓换鍔�-                            TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
+                            TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                             {
-                                CN_S_TASK_NO = taskNo,
+                                CN_S_TASK_NO = taskNo2,
                                 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,
@@ -1008,60 +911,250 @@
                                 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,
+                                CN_S_TASK_FLAG = Constants.TaskFlag_AGV,
+                                CN_S_TASK_TYPE = "杞繍"
                             };
-
                             var or = UseTransaction(trans =>
                             {
                                 //澧炲姞瀛愪换鍔�-                                CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity, trans);
+                                CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1, 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
+                                    CN_S_LOCATION_CODE = taskEntity1.CN_S_END_BIT
                                 }, trans);
-                                // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�+                                // 鏇存柊涓讳换鍔℃帴椹充綅 鐘舵�缃负鎵ц涓�璁板綍鎺ラ┏浣嶅拰鍑嗗鐐�                                 CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                                 {
+                                    CN_S_CONNECT_BIT = task.CN_S_CONNECT_BIT,
+                                    CN_S_EXT1 = task.CN_S_EXT1,
                                     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)
+                                // 鍙戦�Wcs浠诲姟
+                                Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(taskEntity1));
+                                OperateResult re = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(taskEntity1);
+                                Log.Detail(LogType.LogPara("璋冪敤WCS鎺ュ彛鎵ц浠诲姟"), "鎵ц缁撴灉锛� + JsonConvert.SerializeObject(re));
+                                if (!re.Success)
                                 {
-                                    //to do...
-                                    #region 寰呮祴璇�-                                    //OperateResult re = new OtherSysApi().SendWcsCreateTask(taskEntity, _bit);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
-                                    #endregion
+                                    throw new Exception(re.Msg);
                                 }
-                                else//agv浠诲姟
+
+                                //澧炲姞瀛愪换鍔�+                                CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2, trans);
+                                //鏇存柊鍑嗗鐐圭姸鎬�+                                CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                                 {
-                                    //OperateResult re = new OtherSysApi().SendAmsCreateTask(taskEntity);
-                                    //if (!re.Success)
-                                    //{
-                                    //    throw new Exception(re.Msg);
-                                    //}
+                                    CN_S_LOCATION_STATE = Constants.Location_State_OutLock
+                                }, new
+                                {
+                                    CN_S_LOCATION_CODE = taskEntity2.CN_S_START_BIT
+                                }, trans);
+
+                                //agv浠诲姟
+                                re = new OtherSysApi().SendAmsCreateTask(taskEntity2);
+                                if (!re.Success)
+                                {
+                                    throw new Exception(re.Msg);
                                 }
                             });
                             if (!or.Success) throw new Exception(or.Msg);
                         }
+                        else
+                        {
+                            //鏈墽琛岃〃绀虹涓�釜浠诲姟
+                            if (task.CN_S_STATE == Constants.TaskState_NoExecuted)
+                            {
+                                //绔嬪簱璐т綅
+                                string lkBit = string.Empty;
+                                //鏍规嵁浠诲姟绫诲瀷鍒ゆ柇绔嬪簱璐т綅
+                                if (task.CN_S_TASK_TYPE == Constants.Out)
+                                {
+                                    lkBit = task.CN_S_START_BIT;
+                                }
+                                else if (task.CN_S_TASK_TYPE == Constants.In)
+                                {
+                                    lkBit = task.CN_S_END_BIT;
+                                }
+                                else
+                                {
+                                    throw new Exception("鑷浠诲姟浠诲姟绫诲瀷涓嶆纭�);
+                                }
+
+                                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 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_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_LG : Constants.TaskFlag_AGV,
+                                    CN_S_TASK_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_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//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔�+                            {
+                                string taskNo = task.CN_S_TASK_NO + "_2";
+                                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
+                                {
+                                    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_S_TASK_FLAG = task.CN_S_TASK_TYPE == Constants.Out ? Constants.TaskFlag_AGV : Constants.TaskFlag_LG,
+                                    CN_S_TASK_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_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);
+                            }
+                        }
+
                         ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛"));
                     }
                     catch (Exception ex)
@@ -1076,479 +1169,6 @@
                 Log.DomainInfo("SelfManageTask Error", ex.Message);
             }
         }
-
-        /// <summary>
-        /// 閬嶅巻涓棿琛紝鏍规嵁涓氬姟绫诲瀷鍒涘缓WMS浠诲姟
-        /// </summary>
-        public void ExecTransferTask()
-        {
-            // 宸叉帴鏀跺緟澶勭悊浠诲姟
-            var receiveTasks = BLLCreator.CreateDapper<TN_MES_TASK>().GetList(new TN_MES_TASK
-            {
-                NeedTrig = "Y"
-            }).OrderBy(t => t.CreateDate).ToList();
-
-            List<OperateResult> ors = new List<OperateResult>();
-
-            foreach (var task in receiveTasks)
-            {
-                try
-                {
-                    // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 璧峰璐т綅
-                    AutoBomLocationEntity start_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_From);
-                    // 浠巑ongo涓幏鍙栬揣浣嶇浉鍏崇殑淇℃伅 - 缁堢偣璐т綅
-                    AutoBomLocationEntity end_location = CreateDAL<TN_AB_STOCK_LOCATIONDAL>().GetModel(task.Location_To);
-
-                    // 涓讳换鍔℃墽琛屾祦绋嬩腑鐨勮捣濮嬮樁娈�-                    string section = "";
-                    switch (task.BUSI_TYPE)
-                    {
-                        case "1":
-                            section = TaskSectionConstants.KTCK;
-                            break;
-                        case "2":
-                            break;
-                        case "3":
-                            break;
-                        case "4":
-                            break;
-                        case "5":
-                            break;
-                        case "6":
-                            break;
-                    }
-                    // 鍒涘缓WMS涓讳换鍔�-                    TN_WM_TASKEntity taskEntity = new TN_WM_TASKEntity()
-                    {
-                        CN_S_TASK_NO = task.task_no,
-                        CN_S_TRAY_CODE = task.TurnCardNum,
-                        CN_S_STATE = Constants.TaskState_NoExecuted,
-                        CN_S_BF_TASK_NO = "",
-                        CN_S_AF_TASK_NO = "",
-                        CN_S_STOCK_CODE = start_location.CN_S_STOCK_CODE,
-                        CN_S_START_AREA = start_location.CN_S_AREA_CODE,
-                        CN_S_START_BIT = start_location.CN_S_LOCATION_CODE,
-                        CN_S_END_AREA = end_location.CN_S_AREA_CODE,
-                        CN_S_END_BIT = end_location.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.BUSI_TYPE,
-                        CN_S_EXT2 = "",
-                        CN_S_EXT3 = section
-                    };
-                    UseTransaction(trans =>
-                    {
-                        // 澧炲姞WMS涓讳换鍔�-                        OperateResult re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity);
-                        if (!re.Success)
-                            throw new Exception(re.Msg);
-                        // 鏇存柊TN_MES_TASK鐘舵�
-                        CreateDapperDAL<TN_MES_TASK>().Update(new
-                        {
-                            NeedTrig = "N"
-                        }, new { task_no = task.task_no }, trans);
-                        if (!re.Success)
-                            throw new Exception(re.Msg);
-                    });
-
-                    ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛"));
-                }
-                catch (Exception ex)
-                {
-                    ors.Add(OperateResult.Error(ex.Message));
-                }
-                Log.DomainInfo("ExecTransferTask", JsonConvert.SerializeObject(ors));
-            }
-        }
-
-        #region 鍗婃垚鍝�婊℃墭鍏ュ簱
-
-        #region 绌烘墭鍑哄簱
-
-        /// <summary>
-        /// 鍒涘缓绌烘墭鍑哄簱骞惰瀛愪换鍔�-        /// </summary>
-        public OperateResult ExecKTCK(TN_WM_TASKEntity task, ConnectBitDto bit)
-        {
-            // 绌烘墭鍑哄簱鍜屾弧鎵樺叆搴撴槸鍙嶅悜鐨�-            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_EXT1,
-                CN_S_EXT2 = "ktck_sub_1"
-            };
-            // 鍑嗗鐐�>宸ヤ綅
-            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_EXT1,
-                CN_S_EXT2 = "ktck_sub_2"
-            };
-
-            OperateResult re = OperateResult.Error("鏈煡閿欒");
-
-            try
-            {
-                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 ExecKTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto connectBit)
-        {
-            OperateResult or = OperateResult.Error("鏈煡閿欒");
-            try
-            {
-                UseTransaction(trans =>
-                {
-                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�-                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                    {
-                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
-                    }, new { CN_S_LOCATION_CODE = connectBit.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浠诲姟
-                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1, connectBit);
-                });
-            }
-            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 ExecKTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto connectBit)
-        {
-            OperateResult or = OperateResult.Error("鏈煡閿欒");
-            try
-            {
-                UseTransaction(trans =>
-                {
-                    // 鍑嗗鐐�棰勫嚭搴撻攣瀹�-                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                    {
-                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
-                    }, new { CN_S_LOCATION_CODE = connectBit.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浠诲姟
-                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
-                });
-            }
-            catch (Exception ex)
-            {
-                OperateResult.Error("鎵ц绌烘墭鍑哄簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
-            }
-            return or;
-        }
-
-        #endregion
-
-        #region 婊℃墭鍏ュ簱
-
-        #region 涓讳换鍔�-
-        /// <summary>
-        /// 鍒涘缓 鍗婃垚鍝�婊℃墭鍏ュ簱 瀛愪换鍔�
-        /// </summary>
-        public OperateResult ExecBCP_MTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
-        {
-            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_EXT1,
-                CN_S_EXT2 = "bcp_mtrk_sub_1"
-            };
-            OperateResult re = OperateResult.Error("鏈煡閿欒");
-
-            try
-            {
-                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)
-        {
-            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_EXT1,
-                CN_S_EXT2 = "bcp_mtrk_sub_2"
-            };
-            OperateResult re = OperateResult.Error("鏈煡閿欒");
-
-            try
-            {
-                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 connectBit)
-        {
-            OperateResult or = OperateResult.Error("鏈煡閿欒");
-            try
-            {
-                UseTransaction(trans =>
-                {
-                    // 鎺ラ┏浣�棰勫叆搴撻攣瀹�-                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                    {
-                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
-                    }, new { CN_S_LOCATION_CODE = connectBit.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浠诲姟
-                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
-                });
-            }
-            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 connectBit)
-        {
-            OperateResult or = OperateResult.Error("鏈煡閿欒");
-            try
-            {
-                UseTransaction(trans =>
-                {
-                    // 鎺ラ┏浣�棰勫嚭搴撻攣瀹�-                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
-                    {
-                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
-                    }, new { CN_S_LOCATION_CODE = connectBit.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浠诲姟
-                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2, connectBit);
-                });
-            }
-            catch (Exception ex)
-            {
-                OperateResult.Error("鎵ц婊℃墭鍏ュ簱瀛愪换鍔�澶辫触锛屼换鍔$紪鍙�" + task2.CN_S_TASK_NO + "锛岄敊璇俊鎭細" + ex.Message);
-            }
-            return or;
-        }
-
-        #endregion
-
-        #endregion
-
-        #endregion
     }
 
     /// <summary>
@@ -1583,45 +1203,61 @@
     }
 
     /// <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";
-    }
-
     public class TaskSectionConstants
     {
         /// <summary>
-        /// 绌烘墭鍑哄簱
+        /// 浠诲姟瀹屾垚
         /// </summary>
-        public static string KTCK = "绌烘墭鍑哄簱";
+        public static string COMPLETE = "浠诲姟瀹屾垚";
+        public static string ERROR = "鎵ц澶辫触";
+
+        #region 鍗婃垚鍝�+
+        /// <summary>
+        /// 鍗婃垚鍝�绌烘墭鍑哄簱
+        /// </summary>
+        public static string BCP_KTCK = "鍗婃垚鍝�绌烘墭鍑哄簱";
         /// <summary>
         /// 鍗婃垚鍝�婊℃墭鍏ュ簱
         /// </summary>
         public static string BCP_MTRK = "鍗婃垚鍝�婊℃墭鍏ュ簱";
+
+        #endregion
+
+        #region 鎴愬瀷鏈�+
+        /// <summary>
+        /// 鎴愬瀷鏈�鍗婃垚鍝佸洖搴�+        /// </summary>
+        public static string CXJ_BCPHK = "鎴愬瀷鏈�鍗婃垚鍝佸洖搴�;
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵
+        /// </summary>
+        public static string CXJ_KTHK_RECORD = "鎴愬瀷鏈�绌烘墭鍥炲簱-璁板綍闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵
+        /// </summary>
+        public static string CXJ_KTHK_KTRK = "鎴愬瀷鏈�绌烘墭鍥炲簱-鍏ュ簱闃舵";
+        /// <summary>
+        /// 鎴愬瀷鏈�婊℃墭鍑哄簱
+        /// </summary>
+        public static string CXJ_MTCK = "鎴愬瀷鏈�婊℃墭鍑哄簱";
+
+        #endregion
+
+        #region 甯︽潫
+
+        /// <summary>
+        /// 甯︽潫-鍗婃垚鍝�绌烘墭鍥炲簱
+        /// </summary>
+        public static string DS_BCPKTHK = "鎴愬瀷鏈哄甫鏉�鍗婃垚鍝�绌烘墭鍥炲簱";
+        /// <summary>
+        /// 甯︽潫-婊℃墭鍑哄簱
+        /// </summary>
+        public static string DS_MTCK = "鎴愬瀷鏈哄甫鏉�婊℃墭鍑哄簱";
+
+        #endregion
     }
 }

--
Gitblit v1.9.1