public bool AddStationModel(WHStation station)
        {
            WH_Station_LogicModel model = new WH_Station_LogicModel();

            model.WH_Station_Logic      = Guid.NewGuid().ToString();
            model.WH_Station_Logic_Name = station.WHStationLogicName;
            model.WH_Station_Logic_Type = station.WHStationLogicType;
            model.WareHouse_ID          = station.WareHouseID;
            model.Cell_Child_ID         = station.WHCellID;
            //WH_Cell_ChildrenModel child = new WH_Cell_ChildrenModel();
            //child.Cell_Child_Flag = "1";
            //child.Cell_Chlid_ID = station.WHCellID;
            //child.Cell_ID = station.WHCellID;
            //WH_CellModel cellModel = new WH_CellModel();
            //cellModel.Cell_ID = station.WHCellID;
            //cellModel.Cell_Row = 1;
            //cellModel.Cell_Column = 1;
            //cellModel.Cell_Layer = 1;
            //if (!bllCell.Add(cellModel))
            //{
            //    return false;
            //}
            //if (!bllCellChild.Add(child))
            //{
            //    return false;
            //}
            return(bllStationLogic.Add(model));
        }
        public bool IsSaveSameName(WHStation station)
        {
            WH_Station_LogicModel model = bllStationLogic.GetStationByName(station.WareHouseID, station.WHStationLogicName);

            if (model != null)
            {
                return(true);
            }
            return(false);
        }
        public bool ModifyStationModel(string oldCellID, WHStation station)
        {
            WH_Station_LogicModel model = bllStationLogic.GetModelByHouseIDAndCellChlidID(station.WareHouseID, oldCellID);

            if (model == null)
            {
                return(false);
            }
            model.WH_Station_Logic_Name = station.WHStationLogicName;
            model.WH_Station_Logic_Type = station.WHStationLogicType;
            model.WareHouse_ID          = station.WareHouseID;
            model.Cell_Child_ID         = station.WHCellID;

            //WH_Cell_ChildrenModel child = new WH_Cell_ChildrenModel();
            //child.Cell_Child_Flag = "1";
            //child.Cell_Chlid_ID = station.WHCellID;
            //child.Cell_ID = station.WHCellID;
            //if (!bllStationLogic.Delete(station.WHStationLogic))
            //{
            //    return false;
            //}
            //if (!bllCellChild.Delete(oldCellID))
            //{
            //    return false;
            //}
            //if (!bllCell.Delete(oldCellID))
            //{
            //    return false;
            //}
            //WH_CellModel cellModel = new WH_CellModel();
            //cellModel.Cell_ID = station.WHCellID;
            //cellModel.Cell_Row = 1;
            //cellModel.Cell_Column = 1;
            //cellModel.Cell_Layer = 1;
            //if (!bllCell.Add(cellModel))
            //{
            //    return false;
            //}
            //if (!bllCellChild.Add(child))
            //{
            //    return false;
            //}
            if (!bllStationLogic.Update(model))
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 4
0
        public bool DeleteStationLogic(string whStationLogic)
        {
            WH_Station_LogicModel stationLogicModel = bllStationLogic.GetModel(whStationLogic);

            if (stationLogicModel == null)
            {
                this.View.ShowMessage("信息提示", "不存在此工位逻辑");
                return(false);
            }


            if (bllStationLogic.Delete(whStationLogic) == false)
            {
                this.View.ShowMessage("信息提示", "删除工位逻辑失败(数据库操作)!");
                return(false);
            }
            return(true);
        }
Exemplo n.º 5
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.º 6
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.º 7
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.º 8
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);
            }
        }