Пример #1
0
        private ManageTaskModel AutoCreateManaTask(StockModel stockModel
                                                   , StockListModel stockListModel, TaskTypeModel taskType, ref long manaTaskID)
        {
            ManageTaskModel manaTaskModel = new ManageTaskModel();//生成管理任务

            manaTaskModel.TaskCode = stockListModel.ProductFrameCode;
            LoginPresenter loginPre = (LoginPresenter)this.View.GetPresenter(typeof(LoginPresenter));

            if (loginPre != null)
            {
                manaTaskModel.TaskCreatePerson = loginPre.View.UserName;
            }

            manaTaskModel.TaskCreateTime = DateTime.Now;
            LogicStoreAreaModel logicEndModel = bllLogicStoreArea.GetModel(taskType.EndLogicAreaID);

            manaTaskModel.TaskEndArea    = logicEndModel.LogicStoreAreaName;
            manaTaskModel.TaskEndPostion = taskType.EndDevice;

            LogicStoreAreaModel logicStartModel = bllLogicStoreArea.GetModel(taskType.StartLogicAreaID);

            manaTaskModel.TaskStartArea = logicStartModel.LogicStoreAreaName;
            GoodsSiteModel gsModel = bllGoodsSite.GetModel(stockModel.GoodsSiteID);

            manaTaskModel.TaskStartPostion = gsModel.DeviceID;
            manaTaskModel.TaskStatus       = EnumTaskStatus.待执行.ToString();
            manaTaskModel.TaskType         = EnumTaskCategory.出库.ToString();
            manaTaskModel.TaskTypeName     = taskType.TaskTypeName;
            manaTaskID = bllTask.Add(manaTaskModel);
            return(manaTaskModel);
        }
Пример #2
0
        public ResposeData GetWaittingToRunTaskList(TaskDeviceModel stDevice, ref List <ManageTaskModel> manageTaskList)
        {
            manageTaskList = new List <ManageTaskModel>();
            ResposeData res = new ResposeData();

            res.Status = true;
            if (wmsTaskDt == null)
            {
                return(res);
            }
            foreach (DataRow dr in wmsTaskDt.Rows)
            {
                if (dr["起始设备号"].ToString() == stDevice.DeviceCode && dr["任务状态"].ToString() == "待执行")
                {
                    ManageTaskModel manTask = new ManageTaskModel();
                    manTask.TaskID                = dr["管理任务ID"].ToString();
                    manTask.Type                  = dr["任务类型"].ToString();
                    manTask.Status                = dr["任务类型"].ToString();
                    manTask.PalletCode            = dr["托盘码"].ToString();
                    manTask.StartDevice           = new TaskDeviceModel(dr["起始设备号"].ToString(), dr["起始设备类型"].ToString());
                    manTask.StartDevice.ExtParam  = dr["起始设备参数"].ToString();
                    manTask.TargetDevice          = new TaskDeviceModel(dr["目标设备号"].ToString(), dr["目标设备类型"].ToString());
                    manTask.TargetDevice.ExtParam = dr["目标设备参数"].ToString();
                    manTask.Remark                = dr["备注"].ToString();
                    manageTaskList.Add(manTask);
                }
            }

            return(res);
        }
