zhao
2021-07-09 0821715ebc11d3934d0594a1cc2c39686d808906
HH.WMS.BLL/Pda/ZCBLL.cs
@@ -782,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>
        /// 服务执行记录日志分页
@@ -1198,1648 +1169,6 @@
                Log.DomainInfo("SelfManageTask Error", ex.Message);
            }
        }
        #region 货位状态
        // 接驳位锁定状态:预入库锁定、预出库锁定
        // 接驳位空闲状态:正常
        // 准备点状态同接驳位
        // 立库锁定状态:  预入库锁定、预出库锁定
        // 立库空闲状态:  空(入库前)、满(出库前)
        // 创建任务前、执行任务前      检查货位状态
        // 完成任务后                  清除货位状态
        // 执行失败后                  如何处理?
        #endregion
        #region 半成品
        #region 空托出库
        /// <summary>
        /// 创建空托出库并行子任务
        /// </summary>
        public OperateResult ExecBCP_KTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                // 空托出库和满托入库是反向的
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                // 准备点
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                // 立库->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_END_AREA,
                    CN_S_START_BIT = task.CN_S_END_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_1,
                    CN_S_EXT3 = ""
                };
                // 准备点->线边
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = readyBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_START_AREA,
                    CN_S_END_BIT = task.CN_S_START_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.BCP_KTCK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建半成品-空托出库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 创建半成品-空托出库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中 记录接驳位
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing,
                        CN_S_CONNECT_BIT = bit.bit
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建半成品-空托出库子任务失败,主任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行空托出库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecBCP_KTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 立库 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans);
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务1状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行半成品-空托出库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行空托出库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecBCP_KTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位的准备点货位
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 准备点 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.readybit }, trans);
                    // 线边货位不管控
                    // 子任务2状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行半成品-空托出库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #region 满托入库
        /// <summary>
        /// 创建 半成品-满托入库 子任务一
        /// </summary>
        public OperateResult ExecBCP_MTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 线边->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_3",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_1,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建半成品-满托入库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建半成品-满托入库子任务一失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 创建 半成品-满托入库 子任务二
        /// </summary>
        public OperateResult ExecBCP_MTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 接驳位->立库
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_4",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.BCP_MTRK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建满托入库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建半成品-满托入库子任务二失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行半成品-满托入库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecBCP_MTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 线边货位不管控
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务一状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行半成品-满托入库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行半成品-满托入库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecBCP_MTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 接驳位 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 立库预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
                    // 子任务二状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行半成品-满托入库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #endregion
        #region 成型机
        #region 半成品回库
        /// <summary>
        /// 创建 成型机-半成品回库 子任务一
        /// </summary>
        public OperateResult ExecCXJ_BCPHK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 线边->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_1,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机-半成品回库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机-半成品回库子任务一失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 创建 成型机-半成品回库 子任务二
        /// </summary>
        public OperateResult ExecCXJ_BCPHK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 接驳位->立库
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_BCPHK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机-半成品回库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机-半成品回库子任务二失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行成型机-半成品回库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_BCPHK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 线边货位不管控
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务一状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-半成品回库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行成型机-半成品回库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_BCPHK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 接驳位 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 立库预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
                    // 子任务二状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-半成品回库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #region 满托出库
        /// <summary>
        /// 创建满托出库并行子任务
        /// </summary>
        public OperateResult ExecCXJ_MTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                // 准备点
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                // 立库->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_1,
                    CN_S_EXT3 = ""
                };
                // 准备点->线边
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = readyBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_MTCK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机-满托出库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 创建成型机-满托出库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中 记录接驳位
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing,
                        CN_S_CONNECT_BIT = bit.bit
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机-满托出库子任务失败,主任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行满托出库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_MTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 立库 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans);
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务1状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-满托出库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行满托出库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_MTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位的准备点货位
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 准备点 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.readybit }, trans);
                    // 线边货位不管控
                    // 子任务2状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-满托出库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #region 回托回库-空托入库
        /// <summary>
        /// 创建 成型机-空托回库-空托入库 子任务一
        /// </summary>
        public OperateResult ExecCXJ_KTHK_KTRK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 线边->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_1,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机-空托回库-空托入库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机-空托回库-空托入库子任务一失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 创建 成型机-空托回库-空托入库 子任务二
        /// </summary>
        public OperateResult ExecCXJ_KTHK_KTRK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 接驳位->立库
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.CXJ_KTHK_KTRK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机-空托回库-空托入库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机-空托回库-空托入库子任务二失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行成型机-空托回库-空托入库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_KTHK_KTRK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 线边货位不管控
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务一状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-空托回库-空托入库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行成型机-空托回库-空托入库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecCXJ_KTHK_KTRK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 接驳位 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 立库预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
                    // 子任务二状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机-空托回库-空托入库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #endregion
        #region 带束
        #region 半成品及空托回库
        /// <summary>
        /// 创建 成型机带束-半成品/空托回库 子任务一
        /// </summary>
        public OperateResult ExecDS_BCPKTHK_AddSub1(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 线边->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.DS_BCPKTHK_SUB_1,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机带束-半成品/空托回库-子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机带束-半成品/空托回库子任务一失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 创建 成型机带束-半成品/空托回库 子任务二
        /// </summary>
        public OperateResult ExecDS_BCPKTHK_AddSub2(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                // 接驳位->立库
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.DS_BCPKTHK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机带束-半成品/空托回库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机带束-半成品/空托回库子任务二失败,任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行成型机带束-半成品/空托回库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecDS_BCPKTHK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 线边货位不管控
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务一状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task1);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机带束-半成品/空托回库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行成型机带束-半成品/空托回库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecDS_BCPKTHK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 接驳位 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 立库预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = task2.CN_S_END_BIT }, trans);
                    // 子任务二状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task2);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机带束-半成品/空托回库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #region 满托出库
        /// <summary>
        /// 创建满托出库并行子任务
        /// </summary>
        public OperateResult ExecDS_MTCK_Add(TN_WM_TASKEntity task, ConnectBitDto bit)
        {
            OperateResult re = OperateResult.Error("未知错误");
            try
            {
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                // 准备点
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                // 立库->接驳位
                TN_WM_TASKEntity taskEntity1 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_1",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = task.CN_S_START_AREA,
                    CN_S_START_BIT = task.CN_S_START_BIT,
                    CN_S_END_AREA = connectBit.CN_S_AREA_CODE,
                    CN_S_END_BIT = connectBit.CN_S_LOCATION_CODE,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.DS_MTCK_SUB_1,
                    CN_S_EXT3 = ""
                };
                // 准备点->线边
                TN_WM_TASKEntity taskEntity2 = new TN_WM_TASKEntity()
                {
                    CN_S_TASK_NO = task.CN_S_TASK_NO + "_2",
                    CN_S_TRAY_CODE = task.CN_S_TRAY_CODE,
                    CN_S_STATE = Constants.TaskState_NoExecuted,
                    CN_S_BF_TASK_NO = "",
                    CN_S_AF_TASK_NO = "",
                    CN_S_STOCK_CODE = task.CN_S_STOCK_CODE,
                    CN_S_START_AREA = readyBit.CN_S_AREA_CODE,
                    CN_S_START_BIT = readyBit.CN_S_LOCATION_CODE,
                    CN_S_END_AREA = task.CN_S_END_AREA,
                    CN_S_END_BIT = task.CN_S_END_BIT,
                    CN_N_PRIORITY = 1,
                    CN_S_CREATOR = "sys",
                    CN_S_CREATOR_BY = "sys",
                    CN_T_CREATE = DateTime.Now,
                    CN_T_MODIFY = DateTime.Now,
                    CN_S_REMARK = "",
                    CN_S_TASK_FLAG = Constants.TaskFlag_ZG,
                    CN_S_EXT1 = task.CN_S_TASK_NO,
                    CN_S_EXT2 = TaskFlagConstants.DS_MTCK_SUB_2,
                    CN_S_EXT3 = ""
                };
                UseTransaction(trans =>
                {
                    // 创建成型机带束-满托出库子任务一
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity1);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 创建成型机带束-满托出库子任务二
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Add(taskEntity2);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                    // 主任务状态置为执行中 记录接驳位
                    re = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing,
                        CN_S_CONNECT_BIT = bit.bit
                    }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                    if (!re.Success)
                        throw new Exception(re.Msg);
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("创建成型机带束-满托出库子任务失败,主任务编号=" + task.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return re;
        }
        /// <summary>
        /// 执行满托出库的第一条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name=""></param>
        /// <returns></returns>
        public OperateResult ExecDS_MTCK_Sub1(TN_WM_TASKEntity task1, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位
                var connectBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.bit
                });
                if (connectBit == null)
                    throw new Exception("未找到接驳位货位:" + bit.bit);
                if (connectBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("接驳位:" + bit.bit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 立库 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = task1.CN_S_START_BIT }, trans);
                    // 接驳位 预入库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_InLock
                    }, new { CN_S_LOCATION_CODE = bit.bit }, trans);
                    // 子任务1状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task1.CN_S_TASK_NO }, trans);
                    // 发送Wcs任务
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task1));
                    or = BLLCreator.Create<OtherSysApi>().SendWcsCreateTask(task1);
                    Log.Detail(LogType.LogPara("调用WCS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机带束-满托出库子任务一失败,任务编号=" + task1.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        /// <summary>
        /// 执行满托出库的第二条子任务
        /// </summary>
        /// <param name="task"></param>
        /// <param name="connectBit"></param>
        /// <returns></returns>
        public OperateResult ExecDS_MTCK_Sub2(TN_WM_TASKEntity task2, ConnectBitDto bit)
        {
            OperateResult or = OperateResult.Error("未知错误");
            try
            {
                // 执行前检查货位状态
                // 接驳位的准备点货位
                var readyBit = BLLCreator.CreateDapper<TN_WM_LOCATION_EXTEntity>().GetSingleEntity(new
                {
                    CN_S_LOCATION_CODE = bit.readybit
                });
                if (readyBit == null)
                    throw new Exception("未找到准备点货位:" + bit.readybit);
                if (readyBit.CN_S_LOCATION_STATE != Constants.Location_State_Normal)
                    throw new Exception("准备点货位:" + bit.readybit + "存在未执行完的任务");
                UseTransaction(trans =>
                {
                    // 准备点 预出库锁定
                    CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                    {
                        CN_S_LOCATION_STATE = Constants.Location_State_OutLock
                    }, new { CN_S_LOCATION_CODE = bit.readybit }, trans);
                    // 线边货位不管控
                    // 子任务2状态置为执行中
                    or = CreateDapperDAL<TN_WM_TASKEntity>().Update(new
                    {
                        CN_S_STATE = Constants.TaskState_Executing
                    }, new { CN_S_TASK_NO = task2.CN_S_TASK_NO }, trans);
                    // 发送Ams任务
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "任务信息:" + JsonConvert.SerializeObject(task2));
                    or = BLLCreator.Create<OtherSysApi>().SendAmsTask(task2);
                    Log.Detail(LogType.LogPara("调用AMS接口执行任务"), "执行结果:" + JsonConvert.SerializeObject(or));
                });
            }
            catch (Exception ex)
            {
                OperateResult.Error("执行成型机带束-满托出库子任务二失败,任务编号=" + task2.CN_S_TASK_NO + ",错误信息:" + ex.Message);
            }
            return or;
        }
        #endregion
        #endregion
    }
    /// <summary>
