From 98186752629a7bd38965418af84db382d90b9c07 Mon Sep 17 00:00:00 2001
From: zhao
Date: 星期五, 11 六月 2021 16:42:00 +0800
Subject: [PATCH] 移送任务,MES下达的任务生成WMS主任务

---
 HH.WMS.WebUI/Web.config                        |    4 
 HH.WMS.BLL/HH.WMS.BLL.csproj                   |    1 
 HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs      |  150 +++++
 HH.WMS.WebApi/Config.json                      |   26 
 HH.WMS.WebApi/Extension/ExecSelfManageTask.cs  |    2 
 HH.WMS.Entitys/External/ZCReceiveTaskEntity.cs |  110 ++++
 HH.WMS.WebApi/Controllers/WmsApiController.cs  |   26 +
 HH.WMS.Entitys/HH.WMS.Entitys.csproj           |    3 
 HH.WMS.BLL/Pda/ZCBLL.cs                        | 1092 ++++++++++++++++++++++++++++++++++++++++++
 HH.WMS.Entitys/Dto/ZCTransferDto.cs            |   34 +
 HH.WMS.BLL/External/WmsApiBaseBLL.cs           |   41 +
 HH.WMS.WebApi/Extension/ExecTransferTask.cs    |   18 
 HH.WMS.WebApi/Web.config                       |    8 
 13 files changed, 1,489 insertions(+), 26 deletions(-)

diff --git a/HH.WMS.BLL/External/WmsApiBaseBLL.cs b/HH.WMS.BLL/External/WmsApiBaseBLL.cs
index e40b0c7..a3e3506 100644
--- a/HH.WMS.BLL/External/WmsApiBaseBLL.cs
+++ b/HH.WMS.BLL/External/WmsApiBaseBLL.cs
@@ -2,6 +2,7 @@
 using HH.WMS.BLL.Basic;
 using HH.WMS.BLL.InStock;
 using HH.WMS.BLL.Interface;
+using HH.WMS.BLL.Pda;
 using HH.WMS.BLL.SysMgr;
 using HH.WMS.Common;
 using HH.WMS.Common.Algorithm;
@@ -19,6 +20,7 @@
 using HH.WMS.Entitys.Common;
 using HH.WMS.Entitys.Dto;
 using HH.WMS.Entitys.Entitys;
+using HH.WMS.Entitys.Entitys.Mes;
 using HH.WMS.Entitys.External;
 using Newtonsoft.Json;
 using System;
@@ -2754,5 +2756,44 @@
             }
 
         }
+
+        /// <summary>
+        /// 鎺ユ敹浠诲姟
+        /// </summary>
+        /// <param name="receuveTask"></param>
+        /// <returns></returns>
+        public OperateResult ReceiveTask(ZCReceiveTaskEntity receuveTask)
+        {
+            TN_MES_TASK req = new TN_MES_TASK()
+            {
+                task_no = receuveTask.task_no,
+                Task_type = receuveTask.Task_type,
+                TurnCardNum = receuveTask.TurnCardNum,
+                PROD_NO = receuveTask.PROD_NO,
+                PROD_TECH = receuveTask.PROD_TECH,
+                PROD_SPEC = receuveTask.PROD_SPEC,
+                PROD_BOM = receuveTask.PROD_BOM,
+                PROD_Feature = receuveTask.PROD_Feature,
+                TOOLS_NO = receuveTask.TOOLS_NO,
+                ST_AMOUNT = receuveTask.ST_AMOUNT,
+                CURRENT_AMOUNT = receuveTask.CURRENT_AMOUNT,
+                Location_From = receuveTask.Location_From,
+                Location_To = receuveTask.Location_To,
+                PRODUCE_TIME = receuveTask.PRODUCE_TIME,
+                SHELF_LIFE_TIME = receuveTask.SHELF_LIFE_TIME,
+                EXPIRED_TIME = receuveTask.EXPIRED_TIME,
+                SHELF_REP = receuveTask.SHELF_REP,
+                EXPIRED_REP = receuveTask.EXPIRED_REP,
+                CHECK_CODE = receuveTask.CHECK_CODE,
+                CHECK_INFO = receuveTask.CHECK_INFO,
+                Priority = receuveTask.Priority,
+                Data_status = receuveTask.Data_status,
+                NeedTrig = "Y",
+                CreateDate = DateTime.Now,
+                BUSI_TYPE = receuveTask.BUSI_TYPE
+            };
+
+            return BLLCreator.Create<ZCBLL>().SaveTask(req);
+        }
     }
 }
diff --git a/HH.WMS.BLL/HH.WMS.BLL.csproj b/HH.WMS.BLL/HH.WMS.BLL.csproj
index b04d4d6..4c54914 100644
--- a/HH.WMS.BLL/HH.WMS.BLL.csproj
+++ b/HH.WMS.BLL/HH.WMS.BLL.csproj
@@ -159,6 +159,7 @@
     <Compile Include="Pda\ProdBLL.cs" />
     <Compile Include="Pda\NtApiBLL.cs" />
     <Compile Include="Pda\YuShouApiBLL.cs" />
+    <Compile Include="Pda\ZCBLL.cs" />
     <Compile Include="Project\Tzlj\MesStackTrayBLL.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="SysMgr\StockInitBLL.cs" />
