Exemple #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);
            if (cellStatus == EnumCellStatus.空闲.ToString() && cellTaskStatus == EnumGSTaskStatus.完成.ToString())
            {
                if (this.View.AskMessage("询问", "您确定要清空此货位么?清空后货位的库存物料信息也将清空!") == 0)
                {
                    TaskHandleMethod.DeleteStockByCellChildID(cellModel.Cell_Chlid_ID);
                }
            }

            this.View.RefreshData();
        }
        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();
        }
        public bool MoveHouse(string startCellChildID, string endCellChildID)
        {
            string restr  = "";
            bool   status = TaskHandleMethod.CreateMoveManageTask(startCellChildID, endCellChildID, ref restr);

            if (status == true)
            {
                this.WmsFrame.WriteLog("库存看板", "", "提示", "移库任务生成功!" + restr);
                this.View.RefreshData();
                return(true);
            }
            else
            {
                this.WmsFrame.WriteLog("库存看板", "", "错误", "移库任务生失败!" + restr);
                return(false);
            }
        }
Exemple #4
0
        public void CancelTask(string palletCode)
        {
            string      restr  = "";
            ManageModel manage = bllManage.GetModelByPalletCode(palletCode);

            if (manage == null)
            {
                this.View.ShowMessage("信息提示", "获取管理任务失败!");
                return;
            }
            if (manage.Mange_Status != EnumManageTaskStatus.待执行.ToString())
            {
                this.View.ShowMessage("信息提示", "只有待执行的任务可以取消!");
                return;
            }
            if (manage.Mange_Type_ID == "1" || manage.Mange_Type_ID == "6" ||
                manage.Mange_Type_ID == "7")//入库的
            {
                TaskHandleMethod.UpdateCellStatus(manage.Mange_End_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.入库);
                TaskHandleMethod.AddCellOperRecord(manage.Mange_End_Cell_ID, EnumGSOperateType.手动取消任务, "人工手动取消入库任务", ref restr);
            }
            else if (manage.Mange_Type_ID == "5")//移库的
            {
                TaskHandleMethod.UpdateCellStatus(manage.Mange_Start_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                TaskHandleMethod.UpdateCellStatus(manage.Mange_End_Cell_ID, EnumCellStatus.空闲, EnumGSTaskStatus.完成, EnumGSOperate.入库);
                TaskHandleMethod.AddCellOperRecord(manage.Mange_Start_Cell_ID, EnumGSOperateType.手动取消任务, "人工手动取消移库开始任务", ref restr);
                TaskHandleMethod.AddCellOperRecord(manage.Mange_End_Cell_ID, EnumGSOperateType.手动取消任务, "人工手动取消移库目标任务", ref restr);
            }
            else if (manage.Mange_Type_ID == "2" || manage.Mange_Type_ID == "8" || manage.Mange_Type_ID == "9")//出库的
            {
                TaskHandleMethod.UpdateCellStatus(manage.Mange_Start_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.完成, EnumGSOperate.出库);
                TaskHandleMethod.AddCellOperRecord(manage.Mange_Start_Cell_ID, EnumGSOperateType.手动取消任务, "人工手动取消出库任务", ref restr);
            }
            else
            {
                this.View.ShowMessage("信息提示", "任务类型错误!任务编码:" + manage.Mange_Type_ID);
                return;
            }
            bllManage.Delete(manage.Mange_ID);

            this.View.ShowMessage("信息提示", "取消任务成功!");
            this.WmsFrame.WriteLog("任务列表", "", "提示", "手动取消任务:托盘[" + palletCode + "]" + ",任务类型:" + manage.Mange_Type_ID);
            ViewDataManager.TASKLISTDATA.TaskDetailData.Clear();//取消配盘后要将任务详细清楚
            QueryTask(currentDtStart, currentDtEnd, this.currtaskType, this.currtaskStatus);
        }
Exemple #5
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);
        }
