private void SearchTrayEventHandler(object sender, SearchTrayEventArgs e) { StockDetailModel stockDetailModel = bllStockDetail.GetModelByTrayID(e.TrayCode); if (stockDetailModel == null) { this.View.ShowMessage("信息提示", "此条码在库存中不存在,请核对条码是否正确!"); return; } StockListModel stockListModel = bllStockList.GetModel(stockDetailModel.StockListID); if (stockListModel == null) { this.View.ShowMessage("信息提示", "此条码在库存中不存在,请核对条码是否正确!"); return; } else { string[] splitArr = new string[3] { "排", "列", "层" }; string[] rclArr = stockListModel.GoodsSiteName.Split(splitArr, StringSplitOptions.RemoveEmptyEntries); this.View.SearchTray(stockListModel.StoreHouseName, rclArr[0], rclArr[1], rclArr[2]); this.View.ShowMessage("信息提示", "托盘位置:" + stockListModel.StoreHouseName + "," + stockListModel.GoodsSiteName + "!"); } }
public void ModifyStockList(string stockID, string oldCode, string newCode) { char[] splitArr = { ',', ',' }; string[] stockListStr = newCode.Split(splitArr); StockModel sm = bllStock.GetModel(long.Parse(stockID)); if (sm == null)//没有库存信息 { return; } List <StockListModel> stockList = bllStockList.GetListByStockID(long.Parse(stockID)); if (stockList.Count != stockListStr.Length) { this.view.AddLog("库存管理", "料框条码个数错误!", LogInterface.EnumLoglevel.提示); return; } for (int i = 0; i < stockList.Count; i++) { StockListModel slm = stockList[i]; if (stockListStr.Length > i) { slm.MeterialboxCode = stockListStr[i]; bllStockList.Update(slm); } } this.view.AddLog("库存管理", "库存料框条码由:" + oldCode + "手动修改为:" + newCode, LogInterface.EnumLoglevel.提示); //RefreshStockList(long.Parse(stockID)); QueryStock(this.currHouseName, this.currHouseArea, this.currRowth, this.currColth, this.currLayerth, this.gsStatus, this.gsTaskSta, this.currProBatch, this.isChecked, this.materialBoxCode); }
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); }
/// <summary> /// 查询入库时间 /// </summary> /// <param name="houseName">库房名称</param> /// <param name="cellCoord">库存位置</param> /// <param name="inputDT">入库时间</param> /// <returns>若货位空,返回false</returns> public bool GetCellInputTime(string houseName, CellCoordModel cellCoord, ref System.DateTime inputDT) { if (cellCoord == null) { return(false); } StoreHouseModel houseModel = bllStoreHouse.GetModelByName(houseName); if (houseModel == null) { return(false); } GoodsSiteModel gsm = bllGoodsSite.GetModelByRCL(houseModel.StoreHouseID, cellCoord.Row, cellCoord.Col, cellCoord.Layer); if (gsm == null) { return(false); } StockModel sm = bllStock.GetModelByGSID(gsm.GoodsSiteID); if (sm == null) { return(false); } StockListModel slm = bllStockList.GetModelByStockID(sm.StockID); if (slm == null) { return(false); } inputDT = slm.InHouseTime; return(true); }
public void OnCellExpandPro(string productCode, string stockListID) { StockListModel slm = bllStockList.GetModel(long.Parse(stockListID)); if (slm == null) { return; } StockModel sm = bllStock.GetModel(slm.StockID); if (sm == null) { return; } View_GoodsSiteModel viewGSM = bllViewGS.GetModelByGSID(sm.GoodsSiteID); if (viewGSM == null) { return; } StockListProEventArgs slpea = new StockListProEventArgs(); slpea.HouseName = viewGSM.StoreHouseName; slpea.CellCoord = new CellCoordModel(viewGSM.GoodsSiteRow, viewGSM.GoodsSiteColumn, viewGSM.GoodsSiteLayer); slpea.ProductCode = productCode; StorageMainView.storageMana.OnEventStorDetail(slpea); this.view.ShowExtForm(ExtendFormCate.外部);//直接打开页面 }
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); } }
private void DeleteTrayEventHandler(object sender, TrayEventArgs e) { if (e.GsRunStatus != EnumGSRunStatus.任务完成.ToString()) { this.View.ShowMessage("信息提示", "货位正在运行不允许删除料框信息!"); return; } int ask = this.View.AskMessBox("您确定要删除条码为:" + e.TrayID + "的料框信息么?"); //this.mainPre.ShowLog(EnumLogCategory if (ask == 0) { StockDetailModel deleteStockDetailModel = bllStockDetail.GetModelByTrayID(e.TrayID); bool status = bllStockDetail.DeteleModelByTrayID(e.TrayID); if (status) { this.View.ShowMessage("信息提示", "删除料框信息成功!"); } this.mainPre.View.AddLog(EnumLogCategory.管理层日志, EnumLogType.提示, "用户:" + this.userNameStr + ",删除条码+" + e.TrayID + ",货位号:" + e.GoodsSiteName); //库存删掉后要清空库存和货位状态,只有任务完成的时候才可以删除此时只需更新库存状态和货位状态 if (deleteStockDetailModel == null) { this.View.ShowMessage("信息提示", "料框详细为空!!"); return; } StockListModel deleteStockListModel = bllStockList.GetModel(deleteStockDetailModel.StockListID); if (deleteStockListModel == null) { this.View.ShowMessage("信息提示", "库存列表信息为空!!"); return; } StockModel deleteStockModel = bllStock.GetModel(deleteStockListModel.StockID); if (deleteStockModel == null) { return; } List <StockDetailModel> stockDetailList = bllStockDetail.GetDetailModelList(deleteStockListModel.StockListID);//查询当前库存料框所有 if (stockDetailList == null || stockDetailList.Count == 0) { bllStock.Delete(deleteStockListModel.StockID); bllGoodsSite.UpdateGoodsSiteStatus(EnumGSStoreStatus.空货位.ToString(), EnumGSRunStatus.待用.ToString(), EnumTaskCategory.出入库.ToString(), deleteStockModel.GoodsSiteID); this.View.RefreshGoodsSite(); } RefreshStockDetail(currentSelectGSID); //this.View.RefreshStorage(); } }
private void QueryGsByRclEventHandler(object sender, QueryGsByRCLEventArgs e) { string[] valueArr = new string[9]; GoodsSiteModel goodsSiteModel = bllGoodsSite.GetGoodsSite(e.storeHouse, e.Rowth, e.Columnth, e.Layerth); if (goodsSiteModel != null) { StockModel stockModel = bllStock.GetModelByGsID(goodsSiteModel.GoodsSiteID); if (stockModel != null) { StockListModel stockListModel = bllStockList.GetModelByStockID(stockModel.StockID); if (stockListModel != null) { valueArr[0] = goodsSiteModel.GoodsSiteID.ToString(); valueArr[1] = goodsSiteModel.GoodsSiteStoreStatus; valueArr[2] = goodsSiteModel.GoodsSiteRunStatus; valueArr[3] = stockListModel.ProductName; valueArr[4] = stockListModel.ProductStatus; valueArr[5] = stockListModel.InHouseTime.ToString(); valueArr[6] = stockModel.StockID.ToString(); valueArr[7] = goodsSiteModel.GoodsSiteName; valueArr[8] = goodsSiteModel.GoodsSiteInOutType; this.View.RefreshGSDetail(valueArr); } else { valueArr[0] = goodsSiteModel.GoodsSiteID.ToString(); valueArr[1] = goodsSiteModel.GoodsSiteStoreStatus; valueArr[2] = goodsSiteModel.GoodsSiteRunStatus; valueArr[3] = "无"; valueArr[4] = "无"; valueArr[5] = "无"; valueArr[6] = "无"; valueArr[7] = goodsSiteModel.GoodsSiteName; valueArr[8] = goodsSiteModel.GoodsSiteInOutType; this.View.RefreshGSDetail(valueArr); } } else { valueArr[0] = goodsSiteModel.GoodsSiteID.ToString(); valueArr[1] = goodsSiteModel.GoodsSiteStoreStatus; valueArr[2] = goodsSiteModel.GoodsSiteRunStatus; valueArr[3] = "无"; valueArr[4] = "无"; valueArr[5] = "无"; valueArr[6] = "无"; valueArr[7] = goodsSiteModel.GoodsSiteName; valueArr[8] = goodsSiteModel.GoodsSiteInOutType; this.View.RefreshGSDetail(valueArr); } } }
public void ModifyStockCode(long stockListID, long gsID, string boxCode) { StockListModel slm = bllStockList.GetModel(stockListID); if (slm == null) { return; } slm.MeterialboxCode = boxCode; bllStockList.Update(slm); GetGSDetail(gsID); }
/// <summary> /// 添加空料筐库存 /// </summary> /// <param name="houseName">库房名称</param> /// <param name="cellCoord">货位位置</param> /// <param name="reStr">执行状态描述</param> /// <returns>执行状态结果</returns> public bool AddEmptyMeterialBox(string houseName, CellCoordModel cellCoord, ref string reStr) { StoreHouseModel houseModel = bllStoreHouse.GetModelByName(houseName); if (houseModel == null) { reStr = "不存在此库房!"; return(false); } GoodsSiteModel gsm = bllGoodsSite.GetModelByRCL(houseModel.StoreHouseID, cellCoord.Row, cellCoord.Col, cellCoord.Layer); if (gsm == null) { reStr = "不存在此库存!"; return(false); } gsm.Reserve = cellCoord.ExtProp1;//保存货位扩展属性,目前为空托盘型号 bllGoodsSite.Update(gsm); StockModel sm = new StockModel(); sm.GoodsSiteID = gsm.GoodsSiteID; sm.IsFull = true; sm.TrayID = "12345678";//测试 long stockID = bllStock.Add(sm); StockListModel slm = new StockListModel(); slm.InHouseTime = DateTime.Now; slm.StockID = stockID; slm.MeterialBatch = ""; //暂时没有 slm.MeterialboxCode = ""; slm.MeterialStatus = ""; //暂时没有赋值,若有库存详细应在此增加 long stockListID = bllStockList.Add(slm); StockDetailModel sdm = new StockDetailModel(); sdm.StockListID = stockListID; sdm.MeterialName = "空料筐"; bllStockDetail.Add(sdm); // string operateStr = "库房:" + houseName + ",货位:" + cellCoord.Row + "排" + cellCoord.Col + "列" //+ cellCoord.Layer + "层," + "添加空料框"; // AddGSOperRecord(houseName, cellCoord, EnumGSOperateType.系统添加空料框, operateStr, ref reStr); return(true); }
public void AddStockList(long gsID, string boxCodeList) { GoodsSiteModel gsm = bllGs.GetModel(gsID); if (gsm == null) { return; } if (gsm.GoodsSiteStatus == EnumCellStatus.空料框.ToString()) { this.view.ShowMessage("空料框状态不允许修改库存信息,若需求更改库存请更改货位状态为非空料框状态!"); return; } List <View_StockModel> stockView = bllViewStock.GetModelListByGSID(gsID); char[] splitArr = { ',', ',' }; string[] stockListStr = boxCodeList.Split(splitArr); long stockID = 0; if (stockView == null || stockView.Count == 0)//没有增加stock { StockModel stock = new StockModel(); stock.GoodsSiteID = gsID; stock.IsFull = true; stockID = bllStock.Add(stock); } else//更新原有stock { stockID = stockView[0].StockID; } for (int i = 0; i < stockListStr.Length; i++) { StockListModel slm = new StockListModel(); slm.StockID = stockID; slm.MeterialboxCode = stockListStr[i]; slm.InHouseTime = DateTime.Now; bllStockList.Add(slm); } string reStr = ""; this.iStorageManage.AddGSOperRecord(this.currHouseName, new CellCoordModel(gsm.GoodsSiteRow, gsm.GoodsSiteColumn, gsm.GoodsSiteLayer), EnumGSOperateType.手动增加库存, "手动增加或者修改库存信息!", ref reStr); GetGSDetail(gsID); }
public void AddStockList(string stockID, string boxCodeList) { char[] splitArr = { ',', ',' }; string[] stockList = boxCodeList.Split(splitArr); StockModel sm = bllStock.GetModel(long.Parse(stockID)); if (sm == null)//没有库存信息 { return; } for (int i = 0; i < stockList.Length; i++) { StockListModel slm = new StockListModel(); slm.StockID = long.Parse(stockID); slm.MeterialboxCode = stockList[i]; slm.InHouseTime = DateTime.Now; bllStockList.Add(slm); } RefreshStockList(long.Parse(stockID)); }
public void AddStockList(long gsID, string boxCodeList) { List <View_StockModel> stockView = bllViewStock.GetModelListByGSID(gsID); if (stockView == null || stockView.Count == 0) { return; } char[] splitArr = { ',', ',' }; string[] stockListStr = boxCodeList.Split(splitArr); for (int i = 0; i < stockListStr.Length; i++) { StockListModel slm = new StockListModel(); slm.StockID = stockView[0].StockID; slm.MeterialboxCode = stockListStr[i]; slm.InHouseTime = DateTime.Now; bllStockList.Add(slm); } GetGSDetail(gsID); }
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); }
/// <summary> /// 添加库存 /// </summary> /// <param name="houseName">库房名称</param> /// <param name="cellCoord">货位位置</param> /// <param name="goodsInfo">库存信息</param> /// <param name="reStr">执行状态描述</param> /// <returns>执行状态结果</returns> public bool AddStack(string houseName, CellCoordModel cellCoord, string proBatch, string[] goodsInfo, ref string reStr) { StoreHouseModel houseModel = bllStoreHouse.GetModelByName(houseName); if (houseModel == null) { reStr = "不存在此库房!"; return(false); } GoodsSiteModel gsm = bllGoodsSite.GetModelByRCL(houseModel.StoreHouseID, cellCoord.Row, cellCoord.Col, cellCoord.Layer); if (gsm == null) { reStr = "不存在此库存!"; return(false); } if (goodsInfo == null) { reStr = "传入空货位信息!"; return(false); } StockModel sm = new StockModel(); sm.GoodsSiteID = gsm.GoodsSiteID; sm.IsFull = true; sm.TrayID = "12345678";//测试 long stockID = bllStock.Add(sm); for (int i = 0; i < goodsInfo.Length; i++) { StockListModel slm = new StockListModel(); slm.StockID = stockID; slm.InHouseTime = DateTime.Now; slm.MeterialBatch = proBatch; //暂时没有 slm.MeterialboxCode = goodsInfo[i]; slm.MeterialStatus = ""; //暂时没有赋值,若有库存详细应在此增加 long stockListID = bllStockList.Add(slm); StockDetailModel sdm = new StockDetailModel(); sdm.StockListID = stockListID; sdm.MeterialName = "电芯"; bllStockDetail.Add(sdm); } string goodsInforStr = ""; for (int i = 0; i < goodsInfo.Length; i++) { if (i == 0) { goodsInforStr += goodsInfo[i]; } else { goodsInforStr += "," + goodsInfo[i]; } } //string operateStr = "库房:" + houseName + ",货位:" + cellCoord.Row + "排" + cellCoord.Col + "列" // + cellCoord.Layer + "层," + "添加库存:" + goodsInforStr; //AddGSOperRecord(houseName, cellCoord, EnumGSOperateType.系统添加库存, operateStr, ref reStr); return(true); }
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 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 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 + "”任务失败!"); } } } } } }
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); }