Exemplo n.º 1
0
        public void ModifyGsStatus(string cellChildID, string cellStatus, string cellTaskStatus)
        {
            string restr = "";
            WH_Cell_ChildrenModel oldgsm = bllChildCell.GetModel(cellChildID);

            if (oldgsm == null)
            {
                return;
            }
            if (oldgsm.Cell_Child_Flag != "1")
            {
                this.WmsFrame.WriteLog("库存看板", "", "提示", "被禁用的货位不允许修改状态!");
                return;
            }
            View_CellModel cellModel = bllViewCell.GetModelByChildCellID(cellChildID);

            string operteDetail = cellModel.WareHouse_Name + ":[" + cellModel.Cell_Name + "]货位状态由[" + oldgsm.Cell_Child_Status + "]变更为[" + cellStatus + "];" + "货位任务状态由[" + oldgsm.Cell_Child_Run_Status + "]变更为[" + cellTaskStatus + "]";

            oldgsm.Cell_Child_Status     = cellStatus;
            oldgsm.Cell_Child_Run_Status = cellTaskStatus;
            bllChildCell.Update(oldgsm);
            TaskHandleMethod.AddCellOperRecord(cellChildID, EnumGSOperateType.手动修改状态, operteDetail, ref restr);


            this.View.RefreshData();
        }
Exemplo n.º 2
0
        public void SetGsStatus(string gsID, bool status)
        {
            bool           setstatus = bllChildCell.UpdateGSEnabledStatusByID(gsID, status);
            View_CellModel viewCell  = bllViewCell.GetModelByChildCellID(gsID);

            if (viewCell == null)
            {
                this.View.ShowMessage("信息提示", "获取货位失败!");
                return;
            }
            if (status == true)
            {
                if (setstatus == true)
                {
                    this.WmsFrame.WriteLog("库存看板", "", "提示", viewCell.WareHouse_Name + ":货位:" + viewCell.Cell_Name + "-" + viewCell.Cell_Chlid_Position + "启用成功!");
                }
                else
                {
                    this.WmsFrame.WriteLog("库存看板", "", "提示", viewCell.WareHouse_Name + ":货位:" + viewCell.Cell_Name + "-" + viewCell.Cell_Chlid_Position + "启用失败!");
                }
            }
            else
            {
                if (setstatus == true)
                {
                    this.WmsFrame.WriteLog("库存看板", "", "提示", viewCell.WareHouse_Name + ":货位:" + viewCell.Cell_Name + "-" + viewCell.Cell_Chlid_Position + "禁用成功!");
                }
                else
                {
                    this.WmsFrame.WriteLog("库存看板", "", "提示", viewCell.WareHouse_Name + ":货位:" + viewCell.Cell_Name + "-" + viewCell.Cell_Chlid_Position + "禁用失败!");
                }
            }
            this.View.RefreshData();

            //WH_Cell_ChildrenModel gsm =bllChildCell.GetModel(gsID);
            //if (gsm == null)
            //{
            //    return;
            //}
            //StoreHouseModel house = bllStoreHouse.GetModel(gsm.StoreHouseID);
            //if (house == null)
            //{
            //    return;
            //}
            //if (status == true)
            //{
            //    this.view.AddLog("库存看板", "货位《" + gsm.GoodsSiteName + "》启用!", EnumLoglevel.提示);

            //    this.iStorageManage.AddGSOperRecord(house.StoreHouseName, new CellCoordModel(gsm.GoodsSiteRow,
            //          gsm.GoodsSiteColumn, gsm.GoodsSiteLayer)
            //         , EnumGSOperateType.手动启用货位, "手动启用货位", ref reStr);
            //}
            //else
            //{
            //    this.iStorageManage.AddGSOperRecord(house.StoreHouseName, new CellCoordModel(gsm.GoodsSiteRow,
            //       gsm.GoodsSiteColumn, gsm.GoodsSiteLayer)
            //      , EnumGSOperateType.手动禁用货位, "手动禁用货位", ref reStr);
            //    this.view.AddLog("库存看板", "货位《" + gsm.GoodsSiteName + "》禁用!", EnumLoglevel.提示);
            //}
        }
Exemplo n.º 3
0
        public void ModifyGsStatus(string cellChildID, string cellStatus, string cellTaskStatus)
        {
            string restr = "";
            WH_Cell_ChildrenModel oldgsm = bllChildCell.GetModel(cellChildID);

            if (oldgsm == null)
            {
                return;
            }
            if (oldgsm.Cell_Child_Flag != "1")
            {
                this.WmsFrame.WriteLog("库存看板", "", "提示", "被禁用的货位不允许修改状态!");
                return;
            }
            View_CellModel cellModel = bllViewCell.GetModelByChildCellID(cellChildID);

            string operteDetail = cellModel.WareHouse_Name + ":[" + cellModel.Cell_Name + "]货位状态由[" + oldgsm.Cell_Child_Status + "]变更为[" + cellStatus + "];" + "货位任务状态由[" + oldgsm.Cell_Child_Run_Status + "]变更为[" + cellTaskStatus + "]";

            oldgsm.Cell_Child_Status     = cellStatus;
            oldgsm.Cell_Child_Run_Status = cellTaskStatus;
            bllChildCell.Update(oldgsm);
            TaskHandleMethod.AddCellOperRecord(cellChildID, EnumGSOperateType.手动修改状态, operteDetail, ref restr);
            if (cellStatus == EnumCellStatus.空闲.ToString() && cellTaskStatus == EnumGSTaskStatus.完成.ToString())
            {
                if (this.View.AskMessage("询问", "您确定要清空此货位么?清空后货位的库存物料信息也将清空!") == 0)
                {
                    TaskHandleMethod.DeleteStockByCellChildID(cellModel.Cell_Chlid_ID);
                }
            }

            this.View.RefreshData();
        }
