/// <summary> /// 检测是否存在指定的部门名称 /// </summary> /// <param name="tran">当前事务</param> /// <param name="procName">部门名称</param> /// <param name="lotId">当前待报数的批量卡序号</param> /// <returns></returns> internal static bool IsMinLotId(SqlTransaction tran, string procName, string lotId) { //部门名称转大写 procName = procName.ToUpper(); //检测批量卡号 if (lotId.Length < 6) { throw new Exception("提供的批量卡号不正确!"); } //实例化数据适配器并获取数据 using (var da = new t_proc_lot_card_balanceTableAdapter()) { //当前数据库连接 da.Connection = tran.Connection; //设置事务 da.Transaction = tran; //检测当前批量卡是否已经做过文字部门 var i = da.GetIsCompleteWenZi(procName, lotId); bool isCompleteWenZi = false; if (i.HasValue && i.Value > 0) { isCompleteWenZi = true; } //获取 string minLotId; //检测是否样板 bool isSample = lotId.ToUpper().Contains("S"); //非样板使用生产订单和批量卡中的数据 if (!isSample) { minLotId = da.GetMinLotIdByProcName(procName, isCompleteWenZi, lotId).ToString(); } else { minLotId = da.GetMinSampleLotIdByProcName(procName, isCompleteWenZi, lotId).ToString(); } //检测是否获取到数据 if (minLotId != null && minLotId.ToString() == lotId) { //提供的是本部门结存中的最小批量卡号 return true; } else { //提供的不是本部门结存中的最小批量卡号 throw new Exception( string.Format( "当前批量卡 {0} 不是最小的批量卡号 {1}", lotId, minLotId ) ); } } }