Пример #3
0
        private void DeleteStockEventHandler(object sender, DeleteStockEventArgs e)
        {
            if (this.View.AskMessBox("您确定要删除当前选中库存么?") == 0)
            {
                for (int i = 0; i < e.StockID.Length; i++)
                {
                    StockModel stockModel = bllStock.GetModel(e.StockID[i]);
                    if (stockModel == null)
                    {
                        return;
                    }
                    StockListModel stockListModel = bllStockList.GetModelByStockID(stockModel.StockID);
                    if (stockListModel == null)
                    {
                        return;
                    }
                    ManageTaskListModel manaTaskList = bllTaskList.GetModelByStockListID(stockListModel.StockListID);
                    if (manaTaskList != null)
                    {
                        ManageTaskModel manaTask = bllTask.GetModel(manaTaskList.TaskID);
                        if (manaTask != null)
                        {
                            bllTask.Delete(manaTask.TaskID);
                        }
                    }

                    Hashtable updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空货位.ToString()
                                                                               , EnumGSRunStatus.待用.ToString(), EnumTaskCategory.出库.ToString(), stockModel.GoodsSiteID); //获取更新货位状态Hs
                    Hashtable        deleteStockHs = bllStock.GetDeleteModelHash(e.StockID[i]);
                    List <Hashtable> allHs         = new List <Hashtable>();
                    allHs.Add(updateGsStatusHs);
                    allHs.Add(deleteStockHs);

                    bool deleteStatus = ExecuteManyHashSqls(allHs);
                    if (deleteStatus == true)
                    {
                        if (this.mainPres != null)
                        {
                            this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:"
                                                  + this.userNameStr + ",手动删除库存ID:" + e.StockID[i] + "库存名称:" + stockListModel.GoodsSiteName + "成功!");
                        }
                    }
                    else
                    {
                        if (this.mainPres != null)
                        {
                            this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:"
                                                  + this.userNameStr + ",手动删除库存ID:" + e.StockID[i] + "库存名称:" + stockListModel.GoodsSiteName + "失败!");
                        }
                    }
                }

                //List<StockListModel> modelList = bllStockList.GetModelList(queryHouseName,queryRowth,queryColumnth,queryLayerth, queryProductStasus, queryWorkFlowStatus);
                //this.View.RefreshDGVData(modelList);
                List <View_QueryStockListModel> modelList = bllQueryStockList.GetModelList(queryHouseName, queryRowth, queryColumnth, queryLayerth, queryProductStasus, queryWorkFlowStatus
                                                                                           , queryGsRunStatus, queryGsStoreStatus, queryGsTaskType, queryProductBatchNum);
                this.View.RefreshDGVData(modelList);
            }
        }
Пример #4
0
        /// <summary>
        /// 获取所有待执行任务,wcs分解完一个管理任务后要将此任务状态更新为执行中状态
        /// </summary>
        /// <param name="manageTaskList"></param>
        /// <returns></returns>
        public ResposeData GetWaittingToRunTaskList(TaskDeviceModel stDevice, ref List <ManageTaskModel> manageTaskList)
        {
            ResposeData response = new ResposeData();

            manageTaskList = new List <ManageTaskModel>();
            try
            {
                List <View_Manage_CellModel> taskList = bllViewManageCell.GetWattingTaskByDeviceCode(stDevice.DeviceCode);
                if (taskList == null)
                {
                    response.Status   = true;
                    response.Describe = "没有待执行的任务!";
                    return(response);
                }

                foreach (View_Manage_CellModel manageModel in taskList)
                {
                    ManageTaskModel manage = new ManageTaskModel();
                    manage.PalletCode = manageModel.Mange_Stock_Barcode;
                    TaskDeviceModel startDevice = new TaskDeviceModel();
                    View_CellModel  startCell   = bllViewCell.GetModelByChildCellID(manageModel.Mange_Start_Cell_ID);
                    if (startCell == null)
                    {
                        response.Status   = false;
                        response.Describe = "起始设备编码错误!";
                        return(response);
                    }
                    startDevice = FillTaskDevice(startCell, manageModel.Mange_Start_Cell_ID);

                    manage.StartDevice = startDevice;
                    manage.Status      = manageModel.Mange_Status;
                    View_CellModel targetCell = bllViewCell.GetModelByChildCellID(manageModel.Mange_End_Cell_ID);
                    if (targetCell == null)
                    {
                        response.Status   = false;
                        response.Describe = "目标设备编码错误!";
                        return(response);
                    }

                    TaskDeviceModel targetDevice = FillTaskDevice(targetCell, manageModel.Mange_End_Cell_ID);

                    manage.TargetDevice = targetDevice;
                    manage.TaskID       = manageModel.Mange_ID;
                    manage.Type         = manageModel.Manage_Type_Name;
                    manageTaskList.Add(manage);
                }
                response.Status   = true;
                response.Describe = "获取等待执行任务成功!";
                return(response);
            }
            catch (Exception ex)
            {
                response.Status   = true;
                response.Describe = "获取等待执行任务失败!" + ex.Message;
                return(response);
            }
        }
Пример #5
0
        private void AutoCreateControlTask(ManageTaskModel manaTaskModel, long taskID, TaskTypeModel taskType)
        {
            ControlTaskModel controlTaskModel = new ControlTaskModel();//生成控制任务

            controlTaskModel.ControlCode  = manaTaskModel.TaskCode;
            controlTaskModel.TaskTypeName = taskType.TaskTypeName;
            controlTaskModel.StartArea    = manaTaskModel.TaskStartArea;
            controlTaskModel.StartDevice  = manaTaskModel.TaskStartPostion;
            controlTaskModel.TargetArea   = manaTaskModel.TaskEndArea;
            controlTaskModel.TargetDevice = manaTaskModel.TaskEndPostion;
            controlTaskModel.TaskID       = taskID;
            controlTaskModel.CreateMode   = EnumCreateMode.手动生成.ToString();
            controlTaskModel.TaskStatus   = EnumTaskStatus.待执行.ToString();
            controlTaskModel.TaskType     = manaTaskModel.TaskType;
            controlTaskModel.TaskTypeCode = taskType.TaskTypeCode;
            controlTaskModel.CreateTime   = DateTime.Now;
            bllControlTask.Add(controlTaskModel);
        }