diff --git a/HH.WMS.BLL/Pda/ZCBLL.cs b/HH.WMS.BLL/Pda/ZCBLL.cs
new file mode 100644
index 0000000..2fcedf5
--- /dev/null
+++ b/HH.WMS.BLL/Pda/ZCBLL.cs
@@ -0,0 +1,1092 @@
+锘縰sing HH.WMS.BLL.Basic;
+using HH.WMS.BLL.External;
+using HH.WMS.BLL.Interface;
+using HH.WMS.BLL.MiddleDB;
+using HH.WMS.Common;
+using HH.WMS.Common.External;
+using HH.WMS.Common.Response;
+using HH.WMS.DAL.Basic;
+using HH.WMS.DAL.Pda;
+using HH.WMS.Entitys;
+using HH.WMS.Entitys.Autobom;
+using HH.WMS.Entitys.Basic;
+using HH.WMS.Entitys.Common;
+using HH.WMS.Entitys.Dto;
+using HH.WMS.Entitys.Entitys.Mes;
+using HH.WMS.Entitys.External;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.WMS.BLL.Pda
+{
+    public class ZCBLL : DapperBaseBLL
+    {
+        #region 淇濆瓨浠诲姟
+
+        public OperateResult SaveTask(TN_MES_TASK task)
+        {
+            OperateResult result = BLLCreator.CreateDapper<TN_MES_TASK>().Add(task);
+
+            return result;
+        }
+
+        #endregion
+
+        #region 鏍规嵁搴撳尯鍙栧崰鐢ㄧ殑璐т綅
+        /// <summary>
+        /// 鏍规嵁搴撳尯鍙栧崰鐢ㄧ殑璐т綅
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <returns></returns>
+        public List<TN_WM_LOCATION_EXTEntity> GetUsedLocationByArea(string areaCode)
+        {
+            return CreateDAL<GlDAL>().GetUsedLocationByArea(areaCode);
+        }
+        #endregion
+
+        #region 绉诲簱
+        /// <summary>
+        /// 绉诲簱
+        /// </summary>
+        /// <param name="transferType"></param>
+        public void TransferRubber(string transferType)
+        {
+            string workFlowName = string.Empty;
+            switch (transferType)
+            {
+                case "transferOfFinalRubber":
+                    workFlowName = WorkFlowName.FlowNameList["Z3"];
+                    break;
+                case "transferOfRawRubber":
+                    workFlowName = WorkFlowName.FlowNameList["S2"];
+                    break;
+            }
+            if (string.IsNullOrEmpty(workFlowName))
+                TransferRubberThrow(new Exception("鏈壘鍒扮Щ搴撳伐浣滄祦鍚嶇О"), workFlowName);
+
+
+            var isEnableAms = new GLTransferDto();
+            var _isEnableAmsStr = JsonHelper.GetValue("isSendAms");
+            if (!string.IsNullOrEmpty(_isEnableAmsStr))
+            {
+                isEnableAms = JsonConvert.DeserializeObject<GLTransferDto>(_isEnableAmsStr);
+                isEnableAms = isEnableAms ?? new GLTransferDto();
+            }
+
+            try
+            {
+                var mapStr = JsonHelper.GetValue(transferType);
+                if (string.IsNullOrEmpty(mapStr))
+                    return;
+                var config = JsonConvert.DeserializeObject<GLTransferDto>(mapStr);
+
+                if (IsWorkTime(config))
+                {
+                    var usedLocations = BLLCreator.Create<GlBLL>().GetUsedLocationByArea(config.endArea);
+                    if (usedLocations.Count < config.transferMax)
+                    {
+                        mapStr = JsonHelper.GetValue("workFlowTransType");
+                        if (string.IsNullOrEmpty(mapStr))
+                            return;
+                        var workFlowTransType = JsonConvert.DeserializeObject<List<GLTransferDto>>(mapStr);
+                        var existsWorkFlow = workFlowTransType.Find(f => f.workFlowName == workFlowName);
+                        if (existsWorkFlow == null)
+                        {
+                            TransferRubberThrow(new Exception("鏈壘鍒扮Щ搴撴柟鍚�), workFlowName);
+                        }
+
+                        TN_WM_B_MAKE_TASKEntity makeReq = new TN_WM_B_MAKE_TASKEntity()
+                        {
+                            CN_S_START_AREA = config.startArea,
+                            CN_S_END_AREA = config.endArea,
+                            CN_S_ITEM_CODE = config.itemCode,
+                            CN_S_NEED_AMS = Constants.Y,
+                            CN_S_WORKFLOW_NAME = workFlowName,
+                            CN_S_ISTRANSPORT = isEnableAms.moveStockEnableAms,
+                            //CN_F_QUANTITY = 1
+                        };
+
+                        var externalRes = new ExternalResponse();
+                        if (existsWorkFlow.transType == "In")
+                        {
+                            try
+                            {
+                                var res = BLLCreator.Create<GlBLL>().GLInWorkArea(makeReq);
+                                externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res);
+                            }
+                            catch (Exception ex)
+                            {
+                                TransferRubberThrow(ex, workFlowName);
+                            }
+                        }
+                        else
+                        {
+                            try
+                            {
+                                var res = BLLCreator.Create<GlBLL>().GLOutWorkArea(makeReq);
+                                externalRes = JsonConvert.DeserializeObject<ExternalResponse>(res);
+                            }
+                            catch (Exception ex)
+                            {
+                                TransferRubberThrow(ex, workFlowName);
+                            }
+                        }
+
+                        if (!externalRes.success)
+                        {
+                            TransferRubberThrow(new Exception(externalRes.errMsg), workFlowName);
+                        }
+                        else//鎴愬姛鐨勮瘽鍐欑Щ搴撹褰�+                        {
+                            var ok = externalRes.okList[0];
+                            AGV_Transfer_record _log = new AGV_Transfer_record()
+                            {
+                                ID = Guid.NewGuid().ToString(),
+                                LoadNo = ok.trayCode,
+                                MaterielCode = config.itemCode,
+                                MaterielName = config.itemName,
+                                Quantity = 1,
+                                LocationName_Source = ok.startBit,
+                                LocationName_Dest = ok.endBit,
+                                CreateDate = DateTime.Now,
+                                HasBeenReceived = Constants.Y
+                            };
+                            var _or = BLLCreator.CreateMiddleDapper<AGV_Transfer_record>().Add(_log);
+                            if (!_or.Success)
+                            {
+                                TransferRubberThrow(new Exception("涓嬭揪鎴愬姛,鍐欏叆绉诲簱璁板綍澶辫触锛� + _or.Msg), workFlowName);
+                                //throw new Exception("涓嬭揪鎴愬姛,鍐欏叆绉诲簱璁板綍澶辫触锛� + _or.Msg);
+                                //ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛,鍐欏叆绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req));
+                            }
+                            var _serviceExec = new TN_WM_SERVICE_EXECEntity()
+                            {
+                                CN_S_TASK_NO = Guid.NewGuid().ToString(),
+                                CN_S_ITEM_CODE = config.itemCode,
+                                CN_S_ITEM_NAME = config.itemName,
+                                CN_S_TASK_TYPE = "绉诲簱",
+                                CN_S_TRANS_TYPE = workFlowName,
+                                CN_S_TRAY_CODE = ok.trayCode,
+                                CN_N_PRIORITY = 1,
+                                CN_S_START_LOCATION = ok.startBit,
+                                CN_S_END_LOCATION = ok.endBit,
+                                CN_T_CREATE = DateTime.Now,
+                                CN_C_COMPLETE = Constants.Y,
+                                CN_C_SEND_MES = Constants.Y,
+                                CN_S_MSG = "涓嬭揪鎴愬姛"
+                            };
+
+                            var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Add(_serviceExec);
+                            if (!or.Success)
+                                throw new Exception(or.Msg);
+
+                            Log.DomainInfo(workFlowName + "绉诲簱鎴愬姛", JsonConvert.SerializeObject(externalRes));
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                Log.DomainInfo(workFlowName + " Error", ex.Message);
+            }
+        }
+        #endregion
+
+        #region 绉诲簱寮傚父璁板綍
+        /// <summary>
+        /// 绉诲簱寮傚父璁板綍
+        /// </summary>
+        /// <param name="ex"></param>
+        private void TransferRubberThrow(Exception ex, string workFlowName)
+        {
+            var lastServiceExec = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetSingleEntity(new
+            {
+                CN_S_TASK_TYPE = "绉诲簱",
+                CN_S_TRANS_TYPE = workFlowName,
+            }, " ORDER BY CN_T_CREATE DESC ");
+            if (lastServiceExec != null && ex.Message == lastServiceExec.CN_S_MSG)
+            {
+                BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Update(new
+                {
+                    CN_T_CREATE = DateTime.Now
+                }, new
+                {
+                    CN_S_TASK_NO = lastServiceExec.CN_S_TASK_NO
+                });
+                throw ex;
+            }
+            TN_WM_SERVICE_EXECEntity serviceExec = new TN_WM_SERVICE_EXECEntity()
+            {
+                CN_S_TASK_NO = Guid.NewGuid().ToString(),
+                CN_S_TASK_TYPE = "绉诲簱",
+                CN_S_TRANS_TYPE = workFlowName,
+                CN_T_CREATE = DateTime.Now,
+                CN_C_COMPLETE = Constants.Y,
+                CN_C_SEND_MES = Constants.N,
+                CN_S_MSG = ex.Message
+            };
+            var or = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().Add(serviceExec);
+            if (!or.Success)
+                throw new Exception(or.Msg);
+            throw ex;
+        }
+        #endregion
+
+        #region 绉婚�浠诲姟
+        /// <summary>
+        /// 绉婚�浠诲姟
+        /// </summary>
+        /// <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())
+            {
+                foreach (var req in transportReqs)
+                {
+                    string startBit = req.Location_From;
+                    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())
+                    {
+                        ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req));
+                        continue;
+                    }
+                    else
+                    {
+                        workRoute = workRoutes[0];
+                        if (workRoutes.Count > 1)
+                        {
+                            if (workRoutes.Exists(e => Util.ToString(e.CN_S_TYPE_CODE) == "X6" || Util.ToString(e.CN_S_TYPE_CODE) == "X7"))
+                            {
+                                if (string.IsNullOrEmpty(req.PROD_NO))
+                                {
+                                    workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X6");
+                                }
+                                else
+                                {
+                                    workRoute = workRoutes.Find(f => f.CN_S_TYPE_CODE == "X7");
+                                }
+                            }
+                        }
+                        if (workRoute == null)
+                        {
+                            ors.Add(OperateResult.Error("鏈壘鍒颁綔涓氳矾寰�, req));
+                            continue;
+                        }
+                    }
+
+
+                    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;
+                        }
+                        else
+                        {
+                            _serviceExec.CN_C_COMPLETE = Constants.N;
+                            _serviceExec.CN_C_SEND_MES = Constants.N;
+                            _serviceExec.CN_S_MSG = externalRes.errMsg;
+                        }
+
+                        var _or = TransportSuccess(_serviceExec);
+
+                        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")
+                            {
+                                ors.Add(OperateResult.Warning("宸插弽棣堣嚦mes锛屾秷鎭細 " + externalRes.errMsg, req));
+                            }
+                            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)
+                        {
+                            ors.Add(OperateResult.Warning("涓嬭揪鎴愬姛,鏇存柊绉婚�浠诲姟鏃ュ織澶辫触锛� + _or.Msg, req));
+                            continue;
+                        }
+                        ors.Add(OperateResult.Succeed("涓嬭揪鎴愬姛", req));
+                    }
+                }
+                Log.DomainInfo("绉婚�浠诲姟 缁撴灉", JsonConvert.SerializeObject(ors));
+            }
+            return ors;
+        }
+        #endregion
+
+        #region 鍒ゆ柇鏄惁鍦ㄥ伐浣滄椂闂�+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍦ㄥ伐浣滄椂闂�+        /// </summary>
+        /// <param name="config"></param>
+        /// <returns></returns>
+        private bool IsWorkTime(GLTransferDto config)
+        {
+            try
+            {
+                TimeSpan dspWorkingDayAM = config.startTime.TimeOfDay;
+                TimeSpan dspWorkingDayPM = config.endTime.TimeOfDay;
+                TimeSpan dspNow = DateTime.Now.TimeOfDay;
+                if (dspNow >= dspWorkingDayAM && dspNow <= dspWorkingDayPM)
+                {
+                    return true;
+                }
+                return false;
+            }
+            catch
+            {
+                return false;
+            }
+        }
+        #endregion
+
+        /// <summary>
+        /// 鍏ヤ綔涓氬尯
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public string GLInWorkArea(TN_WM_B_MAKE_TASKEntity entity)
+        {
+            ExternalResponse result = new ExternalResponse();
+            try
+            {
+                Log.Info("澶勭悊浣嶇疆淇℃伅寮�锛�, JsonConvert.SerializeObject(entity));
+                //澶勭悊浣嶇疆淇℃伅
+                CheckPosition(ref entity);
+                Log.Info("澶勭悊浣嶇疆淇℃伅缁撴潫锛�, JsonConvert.SerializeObject(entity));
+
+                //浼犻�鍙傛暟
+                List<InWorkAreaEntity> inWorkAreaEntitys = new List<InWorkAreaEntity>();
+
+
+
+
+
+                InWorkAreaEntity model = new InWorkAreaEntity();
+
+                model.itemCode = entity.CN_S_ITEM_CODE;
+                model.trayCode = entity.CN_S_TRAY_CODE;
+                model.priority = Convert.ToInt32(entity.CN_S_PRIORITY);
+                model.startBit = entity.CN_S_START_BIT;
+                model.startArea = entity.CN_S_START_AREA;
+                model.startStock = entity.CN_S_START_STOCK;
+                model.endBit = entity.CN_S_END_BIT;
+                model.endArea = entity.CN_S_END_AREA;
+                model.endStock = entity.CN_S_END_STOCK;
+                model.remark = entity.CN_S_WORKFLOW_NAME;
+                model.isBackItem = "";
+                model.needCreateAMSTask = entity.CN_S_NEED_AMS;
+
+                //鏍囪鏄惁鏄�鍥炵墿鏂�鐢熻兌銆佸皬鏂欍�姣嶈兌銆佺粓鐐艰兌灏忕洏鏂欓�鍥烇紝浣欐枡鏍兼爡杞﹂�鍥烇紝浣欐枡甯樺竷閫�洖)
+                string workFlowName = entity.CN_S_WORKFLOW_NAME;
+                if (workFlowName == WorkFlowName.FlowNameList["S5"] || workFlowName == WorkFlowName.FlowNameList["X7"] || workFlowName == WorkFlowName.FlowNameList["M5"] || workFlowName == WorkFlowName.FlowNameList["Z6"] || workFlowName == WorkFlowName.FlowNameList["T5"] || workFlowName == WorkFlowName.FlowNameList["L5"])
+                {
+                    model.isBackItem = Constants.Y;
+                }
+
+                List<string> keyList = (from q in WorkFlowName.FlowNameList
+                                        where q.Value == entity.CN_S_WORKFLOW_NAME
+                                        select q.Key).ToList<string>(); //get all keys
+
+                var funcName = WorkFlowName.FlowNameList.FirstOrDefault(q => q.Value == entity.CN_S_WORKFLOW_NAME).Key;
+
+                if (funcName != "" && funcName != null)
+                {
+                    model.funCode = funcName;
+                }
+
+                //鐗╂枡缂栫爜涓嶄负绌烘椂 鎵嶇粍缁嘍ata
+                if (!string.IsNullOrEmpty(entity.CN_S_ITEM_CODE))
+                {
+
+                    var item = BLLCreator.Create<TN_WMS_ITEMBLL>().GetItem(entity.CN_S_ITEM_CODE);
+
+                    List<ChaoYangItemDataEntity> DataList = new List<ChaoYangItemDataEntity>();
+
+                    DataList.Add(new ChaoYangItemDataEntity
+                    {
+                        itemCode = entity.CN_S_ITEM_CODE,
+                        qty = Convert.ToInt32(entity.CN_F_QUANTITY),
+                        itemModel = item == null ? "" : item.CN_S_MODEL,
+                        itemPackUnit = item == null ? "" : item.CN_S_MEASURE_UNIT,
+                        itemName = item == null ? "" : item.CN_S_ITEM_NAME,
+                        itemState = "鍚堟牸"
+                    });
+                    model.data = DataList;
+                }
+
+                inWorkAreaEntitys.Add(model);
+
+                Log.Info("寮�杩涘叆鍏ュ簱锛屼紶鍙傦細", JsonConvert.SerializeObject(inWorkAreaEntitys));
+                result = BLLCreator.Create<WmsApiBaseBLL>().InWorkArea(inWorkAreaEntitys);
+                return JsonConvert.SerializeObject(result);
+
+            }
+            catch (Exception ex)
+            {
+                result.errCode = "5";//绋嬪簭寮傚父
+                result.errMsg = ex.Message;//绋嬪簭寮傚父
+                Log.DomainInfo(entity.CN_S_WORKFLOW_NAME + "锛�InError", ex.Message);
+                return JsonConvert.SerializeObject(result);
+            }
+
+        }
+
+        /// <summary>
+        /// 鍑轰綔涓氬尯
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        public string GLOutWorkArea(TN_WM_B_MAKE_TASKEntity entity)
+        {
+            ExternalResponse result = new ExternalResponse();
+
+            try
+            {
+                Log.Info("澶勭悊浣嶇疆淇℃伅寮�锛�, JsonConvert.SerializeObject(entity));
+                //澶勭悊浣嶇疆淇℃伅
+                CheckPosition(ref entity);
+                Log.Info("澶勭悊浣嶇疆淇℃伅缁撴潫锛�, JsonConvert.SerializeObject(entity));
+
+                //浼犻�鍙傛暟
+                List<OutWorkAreaEntity> outWorkAreaEntitys = new List<OutWorkAreaEntity>();
+
+                List<OutWorkDataEntity> DataList = new List<OutWorkDataEntity>();
+
+                //鐗╂枡缂栫爜涓嶄负绌烘椂 鎵嶇粍缁嘍ata
+                if (!string.IsNullOrEmpty(entity.CN_S_ITEM_CODE))
+                {
+                    DataList.Add(new OutWorkDataEntity
+                    {
+                        ItemCode = entity.CN_S_ITEM_CODE,
+                        TrayCode = entity.CN_S_TRAY_CODE,
+                        UnitQty = Convert.ToInt32(entity.CN_F_QUANTITY)
+                    });
+                }
+                string funCode = "";
+                List<string> keyList = (from q in WorkFlowName.FlowNameList
+                                        where q.Value == entity.CN_S_WORKFLOW_NAME
+                                        select q.Key).ToList<string>(); //get all keys
+
+                var funcName = WorkFlowName.FlowNameList.FirstOrDefault(q => q.Value == entity.CN_S_WORKFLOW_NAME).Key;
+
+                if (funcName != "" && funcName != null)
+                {
+                    funCode = funcName;
+                }
+
+                outWorkAreaEntitys.Add(new OutWorkAreaEntity()
+                {
+                    itemCode = entity.CN_S_ITEM_CODE,
+                    trayCode = entity.CN_S_TRAY_CODE,
+                    priority = Convert.ToInt32(entity.CN_S_PRIORITY),
+                    startBit = entity.CN_S_START_BIT,
+                    startArea = entity.CN_S_START_AREA,
+                    startStock = entity.CN_S_START_STOCK,
+                    endBit = entity.CN_S_END_BIT,
+                    endArea = entity.CN_S_END_AREA,
+                    endStock = entity.CN_S_END_STOCK,
+                    remark = entity.CN_S_WORKFLOW_NAME,
+                    Data = DataList,
+                    needCreateAMSTask = entity.CN_S_NEED_AMS,
+                    IsTransport = entity.CN_S_ISTRANSPORT,
+                    funCode = string.IsNullOrEmpty(funCode) ? "" : funCode
+                });
+
+                Log.Info("寮�杩涘叆鍑哄簱锛屼紶鍙傦細", JsonConvert.SerializeObject(entity));
+
+                result = BLLCreator.Create<WmsApiBaseBLL>().OutWorkArea(outWorkAreaEntitys);
+                return JsonConvert.SerializeObject(result);
+
+            }
+            catch (Exception ex)
+            {
+                result.errCode = "5";//绋嬪簭寮傚父
+                result.errMsg = ex.Message;//绋嬪簭寮傚父
+                Log.DomainInfo(entity.CN_S_WORKFLOW_NAME + "锛�OutError", ex.Message);
+                return JsonConvert.SerializeObject(result);
+            }
+        }
+
+        /// <summary>
+        /// 澶勭悊浣嶇疆淇℃伅
+        /// </summary>
+        /// <param name="entity"></param>
+        private void CheckPosition(ref TN_WM_B_MAKE_TASKEntity entity)
+        {
+            //闃叉浼犱簡璧峰浣嶇疆锛屾病浼犺捣濮嬪簱鍖�+            if (!string.IsNullOrEmpty(entity.CN_S_START_BIT))
+            {
+                TN_WM_LOCATION_EXTEntity locationModel = BLL.BLLCreator.Create<TN_WM_LOCATION_EXTBLL>().GetExtModel(" WHERE CN_S_LOCATION_CODE='" + entity.CN_S_START_BIT + "' ");
+                if (locationModel != null)
+                {
+                    entity.CN_S_START_AREA = locationModel.CN_S_AREA_CODE.Trim();
+                    entity.CN_S_START_STOCK = locationModel.CN_S_STOCK_CODE.Trim();
+                }
+            }
+            //闃叉浼犱簡鐩殑浣嶇疆锛屾病浼犵洰鐨勫簱鍖�+            if (!string.IsNullOrEmpty(entity.CN_S_END_BIT))
+            {
+                TN_WM_LOCATION_EXTEntity locationModel = BLL.BLLCreator.Create<TN_WM_LOCATION_EXTBLL>().GetExtModel(" WHERE CN_S_LOCATION_CODE='" + entity.CN_S_END_BIT + "' ");
+                if (locationModel != null)
+                {
+                    entity.CN_S_END_AREA = locationModel.CN_S_AREA_CODE.Trim();
+                    entity.CN_S_END_STOCK = locationModel.CN_S_STOCK_CODE.Trim();
+                }
+            }
+
+            Log.Info("澶勭悊浣嶇疆淇℃伅浣嶇疆涓�細", JsonConvert.SerializeObject(entity));
+
+            if (string.IsNullOrEmpty(entity.CN_S_START_AREA) || string.IsNullOrEmpty(entity.CN_S_END_AREA))
+            {
+                //鎵句綔涓氳矾寰�+                var workRoute = BLLCreator.Create<TN_AB_B_WORK_AREA_PROBLL>().GetSingleRoute(entity.CN_S_START_AREA, entity.CN_S_END_AREA);
+                if (workRoute == null)
+                {
+                    throw new Exception("澶辫触锛屾湭鎵惧埌浣滀笟璺緞锛�);
+                }
+
+                if (string.IsNullOrEmpty(entity.CN_S_START_AREA))
+                {
+                    entity.CN_S_START_AREA = workRoute.CN_S_START_AREA_CODE;
+                }
+
+                if (string.IsNullOrEmpty(entity.CN_S_END_AREA))
+                {
+                    entity.CN_S_END_AREA = workRoute.CN_S_END_AREA_CODE;
+                }
+            }
+
+            Log.Info("澶勭悊浣嶇疆淇℃伅浣嶇疆浜岋細", JsonConvert.SerializeObject(entity));
+
+            var SareaEntity = BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().GetStockAreaEntity(entity.CN_S_START_AREA.Trim());
+            if (SareaEntity != null)
+                entity.CN_S_START_STOCK = SareaEntity.CN_S_STOCK_CODE;
+
+
+            var EareaEntity = BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().GetStockAreaEntity(entity.CN_S_END_AREA.Trim());
+            if (EareaEntity != null)
+                entity.CN_S_END_STOCK = EareaEntity.CN_S_STOCK_CODE;
+
+            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>
+        /// 鏈嶅姟鎵ц璁板綍鏃ュ織鍒嗛〉
+        /// </summary>
+        /// <param name="sm"></param>
+        /// <returns></returns>
+        public OperateResult GetServiceExecList(SearchModel sm)
+        {
+            return CreateDAL<GlDAL>().GetServiceExecList(sm);
+        }
+        #endregion
+
+        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 }
+                });
+
+                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
+                    {
+                        //鏈墽琛岃〃绀虹涓�釜浠诲姟
+                        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 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//鎵ц涓�崐鐨勪换鍔★紝寮�鍒涘缓绗簩涓换鍔�+                        {
+                            //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 + "鐨勬帴椹充綅");
+                            //鍒涘缓绗簩涓换鍔�+                            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);
+                        }
+                        ors.Add(OperateResult.Succeed("鐢熸垚鎴愬姛"));
+                    }
+                    catch (Exception ex)
+                    {
+                        ors.Add(OperateResult.Error(ex.Message));
+                    }
+                }
+                Log.DomainInfo("SelfManageTask", JsonConvert.SerializeObject(ors));
+            }
+            catch (Exception ex)
+            {
+                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);
+
+                    // 鍒涘缓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,
+                    };
+                    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));
+            }
+        }
+    }
+}
diff --git a/HH.WMS.Entitys/Dto/ZCTransferDto.cs b/HH.WMS.Entitys/Dto/ZCTransferDto.cs
new file mode 100644
index 0000000..f3019f9
--- /dev/null
+++ b/HH.WMS.Entitys/Dto/ZCTransferDto.cs
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.WMS.Entitys.Dto
+{
+    public class ZCTransferDto
+    {
+        public ZCTransferDto()
+        {
+            moveStockEnableAms = moveStockEnableAms ?? "N";
+            transferEnableAms = transferEnableAms ?? "N";
+        }
+
+        public string itemCode { get; set; }
+        public string itemName { get; set; }
+        public int transferMax { get; set; }
+        public string startArea { get; set; }
+        public string endArea { get; set; }
+        public DateTime startTime { get; set; }
+        public DateTime endTime { get; set; }
+
+        public string workFlowCode { get; set; }
+        public string workFlowName { get; set; }
+        public string transType { get; set; }
+
+        public string isTransport { get; set; }
+
+        public string moveStockEnableAms { get; set; }
+        public string transferEnableAms { get; set; }
+    }
+}
diff --git a/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs b/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs
new file mode 100644
index 0000000..83dd663
--- /dev/null
+++ b/HH.WMS.Entitys/Entitys/Mes/TN_MES_TASK.cs
@@ -0,0 +1,150 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.WMS.Entitys.Entitys.Mes
+{
+    /// <summary>
+    /// 绉婚�浠诲姟 Transport invitation
+    /// </summary>
+    [Table("TN_MES_TASK")]
+    public class TN_MES_TASK
+    {
+        /// <summary>
+        /// 浠诲姟鍙�+        /// </summary>
+        [Column("task_no")]
+        public string task_no { get; set; }
+        /// <summary>
+        /// 浠诲姟绫诲瀷1:鍏ュ簱;2:鍑哄簱;3-绌烘《浠诲姟
+        /// </summary>
+
+        [Column("Task_type")]
+        public int Task_type { get; set; }
+        /// <summary>
+        /// 鍛ㄨ浆鍗″彿
+        /// </summary>
+        [Column("TurnCardNum")]
+        public string TurnCardNum { get; set; }
+        /// <summary>
+        /// 鍒跺搧缂栧彿
+        /// </summary>
+        [Column("PROD_NO")]
+        public string PROD_NO { get; set; }
+        /// <summary>
+        /// 宸ヨ壓缂栧彿
+        /// </summary>
+
+        [Column("PROD_TECH")]
+        public string PROD_TECH { get; set; }
+        /// <summary>
+        /// 鍒跺搧瑙勬牸
+        /// </summary>
+        [Column("PROD_SPEC")]
+        public string PROD_SPEC { get; set; }
+        /// <summary>
+        /// 鍒跺搧绫诲瀷
+        /// </summary>
+        [Column("PROD_BOM")]
+        public string PROD_BOM { get; set; }
+        /// <summary>
+        /// 鍒跺搧鐗瑰緛鍊�+        /// </summary>
+        [Column("PROD_Feature")]
+        public string PROD_Feature { get; set; }
+        /// <summary>
+        /// 宸ヨ缂栧彿
+        /// </summary>
+        [Column("TOOLS_NO")]
+        public string TOOLS_NO { get; set; }
+        /// <summary>
+        /// 杞芥枡鏁伴噺
+        /// </summary>
+        [Column("ST_AMOUNT")]
+        public float ST_AMOUNT { get; set; }
+        /// <summary>
+        /// 褰撳墠鏁伴噺
+        /// </summary>
+        [Column("CURRENT_AMOUNT")]
+        public float CURRENT_AMOUNT { get; set; }
+        /// <summary>
+        /// 璧峰搴撲綅缂栧彿
+        /// </summary>
+        [Column("Location_From")]
+        public string Location_From { get; set; }
+        /// <summary>
+        /// 鐩殑搴撲綅缂栧彿
+        /// </summary>
+        [Column("Location_To")]
+        public string Location_To { get; set; }
+        /// <summary>
+        /// 鐢熶骇鏃堕棿
+        /// </summary>
+        [Column("PRODUCE_TIME")]
+        public DateTime PRODUCE_TIME { get; set; }
+        /// <summary>
+        /// 鐢熸晥鏃堕棿
+        /// </summary>
+
+        [Column("SHELF_LIFE_TIME")]
+        public DateTime SHELF_LIFE_TIME { get; set; }
+        /// <summary>
+        /// 澶辨晥鏃堕棿
+        /// </summary>
+        [Column("EXPIRED_TIME")]
+        public DateTime EXPIRED_TIME { get; set; }
+        /// <summary>
+        /// 缂╃煭鎶ュ憡鏃堕棿
+        /// </summary>
+        [Column("SHELF_REP")]
+        public float SHELF_REP { get; set; }
+        /// <summary>
+        /// 寤堕暱鎶ュ憡鏃堕棿
+        /// </summary>
+        [Column("EXPIRED_REP")]
+        public float EXPIRED_REP{ get; set; }
+        /// <summary>
+        /// 璐ㄦ鐘舵�浠g爜
+        /// </summary>
+        [Column("CHECK_CODE")]
+        public string CHECK_CODE { get; set; }
+        /// <summary>
+        /// 璐ㄦ鐘舵�
+        /// </summary>
+        [Column("CHECK_INFO")]
+        public string CHECK_INFO { get; set; }
+        /// <summary>
+        /// 浼樺厛绾�-鏅�锛氫换鍔$敓鎴愭椂锛屽潎涓烘绾у埆;1-鍔犳�;2-绱ф�
+        /// </summary>
+        [Column("Priority")]
+        public int Priority { get; set; }
+        /// <summary>
+        /// 浠诲姟鐘舵�0-鍒濆鐘舵�;1-杩涜涓�2-瀹屾垚;3-浠诲姟鍙栨秷
+        /// </summary>
+        [Column("Data_status")]
+        public int Data_status { get; set; }
+        /// <summary>
+        /// 鏄惁闇�瑙﹀彂 Y/N
+        /// </summary>
+        [Column("NeedTrig")]
+        public string NeedTrig { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        [Column("CreateDate")]
+        public DateTime CreateDate { get; set; }
+        /// <summary>
+        /// 涓氬姟绫诲瀷
+        /// 1	鍗婃垚鍝佹弧鎵樺叆搴�+        /// 2	鎴愬瀷鏈哄崐鎴愬搧鍥炲簱
+        /// 3	鎴愬瀷鏈虹┖妗跺洖搴�+        /// 4	鎴愬瀷鏈烘弧鎵樺嚭搴�+        /// 5	鎴愬瀷鏈哄甫鏉熷洖搴�+        /// 6	鎴愬瀷鏈哄甫鏉熸弧鎵樺嚭搴�+        /// </summary>
+        [Column("BUSI_TYPE")]
+        public string BUSI_TYPE { get; set; }
+    }
+}
diff --git a/HH.WMS.Entitys/External/ZCReceiveTaskEntity.cs b/HH.WMS.Entitys/External/ZCReceiveTaskEntity.cs
new file mode 100644
index 0000000..bf3b3f0
--- /dev/null
+++ b/HH.WMS.Entitys/External/ZCReceiveTaskEntity.cs
@@ -0,0 +1,110 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.WMS.Entitys.External
+{
+    public class ZCReceiveTaskEntity
+    {
+        /// <summary>
+        /// 浠诲姟鍙�+        /// </summary>
+        public string task_no { get; set; }
+        /// <summary>
+        /// 浠诲姟绫诲瀷1:鍏ュ簱;2:鍑哄簱;3-绌烘《浠诲姟
+        /// </summary>
+        public int Task_type { get; set; }
+        /// <summary>
+        /// 鍛ㄨ浆鍗″彿
+        /// </summary>
+        public string TurnCardNum { get; set; }
+        /// <summary>
+        /// 鍒跺搧缂栧彿
+        /// </summary>
+        public string PROD_NO { get; set; }
+        /// <summary>
+        /// 宸ヨ壓缂栧彿
+        /// </summary>
+        public string PROD_TECH { get; set; }
+        /// <summary>
+        /// 鍒跺搧瑙勬牸
+        /// </summary>
+        public string PROD_SPEC { get; set; }
+        /// <summary>
+        /// 鍒跺搧绫诲瀷
+        /// </summary>
+        public string PROD_BOM { get; set; }
+        /// <summary>
+        /// 鍒跺搧鐗瑰緛鍊�+        /// </summary>
+        public string PROD_Feature { get; set; }
+        /// <summary>
+        /// 宸ヨ缂栧彿
+        /// </summary>
+        public string TOOLS_NO { get; set; }
+        /// <summary>
+        /// 杞芥枡鏁伴噺
+        /// </summary>
+        public float ST_AMOUNT { get; set; }
+        /// <summary>
+        /// 褰撳墠鏁伴噺
+        /// </summary>
+        public float CURRENT_AMOUNT { get; set; }
+        /// <summary>
+        /// 璧峰搴撲綅缂栧彿
+        /// </summary>
+        public string Location_From { get; set; }
+        /// <summary>
+        /// 鐩殑搴撲綅缂栧彿
+        /// </summary>
+        public string Location_To { get; set; }
+        /// <summary>
+        /// 鐢熶骇鏃堕棿
+        /// </summary>
+        public DateTime PRODUCE_TIME { get; set; }
+        /// <summary>
+        /// 鐢熸晥鏃堕棿
+        /// </summary>
+        public DateTime SHELF_LIFE_TIME { get; set; }
+        /// <summary>
+        /// 澶辨晥鏃堕棿
+        /// </summary>
+        public DateTime EXPIRED_TIME { get; set; }
+        /// <summary>
+        /// 缂╃煭鎶ュ憡鏃堕棿
+        /// </summary>
+        public float SHELF_REP { get; set; }
+        /// <summary>
+        /// 寤堕暱鎶ュ憡鏃堕棿
+        /// </summary>
+        public float EXPIRED_REP { get; set; }
+        /// <summary>
+        /// 璐ㄦ鐘舵�浠g爜
+        /// </summary>
+        public string CHECK_CODE { get; set; }
+        /// <summary>
+        /// 璐ㄦ鐘舵�
+        /// </summary>
+        public string CHECK_INFO { get; set; }
+        /// <summary>
+        /// 浼樺厛绾�-鏅�锛氫换鍔$敓鎴愭椂锛屽潎涓烘绾у埆;1-鍔犳�;2-绱ф�
+        /// </summary>
+        public int Priority { get; set; }
+        /// <summary>
+        /// 浠诲姟鐘舵�0-鍒濆鐘舵�;1-杩涜涓�2-瀹屾垚;3-浠诲姟鍙栨秷
+        /// </summary>
+        public int Data_status { get; set; }
+        /// <summary>
+        /// 涓氬姟绫诲瀷
+        /// 1	鍗婃垚鍝佹弧鎵樺叆搴�+        /// 2	鎴愬瀷鏈哄崐鎴愬搧鍥炲簱
+        /// 3	鎴愬瀷鏈虹┖妗跺洖搴�+        /// 4	鎴愬瀷鏈烘弧鎵樺嚭搴�+        /// 5	鎴愬瀷鏈哄甫鏉熷洖搴�+        /// 6	鎴愬瀷鏈哄甫鏉熸弧鎵樺嚭搴�+        /// </summary>
+        public string BUSI_TYPE { get; set; }
+    }
+}
diff --git a/HH.WMS.Entitys/HH.WMS.Entitys.csproj b/HH.WMS.Entitys/HH.WMS.Entitys.csproj
index 7128a83..127bbd1 100644
--- a/HH.WMS.Entitys/HH.WMS.Entitys.csproj
+++ b/HH.WMS.Entitys/HH.WMS.Entitys.csproj
@@ -66,6 +66,9 @@
     <Compile Include="Algorithm\TN_AB_B_ITEM_PRICEEntity.cs" />
     <Compile Include="Algorithm\TN_AB_B_LOCATION_LINKEntity.cs" />
     <Compile Include="Algorithm\TN_AB_STOCKEntity.cs" />
+    <Compile Include="Dto\ZCTransferDto.cs" />
+    <Compile Include="Entitys\Mes\TN_MES_TASK.cs" />
+    <Compile Include="External\ZCReceiveTaskEntity.cs" />
     <Compile Include="Wcs\WcsResponse.cs" />
     <Compile Include="Ams\AmsAddTask.cs" />
     <Compile Include="Ams\AmsResponse.cs" />
diff --git a/HH.WMS.WebApi/Config.json b/HH.WMS.WebApi/Config.json
index 6e0167c..078671d 100644
--- a/HH.WMS.WebApi/Config.json
+++ b/HH.WMS.WebApi/Config.json
@@ -232,11 +232,31 @@
       "isTransport": "N"
     }
   ],