Exemple #6
0
        public void PutawayTask(string palletCode, string houseName, string putawayStationName,
                                bool isAssign, string rowth, string colth, string layerth, string pos)
        {
            string restr = "";

            if (palletCode == "")
            {
                this.View.ShowMessage("信息提示", "请选择托盘条码!");
                return;
            }
            //if(isEmptyPallet == false)//不是空托盘,没有库存判断
            //{
            StockModel stock = bllStock.GetModelByTrayCode(palletCode);

            if (stock == null)
            {
                this.View.ShowMessage("信息提示", "请配盘入库!");
                return;
            }
            //}

            ManageModel manageTemp = bllManage.GetModelByPalletCode(palletCode);

            if (manageTemp != null)
            {
                this.View.ShowMessage("信息提示", "当前托盘已经生成上架任务!");
                return;
            }
            string             manageID   = "";
            EnumManageTaskType manaTask   = EnumManageTaskType.架;
            string             targetCell = rowth + "排" + colth + "列" + layerth + "层-" + pos;
            //if (isEmptyPallet == true)
            //{
            //    manaTask = EnumManageTaskType.空托盘上架;
            //}
            //else
            ////{
            //manaTask = EnumManageTaskType.上架;
            //}
            ReturnObject allowCreateTask = new ReturnObject();

            allowCreateTask.Status = true;

            if (this.AllowPutaway != null)
            {
                WH_WareHouseModel house = bllWareHouse.GetModelByName(houseName);
                if (house == null)
                {
                    this.View.ShowMessage("信息提示", "库房获取失败!");
                    return;
                }
                PutawayParams putwayParams = new PutawayParams();
                putwayParams.WareHouseName = houseName;
                putwayParams.WareHouseCode = house.WareHouse_Code;
                putwayParams.PalletCode    = palletCode;
                allowCreateTask            = this.AllowPutaway(putwayParams);
            }
            if (allowCreateTask.Status == false)
            {
                this.View.ShowMessage("信息提示", allowCreateTask.Describe);
                return;
            }
            if (TaskHandleMethod.CreatePutawayManageTask(palletCode, houseName, putawayStationName, isAssign, targetCell, manaTask, ref manageID, ref restr) == false)
            {
                this.WmsFrame.WriteLog("上架逻辑", "", "提示", "创建管理任务失败:" + restr);
                return;
            }
            //if (TaskHandleMethod.CreatePutawayManageListTask(manageID, palletCode, ref restr) == false)
            //{
            //    this.WmsFrame.WriteLog("上架逻辑", "", "提示", "创建管理任务列表失败:" + restr);
            //    return;
            //}
            this.WmsFrame.WriteLog("上架逻辑", "", "提示", "上架任务下达成功!" + restr);
        }
Exemple #7
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);
            }
        }
Exemple #8
0
        /// <summary>
        /// 任务开始所关联的计划更改为执行中;货位状态锁定(配盘时已经更改成锁定);
        /// </summary>
        /// <param name="manageTask"></param>
        /// <returns></returns>
        public override bool ChangeStatus(View_ManageModel manageTask)
        {
            try
            {
                if (manageTask == null)
                {
                    return(false);
                }
                //更新计划,无计划可不更新,无计划的计划ID为-1
                //if (manageTask.Plan_ID != "-1")//有计划任务
                //{
                //    if (TaskHandleMethod.UpdatePlanStatus(manageTask.Plan_ID, EnumPlanStatus.执行中) == false)
                //    {
                //        StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "计划状态更新失败!");
                //        return false;
                //    }
                //}

                if (manageTask.Manage_Type_Name == EnumManageTaskType.空托盘上架.ToString())
                {
                    if (TaskHandleMethod.UpdateCellStatus(manageTask.Mange_End_Cell_ID, EnumCellStatus.空料框, EnumGSTaskStatus.锁定, EnumGSOperate.入库) == false)
                    {
                        StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "货位状态更新失败!");
                        return(false);
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    if (TaskHandleMethod.UpdateCellStatus(manageTask.Mange_End_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.锁定, EnumGSOperate.入库) == false)
                    {
                        StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "货位状态更新失败!");
                        return(false);
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.空托盘下架.ToString())
                {
                    if (TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.空料框, EnumGSTaskStatus.锁定, EnumGSOperate.出库) == false)
                    {
                        StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "货位状态更新失败!");
                        return(false);
                    }
                }
                else if (manageTask.Manage_Type_Name == EnumManageTaskType.盘点下架.ToString() ||
                         manageTask.Manage_Type_Name == EnumManageTaskType.架.ToString())
                {
                    if (TaskHandleMethod.UpdateCellStatus(manageTask.Mange_Start_Cell_ID, EnumCellStatus.满位, EnumGSTaskStatus.锁定, EnumGSOperate.出库) == false)
                    {
                        StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "货位状态更新失败!");
                        return(false);
                    }
                }
                else
                {
                    StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "任务类型错误!");
                    return(false);
                }
                return(true);
            }
            catch (Exception ex)
            {
                StatusManager.wmsFrame.WriteLog("TaskRunning", "", "错误", "任务执行处理失败!" + ex.Message);
                return(false);
            }
        }