Пример #6
0
        private ManageTaskListModel AutoCreateManaTaskList(long manaTaskID, ManageTaskModel manaTaskModel, StockListModel stockListModel)
        {
            ManageTaskListModel manaTaskListModel = new ManageTaskListModel();

            manaTaskListModel.ProductBatch = stockListModel.ProductBatchNum.ToString();
            manaTaskListModel.ProductCode  = stockListModel.ProductCode;
            manaTaskListModel.StockListID  = stockListModel.StockListID;
            LoginPresenter loginPre = (LoginPresenter)this.View.GetPresenter(typeof(LoginPresenter));

            if (loginPre != null)
            {
                manaTaskListModel.TaskCreatePerson = loginPre.View.UserName;
            }
            manaTaskListModel.StockListID       = stockListModel.StockListID;
            manaTaskListModel.TaskCreateTime    = DateTime.Now;
            manaTaskListModel.TaskEndPosition   = manaTaskModel.TaskEndPostion;
            manaTaskListModel.TaskID            = manaTaskID;
            manaTaskListModel.TaskStartPosition = manaTaskModel.TaskStartPostion;
            long manaTaskListID = bllTaskList.Add(manaTaskListModel);

            return(manaTaskListModel);
        }
Пример #7
0
        private void OnSave()
        {
            if (this.eventSave != null)
            {
                SaveEventArgs dataArgs = new SaveEventArgs();
                if (this.tscb_dataList.SelectedItem != null)
                {
                    EnumDataList enumDataList = (EnumDataList)Enum.Parse(typeof(EnumDataList), this.tscb_dataList.SelectedItem.ToString());
                    dataArgs.EnumDataList = enumDataList;
                    switch (enumDataList)
                    {
                    case EnumDataList.管理任务表:
                        if (this.dgv_DataDetail.SelectedRows.Count > 0)
                        {
                            long            listID        = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString());
                            ManageTaskModel manaTaskModel = new ManageTaskModel();
                            manaTaskModel.TaskID           = listID;
                            manaTaskModel.TaskCreateTime   = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCreateTime"].Value.ToString());
                            manaTaskModel.TaskCode         = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCode"].Value.ToString();
                            manaTaskModel.TaskID           = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString());
                            manaTaskModel.TaskCreatePerson = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCreatePerson"].Value.ToString();
                            manaTaskModel.TaskType         = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskType"].Value.ToString();
                            manaTaskModel.TaskStartArea    = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStartArea"].Value.ToString();
                            manaTaskModel.TaskStartPostion = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStartPostion"].Value.ToString();
                            manaTaskModel.TaskEndArea      = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskEndArea"].Value.ToString();
                            manaTaskModel.TaskEndPostion   = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskEndPostion"].Value.ToString();

                            manaTaskModel.TaskStatus   = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStatus"].Value.ToString();
                            manaTaskModel.TaskTypeName = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeName"].Value.ToString();
                            dataArgs.EditModel         = manaTaskModel;
                            this.eventSave.Invoke(this, dataArgs);
                        }


                        break;

                    case EnumDataList.控制接口表:
                        if (this.dgv_DataDetail.SelectedRows.Count > 0)
                        {
                            long listID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlInterfaceID"].Value.ToString());

                            ControlInterfaceModel ctrlInterModel = new ControlInterfaceModel();
                            ctrlInterModel.ControlInterfaceID = listID;
                            ctrlInterModel.CreateTime         = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateTime"].Value.ToString());
                            ctrlInterModel.DeviceCode         = this.dgv_DataDetail.Rows[editRowIndex].Cells["DeviceCode"].Value.ToString();
                            ctrlInterModel.InterfaceParameter = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceParameter"].Value.ToString();
                            ctrlInterModel.InterfaceStatus    = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceStatus"].Value.ToString();
                            ctrlInterModel.InterfaceType      = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceType"].Value.ToString();
                            ctrlInterModel.TaskCode           = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCode"].Value.ToString();
                            dataArgs.EditModel = ctrlInterModel;
                            this.eventSave.Invoke(this, dataArgs);
                        }

                        break;

                    case EnumDataList.控制任务表:
                        if (this.dgv_DataDetail.SelectedRows.Count > 0)
                        {
                            long             listID      = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlTaskID"].Value.ToString());
                            ControlTaskModel controlTask = new ControlTaskModel();
                            controlTask.ControlTaskID = listID;
                            controlTask.ControlCode   = this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlCode"].Value.ToString();
                            controlTask.TaskTypeCode  = int.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeCode"].Value.ToString());
                            controlTask.TaskID        = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString());
                            controlTask.CreateMode    = this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateMode"].Value.ToString();
                            controlTask.TaskType      = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskType"].Value.ToString();
                            controlTask.StartArea     = this.dgv_DataDetail.Rows[editRowIndex].Cells["StartArea"].Value.ToString();
                            controlTask.StartDevice   = this.dgv_DataDetail.Rows[editRowIndex].Cells["StartDevice"].Value.ToString();
                            controlTask.TargetArea    = this.dgv_DataDetail.Rows[editRowIndex].Cells["TargetArea"].Value.ToString();
                            controlTask.TargetDevice  = this.dgv_DataDetail.Rows[editRowIndex].Cells["TargetDevice"].Value.ToString();
                            controlTask.TaskID        = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString());
                            controlTask.TaskStatus    = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStatus"].Value.ToString();
                            controlTask.TaskTypeName  = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeName"].Value.ToString();
                            controlTask.CreateTime    = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateTime"].Value.ToString());
                            dataArgs.EditModel        = controlTask;
                            this.eventSave.Invoke(this, dataArgs);
                        }
                        break;

                    case EnumDataList.库存列表:
                        if (this.dgv_DataDetail.SelectedRows.Count > 0)
                        {
                            long           listID         = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["StockListID"].Value.ToString());
                            StockListModel stockListModel = new StockListModel();
                            stockListModel.StockListID      = listID;
                            stockListModel.GoodsSiteName    = this.dgv_DataDetail.Rows[editRowIndex].Cells["GoodsSiteName"].Value.ToString();
                            stockListModel.InHouseTime      = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["InHouseTime"].Value.ToString());
                            stockListModel.ManaTaskID       = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ManaTaskID"].Value.ToString());
                            stockListModel.ProductCode      = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductCode"].Value.ToString();
                            stockListModel.ProductName      = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductName"].Value.ToString();
                            stockListModel.ProductNum       = int.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductNum"].Value.ToString());
                            stockListModel.ProductStatus    = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductStatus"].Value.ToString();
                            stockListModel.StockID          = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["StockID"].Value.ToString());
                            stockListModel.StoreHouseName   = this.dgv_DataDetail.Rows[editRowIndex].Cells["StoreHouseName"].Value.ToString();
                            stockListModel.UpdateTime       = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["UpdateTime"].Value.ToString());
                            stockListModel.ProductBatchNum  = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductBatchNum"].Value.ToString();
                            stockListModel.ProductFrameCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductFrameCode"].Value.ToString();
                            dataArgs.EditModel = stockListModel;
                            this.eventSave.Invoke(this, dataArgs);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
        }