-  //宸烽亾鎺ラ┏浣�+  //鎺ラ┏浣�   "connectBit": [
     {
-      "tunnel": "01",
-      "bit": "CK001-A2-01-01"
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "甯︽潫鍏ュ簱"
+    },
+    {
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "甯︽潫鍑哄簱"
+    },
+    {
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "婊℃墭鍏ュ簱"
+    },
+    {
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "绌烘墭鍑哄簱"
+    },
+    {
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "婊℃墭鍑哄簱"
+    },
+    {
+      "bit": "鎺ラ┏浣嶈揣浣�,
+      "tasktype": "绌烘墭鍏ュ簱"
     }
   ]
 }
\ No newline at end of file
diff --git a/HH.WMS.WebApi/Controllers/WmsApiController.cs b/HH.WMS.WebApi/Controllers/WmsApiController.cs
index 7ba2d5e..9f33b68 100644
--- a/HH.WMS.WebApi/Controllers/WmsApiController.cs
+++ b/HH.WMS.WebApi/Controllers/WmsApiController.cs
@@ -1076,7 +1076,33 @@
 
         #endregion
 
+        #region 娴锋疆涓瓥
 
+        /// <summary>
+        /// 浠诲姟涓嬪彂鎺ュ彛
+        /// </summary>
+        /// <param name="jsonData"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public object ReceiveTask(dynamic jsonData)
+        {
+            var logPara = LogType.LogPara("浠诲姟涓嬪彂");
+            Log.Detail(logPara, "HCZCSendTask:浠诲姟涓嬪彂浼犻�鍙傛暟锛� + jsonData.ToString());
+
+            ZCReceiveTaskEntity sendTaskEntity = JsonConvert.DeserializeObject<ZCReceiveTaskEntity>(jsonData.ToString());
+
+            //璋冪敤ReceiveTask鏂规硶淇濆瓨鑷充腑闂村簱
+            var result = BLLCreator.Create<WmsApiBaseBLL>().ReceiveTask(sendTaskEntity);
+            return new
+            {
+                success = result.Success,
+                code = result.Success ? 0 : -1,
+                lastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                message = result.Msg
+            };
+        }
+
+        #endregion
 
 
 
diff --git a/HH.WMS.WebApi/Extension/ExecSelfManageTask.cs b/HH.WMS.WebApi/Extension/ExecSelfManageTask.cs
index 133da2d..4636ec4 100644
--- a/HH.WMS.WebApi/Extension/ExecSelfManageTask.cs
+++ b/HH.WMS.WebApi/Extension/ExecSelfManageTask.cs
@@ -18,7 +18,7 @@
             {  //闃叉Timer閲嶅叆
                 lock (locko)
                 {
-                    BLLCreator.Create<GlBLL>().SelfManageTask();
+                    BLLCreator.Create<ZCBLL>().SelfManageTask();
                 }
             }
             catch (Exception ex)
diff --git a/HH.WMS.WebApi/Extension/ExecTransferTask.cs b/HH.WMS.WebApi/Extension/ExecTransferTask.cs
index 4542a72..e70a607 100644
--- a/HH.WMS.WebApi/Extension/ExecTransferTask.cs
+++ b/HH.WMS.WebApi/Extension/ExecTransferTask.cs
@@ -28,22 +28,8 @@
             {  //闃叉Timer閲嶅叆
                 lock (locko)
                 {
-                    var transportReqs = BLLCreator.CreateMiddleDapper<AGV_Transport_Request>().GetList(new
-                    {
-                        HasBeenReceived = Constants.N
-                    }).OrderBy(o => o.CreateDate).ToList();
-
-                    var serviceExecs = BLLCreator.CreateDapper<TN_WM_SERVICE_EXECEntity>().GetList(new
-                    {
-                        CN_C_COMPLETE = Constants.N,
-                        CN_S_TASK_TYPE = "绉婚�"
-                    });
-
-                    transportReqs = transportReqs.FindAll(f => !serviceExecs.Exists(e => e.CN_S_TASK_NO == f.TaskNo));
-                    if(transportReqs.Any())
-                    {
-                        BLLCreator.Create<GlBLL>().ExecTransferTask(transportReqs);
-                    }
+                    // 浣跨敤TN_MES_TASK涓存椂琛ㄤ腑鎺ユ敹鐨凪ES浠诲姟锛屽垱寤篧MS浠诲姟
+                    BLLCreator.Create<ZCBLL>().ExecTransferTask();                    
                 }
             }
             catch (Exception ex)
diff --git a/HH.WMS.WebApi/Web.config b/HH.WMS.WebApi/Web.config
index 6a8d23a..967229d 100644
--- a/HH.WMS.WebApi/Web.config
+++ b/HH.WMS.WebApi/Web.config
@@ -6,8 +6,8 @@
 <configuration>
   <connectionStrings>
     <!--<add name="wmsConnection" connectionString="Data Source=192.168.1.198\sql2008;Initial Catalog=HC2_WMS;User ID=sa;Password=sa@2015" providerName="System.Data.SqlClient" />-->
-    <add name="wmsConnection" connectionString="Data Source=192.168.1.199;Initial Catalog=GL_WMS;User ID=sa;Password=test?123" providerName="System.Data.SqlClient"/>
-    <add name="middleConnection" connectionString="Data Source=192.168.1.199;Initial Catalog=GL_ZJK;User ID=sa;Password=test?123" providerName="System.Data.SqlClient"/>
+    <add name="wmsConnection" connectionString="Data Source=192.168.1.199;Initial Catalog=ZC_WMS;User ID=sa;Password=test?123" providerName="System.Data.SqlClient"/>
+    <!--<add name="middleConnection" connectionString="Data Source=192.168.1.199;Initial Catalog=GL_ZJK;User ID=sa;Password=test?123" providerName="System.Data.SqlClient"/>-->
     <add name="DataType" connectionString="MSSQL"/>
     <add name="MIP" connectionString="192.168.1.198"/>
     <add name="MPORT" connectionString="27017"/>
@@ -17,7 +17,7 @@
   </connectionStrings>
   <appSettings>
     <add key="appCode" value="AutoWMS" />
-    <add key="autobom_ipAddress" value="localhost:7198" />
+    <add key="autobom_ipAddress" value="192.168.1.199:8113" />
     <add key="ams_ipAddress" value="192.168.1.199:8614" />
 	<add key="wcs_ipAddress" value="wcs_ipAddress" />
     <add key="RedisPath" value="123456@192.168.1.199:6379" />
@@ -25,7 +25,7 @@
     <add key="KdEID" />
     <add key="KdEAppKey" />
     <add key="KdEReqURL" />
-    <add key="AppName" value="璐靛窞杞儙" />
+    <add key="AppName" value="娴锋疆涓瓥" />
     <add key="AutobomApi" value="192.168.1.199:8362" />
     <add key="REDIS" value="123456@192.168.1.199:6379" />
     <add key="REDIS_DB" value="1" />
diff --git a/HH.WMS.WebUI/Web.config b/HH.WMS.WebUI/Web.config
index 0c9318b..98ee669 100644
--- a/HH.WMS.WebUI/Web.config
+++ b/HH.WMS.WebUI/Web.config
@@ -12,10 +12,10 @@
     <section name="ActiveReports12" type="GrapeCity.ActiveReports.Web.ActiveReportsSettingsSection"/>
   </configSections>
   <appSettings> 
-    <add key="WmsApp" value="璐靛窞杞儙"/>
+    <add key="WmsApp" value="娴锋疆涓瓥"/>
     <add key="appCode" value="AutoWMS"/>
     <add key="RedisPath" value="123456@36.33.24.94:6379"/>
-    <add key="autobom_ipAddress" value="36.33.24.94:8362" />
+    <add key="autobom_ipAddress" value="192.168.1.199:8113" />
     <add key="projectCode" value="qzhk"/>
     <add key="DefaultDb" value="1"/>
     <add key="DisplayLocationBtnUserCode" value="hh"/>

--
Gitblit v1.9.1