Exemplo n.º 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);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        ///taskdevice任务数据赋值
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="deviceID"></param>
        /// <returns></returns>
        private TaskDeviceModel FillTaskDevice(View_CellModel cell, string deviceID)
        {
            TaskDeviceModel taskDevice = new TaskDeviceModel();

            if (cell.Cell_Type == EnumCellType.货位.ToString())
            {
                taskDevice.DeviceType = "货位";
                taskDevice.DeviceCode = cell.WareHouse_ID;
                taskDevice.ExtParam   = GetWCSCellCode(cell);
            }
            else
            {
                taskDevice.DeviceType = "工位";
                taskDevice.DeviceCode = deviceID;
            }
            return(taskDevice);
        }
Exemplo n.º 6
0
        public static bool AddCellOperRecord(string cellChildID, EnumGSOperateType operType, string operDetail, ref string restr)
        {
            View_CellModel cell = bllViewCell.GetModelByChildCellID(cellChildID);

            if (cell == null)
            {
                restr = "添加Cell操作记录失败,Cell编码错误!";
                return(false);
            }
            WH_Cell_Operate_RecordModel cellOperate = new WH_Cell_Operate_RecordModel();

            cellOperate.WareHouse_ID          = cell.WareHouse_ID;
            cellOperate.WH_Cell_Code          = cell.Cell_Code + ":" + cell.Cell_Chlid_Position;
            cellOperate.WH_Cell_Oper_Datetime = DateTime.Now;
            cellOperate.WH_Cell_Oper_Detail   = operDetail;
            cellOperate.WH_Cell_Oper_RecID    = Guid.NewGuid().ToString();
            return(bllCellOperateRecord.Add(cellOperate));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 获取双深工位排列层编码,wcs双深工位算为两排,wms是一排两个位置,做个转换
        /// </summary>
        /// <param name="cell"></param>
        /// <returns></returns>
        private string GetWCSCellCode(View_CellModel cell)
        {
            string cellCode = "";

            if (cell.Shelf_Type == EnumShelfType.单深.ToString())
            {
                ////wcs是把双深工位看成两排,需要转换下
                //string[] cellCodeArr = cell.Cell_Code.Split('-');
                cellCode = cell.Cell_Code;
            }
            else//双深
            {
                //wcs是把双深工位看成两排

                string[] cellCodeArr = cell.Cell_Code.Split('-');
                if (cellCodeArr[0] == "1")
                {
                    if (cell.Cell_Chlid_Position == EnumCellPos.前.ToString())
                    {
                        cellCode = (int.Parse(cellCodeArr[0]) + 1).ToString() + "-" + cellCodeArr[1] + "-" + cellCodeArr[2];
                    }
                    else
                    {
                        cellCode = cell.Cell_Code;
                    }
                }
                else //等于2的时候
                {
                    if (cell.Cell_Chlid_Position == EnumCellPos.前.ToString())
                    {
                        cellCode = (int.Parse(cellCodeArr[0]) + 1).ToString() + "-" + cellCodeArr[1] + "-" + cellCodeArr[2];
                    }
                    else
                    {
                        cellCode = (int.Parse(cellCodeArr[0]) + 2).ToString() + "-" + cellCodeArr[1] + "-" + cellCodeArr[2];
                    }
                }
            }
            return(cellCode);
        }
Exemplo n.º 8
0
        private bool AddRecord(string cellID, EnumCellStatus cellStatus, EnumGSTaskStatus cellTaskStatus, ref string restr)
        {
            WH_Cell_ChildrenModel oldgsm = bllChildCell.GetModel(cellID);

            if (oldgsm == null)
            {
                return(false);
            }
            if (oldgsm.Cell_Child_Flag != "1")
            {
                this.WmsFrame.WriteLog("库存看板", "", "提示", "被禁用的货位不允许修改状态!");
                return(false);
            }
            View_CellModel cellModel = bllViewCell.GetModelByChildCellID(cellID);

            string operteStatusDetail = cellModel.WareHouse_Name + ":[" + cellModel.Cell_Name + "]货位状态由[" + oldgsm.Cell_Child_Status + "]变更为[空闲];" + "货位任务状态由[" + oldgsm.Cell_Child_Run_Status + "]变更为[完成]";

            oldgsm.Cell_Child_Status     = cellStatus.ToString();
            oldgsm.Cell_Child_Run_Status = cellTaskStatus.ToString();
            bllChildCell.Update(oldgsm);
            TaskHandleMethod.AddCellOperRecord(cellID, EnumGSOperateType.手动修改状态, operteStatusDetail, ref restr);

            return(true);
        }
Exemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="palletCode"></param>
        /// <param name="houseName"></param>
        /// <param name="putawayStationName"></param>
        /// <param name="isAssign"></param>
        /// <param name="targetStation"></param>
        /// <param name="taskType">任务类型</param>
        /// <param name="manageID"></param>
        /// <param name="restr"></param>
        /// <returns></returns>
        public static bool CreatePutawayManageTask(string palletCode, string houseName, string putawayStationName,
                                                   bool isAssign, string targetStation, EnumManageTaskType taskType, ref string manageID, ref string restr)
        {
            ManageModel manage = new ManageModel();

            manage.Mange_CreateTime = DateTime.Now;
            WH_WareHouseModel house = bllWareHouse.GetModelByName(houseName);

            if (house == null)
            {
                restr = "库房对象为空!";
                return(false);
            }
            WH_Station_LogicModel stationCell = bllStationLogic.GetStationByName(house.WareHouse_ID, putawayStationName);

            if (stationCell == null)
            {
                restr = "上架站台不存在!";
                return(false);
            }
            WH_WareHouseModel wareHouse = bllWareHouse.GetModelByName(houseName);

            if (wareHouse == null)
            {
                restr = "库房名称错误!";
                return(false);
            }
            View_StockListModel stock = bllViewStockList.GetModelByPalletCode(palletCode, EnumCellType.货位.ToString());

            if (stock != null)
            {
                restr = "库存中已经有此托盘条码!";
                return(false);
            }
            View_CellModel targetCell = null;

            if (isAssign == true)//分配货位要做校验
            {
                string[] targetPos = targetStation.Split('-');
                if (targetPos == null || targetPos.Length != 2)
                {
                    restr = "指定货位格式错误!";
                    return(false);
                }
                string cellName = targetPos[0];
                string cellPos  = targetPos[1];
                targetCell = bllViewCell.GetCell(wareHouse.WareHouse_ID, cellName, cellPos);
                if (targetCell == null || targetCell.Cell_Child_Status != EnumCellStatus.空闲.ToString() || targetCell.Cell_Child_Run_Status != EnumGSTaskStatus.完成.ToString())
                {
                    restr = "当前货位不可用!";
                    return(false);
                }
            }
            else
            {
                targetCell = bllViewCell.ApplyCell(wareHouse.WareHouse_ID);
            }

            if (targetCell == null)
            {
                restr = "库房已满,没有货位可以申请了!";
                return(false);
            }
            if (targetCell.Shelf_Type == EnumShelfType.双深.ToString() && targetCell.Cell_Chlid_Position == EnumCellPos.前.ToString())//双深工位如果选中前面的工位要判断后面是否有料
            {
                View_CellModel backCell = bllViewCell.GetCell(wareHouse.WareHouse_ID, targetCell.Cell_Name, EnumCellPos.后.ToString());


                if (backCell != null && backCell.Cell_Child_Run_Status == EnumGSTaskStatus.完成.ToString() && backCell.Cell_Child_Status == EnumCellStatus.空闲.ToString())
                {
                    restr = "此货位为双深工位 ,需要先送入后面的货位再入前面的货位!";
                    return(false);
                }
                if (backCell != null && backCell.Cell_Child_Run_Status == EnumGSTaskStatus.锁定.ToString())
                {
                    restr = "此货位为双深工位 ,需要先送入后面的货位再入前面的货位,后面的工位处于锁定状态!";
                    return(false);
                }
            }
            if (targetCell.Cell_Child_Run_Status != EnumGSTaskStatus.完成.ToString() && targetCell.Cell_Child_Status != EnumCellStatus.空闲.ToString())
            {
                restr = "指定货位已经被占用!";
                return(false);
            }

            manage.Mange_ID = Guid.NewGuid().ToString();

            manage.Mange_Start_Cell_ID     = stationCell.Cell_Child_ID;
            manage.Mange_End_Cell_ID       = targetCell.Cell_Chlid_ID;
            manage.Mange_Status            = EnumManageTaskStatus.待执行.ToString();
            manage.Manage_BreakDown_Status = "待分解";
            manage.Mange_Stock_Barcode     = palletCode;
            if (taskType == EnumManageTaskType.空托盘上架)
            {
                manage.Mange_Type_ID = "7";// EnumManageTaskType.空托盘上架.ToString();
            }
            else if (taskType == EnumManageTaskType.架)
            {
                manage.Mange_Type_ID = "6";//上架
            }
            else
            {
                restr = "任务类型错误!";
                return(false);
            }
            View_StockListModel vslm = bllViewStockList.GetModelByPalletCode(palletCode, EnumCellType.配盘工位.ToString());//

            if (vslm == null)
            {
                restr = "没有配盘,请查看!";
                return(false);
            }
            EnumOrderType orderType = EnumOrderType.计划;

            if (vslm.Plan_List_ID == "-1")//无计划的
            {
                manage.Plan_ID = "-1";
                orderType      = EnumOrderType.非计划;
            }
            else
            {
                orderType = EnumOrderType.计划;
                View_Plan_StockListModel plan = bllViewPalnStockList.GetModelByPalletCode(palletCode);
                if (plan == null)
                {
                    restr = "当前库存没有对应计划!";
                    return(false);
                }
                manage.Plan_ID = plan.Plan_ID;
            }
            manageID = manage.Mange_ID;
            bllManage.Add(manage);
            bool status = CreatePutawayManageListTask(manage.Mange_ID, orderType, palletCode, ref restr);

            if (status == true)
            {
                restr += "生成托盘[" + palletCode + "]上架任务成功:终点:" + houseName + targetCell.Cell_Name + targetCell.Cell_Chlid_Position;
                UpdateCellStatus(targetCell.Cell_Chlid_ID, EnumCellStatus.空闲, EnumGSTaskStatus.锁定, EnumGSOperate.入库);
                return(true);
            }
            else
            {
                restr += "生成托盘[" + palletCode + "]上架任务失败:终点:" + houseName + targetCell.Cell_Name + targetCell.Cell_Chlid_Position;
                return(false);
            }
        }
Exemplo n.º 10
0
        public static bool AddStockRecord(string manageID)
        {
            List <View_ManageStockListModel> manageStockList = bllViewManageStockList.GetModelListByManageID(manageID);


            var sdf = manageStockList.Distinct(new ListCompare <View_ManageStockListModel>((x, y)
                                                                                           => x.Stock_Tray_Barcode == y.Stock_Tray_Barcode));

            List <View_ManageStockListModel> distintStockList = sdf.ToList();

            if (distintStockList == null && distintStockList.Count == 0)
            {
                return(false);
            }
            if (manageStockList == null && manageStockList.Count == 0)
            {
                return(false);
            }
            foreach (View_ManageStockListModel manageStock in distintStockList)
            {
                RecordModel record = new RecordModel();

                record.Manage_Begin_Time = manageStock.Manage_Begin_Time;
                record.Manage_End_Time   = manageStock.Manage_End_Time;
                record.Manage_Type_Code  = manageStock.Mange_Type_ID;


                record.Plan_ID       = manageStock.Plan_ID;
                record.Record_ID     = Guid.NewGuid().ToString();
                record.Start_Cell_ID = manageStock.Mange_Start_Cell_ID;
                record.End_Cell_ID   = manageStock.Mange_End_Cell_ID;

                View_CellModel startCell = bllViewCell.GetModelByChildCellID(manageStock.Mange_Start_Cell_ID);
                View_CellModel endCell   = bllViewCell.GetModelByChildCellID(manageStock.Mange_End_Cell_ID);
                if (startCell.Cell_Type == EnumCellType.货位.ToString() && endCell.Cell_Type == EnumCellType.货位.ToString())
                {
                    record.Record_OperateType = EnumCellTransferType.移库.ToString();
                }
                else if (startCell.Cell_Type == EnumCellType.货位.ToString() && endCell.Cell_Type != EnumCellType.货位.ToString())
                {
                    record.Record_OperateType = EnumCellTransferType.出库.ToString();
                }
                else if (startCell.Cell_Type != EnumCellType.货位.ToString() && endCell.Cell_Type == EnumCellType.货位.ToString())
                {
                    record.Record_OperateType = EnumCellTransferType.入库.ToString();
                }

                record.Stock_Tray_Barcode = manageStock.Stock_Tray_Barcode;
                bllRecord.Add(record);
                foreach (View_ManageStockListModel stockList in manageStockList)
                {
                    Record_ListModel recordList = new Record_ListModel();
                    recordList.Goods_ID             = stockList.Goods_ID;
                    recordList.Plan_List_ID         = stockList.Plan_List_ID;
                    recordList.Record_Box_Barcode   = stockList.Stock_List_Box_Barcode;
                    recordList.Record_ID            = record.Record_ID;
                    recordList.Record_List_ID       = Guid.NewGuid().ToString();
                    recordList.Record_List_Quantity = stockList.Stock_List_Quantity;
                    bllRecordList.Add(recordList);
                }
            }

            return(true);
        }
Exemplo n.º 11
0
        public void QueryTask(string taskType, string taskStatus)
        {
            currtaskType   = taskType;
            currtaskStatus = taskStatus;
            List <View_ManageModel> taskList = bllViewManage.GetModelList(taskType, taskStatus);

            ViewDataManager.TASKLISTDATA.TaskListData.Clear();
            if (taskList == null)
            {
                return;
            }
            foreach (View_ManageModel manage in taskList)
            {
                ManageTask task = new ManageTask();
                task.操作员 = manage.Manage_Operater;
                //task.结束时间 = manage.Manage_End_Time.ToString("yyyyy-MM-dd HH:mm:ss");
                //if(manage.Manage_Begin_Time!= null)
                //{
                //    task.开始时间 = ((DateTime)manage.Manage_Begin_Time).ToString("yyyyy-MM-dd HH:mm:ss");
                //}

                View_CellModel viewStartCell = bllViewCell.GetModelByChildCellID(manage.Mange_Start_Cell_ID);

                if (viewStartCell == null)
                {
                    this.View.ShowMessage("信息提示", "任务起始工位数据为空:工位号," + manage.Mange_Start_Cell_ID + ",系统错误请联系管理员!");
                    return;
                }
                if (manage.Manage_Type_Name == EnumManageTaskType.空托盘上架.ToString() ||
                    manage.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    task.起始位置 = viewStartCell.Cell_Name;
                }
                else if (manage.Manage_Type_Name == EnumManageTaskType.拣选下架.ToString() ||
                         manage.Manage_Type_Name == EnumManageTaskType.盘点下架.ToString() ||
                         manage.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    task.起始位置 = viewStartCell.WareHouse_Name + ":" + viewStartCell.Cell_Name + ":" + viewStartCell.Cell_Chlid_Position;
                }
                View_CellModel viewEndCell = bllViewCell.GetModelByChildCellID(manage.Mange_End_Cell_ID);
                if (viewEndCell == null)
                {
                    this.View.ShowMessage("信息提示", "任务终止工位数据为空:工位号," + manage.Mange_End_Cell_ID + ",系统错误请联系管理员!");
                    return;
                }
                if (manage.Manage_Type_Name == EnumManageTaskType.空托盘上架.ToString() ||
                    manage.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    task.终止位置 = viewEndCell.WareHouse_Name + ":" + viewEndCell.Cell_Name + ":" + viewEndCell.Cell_Chlid_Position;
                }
                else if (manage.Manage_Type_Name == EnumManageTaskType.拣选下架.ToString() ||
                         manage.Manage_Type_Name == EnumManageTaskType.盘点下架.ToString() ||
                         manage.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    WH_Station_LogicModel station = bllStationLogic.GetStationByIDAndType(viewEndCell.Cell_Chlid_ID, EnumCellType.架工位.ToString());
                    if (station != null)
                    {
                        task.终止位置 = station.WH_Station_Logic_Name;
                    }
                }

                task.任务类型 = manage.Manage_Type_Name;
                task.任务状态 = manage.Mange_Status;
                task.托盘条码 = manage.Mange_Stock_Barcode;
                //if(manage.Manage_Begin_Time!= null)
                //{
                //    task.开始时间 = manage.Manage_Begin_Time.ToString();
                //}
                if (manage.Mange_CreateTime != null)
                {
                    task.创建时间 = manage.Mange_CreateTime.ToString();
                }

                if (manage.Manage_End_Time != null)
                {
                    task.完成时间 = manage.Manage_End_Time.ToString();
                }

                ViewDataManager.TASKLISTDATA.TaskListData.Add(task);
            }
        }
Exemplo n.º 12
0
        private bool CreatePos(View_CellModel gsModel, ref Positions posRef)
        {
            if (gsModel == null)
            {
                return(false);
            }
            Positions pos = new Positions();

            pos.Columnth    = (int)gsModel.Cell_Column;
            pos.Layer       = (int)gsModel.Cell_Layer;
            pos.Rowth       = (int)gsModel.Cell_Row;
            pos.StoreStatus = gsModel.Cell_Child_Status;
            pos.TaskType    = gsModel.Cell_Child_Run_Status;
            pos.GoodsSiteID = gsModel.Cell_Chlid_ID;
            if (gsModel.Cell_Child_Flag == "1")
            {
                pos.enbled = true;
            }
            else
            {
                pos.enbled = false;
            }

            pos.Visible = true;
            posRef      = pos;
            //此处增加库房和库房区域ID

            pos.Color = gsStatusColor[gsModel.Cell_Child_Status];
            int   r         = int.Parse(gsModel.Area_BackColor.Split(',')[0]);
            int   g         = int.Parse(gsModel.Area_BackColor.Split(',')[1]);
            int   b         = int.Parse(gsModel.Area_BackColor.Split(',')[2]);
            Color areaColor = Color.FromArgb(r, g, b);

            pos.BorderColor = areaColor;


            // pos.BorderColor = Color.LightGray;
            if (gsModel.Cell_Child_Run_Status == EnumGSTaskStatus.锁定.ToString())
            {
                pos.Color = gsStatusColor[gsModel.Cell_Child_Run_Status];
                if (gsModel.Cell_Child_Operate_Type == EnumGSOperate.出库.ToString())
                {
                    pos.PosText = "出";
                }
                else if (gsModel.Cell_Child_Operate_Type == EnumGSOperate.入库.ToString())
                {
                    pos.PosText = "入";
                }
                else if (gsModel.Cell_Child_Operate_Type == EnumGSOperate.移入库.ToString())
                {
                }
                else if (gsModel.Cell_Child_Operate_Type == EnumGSOperate.移出库.ToString())
                {
                }
                else
                {
                }
            }
            if (gsModel.Cell_Child_Run_Status == "出库允许")
            {
                pos.Style = 2;
            }
            else
            {
                pos.Style = 1;
            }

            if (pos.Enbled == false)
            {
                pos.Color = gsStatusColor[EnumGSEnabledStatus.禁用.ToString()];
            }
            return(true);
        }
Exemplo n.º 13
0
        /// <summary>
        /// wcs向wms请求任务
        /// </summary>
        /// <param name="applyTask"></param>
        /// <returns></returns>
        public ResposeData RequireTask(RequireTaskModel requireTask)
        {
            ResposeData response = new ResposeData();

            if (requireTask == null)
            {
                response.Status   = false;
                response.Describe = "请求任务对象为空!";
                return(response);
            }


            try
            {
                ManageModel existMana = bllManage.GetModelByPalletCode(requireTask.PalletCode);
                if (existMana != null)
                {
                    response.Status   = false;
                    response.Describe = "此托盘任务已经生成!";
                    return(response);
                }
                ManageModel manage = new ManageModel();
                manage.Mange_ID = Guid.NewGuid().ToString();
                WH_Station_LogicModel stationLogic = bllStationLogic.GetModelByCellID(requireTask.RequireDevice.DeviceCode);
                if (stationLogic == null)
                {
                    response.Status   = false;
                    response.Describe = "请求设备编号错误!";
                    return(response);
                }

                if (requireTask.RequireType == EnumRequireTaskType.空筐入库.ToString())//入库请求设备对应指定库房编码,库房编码和堆垛机编码一致
                {
                    //通过stationLogic得知申请的是哪个库房的入库
                    View_CellModel targetModel = bllViewCell.ApplyCell(stationLogic.WareHouse_ID);
                    if (targetModel == null)
                    {
                        response.Status   = false;
                        response.Describe = "已经没有货位可以申请了!";
                        return(response);
                    }

                    manage.Mange_Stock_Barcode     = requireTask.PalletCode;
                    manage.Manage_BreakDown_Status = "FALSE";
                    manage.Mange_End_Cell_ID       = targetModel.Cell_Chlid_ID;
                    manage.Mange_Full_Flag         = "0";
                    manage.Mange_Start_Cell_ID     = requireTask.RequireDevice.DeviceCode;
                    manage.Mange_Status            = EnumManageTaskStatus.待执行.ToString();
                    manage.Mange_Type_ID           = "7";//空托盘上架
                }
                else if (requireTask.RequireType == EnumRequireTaskType.空筐出库.ToString())
                {
                    View_CellModel emptyPalletCell = bllViewCell.GetEmptyPalletCell();
                    if (emptyPalletCell == null)
                    {
                        response.Status   = false;
                        response.Describe = "已经没有空托盘可以申请了!";
                        return(response);
                    }

                    manage.Manage_BreakDown_Status = "FALSE";
                    manage.Mange_End_Cell_ID       = requireTask.RequireDevice.DeviceCode;
                    manage.Mange_Full_Flag         = "0";

                    manage.Mange_Start_Cell_ID = emptyPalletCell.Cell_Chlid_ID;
                    manage.Mange_Status        = EnumManageTaskStatus.待执行.ToString();
                    manage.Mange_Stock_Barcode = requireTask.PalletCode;
                    manage.Mange_Type_ID       = "9";//空托盘下架
                }
                else
                {
                    response.Status   = false;
                    response.Describe = "请求任务类型错误!";
                    return(response);
                }
                bllManage.Add(manage);

                response.Status   = true;
                response.Describe = "任务请求成功!";
                return(response);
            }
            catch (Exception ex)
            {
                response.Status   = false;
                response.Describe = "任务请求失败!" + ex.Message;
                return(response);
            }
        }
Exemplo n.º 14
0
        public void TrayConfirm(string cellID)
        {
            try
            {
                string restr = "";
                //if (ViewDataManager.STOCKADJUSTVIEWDATA.PalletGoodsData.Count == 0)
                //{
                //    this.View.ShowMessage("信息提示", "请添加配盘物料!");
                //    return;
                //}

                List <View_Plan_StockListModel> oldStockList = bllViewPlanStockList.GetModelListByCellID(cellID);

                View_CellModel cell = bllViewCell.GetModelByChildCellID(cellID);
                if (cell == null)
                {
                    this.View.ShowMessage("信息提示", "库存货位错误!");
                    return;
                }
                if (cell.Cell_Child_Flag != "1")
                {
                    this.View.ShowMessage("信息提示", "被禁用的货位不允许调整库存!");
                    // this.WmsFrame.WriteLog("库存调整", "", "提示", "被禁用的货位不允许调整库存!");
                    return;
                }
                if (cell.Cell_Child_Status == EnumGSTaskStatus.锁定.ToString())
                {
                    this.View.ShowMessage("信息提示", "被锁定的货位不允许调整库存!请等待任务执行完成再调整!");
                    return;
                }
                if (ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Count == 0)//清空库存
                {
                    if (this.View.AskMessage("信息提示", "您确定要清空此货位库存么?") != 0)
                    {
                        return;
                    }
                    string operteDetail = cell.WareHouse_Name + ":[" + cell.Cell_Name + "]库存手动清空!";
                    TaskHandleMethod.AddCellOperRecord(cellID, EnumGSOperateType.手动修改状态, operteDetail, ref restr);
                    TaskHandleMethod.DeleteStockByCellChildID(cellID);
                    if (AddRecord(cellID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, ref restr) == false)
                    {
                        this.View.ShowMessage("信息提示", "库存状态、操作记录更新失败!");
                        return;
                    }
                    return;
                }
                List <string> distinctTray = new List <string>();
                foreach (PalletGoodsList tray in ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData)
                {
                    if (distinctTray.Contains(tray.托盘条码) == false)
                    {
                        distinctTray.Add(tray.托盘条码);
                    }
                }
                if (distinctTray.Count > 1)
                {
                    this.View.ShowMessage("信息提示", "一个货位只允许有一个托盘!");
                    return;
                }
                foreach (string tray in distinctTray)
                {
                    List <StockModel> stockListModel = bllStock.GetModelListByTrayCode(tray);
                    foreach (StockModel stockModel in stockListModel)
                    {
                        if (stockModel != null && stockModel.Cell_Child_ID != cellID)
                        {
                            this.View.ShowMessage("信息提示", "托盘条码" + tray + "已经在库存中,请确认托盘条码!");
                            ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Clear();
                            return;
                        }
                    }
                }
                TaskHandleMethod.DeleteStockByCellChildID(cellID);//先清空库存在往里添加
                foreach (string tray in distinctTray)
                {
                    StockModel stock = new StockModel();
                    stock.Stock_ID           = Guid.NewGuid().ToString();
                    stock.Cell_Child_ID      = cell.Cell_Chlid_ID;
                    stock.Stock_Tray_Barcode = tray;
                    bllStock.Add(stock);

                    for (int i = 0; i < ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Count; i++)
                    {
                        PalletGoodsList trayGoodsModel = ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData[i];
                        if (trayGoodsModel.托盘条码 != tray)
                        {
                            continue;
                        }
                        Stock_ListModel stockList = new Stock_ListModel();
                        stockList.Stock_List_ID = Guid.NewGuid().ToString();
                        stockList.Stock_ID      = stock.Stock_ID;

                        GoodsModel goods = bllGoods.GetModelByCode(trayGoodsModel.物料编码);
                        if (goods == null)
                        {
                            continue;
                        }
                        stockList.Goods_ID = goods.Goods_ID;
                        if (oldStockList != null && oldStockList.Count > 0)//计划编号从原来库存里获取
                        {
                            stockList.Plan_List_ID = oldStockList[0].Plan_List_ID;
                            if (oldStockList[0].Plan_List_ID != "-1")
                            {
                                if (UpdatePlanNum(oldStockList[0].Plan_List_ID, goods.Goods_ID, trayGoodsModel.数量.ToString(), ref restr) == false)
                                {
                                    this.WmsFrame.WriteLog("按计划配盘", "", "提示", restr);
                                }
                            }
                        }
                        else//如果没有库存默认为无计划
                        {
                            stockList.Plan_List_ID = "-1";
                        }

                        stockList.Stock_List_Box_Barcode = trayGoodsModel.托盘条码;
                        stockList.Stock_List_Entry_Time  = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        stockList.Stock_List_Quantity    = trayGoodsModel.数量.ToString();
                        bllStockList.Add(stockList);
                    }
                }
                if (AddRecord(cellID, EnumCellStatus.满位, EnumGSTaskStatus.完成, ref restr) == false)
                {
                    this.View.ShowMessage("信息提示", "库存状态、操作记录更新失败!");
                    return;
                }
                string operteStockDetail = cell.WareHouse_Name + ":[" + cell.Cell_Name + "]库存手动调整成功!!";

                TaskHandleMethod.AddCellOperRecord(cellID, EnumGSOperateType.手动修改状态, operteStockDetail, ref restr);

                ViewDataManager.STOCKADJUSTVIEWDATA.PalletInforData.Clear();//配盘完成后清除数据
                this.View.ShowMessage("信息提示", "库存调整成功!");
            }
            catch (Exception ex)
            {
                this.View.ShowMessage("信息提示", "库存调整失败!" + ex.Message);
            }
        }
Exemplo n.º 15
0
        public static bool CreateUnshelveManageTask(string planCode, string palletCode, string houseName, string unshelveStationName, ref string manageID, ref string restr)
        {
            ManageModel manage = new ManageModel();

            manage.Mange_CreateTime = DateTime.Now;
            WH_WareHouseModel wareHouse = bllWareHouse.GetModelByName(houseName);

            if (wareHouse == null)
            {
                restr = "库房名称错误!";
                return(false);
            }
            WH_Station_LogicModel targetCell = bllStationLogic.GetStationByName(wareHouse.WareHouse_ID, unshelveStationName);

            if (targetCell == null)
            {
                restr = "下架站台不存在!";
                return(false);
            }

            View_CellModel      startCell  = null;
            View_StockListModel stockModel = bllViewStockList.GetModelByPalletCode(palletCode, EnumCellType.货位.ToString());

            if (stockModel == null)
            {
                restr = "没有找到所选物料库存!";
                return(false);
            }
            startCell = bllViewCell.GetModelByWHAndCellName(stockModel.WareHouse_Name, stockModel.Cell_Name, stockModel.Cell_Chlid_Position);
            if (startCell == null)
            {
                restr = "没有找到所选物料货位!";
                return(false);
            }
            if (startCell.Shelf_Type == EnumShelfType.双深.ToString() && startCell.Cell_Chlid_Position == EnumCellPos.后.ToString())//双深工位如果选中前面的工位要判断后面是否有料
            {
                View_CellModel forwordCell = bllViewCell.GetCell(stockModel.WareHouse_ID, stockModel.Cell_Name, EnumCellPos.前.ToString());


                if (forwordCell != null && forwordCell.Cell_Child_Status == "空闲" && forwordCell.Cell_Child_Run_Status == "完成")//前面的已经出去了
                {
                }
                else
                {
                    restr = "双深工位出库需要先将外面的库存出库,再出库里面的!";
                    return(false);
                }
            }


            manage.Mange_ID = Guid.NewGuid().ToString();

            manage.Mange_Start_Cell_ID     = startCell.Cell_Chlid_ID;
            manage.Mange_End_Cell_ID       = targetCell.Cell_Child_ID;
            manage.Mange_Status            = EnumManageTaskStatus.待执行.ToString();
            manage.Manage_BreakDown_Status = "待分解";
            manage.Mange_Stock_Barcode     = palletCode;

            //manage.Mange_Type_ID = EnumManageTaskType.下架.ToString();
            manage.Mange_Type_ID = "8";//下架
            PlanMainModel planModel = null;

            if (planCode == "-1")
            {
                manage.Plan_ID = "-1";
            }
            else
            {
                planModel = bllPlan.GetModelByPlanCode(planCode);
                if (planModel == null)
                {
                    restr = "不存在此计划!";
                    return(false);
                }
                manage.Plan_ID = planModel.Plan_ID;
            }

            manageID = manage.Mange_ID;
            bllManage.Add(manage);

            bool status = CreateUnshelveManageListTask(planCode, manage.Mange_ID, palletCode, ref restr);

            if (status == true)
            {
                restr += "生成托盘[" + palletCode + "]下架任务成功:起点:" + startCell.WareHouse_Name + startCell.Cell_Name + startCell.Cell_Chlid_Position;
                EnumCellStatus cellStatus = (EnumCellStatus)Enum.Parse(typeof(EnumCellStatus), startCell.Cell_Child_Status);
                UpdateCellStatus(startCell.Cell_Chlid_ID, cellStatus, EnumGSTaskStatus.锁定, EnumGSOperate.出库);
                return(true);
            }
            else
            {
                restr += "生成托盘[" + palletCode + "]下架任务失败:起点:" + startCell.WareHouse_Name + startCell.Cell_Name + startCell.Cell_Chlid_Position;
                return(false);
            }
        }
Exemplo n.º 16
0
        public static bool CreateMoveManageTask(string startCellID, string endCellID, ref string restr)
        {
            View_CellModel startCell = bllViewCell.GetModelByChildCellID(startCellID);

            if (startCell == null)
            {
                restr = "起始货位为空!";
                return(false);
            }
            View_CellModel endCell = bllViewCell.GetModelByChildCellID(endCellID);

            if (endCell == null)
            {
                restr = "终止货位为空!";
                return(false);
            }
            if (startCell.Cell_Child_Status != EnumCellStatus.满位.ToString() || startCell.Cell_Child_Run_Status != EnumGSTaskStatus.完成.ToString())
            {
                restr = "起始货位状态错误,不能移库!";
                return(false);
            }
            if (endCell.Cell_Child_Status != EnumCellStatus.空闲.ToString() || endCell.Cell_Child_Run_Status != EnumGSTaskStatus.完成.ToString())
            {
                restr = "终止货位状态错误,不能移库!";
                return(false);
            }
            List <View_StockListModel> stockList = bllViewStockList.GetModelListByCellID(startCellID);
            //if(stockList== null)
            ManageModel manage = new ManageModel();

            manage.Mange_CreateTime        = DateTime.Now;
            manage.Mange_ID                = Guid.NewGuid().ToString();
            manage.Manage_BreakDown_Status = "待分解";
            manage.Mange_Start_Cell_ID     = startCellID;
            manage.Mange_End_Cell_ID       = endCellID;
            manage.Mange_Type_ID           = "5";
            if (stockList != null && stockList.Count > 0)
            {
                manage.Mange_Full_Flag     = stockList[0].Stock_Full_Flag;
                manage.Mange_Status        = EnumManageTaskStatus.待执行.ToString();
                manage.Mange_Stock_Barcode = stockList[0].Stock_Tray_Barcode;
                manage.Mange_Type_ID       = "5";
                Plan_ListModel planList = bllPlanList.GetModel(stockList[0].Plan_List_ID);
                if (planList != null)
                {
                    manage.Plan_ID = planList.Plan_ID;
                }
                else
                {
                    manage.Plan_ID = "-1";
                }
            }
            else//空托盘
            {
            }
            bllManage.Add(manage);
            bool status = CreateMoveMangeListTask(startCellID, manage.Mange_ID, ref restr);

            if (status == true)
            {
                restr += "生成托盘[" + manage.Mange_Stock_Barcode + "]移库任务成功:起点:" + startCell.WareHouse_Name + startCell.Cell_Name + startCell.Cell_Chlid_Position
                         + "终点:" + endCell.WareHouse_Name + endCell.Cell_Name + endCell.Cell_Chlid_Position;

                EnumCellStatus cellStatus = (EnumCellStatus)Enum.Parse(typeof(EnumCellStatus), startCell.Cell_Child_Status);
                UpdateCellStatus(startCell.Cell_Chlid_ID, cellStatus, EnumGSTaskStatus.锁定, EnumGSOperate.出库);
                UpdateCellStatus(endCell.Cell_Chlid_ID, EnumCellStatus.空闲, EnumGSTaskStatus.锁定, EnumGSOperate.入库);
                return(true);
            }
            else
            {
                restr += "生成托盘[" + manage.Mange_Stock_Barcode + "]移库任务失败:起点:" + startCell.WareHouse_Name + startCell.Cell_Name + startCell.Cell_Chlid_Position
                         + "终点:" + endCell.WareHouse_Name + endCell.Cell_Name + endCell.Cell_Chlid_Position;
                return(false);
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// 任务完成:更新货位状态;更新库存(出库库操作不同);更新计划状态及当前完成数量;管理任务删除(保留15天数据);出入库记录更新;
        /// </summary>
        /// <param name="manageTask"></param>
        /// <returns></returns>
        public override bool ChangeStatus(View_ManageModel manageTask)
        {
            try
            {
                string restr = "";
                if (manageTask == null)
                {
                    return(false);
                }
                View_CellModel viewCell = null;
                if (manageTask.Manage_Type_Name == EnumManageTaskType.空托盘上架.ToString())  //空托盘没有库存,无计划
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_End_Cell_ID, EnumCellStatus.空料框, EnumGSTaskStatus.完成, EnumGSOperate.入库);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_End_Cell_ID, EnumGSOperateType.系统添加空料框, "空托盘上架任务完成,更新货位状态", ref restr);
                    TaskHandleMethod.AddStockRecord(manageTask.Mange_ID);
                    viewCell = bllView.GetModelByChildCellID(manageTask.Mange_End_Cell_ID);
                    if (viewCell != null)
                    {
                        restr = "空托盘上架任务完成,更新货位[" + viewCell.WareHouse_Name + "," + viewCell.Cell_Name + "," + viewCell.Cell_Chlid_Position + "]状态,空料框、完成。";
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_End_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.完成, EnumGSOperate.入库);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_End_Cell_ID, EnumGSOperateType.系统更新货位操作, "物料上架任务完成,更新货位状态", ref restr);
                    TaskHandleMethod.UpdatePlanCompleteNum(manageTask.Mange_ID);
                    TaskHandleMethod.UpdateStockUpdateTime(manageTask.Mange_Stock_Barcode, DateTime.Now);
                    TaskHandleMethod.UpdateStockPos(manageTask.Mange_Stock_Barcode, manageTask.Mange_End_Cell_ID, ref restr);
                    TaskHandleMethod.AddStockRecord(manageTask.Mange_ID);
                    viewCell = bllView.GetModelByChildCellID(manageTask.Mange_End_Cell_ID);
                    if (viewCell != null)
                    {
                        restr = "上架任务完成,更新货位[" + viewCell.WareHouse_Name + "," + viewCell.Cell_Name + "," + viewCell.Cell_Chlid_Position + "]状态,满筐、完成。";
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.空托盘下架.ToString())
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_Start_Cell_ID, EnumGSOperateType.系统更新货位操作, "空托盘下架任务完成,更新货位状态", ref restr);
                    viewCell = bllView.GetModelByChildCellID(manageTask.Mange_Start_Cell_ID);
                    if (viewCell != null)
                    {
                        restr = "空托盘下架任务完成,更新货位[" + viewCell.WareHouse_Name + "," + viewCell.Cell_Name + "," + viewCell.Cell_Chlid_Position + "]状态,空闲、完成。";
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.架.ToString()) //下架完成后,删除库存
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_Start_Cell_ID, EnumGSOperateType.系统更新货位操作, "货物下架任务完成,更新货位状态", ref restr);
                    TaskHandleMethod.UpdatePlanCompleteNum(manageTask.Mange_ID);
                    TaskHandleMethod.AddStockRecord(manageTask.Mange_ID);//删除stock前
                    TaskHandleMethod.DeleteStock(manageTask.Mange_Stock_Barcode);
                    viewCell = bllView.GetModelByChildCellID(manageTask.Mange_Start_Cell_ID);
                    if (viewCell != null)
                    {
                        restr = "下架任务完成,更新货位[" + viewCell.WareHouse_Name + "," + viewCell.Cell_Name + "," + viewCell.Cell_Chlid_Position + "]状态,空闲、完成。";
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.盘点下架.ToString())
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_Start_Cell_ID, EnumGSOperateType.系统更新货位操作, "货物下架任务完成,更新货位状态", ref restr);
                    //TaskHandleMethod.UpdatePlanCompleteNum(manageTask.Mange_ID);
                    TaskHandleMethod.AddStockRecord(manageTask.Mange_ID);
                    TaskHandleMethod.DeleteStock(manageTask.Mange_ID);
                    viewCell = bllView.GetModelByChildCellID(manageTask.Mange_Start_Cell_ID);
                    if (viewCell != null)
                    {
                        restr = "盘点下架任务完成,更新货位[" + viewCell.WareHouse_Name + "," + viewCell.Cell_Name + "," + viewCell.Cell_Chlid_Position + "]状态,空闲、完成。";
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.拣选下架.ToString())
                {
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.移库.ToString())
                {
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                    TaskHandleMethod.UpdateCellStatus(manageTask.Mange_End_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.完成, EnumGSOperate.入库);
                    TaskHandleMethod.UpdateStockCell(manageTask.Mange_Stock_Barcode, manageTask.Mange_End_Cell_ID, ref restr);
                    TaskHandleMethod.AddCellOperRecord(manageTask.Mange_Start_Cell_ID, EnumGSOperateType.系统更新货位操作, "货物移库任务完成,更新货位状态", ref restr);
                    TaskHandleMethod.AddStockRecord(manageTask.Mange_ID);
                    View_CellModel startCell = bllView.GetModelByChildCellID(manageTask.Mange_Start_Cell_ID);
                    View_CellModel endCell   = bllView.GetModelByChildCellID(manageTask.Mange_End_Cell_ID);

                    if (startCell != null && endCell != null)
                    {
                        restr = "移库任务完成,更新货位[" + startCell.WareHouse_Name + "," + startCell.Cell_Name + "," + startCell.Cell_Chlid_Position + "]状态,空闲、完成;";
                        restr = "更新货位[" + endCell.WareHouse_Name + "," + endCell.Cell_Name + "," + endCell.Cell_Chlid_Position + "]状态,满位、完成。";
                    }
                }
                else
                {
                    return(false);
                }
                StatusManager.wmsFrame.WriteLog("服务管理", "", "提示", restr);
                TaskHandleMethod.CheckPlanCompleteStatus(manageTask.Plan_ID, ref restr);//检查计划是否完成,如果完成自动更新计划通过计划数量和完成数量相等判断
                TaskHandleMethod.UpdateManageCompleteTime(manageTask.Mange_ID, DateTime.Now);
                TaskHandleMethod.UpdateManageHandleStatus(manageTask.Mange_ID, EnumBreakDowmStatus.已处理);


                return(true);
            }
            catch (Exception ex)
            {
                StatusManager.wmsFrame.WriteLog("服务管理", "", "错误", "任务完成处理失败!" + ex.Message);
                return(false);
            }
        }