Пример #8
0
        /// <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);
            }
        }
Пример #9
0
        private void OutHouseByHandEventHandler(object sender, OutHouseByHandEventArgs e)
        {
            int outHouse = this.View.AskMessBox("您确定要将选中货位手动出库么?");

            if (outHouse == 0)
            {
                GoodsSiteModel gsModel = bllGoodsSite.GetModel(e.GoodsSiteID);
                if (gsModel == null)
                {
                    if (this.mainPre != null)
                    {
                        this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "此货位为空,不能出库!");
                        return;
                    }
                }
                if (!((e.GsStoreStatus == EnumGSStoreStatus.货 || e.GsStoreStatus == EnumGSStoreStatus.空料框) && e.GsRunStatus == EnumGSRunStatus.任务完成 &&
                      gsModel.GoodsSiteInOutType == EnumTaskCategory.入库.ToString()))
                {
                    if (this.mainPre != null)
                    {
                        this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!");
                        return;
                    }
                }

                View_QueryStockListModel viewGsStockModel = bllView_QueryStockList.GetOutHouseModel(e.GoodsSiteID, e.GsStoreStatus, e.GsRunStatus);
                if (viewGsStockModel != null)
                {
                    Hashtable     updateGsStatusHs = null;
                    TaskTypeModel taskType         = null;
                    StockModel    stockModel       = bllStock.GetModelByGsID(e.GoodsSiteID);
                    bool          exeHandTask      = false;//执行手动选择的任务类型
                    if (stockModel != null)
                    {
                        StockListModel stockListModel = bllStockList.GetModelByStockID(stockModel.StockID);
                        if (stockListModel != null)
                        {
                            string shouldTaskName = GetTaskName(stockListModel.StoreHouseName, stockListModel.ProductStatus);
                            #region 根据人工选定的出库类型出库
                            if (e.OutHouseType != shouldTaskName)
                            {
                                if (this.View.AskMessBox("当前产品状态出库类型应为“" + shouldTaskName + "”,您确定要“" + e.OutHouseType + "”么?") == 0)
                                {
                                    EnumTaskName handTaskName = (EnumTaskName)Enum.Parse(typeof(EnumTaskName), e.OutHouseType);
                                    taskType = bllTaskType.GetModel((int)handTaskName);
                                    switch (handTaskName)
                                    {
                                    case EnumTaskName.电芯出库_A1:
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);       //获取更新货位状态Hs
                                        break;

                                    case EnumTaskName.电芯出库_B1:
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);       //获取更新货位状态Hs
                                        break;

                                    case EnumTaskName.空料框出库:
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);      //获取更新货位状态Hs
                                        break;

                                    case EnumTaskName.分容出库_A1:
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);       //获取更新货位状态Hs
                                        break;
                                    }

                                    exeHandTask = true;
                                }
                            }
                            #endregion
                            #region 根据货物状态出库
                            if (exeHandTask == false)
                            {
                                if (stockListModel.StoreHouseName == EnumStoreHouse.A1库房.ToString())//手动出库根据物料状态出库
                                {
                                    if (viewGsStockModel.ProductStatus == EnumProductStatus.A1库静置10小时.ToString())
                                    {
                                        taskType         = bllTaskType.GetModel((int)EnumTaskName.电芯出库_A1);
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);   //获取更新货位状态Hs
                                    }
                                    else if (viewGsStockModel.ProductStatus == EnumProductStatus.A1库老化3天.ToString())
                                    {
                                        taskType         = bllTaskType.GetModel((int)EnumTaskName.分容出库_A1);
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);   //获取更新货位状态Hs
                                    }
                                }
                                else if (stockListModel.StoreHouseName == EnumStoreHouse.B1库房.ToString())
                                {
                                    if (stockListModel.ProductStatus == EnumProductStatus.空料框.ToString())
                                    {
                                        taskType         = bllTaskType.GetModel((int)EnumTaskName.空料框出库);
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);  //获取更新货位状态Hs
                                    }
                                    else
                                    {
                                        taskType         = bllTaskType.GetModel((int)EnumTaskName.电芯出库_B1);
                                        updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID);   //获取更新货位状态Hs
                                    }
                                }
                            }
                            #endregion
                            #region 出库处理逻辑
                            long                manaTaskID        = 0;
                            ManageTaskModel     manaTaskModel     = AutoCreateManaTask(stockModel, stockListModel, taskType, ref manaTaskID);
                            ManageTaskListModel manaTaskListModel = AutoCreateManaTaskList(manaTaskID, manaTaskModel, stockListModel);
                            AutoCreateControlTask(manaTaskModel, manaTaskID, taskType);

                            List <Hashtable> hashList = new List <Hashtable>();
                            hashList.Add(updateGsStatusHs);

                            bool executeStatus = ExecuteManyHashSqls(hashList);
                            if (executeStatus == true)
                            {
                                if (this.mainPre != null)
                                {
                                    string trayIDListStr = bllStockDetail.GetTrayIDStrList(stockListModel.StockListID);
                                    this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "生成出库“"
                                                         + taskType.TaskTypeName + "”任务成功!" + "开始位置:" + manaTaskModel.TaskStartPostion + ",结束位置:"
                                                         + manaTaskModel.TaskEndPostion + "托盘号:" + trayIDListStr);
                                }
                            }
                            else
                            {
                                if (this.mainPre != null)
                                {
                                    this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "生成出库“"
                                                         + taskType.TaskTypeName + "”任务失败!" + "开始位置:" + manaTaskModel.TaskStartPostion + ",结束位置:"
                                                         + manaTaskModel.TaskEndPostion);
                                }
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        if (this.mainPre != null)
                        {
                            this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "没有货物出库!");
                            this.View.ShowMessage("信息提示", "没有货物出库!");
                        }
                    }
                }
            }
        }
