private void SetGsStatusEventHandler(object sender, StockStatusEventArgs e) { int gsStatus = this.View.AskMessBox("您确定要修改选中货位状态么?"); View_QueryStockListModel viewStockListModel = bllQueryStockList.GetModelByGSID(e.GoodsSiteID); if (viewStockListModel == null) { this.View.ShowMessage("信息提示", "当前货位没有库存信息,不能设置货位状态!"); } else { if (gsStatus == 0) { if (e.GsTaskType == EnumTaskCategory.出库 && (e.GsStoreStatus == EnumGSStoreStatus.货 || e.GsStoreStatus == EnumGSStoreStatus.空料框) && e.GsRunStatus == EnumGSRunStatus.任务完成) { int deleteStockStatus = this.View.AskMessBox("系统会自动删除库存信息,您确定要设置么?"); if (deleteStockStatus == 0) { bllStock.Delete(viewStockListModel.StockID); bllGoodsSite.UpdateGoodsSiteStatus(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.待用.ToString(), EnumTaskCategory.出入库.ToString(), e.GoodsSiteID); mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, ECAMSModel.EnumLogType.提示, "用户:" + this.userNameStr + ",货位类型“" + e.GsTaskType + "货位存储状态:" + e.GsStoreStatus + "货位运行状态:" + e.GsRunStatus + "”修改成功!" + "货位号:" + viewStockListModel.GoodsSiteName); } } else if (e.GsStoreStatus == EnumGSStoreStatus.空货位 && e.GsRunStatus == EnumGSRunStatus.待用) { int deleteStockStatus = this.View.AskMessBox("系统会自动删除库存信息,您确定要设置么?"); if (deleteStockStatus == 0) { bllStock.Delete(viewStockListModel.StockID); bllGoodsSite.UpdateGoodsSiteStatus(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.待用.ToString(), EnumTaskCategory.出入库.ToString(), e.GoodsSiteID); mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, ECAMSModel.EnumLogType.提示, "用户:" + this.userNameStr + ",货位类型“" + e.GsTaskType + "货位存储状态:" + e.GsStoreStatus + "货位运行状态:" + e.GsRunStatus + "”修改成功!" + "货位号:" + viewStockListModel.GoodsSiteName); } } else { bool updateStatus = bllGoodsSite.UpdateGoodsSiteStatus(e.GsStoreStatus.ToString(), e.GsRunStatus.ToString(), e.GoodsSiteID); if (updateStatus == true) { mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, ECAMSModel.EnumLogType.提示, "用户:" + this.userNameStr + ",货位类型“" + e.GsTaskType + "货位存储状态:" + e.GsStoreStatus + "货位运行状态:" + e.GsRunStatus + "”修改成功!" + "货位号:" + viewStockListModel.GoodsSiteName); } } } } List <View_QueryStockListModel> modelList = bllQueryStockList.GetModelList(queryHouseName, queryRowth, queryColumnth, queryLayerth, queryProductStasus, queryWorkFlowStatus , queryGsRunStatus, queryGsStoreStatus, queryGsTaskType, queryProductBatchNum); this.View.RefreshDGVData(modelList); }
private void RefreshStockDetail(int gsID) { View_QueryStockListModel viewStockListModel = bllView_QueryStockList.GetModelByGSID(gsID); if (viewStockListModel != null) { StockListModel slModel = bllStockList.GetModel(viewStockListModel.StockListID); currStockListModel = slModel; } List <View_StockListDetailModel> stockDetailModelList = bllView_StockDetail.GetStockDetailByGsID(gsID); List <TB_Tray_indexModel> trayDetailModelList = new List <TB_Tray_indexModel>(); if (stockDetailModelList != null) { for (int i = 0; i < stockDetailModelList.Count; i++) { TB_Tray_indexModel trayDetailModel = bllTrayDetail.GetModel(stockDetailModelList[i].TrayID);//查询料框电芯详细 trayDetailModelList.Add(trayDetailModel); } } this.View.ShowStockDetail(stockDetailModelList, trayDetailModelList); }
private void UnuseGsEventHandler(object sender, QueryGoodsSiteEventArgs e) { int gsStatus = this.View.AskMessBox("您确定禁用当选中前货位么?"); if (gsStatus == 0) { View_QueryStockListModel viewStockListModel = bllView_QueryStockList.GetModelByGSID(e.GoodsSiteID); if (viewStockListModel != null) { this.View.ShowMessage("信息提示", "当前货位存有货物,不能禁用此货位,如要禁用当前货位,请将当前货物出库!"); return; } bool status = bllGoodsSite.UpdateGoodsSiteStatus(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.异常.ToString(), EnumTaskCategory.出入库.ToString(), e.GoodsSiteID); if (status) { this.View.ShowMessage("信息提示", "货位禁用成功!"); } else { this.View.ShowMessage("信息提示", "货位禁用失败!"); } } }
private void AddTrayEventHandler(object sender, TrayEventArgs e) { if (e.GsRunStatus != EnumGSRunStatus.任务完成.ToString()) { this.View.ShowMessage("信息提示", "货位正在运行不允许添加料框信息!"); return; } if (this.currentSelectGSID != 999999) { View_QueryStockListModel viewStockListModel = bllView_QueryStockList.GetModelByGSID(currentSelectGSID); if (viewStockListModel != null) { TB_Tray_indexModel trayModel = bllTrayIndex.GetModel(e.TrayID); if (trayModel == null) { this.View.ShowMessage("信息提示", "条码在数据库不存在!"); return; } if (currStockListModel != null) { List <StockDetailModel> stockDetailList = bllStockDetail.GetDetailModelList(currStockListModel.StockListID); if (stockDetailList != null) { if (viewStockListModel.StoreHouseName == EnumStoreHouse.A1库房.ToString()) { if (stockDetailList.Count >= 2) { this.View.ShowMessage("信息提示", "A库房每个货位只能存储2个料框!"); return; } } else if (viewStockListModel.StoreHouseName == EnumStoreHouse.B1库房.ToString()) { if (stockDetailList.Count >= 6) { this.View.ShowMessage("信息提示", "B库房每个货位只能存储6个料框!"); return; } } bool isTheSame = true; for (int i = 0; i < stockDetailList.Count; i++) { TB_Tray_indexModel existTrayModel = bllTrayIndex.GetModel(stockDetailList[i].TrayID); if (existTrayModel.Tf_BatchID != trayModel.Tf_BatchID) { isTheSame = false; this.View.ShowMessage("信息提示", "您添加的托盘号所属批次号与现有库存的托盘批次不一致!若您要添加请将现有库存的托盘删除!"); break; } } if (isTheSame == false) { return; } } } StockDetailModel stockDetailModel = new StockDetailModel(); stockDetailModel.TrayID = e.TrayID; stockDetailModel.StockListID = viewStockListModel.StockListID; bllStockDetail.Add(stockDetailModel); currStockListModel.ProductBatchNum = trayModel.Tf_BatchID; bllStockList.Update(currStockListModel);//更新库存列表 RefreshStockDetail(currentSelectGSID); this.mainPre.View.AddLog(EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",添加条码+" + trayModel.Tf_TrayId + ",货位号:" + viewStockListModel.GoodsSiteName); } else { this.View.ShowMessage("信息提示", "此货位没有库存信息!"); } } else { this.View.ShowMessage("信息提示", "请选择要添加料框的货位!"); } }
private void OutHouseByHandEventHandler(object sender, OutHouseByHandEventArgs e) { int outHouse = this.View.AskMessBox("您确定要将选中货位手动出库么?"); if (outHouse == 0) { GoodsSiteModel gsModel = bllGoodsSite.GetModel(e.GoodsSiteID); if (gsModel == null) { if (this.mainPre != null) { this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "此货位为空,不能出库!"); return; } } if (!((e.GsStoreStatus == EnumGSStoreStatus.货 || e.GsStoreStatus == EnumGSStoreStatus.空料框) && e.GsRunStatus == EnumGSRunStatus.任务完成 && gsModel.GoodsSiteInOutType == EnumTaskCategory.入库.ToString())) { if (this.mainPre != null) { this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!"); return; } } View_QueryStockListModel viewGsStockModel = bllView_QueryStockList.GetOutHouseModel(e.GoodsSiteID, e.GsStoreStatus, e.GsRunStatus); if (viewGsStockModel != null) { Hashtable updateGsStatusHs = null; TaskTypeModel taskType = null; StockModel stockModel = bllStock.GetModelByGsID(e.GoodsSiteID); bool exeHandTask = false;//执行手动选择的任务类型 if (stockModel != null) { StockListModel stockListModel = bllStockList.GetModelByStockID(stockModel.StockID); if (stockListModel != null) { string shouldTaskName = GetTaskName(stockListModel.StoreHouseName, stockListModel.ProductStatus); #region 根据人工选定的出库类型出库 if (e.OutHouseType != shouldTaskName) { if (this.View.AskMessBox("当前产品状态出库类型应为“" + shouldTaskName + "”,您确定要“" + e.OutHouseType + "”么?") == 0) { EnumTaskName handTaskName = (EnumTaskName)Enum.Parse(typeof(EnumTaskName), e.OutHouseType); taskType = bllTaskType.GetModel((int)handTaskName); switch (handTaskName) { case EnumTaskName.电芯出库_A1: updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs break; case EnumTaskName.电芯出库_B1: updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs break; case EnumTaskName.空料框出库: updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs break; case EnumTaskName.分容出库_A1: updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs break; } exeHandTask = true; } } #endregion #region 根据货物状态出库 if (exeHandTask == false) { if (stockListModel.StoreHouseName == EnumStoreHouse.A1库房.ToString())//手动出库根据物料状态出库 { if (viewGsStockModel.ProductStatus == EnumProductStatus.A1库静置10小时.ToString()) { taskType = bllTaskType.GetModel((int)EnumTaskName.电芯出库_A1); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs } else if (viewGsStockModel.ProductStatus == EnumProductStatus.A1库老化3天.ToString()) { taskType = bllTaskType.GetModel((int)EnumTaskName.分容出库_A1); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs } } else if (stockListModel.StoreHouseName == EnumStoreHouse.B1库房.ToString()) { if (stockListModel.ProductStatus == EnumProductStatus.空料框.ToString()) { taskType = bllTaskType.GetModel((int)EnumTaskName.空料框出库); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs } else { taskType = bllTaskType.GetModel((int)EnumTaskName.电芯出库_B1); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), viewGsStockModel.GoodsSiteID); //获取更新货位状态Hs } } } #endregion #region 出库处理逻辑 long manaTaskID = 0; ManageTaskModel manaTaskModel = AutoCreateManaTask(stockModel, stockListModel, taskType, ref manaTaskID); ManageTaskListModel manaTaskListModel = AutoCreateManaTaskList(manaTaskID, manaTaskModel, stockListModel); AutoCreateControlTask(manaTaskModel, manaTaskID, taskType); List <Hashtable> hashList = new List <Hashtable>(); hashList.Add(updateGsStatusHs); bool executeStatus = ExecuteManyHashSqls(hashList); if (executeStatus == true) { if (this.mainPre != null) { string trayIDListStr = bllStockDetail.GetTrayIDStrList(stockListModel.StockListID); this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "生成出库“" + taskType.TaskTypeName + "”任务成功!" + "开始位置:" + manaTaskModel.TaskStartPostion + ",结束位置:" + manaTaskModel.TaskEndPostion + "托盘号:" + trayIDListStr); } } else { if (this.mainPre != null) { this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "生成出库“" + taskType.TaskTypeName + "”任务失败!" + "开始位置:" + manaTaskModel.TaskStartPostion + ",结束位置:" + manaTaskModel.TaskEndPostion); } } #endregion } } else { if (this.mainPre != null) { this.mainPre.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "没有货物出库!"); this.View.ShowMessage("信息提示", "没有货物出库!"); } } } } }