@@ -2871,37 +1200,6 @@
        /// 空托入库
        /// </summary>
        public static string KTRK = "空托入库";
    }
    /// <summary>
    /// 接口同步的业务类型定义
    /// </summary>
    public class BusinessTypeConstants
    {
        /// <summary>
        /// 半成品满托入库
        /// </summary>
        public static string BCP_MTRK = "1";
        /// <summary>
        /// 成型机半成品回库
        /// </summary>
        public static string CXJ_BCPHK = "2";
        /// <summary>
        /// 成型机空桶回库
        /// </summary>
        public static string CXJ_KTHK = "3";
        /// <summary>
        /// 成型机满托出库
        /// </summary>
        public static string CXJ_MTCK = "4";
        /// <summary>
        /// 成型机带束回库
        /// </summary>
        public static string CXJ_DSHK = "5";
        /// <summary>
        /// 成型机带束满托出库
        /// </summary>
        public static string CXJ_DSMTCK = "6";
    }
    /// <summary>
@@ -2959,92 +1257,6 @@
        /// 带束-满托出库
        /// </summary>
        public static string DS_MTCK = "成型机带束-满托出库";
        #endregion
    }
    /// <summary>
    /// 任务标识常量
    /// </summary>
    public class TaskFlagConstants
    {
        /// <summary>
        /// 主任务
        /// </summary>
        public static string ROOT = "主任务";
        #region 半成品
        /// <summary>
        /// 半成品-空托出库子任务一
        /// </summary>
        public static string BCP_KTCK_SUB_1 = "半成品-空托出库-子任务一";
        /// <summary>
        /// 半成品-空托出库子任务二
        /// </summary>
        public static string BCP_KTCK_SUB_2 = "半成品-空托出库-子任务二";
        /// <summary>
        /// 半成品-满托入库子任务一
        /// </summary>
        public static string BCP_MTRK_SUB_1 = "半成品-满托入库-子任务一";
        /// <summary>
        /// 半成品-满托入库子任务二
        /// </summary>
        public static string BCP_MTRK_SUB_2 = "半成品-满托入库-子任务二";
        #endregion
        #region 成型机
        /// <summary>
        /// 成型机-半成品回库-子任务一
        /// </summary>
        public static string CXJ_BCPHK_SUB_1 = "成型机-半成品回库-子任务一";
        /// <summary>
        /// 成型机-半成品回库-子任务二
        /// </summary>
        public static string CXJ_BCPHK_SUB_2 = "成型机-半成品回库-子任务一";
        /// <summary>
        /// 成型机-空托回库-记录任务
        /// </summary>
        public static string CXJ_KTHK_RECORD = "成型机-空托回库-记录任务";
        /// <summary>
        /// 成型机-空托回库-入库阶段-子任务一
        /// </summary>
        public static string CXJ_KTHK_KTRK_SUB_1 = "成型机-空托回库-入库阶段-子任务一";
        /// <summary>
        /// 成型机-空托回库-入库阶段-子任务二
        /// </summary>
        public static string CXJ_KTHK_KTRK_SUB_2 = "成型机-空托回库-入库阶段-子任务二";
        /// <summary>
        /// 成型机-满托出库-子任务一
        /// </summary>
        public static string CXJ_MTCK_SUB_1 = "成型机-满托出库-子任务一";
        /// <summary>
        /// 成型机-满托出库-子任务二
        /// </summary>
        public static string CXJ_MTCK_SUB_2 = "成型机-满托出库-子任务二";
        #endregion
        #region 带束
        /// <summary>
        /// 成型机带束-半成品/空托回库-子任务一
        /// </summary>
        public static string DS_BCPKTHK_SUB_1 = "成型机带束-半成品/空托回库-子任务一";
        /// <summary>
        /// 成型机带束-半成品/空托回库-子任务二
        /// </summary>
        public static string DS_BCPKTHK_SUB_2 = "成型机带束-半成品/空托回库-子任务二";
        /// <summary>
        /// 成型机带束-满托出库-子任务一
        /// </summary>
        public static string DS_MTCK_SUB_1 = "成型机带束-满托出库-子任务一";
        /// <summary>
        /// 成型机带束-满托出库-子任务二
        /// </summary>
        public static string DS_MTCK_SUB_2 = "成型机带束-满托出库-子任务二";
        #endregion
    }