///// <summary> ///// 充放电任务完成后的逻辑处理 ///// </summary> ///// <param name="houseName"></param> ///// <param name="goodsSiteName"></param> ///// <returns></returns> //public bool PowerTestCptLogic(string houseName, string goodsSiteName) //{ // if (xweGsBll.UpdateGs(houseName, goodsSiteName,EnumOperateStatus.空闲.ToString() // ,EnumTestStatus.待测试.ToString(),EnumTestType.无.ToString()) == false)//空货位的时候测试类型为无 // { // this.AsrsModel.LogRecorder.AddDebugLog("新威尔流程监控", "充放电完成完成后初始化货位信息失败!"); // return false; // } // return true; //} /// <summary> /// DCR出库完成逻辑,即到达DCR测试工位 /// </summary> /// <param name="houseName"></param> /// <param name="dcrGsm"></param> /// <returns></returns> public bool DCROutHouseCpt(string houseName, string powerGsm, string dcrGsm, string rfid) { if (xweGsBll.UpdateGs(houseName, powerGsm, EnumOperateStatus.空闲.ToString() , EnumTestStatus.待测试.ToString(), EnumTestType.无.ToString()) == false)//空货位的时候测试类型为无 { this.AsrsModel.LogRecorder.AddDebugLog("新威尔流程监控", "到达DRC测试工位更新数据失败!"); return(false); } if (xweGsBll.InitGS(houseName, dcrGsm, EnumTestType.DCR测试.ToString()) == false)//空货位的时候测试类型为无 { this.AsrsModel.LogRecorder.AddDebugLog("新威尔流程监控", "到达DRC测试工位创建DCR测试工位数据失败!"); return(false); } XWEDBAccess.Model.GoodsSiteModel gsm = xweGsBll.GetModel(houseName, powerGsm); List <XWEDBAccess.Model.BatteryCodeModel> batteryList = xweBatteryCodeBll.GetModelList("GoodsSiteID = " + gsm.GoodsSiteID + " order by Channel asc"); string[] batteryCodes = new string[batteryList.Count]; for (int i = 0; i < batteryList.Count; i++) { batteryCodes[i] = batteryList[i].Code; } XWEDBAccess.Model.GoodsSiteModel dcrGsmModel = xweGsBll.GetModel(houseName, dcrGsm); dcrGsmModel.Tag1 = rfid; xweGsBll.Update(dcrGsmModel); //向中间库中插入托盘条码及电芯条码, if (xweBatteryCodeBll.AddBattery((int)dcrGsmModel.GoodsSiteID, batteryCodes) == false) { this.AsrsModel.LogRecorder.AddDebugLog("威尔流程监控", "向电池条码表中添加数据失败!"); return(false); } return(true); }
void AddXWEHistroy(XWEDBAccess.Model.GoodsSiteModel xweModel) { List <XWEDBAccess.Model.BatteryCodeModel> batteryList = xweBatteryCodeBll.GetBatteryListData(xweModel.GoodsSiteID); if (batteryList != null) { foreach (XWEDBAccess.Model.BatteryCodeModel singleBattery in batteryList) { XWEHistroyModel addModel = new XWEHistroyModel(); addModel.Code = singleBattery.Code; addModel.Channel = singleBattery.Channel; addModel.Pressure = singleBattery.Pressure; addModel.InnerRC = singleBattery.InnerRC; addModel.Power = singleBattery.Power; addModel.Capcity = singleBattery.Capcity; addModel.TestResult = singleBattery.TestResult; addModel.TestTime = singleBattery.TestTime; addModel.Tag1 = singleBattery.Tag1; addModel.Tag2 = singleBattery.Tag2; addModel.Tag3 = singleBattery.Tag3; addModel.Tag4 = singleBattery.Tag4; addModel.Tag5 = singleBattery.Tag5; addModel.HouseName = xweModel.HouseName; addModel.GoodsSiteName = xweModel.GoodsSiteName; addModel.TestStatus = xweModel.TestStatus; addModel.TestType = xweModel.TestType; addModel.PalletID = xweModel.Tag1; xweHistroyBLL.Add(addModel); } } }
public bool InitGS2(string houseName, string gsName, string testType, string rfid) { XWEDBAccess.Model.GoodsSiteModel gsModel = GetModel(houseName, gsName); XWEDBAccess.Model.GoodsSiteModel newModel = new Model.GoodsSiteModel(); newModel.HouseName = houseName; newModel.GoodsSiteName = gsName; newModel.OperateStatus = SysCfg.EnumOperateStatus.空闲.ToString(); newModel.TestStatus = EnumTestStatus.待测试.ToString(); newModel.TestType = EnumTestType.无.ToString(); newModel.UpdateTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss")); newModel.Tag1 = rfid; if (gsModel == null)//插入 { if (Add(newModel) <= 0) { return(false); } } else//更新 { newModel.GoodsSiteID = gsModel.GoodsSiteID; if (Update(newModel) == false) { return(false); } } return(true); }
/// <summary> /// 紧急任务出库 /// </summary> /// <param name="xweModel"></param> /// <returns></returns> private bool AutoEmerOutHouseTask(XWEDBAccess.Model.GoodsSiteModel xweModel) { string[] rcl = xweModel.GoodsSiteName.Split('-'); CellCoordModel cell = new CellCoordModel(int.Parse(rcl[0]), int.Parse(rcl[1]), int.Parse(rcl[2])); if (this.AsrsModel.GenerateOutputTask(cell, null, SysCfg.EnumAsrsTaskType.紧急出库, true) == false) { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "生成紧急出库任务失败!"); return(false); } // 上传MES Start Report2Mes(xweModel); // 上传MES END if (xweGsBll.UpdateGs(this.AsrsModel.HouseName, xweModel.GoodsSiteName, EnumOperateStatus.锁定.ToString()) == false)//将出库的货位锁定,根据锁定状态循环生成任务 { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "更新新威尔中间库的锁定状态失败!"); return(false); } // 将测试结果保存到数据库中 START AddXWEHistroy(xweModel); // 将测试结果保存到数据库中 END return(true); }
/// <summary> /// 监控暂存区、测试区的电池状态生成,移库、出库、紧急出库任务 /// </summary> private void AsrsBatteryStatusMonitor() { try { List <XWEDBAccess.Model.GoodsSiteModel> xweGsList = xweGsBll.GetModelList("HouseName = '" + this.AsrsModel.HouseName + "' and OperateStatus != '锁定' and (TestStatus = '报警' or TestStatus='成功')"); //List<XWEDBAccess.Model.GoodsSiteModel> xweGsList = xweGsBll.GetModelList("HouseName = '" + this.AsrsModel.HouseName + "' and (TestStatus = '报警' or TestStatus='成功')"); if (xweGsList == null || xweGsList.Count == 0) { return; } for (int i = 0; i < xweGsList.Count; i++) { XWEDBAccess.Model.GoodsSiteModel xmeGs = xweGsList[i]; if (xmeGs.TestStatus.Trim() == SysCfg.EnumTestStatus.成功.ToString()) { AutoOutHouseGsTask(xmeGs, (SysCfg.EnumTestType)Enum.Parse(typeof(SysCfg.EnumTestType), xmeGs.TestType)); } else if (xmeGs.TestStatus.Trim() == SysCfg.EnumTestStatus.报警.ToString())//报警处理,生成紧急出库任务 { AutoEmerOutHouseTask(xmeGs); } } CreateMoveHouseTask(); } catch (Exception ex) { Console.WriteLine("电池状态监控错误:" + ex.StackTrace); } }
/// <summary> ///DCR出库和产品出库 /// </summary> /// <param name="xweModel"></param> /// <param name="testType"></param> /// <returns></returns> private bool AutoOutHouseGsTask(XWEDBAccess.Model.GoodsSiteModel xweModel, SysCfg.EnumTestType testType) { string[] rcl = xweModel.GoodsSiteName.Split('-'); CellCoordModel cell = new CellCoordModel(int.Parse(rcl[0]), int.Parse(rcl[1]), int.Parse(rcl[2])); CellCoordModel cell2 = null; // 上传MES Start Report2Mes(xweModel); // 上传MES END if (testType == SysCfg.EnumTestType.充放电测试) { if (this.AsrsModel.HouseName == EnumStoreHouse.A1库房.ToString()) { cell2 = AHouseDCRStation;//特殊固定的位置 } else//b1库房 { cell2 = BHouseDCRStation; //特殊固定的位置 } if (this.AsrsModel.GenerateOutputTask(cell, cell2, SysCfg.EnumAsrsTaskType.DCR测试, true) == false) { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "生成DCR测试任务失败!"); return(false); } if (xweGsBll.UpdateGs(this.AsrsModel.HouseName, xweModel.GoodsSiteName, EnumOperateStatus.锁定.ToString()) == false)//将出库的货位锁定,根据锁定状态循环生成任务 { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "更新新威尔中间库的锁定状态失败!"); return(false); } // 将测试结果保存到数据库中 START AddXWEHistroy(xweModel); // 将测试结果保存到数据库中 END return(true); } else if (testType == SysCfg.EnumTestType.DCR测试)//正常出库 { if (this.AsrsModel.GenerateOutputTask(cell, null, SysCfg.EnumAsrsTaskType.DCR出库, true) == false) { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "生成DCR测试任务失败!"); return(false); } if (xweGsBll.UpdateGs(this.AsrsModel.HouseName, xweModel.GoodsSiteName, EnumOperateStatus.锁定.ToString()) == false)//将出库的货位锁定,根据锁定状态循环生成任务 { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "更新新威尔中间库的锁定状态失败!"); return(false); } return(true); } else { return(false); } }
public string GetPlletID(string houseName, string goodsSiteName) { XWEDBAccess.Model.GoodsSiteModel gsm = xweGsBll.GetModel(houseName, goodsSiteName); if (gsm == null) { return(string.Empty); } return(gsm.Tag1); }
/// <summary> /// 得到一个对象实体 /// </summary> public XWEDBAccess.Model.GoodsSiteModel DataRowToModel(DataRow row) { XWEDBAccess.Model.GoodsSiteModel model = new XWEDBAccess.Model.GoodsSiteModel(); if (row != null) { if (row["GoodsSiteID"] != null && row["GoodsSiteID"].ToString() != "") { model.GoodsSiteID = long.Parse(row["GoodsSiteID"].ToString()); } if (row["HouseName"] != null) { model.HouseName = row["HouseName"].ToString(); } if (row["GoodsSiteName"] != null) { model.GoodsSiteName = row["GoodsSiteName"].ToString(); } if (row["OperateStatus"] != null) { model.OperateStatus = row["OperateStatus"].ToString(); } if (row["TestStatus"] != null) { model.TestStatus = row["TestStatus"].ToString(); } if (row["TestType"] != null) { model.TestType = row["TestType"].ToString(); } if (row["UpdateTime"] != null && row["UpdateTime"].ToString() != "") { model.UpdateTime = DateTime.Parse(row["UpdateTime"].ToString()); } if (row["Tag1"] != null) { model.Tag1 = row["Tag1"].ToString(); } if (row["Tag2"] != null) { model.Tag2 = row["Tag2"].ToString(); } if (row["Tag3"] != null) { model.Tag3 = row["Tag3"].ToString(); } if (row["Tag4"] != null) { model.Tag4 = row["Tag4"].ToString(); } if (row["Tag5"] != null) { model.Tag5 = row["Tag5"].ToString(); } } return(model); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(XWEDBAccess.Model.GoodsSiteModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update GoodsSite set "); strSql.Append("HouseName=@HouseName,"); strSql.Append("GoodsSiteName=@GoodsSiteName,"); strSql.Append("OperateStatus=@OperateStatus,"); strSql.Append("TestStatus=@TestStatus,"); strSql.Append("TestType=@TestType,"); strSql.Append("UpdateTime=@UpdateTime,"); strSql.Append("Tag1=@Tag1,"); strSql.Append("Tag2=@Tag2,"); strSql.Append("Tag3=@Tag3,"); strSql.Append("Tag4=@Tag4,"); strSql.Append("Tag5=@Tag5"); strSql.Append(" where GoodsSiteID=@GoodsSiteID"); SqlParameter[] parameters = { new SqlParameter("@HouseName", SqlDbType.NVarChar, 50), new SqlParameter("@GoodsSiteName", SqlDbType.NVarChar, 50), new SqlParameter("@OperateStatus", SqlDbType.NVarChar, 50), new SqlParameter("@TestStatus", SqlDbType.NVarChar, 50), new SqlParameter("@TestType", SqlDbType.NVarChar, 50), new SqlParameter("@UpdateTime", SqlDbType.DateTime), new SqlParameter("@Tag1", SqlDbType.NVarChar, 500), new SqlParameter("@Tag2", SqlDbType.NVarChar, 500), new SqlParameter("@Tag3", SqlDbType.NVarChar, 500), new SqlParameter("@Tag4", SqlDbType.NVarChar, 500), new SqlParameter("@Tag5", SqlDbType.NVarChar, 500), new SqlParameter("@GoodsSiteID", SqlDbType.BigInt, 8) }; parameters[0].Value = model.HouseName; parameters[1].Value = model.GoodsSiteName; parameters[2].Value = model.OperateStatus; parameters[3].Value = model.TestStatus; parameters[4].Value = model.TestType; parameters[5].Value = model.UpdateTime; parameters[6].Value = model.Tag1; parameters[7].Value = model.Tag2; parameters[8].Value = model.Tag3; parameters[9].Value = model.Tag4; parameters[10].Value = model.Tag5; parameters[11].Value = model.GoodsSiteID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
public bool UpdateGs(string houseName, string gsName, string operateStatus) { XWEDBAccess.Model.GoodsSiteModel gsModel = GetModel(houseName, gsName); if (gsModel == null) { return(false); } gsModel.OperateStatus = operateStatus; if (this.Update(gsModel) == false) { return(false); } return(true); }
public bool UpdateGs(string houseName, string gsName, string testStaus, string testType) { XWEDBAccess.Model.GoodsSiteModel gsModel = GetModel(houseName, gsName); if (gsModel == null) { return(false); } gsModel.TestStatus = testStaus; gsModel.TestType = testType; if (this.Update(gsModel) == false) { return(false); } return(true); }
/// <summary> /// 增加一条数据 /// </summary> public long Add(XWEDBAccess.Model.GoodsSiteModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into GoodsSite("); strSql.Append("HouseName,GoodsSiteName,OperateStatus,TestStatus,TestType,UpdateTime,Tag1,Tag2,Tag3,Tag4,Tag5)"); strSql.Append(" values ("); strSql.Append("@HouseName,@GoodsSiteName,@OperateStatus,@TestStatus,@TestType,@UpdateTime,@Tag1,@Tag2,@Tag3,@Tag4,@Tag5)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@HouseName", SqlDbType.NVarChar, 50), new SqlParameter("@GoodsSiteName", SqlDbType.NVarChar, 50), new SqlParameter("@OperateStatus", SqlDbType.NVarChar, 50), new SqlParameter("@TestStatus", SqlDbType.NVarChar, 50), new SqlParameter("@TestType", SqlDbType.NVarChar, 50), new SqlParameter("@UpdateTime", SqlDbType.DateTime), new SqlParameter("@Tag1", SqlDbType.NVarChar, 500), new SqlParameter("@Tag2", SqlDbType.NVarChar, 500), new SqlParameter("@Tag3", SqlDbType.NVarChar, 500), new SqlParameter("@Tag4", SqlDbType.NVarChar, 500), new SqlParameter("@Tag5", SqlDbType.NVarChar, 500) }; parameters[0].Value = model.HouseName; parameters[1].Value = model.GoodsSiteName; parameters[2].Value = model.OperateStatus; parameters[3].Value = model.TestStatus; parameters[4].Value = model.TestType; parameters[5].Value = model.UpdateTime; parameters[6].Value = model.Tag1; parameters[7].Value = model.Tag2; parameters[8].Value = model.Tag3; parameters[9].Value = model.Tag4; parameters[10].Value = model.Tag5; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt64(obj)); } }
void Report2Mes(XWEDBAccess.Model.GoodsSiteModel xweModel) { string[] rcl = xweModel.GoodsSiteName.Split('-'); if (mesenable != 0) { List <XWEDBAccess.Model.BatteryCodeModel> batteryList = xweBatteryCodeBll.GetBatteryListData(xweModel.GoodsSiteID); if (batteryList != null) { foreach (XWEDBAccess.Model.BatteryCodeModel singleBattery in batteryList) { string reports = string.Empty; reports += singleBattery.Code.ToString() + ","; reports += rcl[0] + "-" + rcl[1] + "-" + rcl[2] + ","; reports += singleBattery.Channel + ","; reports += singleBattery.Pressure + ","; reports += singleBattery.InnerRC + ","; reports += singleBattery.Power + ","; reports += singleBattery.Capcity + ","; if (singleBattery.TestResult.ToUpper() == "TRUE" || singleBattery.TestResult.ToUpper() == "OK") { reports += "OK"; } else { reports += "NG"; } reports += singleBattery.Electricity + ","; reports += singleBattery.Temperature; if (this.AsrsModel.HouseName == EnumStoreHouse.A1库房.ToString()) { WCFClient.MESWCFManage.Inst().UpLoadTestDataA(reports); } else { WCFClient.MESWCFManage.Inst().UpLoadTestDataB(reports); } } } } }
/// <summary> /// 入库A1、B1完成或者在移库完成的时候新威尔的交互流程,这里只处理进入测试区的货位,在暂存区的无需此流程 /// 入B1库的时候传输工装号及串好串的两个条码,其他流程和A1一样 /// </summary> /// <param name="houseName">库房名称</param> /// <param name="goodsSiteName">货位名称</param> /// <param name="plletID">托盘号</param> /// <param name="batteryIDs">电池数组</param> /// <returns>执行状态</returns> public bool InHouseTestAreaLogic(string houseName, string goodsSiteName, string plletID, string[] batteryIDs, ref string restr) { //首先要在goodssite表中插入或更新数据,此处需要判断是那个区,暂存区就不是充放电测试 if (xweGsBll.InitGS2(houseName, goodsSiteName, EnumTestType.充放电测试.ToString(), plletID) == false) { this.AsrsModel.LogRecorder.AddDebugLog("威尔流程监控", "新威尔流程入库或者移库流程初始化货位信息失败!"); return(false); } XWEDBAccess.Model.GoodsSiteModel gsm = xweGsBll.GetModel(houseName, goodsSiteName); if (gsm == null) { this.AsrsModel.LogRecorder.AddDebugLog("威尔流程监控", "货位为空!"); return(false); } //向中间库中插入托盘条码及电芯条码,同时将有货位的电芯条码清空 if (xweBatteryCodeBll.AddBattery((int)gsm.GoodsSiteID, batteryIDs) == false) { this.AsrsModel.LogRecorder.AddDebugLog("威尔流程监控", "向电池条码表中添加数据失败!"); return(false); } return(true); }
/// <summary> /// DCR工位是否可用 /// </summary> /// <returns></returns> private bool IsDCRStationValid(string houseName) { string goodsSiteName = ""; if (houseName == EnumStoreHouse.A1库房.ToString()) { goodsSiteName = AHouseDCRStation.Row.ToString() + "-" + AHouseDCRStation.Col.ToString() + "-" + AHouseDCRStation.Layer.ToString(); } else { goodsSiteName = BHouseDCRStation.Row.ToString() + "-" + BHouseDCRStation.Col.ToString() + "-" + BHouseDCRStation.Layer.ToString(); } XWEDBAccess.Model.GoodsSiteModel gsModel = xweGsBll.GetModel(houseName, goodsSiteName); if (gsModel == null) { return(true); } if (gsModel.TestType == EnumTestType.无.ToString()) { return(true); } return(false); }
/// <summary> /// 得到一个对象实体 /// </summary> public XWEDBAccess.Model.GoodsSiteModel GetModel(long GoodsSiteID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 GoodsSiteID,HouseName,GoodsSiteName,OperateStatus,TestStatus,TestType,UpdateTime,Tag1,Tag2,Tag3,Tag4,Tag5 from GoodsSite "); strSql.Append(" where GoodsSiteID=@GoodsSiteID"); SqlParameter[] parameters = { new SqlParameter("@GoodsSiteID", SqlDbType.BigInt) }; parameters[0].Value = GoodsSiteID; XWEDBAccess.Model.GoodsSiteModel model = new XWEDBAccess.Model.GoodsSiteModel(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(XWEDBAccess.Model.GoodsSiteModel model) { return(dal.Update(model)); }
/// <summary> /// 增加一条数据 /// </summary> public long Add(XWEDBAccess.Model.GoodsSiteModel model) { return(dal.Add(model)); }
/// <summary> ///DCR出库和产品出库 /// </summary> /// <param name="xweModel"></param> /// <param name="testType"></param> /// <returns></returns> private bool AutoOutHouseGsTask(XWEDBAccess.Model.GoodsSiteModel xweModel, SysCfg.EnumTestType testType) { string[] rcl = xweModel.GoodsSiteName.Split('-'); CellCoordModel cell = new CellCoordModel(int.Parse(rcl[0]), int.Parse(rcl[1]), int.Parse(rcl[2])); CellCoordModel cell2 = null; // 上传MES Start Report2Mes(xweModel); // 上传MES END if (testType == SysCfg.EnumTestType.充放电测试) { ControlTaskModel dcrWaitOrRunningTask = null; if (this.AsrsModel.HouseName == EnumStoreHouse.A1库房.ToString()) { dcrWaitOrRunningTask = bllControlTask.GetProcessWaitOrRunningTask(EnumStoreHouse.A1库房.ToString(), 4, "1001"); cell2 = AHouseDCRStation;//特殊固定的位置 } else//b1库房 { dcrWaitOrRunningTask = bllControlTask.GetProcessWaitOrRunningTask(EnumStoreHouse.B1库房.ToString(), 4, "1002"); cell2 = BHouseDCRStation; //特殊固定的位置 } if (dcrWaitOrRunningTask != null) //如果已经有dcr执行中或者待执行的任务就不在生成了,同一个工位的锁定 { return(false); } //在生成dcr测试的时候要判断下DCR测试工位是否有料,在新威尔交互的数据表中记录dcr工位的测试类型为无的时候证明已经测试完并出库完成 if (IsDCRStationValid(this.AsrsModel.HouseName) == false) { return(false); } if (this.AsrsModel.GenerateOutputTask(cell, cell2, SysCfg.EnumAsrsTaskType.DCR测试, true) == false) { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "生成DCR测试任务失败!"); return(false); } if (xweGsBll.UpdateGs(this.AsrsModel.HouseName, xweModel.GoodsSiteName, EnumOperateStatus.锁定.ToString()) == false)//将出库的货位锁定,根据锁定状态循环生成任务 { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "更新新威尔中间库的锁定状态失败!"); return(false); } // 将测试结果保存到数据库中 START AddXWEHistroy(xweModel); // 将测试结果保存到数据库中 END return(true); } else if (testType == SysCfg.EnumTestType.DCR测试)//正常出库 { ControlTaskModel dcrOutWaitOrRunningTask = null; if (this.AsrsModel.HouseName == EnumStoreHouse.A1库房.ToString()) { dcrOutWaitOrRunningTask = bllControlTask.GetProcessWaitOrRunningTask(EnumStoreHouse.A1库房.ToString(), 3, "1001"); } else//b1库房 { dcrOutWaitOrRunningTask = bllControlTask.GetProcessWaitOrRunningTask(EnumStoreHouse.B1库房.ToString(), 3, "1002"); } if (dcrOutWaitOrRunningTask != null)//如果已经有dcr执行中或者待执行的任务就不在生成了,同一个工位的锁定 { return(false); } if (this.AsrsModel.GenerateOutputTask(cell, null, SysCfg.EnumAsrsTaskType.DCR出库, true) == false) { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "生成DCR测试任务失败!"); return(false); } if (xweGsBll.UpdateGs(this.AsrsModel.HouseName, xweModel.GoodsSiteName, EnumOperateStatus.锁定.ToString()) == false)//将出库的货位锁定,根据锁定状态循环生成任务 { this.AsrsModel.LogRecorder.AddDebugLog("库存控制模块", "更新新威尔中间库的锁定状态失败!"); return(false); } return(true); } else { return(false); } }