private ManageTaskModel AutoCreateManaTask(StockModel stockModel , StockListModel stockListModel, TaskTypeModel taskType, ref long manaTaskID) { ManageTaskModel manaTaskModel = new ManageTaskModel();//生成管理任务 manaTaskModel.TaskCode = stockListModel.ProductFrameCode; LoginPresenter loginPre = (LoginPresenter)this.View.GetPresenter(typeof(LoginPresenter)); if (loginPre != null) { manaTaskModel.TaskCreatePerson = loginPre.View.UserName; } manaTaskModel.TaskCreateTime = DateTime.Now; LogicStoreAreaModel logicEndModel = bllLogicStoreArea.GetModel(taskType.EndLogicAreaID); manaTaskModel.TaskEndArea = logicEndModel.LogicStoreAreaName; manaTaskModel.TaskEndPostion = taskType.EndDevice; LogicStoreAreaModel logicStartModel = bllLogicStoreArea.GetModel(taskType.StartLogicAreaID); manaTaskModel.TaskStartArea = logicStartModel.LogicStoreAreaName; GoodsSiteModel gsModel = bllGoodsSite.GetModel(stockModel.GoodsSiteID); manaTaskModel.TaskStartPostion = gsModel.DeviceID; manaTaskModel.TaskStatus = EnumTaskStatus.待执行.ToString(); manaTaskModel.TaskType = EnumTaskCategory.出库.ToString(); manaTaskModel.TaskTypeName = taskType.TaskTypeName; manaTaskID = bllTask.Add(manaTaskModel); return(manaTaskModel); }
public ResposeData GetWaittingToRunTaskList(TaskDeviceModel stDevice, ref List <ManageTaskModel> manageTaskList) { manageTaskList = new List <ManageTaskModel>(); ResposeData res = new ResposeData(); res.Status = true; if (wmsTaskDt == null) { return(res); } foreach (DataRow dr in wmsTaskDt.Rows) { if (dr["起始设备号"].ToString() == stDevice.DeviceCode && dr["任务状态"].ToString() == "待执行") { ManageTaskModel manTask = new ManageTaskModel(); manTask.TaskID = dr["管理任务ID"].ToString(); manTask.Type = dr["任务类型"].ToString(); manTask.Status = dr["任务类型"].ToString(); manTask.PalletCode = dr["托盘码"].ToString(); manTask.StartDevice = new TaskDeviceModel(dr["起始设备号"].ToString(), dr["起始设备类型"].ToString()); manTask.StartDevice.ExtParam = dr["起始设备参数"].ToString(); manTask.TargetDevice = new TaskDeviceModel(dr["目标设备号"].ToString(), dr["目标设备类型"].ToString()); manTask.TargetDevice.ExtParam = dr["目标设备参数"].ToString(); manTask.Remark = dr["备注"].ToString(); manageTaskList.Add(manTask); } } return(res); }
private void DeleteStockEventHandler(object sender, DeleteStockEventArgs e) { if (this.View.AskMessBox("您确定要删除当前选中库存么?") == 0) { for (int i = 0; i < e.StockID.Length; i++) { StockModel stockModel = bllStock.GetModel(e.StockID[i]); if (stockModel == null) { return; } StockListModel stockListModel = bllStockList.GetModelByStockID(stockModel.StockID); if (stockListModel == null) { return; } ManageTaskListModel manaTaskList = bllTaskList.GetModelByStockListID(stockListModel.StockListID); if (manaTaskList != null) { ManageTaskModel manaTask = bllTask.GetModel(manaTaskList.TaskID); if (manaTask != null) { bllTask.Delete(manaTask.TaskID); } } Hashtable updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空货位.ToString() , EnumGSRunStatus.待用.ToString(), EnumTaskCategory.出库.ToString(), stockModel.GoodsSiteID); //获取更新货位状态Hs Hashtable deleteStockHs = bllStock.GetDeleteModelHash(e.StockID[i]); List <Hashtable> allHs = new List <Hashtable>(); allHs.Add(updateGsStatusHs); allHs.Add(deleteStockHs); bool deleteStatus = ExecuteManyHashSqls(allHs); if (deleteStatus == true) { if (this.mainPres != null) { this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",手动删除库存ID:" + e.StockID[i] + "库存名称:" + stockListModel.GoodsSiteName + "成功!"); } } else { if (this.mainPres != null) { this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",手动删除库存ID:" + e.StockID[i] + "库存名称:" + stockListModel.GoodsSiteName + "失败!"); } } } //List<StockListModel> modelList = bllStockList.GetModelList(queryHouseName,queryRowth,queryColumnth,queryLayerth, queryProductStasus, queryWorkFlowStatus); //this.View.RefreshDGVData(modelList); List <View_QueryStockListModel> modelList = bllQueryStockList.GetModelList(queryHouseName, queryRowth, queryColumnth, queryLayerth, queryProductStasus, queryWorkFlowStatus , queryGsRunStatus, queryGsStoreStatus, queryGsTaskType, queryProductBatchNum); this.View.RefreshDGVData(modelList); } }
/// <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); } }
private void AutoCreateControlTask(ManageTaskModel manaTaskModel, long taskID, TaskTypeModel taskType) { ControlTaskModel controlTaskModel = new ControlTaskModel();//生成控制任务 controlTaskModel.ControlCode = manaTaskModel.TaskCode; controlTaskModel.TaskTypeName = taskType.TaskTypeName; controlTaskModel.StartArea = manaTaskModel.TaskStartArea; controlTaskModel.StartDevice = manaTaskModel.TaskStartPostion; controlTaskModel.TargetArea = manaTaskModel.TaskEndArea; controlTaskModel.TargetDevice = manaTaskModel.TaskEndPostion; controlTaskModel.TaskID = taskID; controlTaskModel.CreateMode = EnumCreateMode.手动生成.ToString(); controlTaskModel.TaskStatus = EnumTaskStatus.待执行.ToString(); controlTaskModel.TaskType = manaTaskModel.TaskType; controlTaskModel.TaskTypeCode = taskType.TaskTypeCode; controlTaskModel.CreateTime = DateTime.Now; bllControlTask.Add(controlTaskModel); }
private ManageTaskListModel AutoCreateManaTaskList(long manaTaskID, ManageTaskModel manaTaskModel, StockListModel stockListModel) { ManageTaskListModel manaTaskListModel = new ManageTaskListModel(); manaTaskListModel.ProductBatch = stockListModel.ProductBatchNum.ToString(); manaTaskListModel.ProductCode = stockListModel.ProductCode; manaTaskListModel.StockListID = stockListModel.StockListID; LoginPresenter loginPre = (LoginPresenter)this.View.GetPresenter(typeof(LoginPresenter)); if (loginPre != null) { manaTaskListModel.TaskCreatePerson = loginPre.View.UserName; } manaTaskListModel.StockListID = stockListModel.StockListID; manaTaskListModel.TaskCreateTime = DateTime.Now; manaTaskListModel.TaskEndPosition = manaTaskModel.TaskEndPostion; manaTaskListModel.TaskID = manaTaskID; manaTaskListModel.TaskStartPosition = manaTaskModel.TaskStartPostion; long manaTaskListID = bllTaskList.Add(manaTaskListModel); return(manaTaskListModel); }
private void OnSave() { if (this.eventSave != null) { SaveEventArgs dataArgs = new SaveEventArgs(); if (this.tscb_dataList.SelectedItem != null) { EnumDataList enumDataList = (EnumDataList)Enum.Parse(typeof(EnumDataList), this.tscb_dataList.SelectedItem.ToString()); dataArgs.EnumDataList = enumDataList; switch (enumDataList) { case EnumDataList.管理任务表: if (this.dgv_DataDetail.SelectedRows.Count > 0) { long listID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString()); ManageTaskModel manaTaskModel = new ManageTaskModel(); manaTaskModel.TaskID = listID; manaTaskModel.TaskCreateTime = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCreateTime"].Value.ToString()); manaTaskModel.TaskCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCode"].Value.ToString(); manaTaskModel.TaskID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString()); manaTaskModel.TaskCreatePerson = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCreatePerson"].Value.ToString(); manaTaskModel.TaskType = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskType"].Value.ToString(); manaTaskModel.TaskStartArea = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStartArea"].Value.ToString(); manaTaskModel.TaskStartPostion = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStartPostion"].Value.ToString(); manaTaskModel.TaskEndArea = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskEndArea"].Value.ToString(); manaTaskModel.TaskEndPostion = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskEndPostion"].Value.ToString(); manaTaskModel.TaskStatus = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStatus"].Value.ToString(); manaTaskModel.TaskTypeName = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeName"].Value.ToString(); dataArgs.EditModel = manaTaskModel; this.eventSave.Invoke(this, dataArgs); } break; case EnumDataList.控制接口表: if (this.dgv_DataDetail.SelectedRows.Count > 0) { long listID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlInterfaceID"].Value.ToString()); ControlInterfaceModel ctrlInterModel = new ControlInterfaceModel(); ctrlInterModel.ControlInterfaceID = listID; ctrlInterModel.CreateTime = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateTime"].Value.ToString()); ctrlInterModel.DeviceCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["DeviceCode"].Value.ToString(); ctrlInterModel.InterfaceParameter = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceParameter"].Value.ToString(); ctrlInterModel.InterfaceStatus = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceStatus"].Value.ToString(); ctrlInterModel.InterfaceType = this.dgv_DataDetail.Rows[editRowIndex].Cells["InterfaceType"].Value.ToString(); ctrlInterModel.TaskCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskCode"].Value.ToString(); dataArgs.EditModel = ctrlInterModel; this.eventSave.Invoke(this, dataArgs); } break; case EnumDataList.控制任务表: if (this.dgv_DataDetail.SelectedRows.Count > 0) { long listID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlTaskID"].Value.ToString()); ControlTaskModel controlTask = new ControlTaskModel(); controlTask.ControlTaskID = listID; controlTask.ControlCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["ControlCode"].Value.ToString(); controlTask.TaskTypeCode = int.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeCode"].Value.ToString()); controlTask.TaskID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString()); controlTask.CreateMode = this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateMode"].Value.ToString(); controlTask.TaskType = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskType"].Value.ToString(); controlTask.StartArea = this.dgv_DataDetail.Rows[editRowIndex].Cells["StartArea"].Value.ToString(); controlTask.StartDevice = this.dgv_DataDetail.Rows[editRowIndex].Cells["StartDevice"].Value.ToString(); controlTask.TargetArea = this.dgv_DataDetail.Rows[editRowIndex].Cells["TargetArea"].Value.ToString(); controlTask.TargetDevice = this.dgv_DataDetail.Rows[editRowIndex].Cells["TargetDevice"].Value.ToString(); controlTask.TaskID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskID"].Value.ToString()); controlTask.TaskStatus = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskStatus"].Value.ToString(); controlTask.TaskTypeName = this.dgv_DataDetail.Rows[editRowIndex].Cells["TaskTypeName"].Value.ToString(); controlTask.CreateTime = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["CreateTime"].Value.ToString()); dataArgs.EditModel = controlTask; this.eventSave.Invoke(this, dataArgs); } break; case EnumDataList.库存列表: if (this.dgv_DataDetail.SelectedRows.Count > 0) { long listID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["StockListID"].Value.ToString()); StockListModel stockListModel = new StockListModel(); stockListModel.StockListID = listID; stockListModel.GoodsSiteName = this.dgv_DataDetail.Rows[editRowIndex].Cells["GoodsSiteName"].Value.ToString(); stockListModel.InHouseTime = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["InHouseTime"].Value.ToString()); stockListModel.ManaTaskID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ManaTaskID"].Value.ToString()); stockListModel.ProductCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductCode"].Value.ToString(); stockListModel.ProductName = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductName"].Value.ToString(); stockListModel.ProductNum = int.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductNum"].Value.ToString()); stockListModel.ProductStatus = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductStatus"].Value.ToString(); stockListModel.StockID = long.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["StockID"].Value.ToString()); stockListModel.StoreHouseName = this.dgv_DataDetail.Rows[editRowIndex].Cells["StoreHouseName"].Value.ToString(); stockListModel.UpdateTime = DateTime.Parse(this.dgv_DataDetail.Rows[editRowIndex].Cells["UpdateTime"].Value.ToString()); stockListModel.ProductBatchNum = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductBatchNum"].Value.ToString(); stockListModel.ProductFrameCode = this.dgv_DataDetail.Rows[editRowIndex].Cells["ProductFrameCode"].Value.ToString(); dataArgs.EditModel = stockListModel; this.eventSave.Invoke(this, dataArgs); } break; default: break; } } } }
/// <summary> /// 手动取消任务 /// 删除控制任务、管理任务 /// 删除控制任务接口 /// 更新货位状态 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CancelTaskEventHandler(object sender, ControlTaskEventArgs e) { int taskStatus = this.View.AskMessBox("您确定要手动删除选中任务么?"); try { if (taskStatus == 0) { if (e.ControlTaskIDArr.Count() > 0)//只有任务没有完成的时候才可以取消 { for (int i = 0; i < e.ControlTaskIDArr.Count(); i++) { Hashtable deleteManaHs = null; Hashtable deleteControlInterHs = null; Hashtable deleteStockHs = null; Hashtable updateGsHs = null; ControlTaskModel controlTaskModel = bllControlTask.GetModel(e.ControlTaskIDArr[i]); if (controlTaskModel == null) { continue; } if (controlTaskModel.TaskStatus == EnumTaskStatus.执行中.ToString()) { this.View.ShowMessage("信息提示", "任务在执行中不允许删除!!"); continue; } if (controlTaskModel.TaskStatus == EnumTaskStatus.错误.ToString() || controlTaskModel.TaskStatus == EnumTaskStatus.超时.ToString()) { //要调用控制层的接口,处理控制层; MainPresenter.wcs.ClearTask(controlTaskModel); } ManageTaskModel manaTaskModel = bllManaTask.GetModel(controlTaskModel.TaskID); if (manaTaskModel == null) { continue; } StockListModel stockListModel = null; StockModel stockModel = null; GoodsSiteModel gsModel = null; if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯入库_A1 || controlTaskModel.TaskTypeCode == (int)EnumTaskName.分容入库_A1 || controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯入库_B1 || controlTaskModel.TaskTypeCode == (int)EnumTaskName.空料框入库) //任务完成后需要更新货位状态 { stockListModel = bllStockList.GetModelByManaTaskID(controlTaskModel.TaskID); stockModel = bllStock.GetModel(stockListModel.StockID); if (stockListModel != null && stockModel != null) { deleteStockHs = bllStock.GetDeleteModelHash(stockModel.StockID);//入库任务取消要删除库存 updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.待用.ToString() , EnumTaskCategory.出入库.ToString(), stockModel.GoodsSiteID); } } else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.分容出库_A1 || controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯出库_A1) //出库删除任务不删除库存 { gsModel = bllGoodsSite.GetGoodsSite(EnumStoreHouse.A1库房, controlTaskModel.StartDevice); stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID); if (stockModel != null) { updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务完成.ToString() , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID); } } else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.电芯出库_B1) { gsModel = bllGoodsSite.GetGoodsSite(EnumStoreHouse.B1库房, controlTaskModel.StartDevice); stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID); if (stockModel != null) { updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString(), EnumGSRunStatus.任务完成.ToString() , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID); } } else if (controlTaskModel.TaskTypeCode == (int)EnumTaskName.空料框出库) { gsModel = bllGoodsSite.GetGoodsSite(EnumStoreHouse.B1库房, controlTaskModel.StartDevice); stockModel = bllStock.GetModelByGsID(gsModel.GoodsSiteID); if (stockModel != null) { updateGsHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString(), EnumGSRunStatus.任务完成.ToString() , EnumTaskCategory.入库.ToString(), stockModel.GoodsSiteID); } } deleteManaHs = bllManaTask.GetDeleteModelHash(manaTaskModel.TaskID); deleteControlInterHs = bllControlInterface.GetDeleteHash(controlTaskModel.ControlCode); List <Hashtable> hashList = new List <Hashtable>(); hashList.Add(deleteManaHs); hashList.Add(deleteControlInterHs); hashList.Add(deleteStockHs); hashList.Add(updateGsHs); bool executeTran = ExecuteManyHashSqls(hashList); if (executeTran == true) { if (mainPres != null) { mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",ID:" + controlTaskModel.ControlTaskID + "任务开始位置:" + controlTaskModel.StartDevice + "任务结束位置:" + controlTaskModel.TargetDevice + ",“" + manaTaskModel.TaskTypeName + "”任务手动删除成功!"); } } else { if (mainPres != null) { mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",ID:" + controlTaskModel.ControlTaskID + "任务开始位置:" + controlTaskModel.StartDevice + "任务结束位置:" + controlTaskModel.TargetDevice + ",“" + manaTaskModel.TaskTypeName + "”任务手动删除失败!"); } } } } DataTable dtCtrlTaskList = bllControlTask.GetCtrlDatatable(this.currentEnumTaskName, this.currentEnumTaskStatus , this.currentHouseName, this.currentCreateMode, this.currentTaskType); this.View.ShowControlTaskData(dtCtrlTaskList); } } catch (Exception ex) { mainPres.View.AddLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.错误, ex.StackTrace); } }
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("信息提示", "没有货物出库!"); } } } } }
private void OutHouseEventHandler(object sender, StockEventArgs e) { int outHouse = this.View.AskMessBox("您确定要将选中库存手动出库么?"); if (outHouse == 0) { for (int i = 0; i < e.StockIDArr.Count(); i++) { //if (!(e.GsStoreStatusArr[i] == (EnumGSStoreStatus.有货 | EnumGSStoreStatus.空料框)&&e.GsRunStatusArr[i] == EnumGSRunStatus.任务完成 // &&e.GSTaskTypeArr[i] == EnumTaskCategory.入库)) //{ // if (this.mainPres != null) // { // this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!"); // continue; // } //} if (!((e.GsStoreStatusArr[i] == EnumGSStoreStatus.货 || e.GsStoreStatusArr[i] == EnumGSStoreStatus.空料框) && e.GsRunStatusArr[i] == EnumGSRunStatus.任务完成 && e.GSTaskTypeArr[i] == EnumTaskCategory.入库)) { if (this.mainPres != null) { this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "请选择货位任务类型为“入库”,并且货位存储类型为“有货”或“空料框”,并且货位任务状态为“任务完成”的货位出库!!"); return; } } Hashtable updateGsStatusHs = null; TaskTypeModel taskType = null; StockModel stockModel = bllStock.GetModel(e.StockIDArr[i]); if (stockModel == null) { continue; } StockListModel stockListModel = bllStockList.GetModelByStockID(e.StockIDArr[i]); if (stockListModel == null) { continue; } GoodsSiteModel goodsSiteModel = bllGoodsSite.GetModel(stockModel.GoodsSiteID); if (goodsSiteModel == null) { continue; } ManageTaskListModel existManaTaskList = bllTaskList.GetModelByStockListID(stockListModel.StockListID); if (existManaTaskList == null) { if (stockListModel.StoreHouseName == EnumStoreHouse.A1库房.ToString())//手动出库默认出库任务类型为一次检测出库 { if (e.ProductStatusArr[i] == EnumProductStatus.A1库老化3天) { taskType = bllTaskType.GetModel((int)EnumTaskName.分容出库_A1); } else if (e.ProductStatusArr[i] == EnumProductStatus.A1库静置10小时) { taskType = bllTaskType.GetModel((int)EnumTaskName.电芯出库_A1); } updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString() , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs } else if (stockListModel.StoreHouseName == EnumStoreHouse.B1库房.ToString()) { if (e.ProductStatusArr[i] == EnumProductStatus.空料框) { taskType = bllTaskType.GetModel((int)EnumTaskName.空料框出库); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.空料框.ToString() , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs } else { taskType = bllTaskType.GetModel((int)EnumTaskName.电芯出库_B1); updateGsStatusHs = bllGoodsSite.GetUpdateModelHs(EnumGSStoreStatus.货.ToString() , EnumGSRunStatus.任务锁定.ToString(), EnumTaskCategory.出库.ToString(), goodsSiteModel.GoodsSiteID); //获取更新货位状态Hs } } 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.mainPres != null) { string trayIDListStr = bllStockDetail.GetTrayIDStrList(stockListModel.StockListID); this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",货位:" + goodsSiteModel.GoodsSiteName + "生成“" + taskType.TaskTypeName + "”任务成功!" + "托盘号:" + trayIDListStr); } } else { if (this.mainPres != null) { this.mainPres.ShowLog(ECAMSModel.EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + "货位:" + goodsSiteModel.GoodsSiteName + "生成“" + taskType.TaskTypeName + "”任务失败!"); } } } } } }