Пример #10
0
        private void OutHouseEventHandler(object sender, StockEventArgs e)
        {
            int outHouse = this.View.AskMessBox("您确定要将选中库存手动出库么?");

            if (outHouse == 0)
            {
                for (int i = 0; i < e.StockIDArr.Count(); i++)
                {
                    //if (!(e.GsStoreStatusArr[i] == (EnumGSStoreStatus.有货 | EnumGSStoreStatus.空料框)&&e.GsRunStatusArr[i] == EnumGSRunStatus.任务完成
                    //    &&e.GSTaskTypeArr[i] == EnumTaskCategory.入库))
                    //{
                    //    if (this.mainPres != null)
                    //    {
                    //        this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!");
                    //        continue;
                    //    }
                    //}
                    if (!((e.GsStoreStatusArr[i] == EnumGSStoreStatus.货 || e.GsStoreStatusArr[i] == EnumGSStoreStatus.空料框) && e.GsRunStatusArr[i] == EnumGSRunStatus.任务完成 &&
                          e.GSTaskTypeArr[i] == EnumTaskCategory.入库))
                    {
                        if (this.mainPres != null)
                        {
                            this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!");
                            return;
                        }
                    }
                    Hashtable     updateGsStatusHs = null;
                    TaskTypeModel taskType         = null;
                    StockModel    stockModel       = bllStock.GetModel(e.StockIDArr[i]);
                    if (stockModel == null)
                    {
                        continue;
                    }
                    StockListModel stockListModel = bllStockList.GetModelByStockID(e.StockIDArr[i]);
                    if (stockListModel == null)
                    {
                        continue;
                    }
                    GoodsSiteModel goodsSiteModel = bllGoodsSite.GetModel(stockModel.GoodsSiteID);
                    if (goodsSiteModel == null)
                    {
                        continue;
                    }

                    ManageTaskListModel existManaTaskList = bllTaskList.GetModelByStockListID(stockListModel.StockListID);
                    if (existManaTaskList == null)
                    {
                        if (stockListModel.StoreHouseName == EnumStoreHouse.A1库房.ToString())//手动出库默认出库任务类型为一次检测出库
                        {
                            if (e.ProductStatusArr[i] == EnumProductStatus.A1库老化3天)
                            {
                                taskType = bllTaskType.GetModel((int)EnumTaskName.分容出库_A1);
                            }
                            else if (e.ProductStatusArr[i] == EnumProductStatus.A1库静置10小时)
                            {
                                taskType = bllTaskType.GetModel((int)EnumTaskName.电芯出库_A1);
                            }

                            updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString()
                                                                             , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs
                        }
                        else if (stockListModel.StoreHouseName == EnumStoreHouse.B1库房.ToString())
                        {
                            if (e.ProductStatusArr[i] == EnumProductStatus.空料框)
                            {
                                taskType         = bllTaskType.GetModel((int)EnumTaskName.空料框出库);
                                updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString()
                                                                                 , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs
                            }
                            else
                            {
                                taskType         = bllTaskType.GetModel((int)EnumTaskName.电芯出库_B1);
                                updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString()
                                                                                 , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs
                            }
                        }

                        long                manaTaskID        = 0;
                        ManageTaskModel     manaTaskModel     = AutoCreateManaTask(stockModel, stockListModel, taskType, ref manaTaskID);
                        ManageTaskListModel manaTaskListModel = AutoCreateManaTaskList(manaTaskID, manaTaskModel, stockListModel);
                        AutoCreateControlTask(manaTaskModel, manaTaskID, taskType);

                        List <Hashtable> hashList = new List <Hashtable>();
                        hashList.Add(updateGsStatusHs);

                        bool executeStatus = ExecuteManyHashSqls(hashList);
                        if (executeStatus == true)
                        {
                            if (this.mainPres != null)
                            {
                                string trayIDListStr = bllStockDetail.GetTrayIDStrList(stockListModel.StockListID);
                                this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",货位:" + goodsSiteModel.GoodsSiteName + "生成“" + taskType.TaskTypeName + "”任务成功!"
                                                      + "托盘号:" + trayIDListStr);
                            }
                        }
                        else
                        {
                            if (this.mainPres != null)
                            {
                                this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "货位:" + goodsSiteModel.GoodsSiteName + "生成“" + taskType.TaskTypeName + "”任务失败!");
                            }
                        }
                    }
                }
            }
        }