/// <summary>
        /// 手动取消任务
        /// 删除控制任务、管理任务
        /// 删除控制任务接口
        /// 更新货位状态
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CancelTaskEventHandler(object sender, ControlTaskEventArgs e)
        {
            int taskStatus = this.View.AskMessBox("您确定要手动删除选中任务么?");

            try
            {
                if (taskStatus == 0)
                {
                    if (e.ControlTaskIDArr.Count() > 0)//只有任务没有完成的时候才可以取消
                    {
                        for (int i = 0; i < e.ControlTaskIDArr.Count(); i++)
                        {
                            Hashtable deleteManaHs         = null;
                            Hashtable deleteControlInterHs = null;
                            Hashtable deleteStockHs        = null;
                            Hashtable updateGsHs           = null;

                            ControlTaskModel controlTaskModel = bllControlTask.GetModel(e.ControlTaskIDArr[i]);
                            if (controlTaskModel == null)
                            {
                                continue;
                            }
                            if (controlTaskModel.TaskStatus == EnumTaskStatus.执行中.ToString())
                            {
                                this.View.ShowMessage("信息提示", "任务在执行中不允许删除!!");
                                continue;
                            }
                            if (controlTaskModel.TaskStatus == EnumTaskStatus.错误.ToString() || controlTaskModel.TaskStatus == EnumTaskStatus.超时.ToString())
                            {
                                //要调用控制层的接口,处理控制层;
                                MainPresenter.wcs.ClearTask(controlTaskModel);
                            }
                            ManageTaskModel manaTaskModel = bllManaTask.GetModel(controlTaskModel.TaskID);
                            if (manaTaskModel == null)
                            {
                                continue;
                            }

                            StockListModel stockListModel = null;
                            StockModel     stockModel     = null;
                            GoodsSiteModel gsModel        = null;
                            if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯入库_A1 ||
                                controlTaskModel.TaskTypeCode == (int)EnumTaskName.分容入库_A1 ||
                                controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯入库_B1 ||
                                controlTaskModel.TaskTypeCode == (int)EnumTaskName.空料框入库)    //任务完成后需要更新货位状态
                            {
                                stockListModel = bllStockList.GetModelByManaTaskID(controlTaskModel.TaskID);
                                stockModel     = bllStock.GetModel(stockListModel.StockID);
                                if (stockListModel != null && stockModel != null)
                                {
                                    deleteStockHs = bllStock.GetDeleteModelHash(stockModel.StockID);//入库任务取消要删除库存
                                    updateGsHs    = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.待用.ToString()
                                                                                  , EnumTaskCategory.出入库.ToString(), stockModel.GoodsSiteID);
                                }
                            }
                            else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.分容出库_A1 ||
                                     controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯出库_A1) //出库删除任务不删除库存
                            {
                                gsModel    = bllGoodsSite.GetGoodsSite(EnumStoreHouse.A1库房, controlTaskModel.StartDevice);
                                stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID);
                                if (stockModel != null)
                                {
                                    updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务完成.ToString()
                                                                               , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID);
                                }
                            }
                            else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯出库_B1)
                            {
                                gsModel    = bllGoodsSite.GetGoodsSite(EnumStoreHouse.B1库房, controlTaskModel.StartDevice);
                                stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID);
                                if (stockModel != null)
                                {
                                    updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务完成.ToString()
                                                                               , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID);
                                }
                            }
                            else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.空料框出库)
                            {
                                gsModel    = bllGoodsSite.GetGoodsSite(EnumStoreHouse.B1库房, controlTaskModel.StartDevice);
                                stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID);
                                if (stockModel != null)
                                {
                                    updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务完成.ToString()
                                                                               , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID);
                                }
                            }

                            deleteManaHs         = bllManaTask.GetDeleteModelHash(manaTaskModel.TaskID);
                            deleteControlInterHs = bllControlInterface.GetDeleteHash(controlTaskModel.ControlCode);

                            List <Hashtable> hashList = new List <Hashtable>();
                            hashList.Add(deleteManaHs);
                            hashList.Add(deleteControlInterHs);
                            hashList.Add(deleteStockHs);
                            hashList.Add(updateGsHs);
                            bool executeTran = ExecuteManyHashSqls(hashList);
                            if (executeTran == true)
                            {
                                if (mainPres != null)
                                {
                                    mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",ID:" + controlTaskModel.ControlTaskID
                                                         + "任务开始位置:" + controlTaskModel.StartDevice + "任务结束位置:" + controlTaskModel.TargetDevice
                                                         + ",“" + manaTaskModel.TaskTypeName + "”任务手动删除成功!");
                                }
                            }
                            else
                            {
                                if (mainPres != null)
                                {
                                    mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",ID:" + controlTaskModel.ControlTaskID
                                                         + "任务开始位置:" + controlTaskModel.StartDevice + "任务结束位置:" + controlTaskModel.TargetDevice
                                                         + ",“" + manaTaskModel.TaskTypeName + "”任务手动删除失败!");
                                }
                            }
                        }
                    }


                    DataTable dtCtrlTaskList = bllControlTask.GetCtrlDatatable(this.currentEnumTaskName, this.currentEnumTaskStatus
                                                                               , this.currentHouseName, this.currentCreateMode, this.currentTaskType);
                    this.View.ShowControlTaskData(dtCtrlTaskList);
                }
            }
            catch (Exception ex)
            {
                mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.错误, ex.StackTrace);
            }
        }
        private void CompleteByHandHandler(object sender, ControlTaskEventArgs e)
        {
            int       taskStatus       = this.View.AskMessBox("您确定要手动完成选定任务么?");
            Hashtable updateGsStatusHs = null;

            if (taskStatus == 0)
            {
                for (int i = 0; i < e.ControlTaskIDArr.Count(); i++)
                {
                    ControlTaskModel controlTask = bllControlTask.GetModel(e.ControlTaskIDArr[i]);
                    if (controlTask != null)
                    {
                        //bool gsIsValid = false;
                        //if (controlTask.TaskTypeName == EnumTaskName.电芯入库_A1.ToString()
                        //    || controlTask.TaskTypeName == EnumTaskName.分容入库_A1.ToString()
                        //    || controlTask.TaskTypeName == EnumTaskName.电芯入库_B1.ToString())//A1库房
                        //{
                        //    GoodsSiteModel gsModel = bllGoodsSite.GetGoodsSite(2, EnumGSStoreStatus.空货位, EnumGSRunStatus.待用, EnumGSType.货位);
                        //    if (gsModel != null)
                        //    {
                        //        gsIsValid = true;
                        //    }
                        //}
                        //else if (   controlTask.TaskTypeName == EnumTaskName.空料框入库.ToString())//b1库房
                        //{
                        //    GoodsSiteModel gsModel = bllGoodsSite.GetGoodsSite(2, EnumGSStoreStatus.空货位, EnumGSRunStatus.待用, EnumGSType.货位);
                        //    if (gsModel != null)
                        //    {
                        //        gsIsValid = true;
                        //    }
                        //}

                        //else if (controlTask.TaskTypeName == EnumTaskName.分容出库_A1.ToString()
                        //    ||controlTask.TaskTypeName == EnumTaskName.电芯出库_B1.ToString()
                        //    || controlTask.TaskTypeName == EnumTaskName.电芯出库_A1.ToString())
                        //{
                        //    GoodsSiteModel gsModel = bllGoodsSite.GetGoodsSite(2, EnumGSStoreStatus.有货, EnumGSRunStatus.任务完成, EnumGSType.货位);
                        //    if (gsModel != null)
                        //    {
                        //        gsIsValid = true;
                        //    }
                        //}
                        //else if (controlTask.TaskTypeName == EnumTaskName.空料框出库.ToString())
                        //{
                        //    GoodsSiteModel gsModel = bllGoodsSite.GetGoodsSite(2, EnumGSStoreStatus.空料框, EnumGSRunStatus.任务完成, EnumGSType.货位);
                        //    if (gsModel != null)
                        //    {
                        //        gsIsValid = true;
                        //    }
                        //}
                        controlTask.TaskStatus = EnumTaskStatus.已完成.ToString();

                        //if (gsIsValid == true)
                        //{
                        bool completeTask = bllControlTask.Update(controlTask);
                        if (completeTask == true)
                        {
                            if (mainPres != null)
                            {
                                mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr
                                                     + ",任务开始位置:" + controlTask.StartDevice + "任务结束位置:" + controlTask.TargetDevice + "任务名称:“" + controlTask.TaskTypeName + "”任务手动完成成功!");
                            }
                        }
                        else
                        {
                            if (mainPres != null)
                            {
                                mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr
                                                     + ",任务开始位置:" + controlTask.StartDevice + "任务结束位置:" + controlTask.TargetDevice + "任务名称:“" + controlTask.TaskTypeName + "”手动任务失败!");
                            }
                        }
                        //}
                        //else
                        //{
                        //    if (mainPres != null)
                        //    {
                        //        mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "<<" + controlTask.TaskTypeName + ">>手动完成任务条件不符,手动任务失败!");
                        //    }
                        //}
                    }
                }
            }
        }