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); }
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); }
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); } }
/// <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); } }
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); } }
/// <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); } }