Exemple #9
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);
                }

                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);
                }
                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);
                }
                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);
                }
                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);
                }
                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);
                }
                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);
                }
                else
                {
                    return(false);
                }
                TaskHandleMethod.CheckPlanCompleteStatus(manageTask.Plan_ID, ref restr);//检查计划是否完成,如果完成自动更新计划通过计划数量和完成数量相等判断
                TaskHandleMethod.UpdateManageCompleteTime(manageTask.Mange_ID, DateTime.Now);
                TaskHandleMethod.UpdateManageHandleStatus(manageTask.Mange_ID, EnumBreakDowmStatus.已处理);

                StatusManager.wmsFrame.WriteLog("服务管理", "", "提示", restr);
                return(true);
            }
            catch (Exception ex)
            {
                StatusManager.wmsFrame.WriteLog("服务管理", "", "错误", "任务完成处理失败!" + ex.Message);
                return(false);
            }
        }
Exemple #10
0
        public void PutawayTask(string palletCode, string houseName, string putawayStationName,
                                bool isAssign, string rowth, string colth, string layerth, string pos)
        {
            string restr = "";

            if (palletCode == "")
            {
                this.View.ShowMessage("信息提示", "请选择托盘条码!");
                return;
            }
            //if(isEmptyPallet == false)//不是空托盘,没有库存判断
            //{
            StockModel stock = bllStock.GetModelByTrayCode(palletCode);

            if (stock == null)
            {
                this.View.ShowMessage("信息提示", "请配盘入库!");
                return;
            }
            //}

            ManageModel manageTemp = bllManage.GetModelByPalletCode(palletCode);

            if (manageTemp != null)
            {
                this.View.ShowMessage("信息提示", "当前托盘已经生成上架任务!");
                return;
            }
            string             manageID   = "";
            EnumManageTaskType manaTask   = EnumManageTaskType.架;
            string             targetCell = rowth + "排" + colth + "列" + layerth + "层-" + pos;
            //if (isEmptyPallet == true)
            //{
            //    manaTask = EnumManageTaskType.空托盘上架;
            //}
            //else
            ////{
            //manaTask = EnumManageTaskType.上架;
            //}
            bool allowCreateTask = true;

            if (this.AllowPutaway != null)
            {
                allowCreateTask = this.AllowPutaway();
            }
            if (allowCreateTask == false)
            {
                this.View.ShowMessage("信息提示", "当前系统不允许下达上架任务!只允许执行一个任务");
                return;
            }
            if (TaskHandleMethod.CreatePutawayManageTask(palletCode, houseName, putawayStationName, isAssign, targetCell, manaTask, ref manageID, ref restr) == false)
            {
                this.WmsFrame.WriteLog("上架逻辑", "", "提示", "创建管理任务失败:" + restr);
                return;
            }
            //if (TaskHandleMethod.CreatePutawayManageListTask(manageID, palletCode, ref restr) == false)
            //{
            //    this.WmsFrame.WriteLog("上架逻辑", "", "提示", "创建管理任务列表失败:" + restr);
            //    return;
            //}
            this.WmsFrame.WriteLog("上架逻辑", "", "提示", "上架任务下达成功!" + restr);
        }
Exemple #11
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);
            }
        }