using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using Mesnac.Codd.Session ;
using System.Data ;
using System.Data.SqlClient ;
namespace Mesnac.Compressor.Data
{
public class DbHandler
{
public DbHelper dbHelper ;
public string constr = System . Configuration . ConfigurationManager . AppSettings [ "SqlString" ] ;
public DbHandler ( )
{
initDB ( ) ;
}
public string GetABarCode ( string barcode )
{
string iflag = "" ;
try
{
StringBuilder sb = new StringBuilder ( ) ;
if ( barcode ! = "" )
{
sb . Append ( " SELECT TOP(1) SemiBarcode FROM T_RP_BarcodeRelationShip WHERE ProductBarcode='" ) . Append ( barcode ) . Append ( "' order by InsertTime desc" ) ;
}
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
//ICSharpCode.Core.LoggingService.InfoFormatted("查询上工位信息:{0},{1}: ", sb.ToString(), barcode);
db . dbHelper . CommandText = sb . ToString ( ) ;
var obj = db . dbHelper . ToScalar ( ) ;
if ( obj ! = null )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception ex )
{
return iflag ;
}
}
public void initDB ( )
{
DbSession dbsession = new DbSession ( SqlClientFactory . Instance , constr ) ;
dbHelper = new DbHelper ( dbsession ) ;
if ( dbHelper ! = null )
{
Console . WriteLine ( "数据库初始化成功" ) ;
}
}
#region 参考
public bool GetStationNGBySemiBarCode ( string SemiBarCode )
{
bool iflag = false ;
try
{
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return iflag ;
}
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
string sql = "Exec pro_AllProductionQualityInfo @BarCode" ;
db . dbHelper . AddParameter ( "@BarCode" , SemiBarCode ) ;
db . dbHelper . CommandText = sql ;
DataSet ds = ( DataSet ) db . dbHelper . ToDataSet ( ) ;
DataTable dt = ds . Tables [ 0 ] ;
if ( dt ! = null & & dt . Rows . Count > 0 )
{
for ( int i = 0 ; i < dt . Rows . Count ; i + + )
{
string s = dt . Rows [ i ] [ "State" ] . ToString ( ) ;
if ( dt . Rows [ i ] [ "State" ] . ToString ( ) = = "2" )
{
iflag = true ;
return iflag ;
}
else if ( dt . Rows [ i ] [ "State" ] . ToString ( ) = = null | | dt . Rows [ i ] [ "State" ] . ToString ( ) = = "" )
{
iflag = true ;
return iflag ;
}
}
}
return iflag ;
}
catch ( Exception ex )
{
return iflag ;
}
}
public DataTable GetStationList ( string station )
{
if ( dbHelper = = null )
{
return null ;
}
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT StationID,StationCode,StationName FROM dbo.T_BD_SubStation where StationID>27 and StationID in ('28','32','37','39','41','43','44','46' ) and StationID<=" ) . Append ( station ) . Append ( " ORDER BY StationID" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
Console . WriteLine ( sb . ToString ( ) ) ;
DataTable dt = dbHelper . ToDataTable ( ) ;
return dt ;
}
public string LastWorkProductionInfo ( string barcode , string TableName )
{
string iflag = "" ;
try
{
StringBuilder sb = new StringBuilder ( ) ;
DbHandler db = new DbHandler ( ) ;
if ( db . dbHelper = = null )
{
return iflag ;
}
sb . Append ( " SELECT TOP(1) State FROM " + TableName + " WHERE ScanBarcode='" ) . Append ( barcode ) . Append ( "' order by InsertTime desc " ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
return db . dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
return iflag ;
}
}
public DataTable GetReStartStationList ( )
{
if ( dbHelper = = null )
{
return null ;
}
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
//sb.Append("SELECT StationID,StationCode,StationName FROM dbo.T_BD_SubStation where StationID in ('3','14','18','27' ) ORDER BY StationID");
sb . Append ( "SELECT StationID,StationCode,StationName FROM dbo.T_BD_SubStation where LineID < 5 ORDER BY StationID" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
Console . WriteLine ( sb . ToString ( ) ) ;
DataTable dt = dbHelper . ToDataTable ( ) ;
return dt ;
}
public bool UpdateTraceReStartStation ( string ISDis , string RestartStation , string ProductBarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
sb . Append ( " UPDATE dbo.T_SY_TraceState SET ISDis='" ) . Append ( ISDis ) ;
sb . Append ( "' , RestartStation='" ) . Append ( RestartStation ) . Append ( "' WHERE ProductBarcode='" ) . Append ( ProductBarcode ) . Append ( "' " ) ;
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = sb . ToString ( ) ;
db . dbHelper . ExecuteNonQuery ( ) ;
return true ;
}
catch ( Exception ex )
{
return false ;
//ICSharpCode.Core.LoggingService.Error("Trace表NG工位更新错误:" + sb.ToString() + "/r/n" + e.ToString());
}
}
/// <summary>
///
/// </summary>
/// <param name="semiBarcode"></param>
/// <returns></returns>
public string GetMainBacodeBySemiBarcode ( string semiBarcode )
{
if ( dbHelper = = null )
{
return "" ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT SemiBarcode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='" ) ;
sb . Append ( semiBarcode ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
return dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
return "" ;
}
}
/// <summary>
///
/// </summary>
/// <param name="Rfid"></param>
/// <returns></returns>
public bool GetPreWorkInfo ( string Rfid , string stationid )
{
//根据当前工位获取前一工位数据
//然后获取前一工位信息
if ( dbHelper = = null )
{
return false ;
}
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT StationID FROM dbo.T_BD_SubStation a LEFT JOIN dbo.T_RP_WorkTrayRealTimeInfo b ON a.PreStationID=b.CurrentStation WHERE b.RFIDNum='" ) . Append ( Rfid ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
DataTable dt = dbHelper . ToDataTable ( ) ;
if ( dt . Rows . Count < 1 )
{
return false ;
}
string currentStation = dt . Rows [ 0 ] [ "StationID" ] . ToString ( ) ;
if ( stationid = = currentStation )
{
return true ;
}
else
{
return false ;
}
}
public void Insert ( string TableName , object [ ] objectArray )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "insert into " ) . Append ( TableName ) . Append ( " values(" ) ;
//sb.Append("'',").Append();
foreach ( object ob in objectArray )
{
sb . Append ( "'" ) . Append ( ob . ToString ( ) ) . Append ( "'" ) ;
}
sb . Append ( ")" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
}
}
public void ExecSql ( string sql )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . CommandText = sql ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception e )
{
// ICSharpCode.Core.LoggingService.Debug("Insert语句错误: " + e.ToString());
}
}
public string GetLastMainBarcode ( string code )
{
if ( dbHelper = = null )
{
return "NoConnect0001" ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "EXEC SP_Pro_GetNewMainBarcode '" ) ;
sb . Append ( code ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
return dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "Error0001" ;
}
}
public string GetLastSemiBarcode ( string code )
{
if ( dbHelper = = null )
{
return "NoConnect0001" ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "EXEC SP_Pro_GetNewSemiBarcode '" ) ;
sb . Append ( code ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
return dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "Error0001" ;
}
}
public bool CurrentStationHaveWork ( string stationID , string RFID )
{
if ( dbHelper = = null )
{
return false ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_CurruntState @RFID,@stationID" ;
dbHelper . AddParameter ( "@RFID" , RFID ) ;
dbHelper . AddParameter ( "@stationID" , stationID ) ;
dbHelper . CommandText = sql ;
var obj = dbHelper . ToScalar ( ) ;
int result = Convert . ToInt32 ( obj ) ;
if ( result < 1 )
{
return false ;
}
else
{
return true ;
}
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false ;
}
}
public bool Test ( string Barcode , int state1 , int state2 , int state3 , int state4 , string restartStation , string checker )
{
if ( dbHelper = = null )
{
return false ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_chaijian @Barcode,@state1,@state2,@state3,@state4,@restartStation,@checker" ;
dbHelper . AddParameter ( "@Barcode" , Barcode ) ;
dbHelper . AddParameter ( "@state1" , state1 ) ;
dbHelper . AddParameter ( "@state2" , state2 ) ;
dbHelper . AddParameter ( "@state3" , state3 ) ;
dbHelper . AddParameter ( "@state4" , state4 ) ;
dbHelper . AddParameter ( "@restartStation" , restartStation ) ;
dbHelper . AddParameter ( "@checker" , checker ) ;
dbHelper . CommandText = sql ;
Console . WriteLine ( sql ) ;
var obj = dbHelper . ToScalar ( ) ;
int result = Convert . ToInt32 ( obj ) ;
if ( result < 1 )
{
return false ;
}
else
{
return true ;
}
}
catch ( Exception ex )
{
Console . WriteLine ( "存储过程异常错误" ) ;
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false ;
}
}
public DataSet Select ( string Barcode )
{
if ( dbHelper = = null )
{
return null ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_SelectBarcode @Barcode" ;
dbHelper . AddParameter ( "@Barcode" , Barcode ) ;
dbHelper . CommandText = sql ;
//var obj = dbHelper.ToDataTable();
//return null;
DataSet dt = ( DataSet ) dbHelper . ToDataSet ( ) ;
return dt ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return null ;
}
}
/// <summary>
/// 重投次数超过三次返回false 不能重投
/// </summary>
/// <returns></returns>
public bool RestartCount ( string Barcode )
{
if ( dbHelper = = null )
{
return false ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_RestartCount @Barcode" ;
dbHelper . AddParameter ( "@Barcode" , Barcode ) ;
dbHelper . CommandText = sql ;
//var obj = dbHelper.ToDataTable();
//return null;
object count = dbHelper . ToScalar ( ) ;
return Convert . ToInt32 ( count ) > 0 ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false ;
}
}
/// <summary>
/// 获取当前工位质量
/// </summary>
/// <param name="MainBarcode"></param>
/// <param name="SemiBarcode"></param>
/// <param name="StationName"></param>
/// <returns></returns>
public bool GetCurrentStationState ( string MainBarcode , string SemiBarcode , string StationName , string tableName )
{
if ( dbHelper = = null )
{
return false ;
}
try
{
string TableName = tableName ;
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( " SELECT Barcode FROM " ) . Append ( TableName ) ;
sb . Append ( " WHERE Barcode='" ) . Append ( MainBarcode ) . Append ( "' AND SemiBarcode='" ) . Append ( SemiBarcode ) . Append ( "' AND State='1'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
DataTable dt = dbHelper . ToDataTable ( ) ;
return dt . Rows . Count > 0 ;
}
catch ( Exception ex )
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return false ;
}
}
/// <summary>
/// 创建新的系统条码
/// </summary>
/// <param name="MainBarcode"></param>
/// <param name="SemiBarcode"></param>
public void CreatNewProduct ( string MainBarcode , string SemiBarcode )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "INSERT INTO dbo.T_SY_TraceState(barcode,SemiBarcode_A1)VALUES('" ) ;
sb . Append ( MainBarcode ) . Append ( "','" ) . Append ( SemiBarcode ) . Append ( "')" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
dbHelper . ExecuteNonQuery ( ) ; //没有返回值
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
public void UpdateTray ( string EPC , int okng , string station , string semibarcode )
{
}
//互换托盘,不是换线。
public void ChangeTray ( string RFID , int state , string SemiType , string stationID , string Semibarcode )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_changeTray @RFID,@State,@stationID,@semibarcode,@semiType" ;
dbHelper . AddParameter ( "@RFID" , RFID ) ;
dbHelper . AddParameter ( "@State" , state ) ;
dbHelper . AddParameter ( "@semibarcode" , Semibarcode ) ;
dbHelper . AddParameter ( "@semiType" , SemiType ) ;
dbHelper . AddParameter ( "@stationID" , stationID ) ;
dbHelper . CommandText = sql ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
public string GetSemiBarcode ( string RFID )
{
if ( dbHelper = = null )
{
return "" ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT SemiBarcode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='" ) ;
sb . Append ( RFID ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
return dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "" ;
}
}
public string GetMainBarcode ( string RFID )
{
if ( dbHelper = = null )
{
return "" ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "SELECT barCode FROM dbo.T_RP_WorkTrayRealTimeInfo WHERE RFIDNum='" ) ;
sb . Append ( RFID ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
return dbHelper . ToScalar ( ) . ToString ( ) ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return "" ;
}
}
/// <summary>
/// 插入部件条码到部件表
/// </summary>
/// <param name="barcode"></param>
public void InsertSemiBarcode ( string barcode )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "INSERT INTO [dbo].[T_RP_SemiProInfo](SemiBarcode)VALUES('" ) ;
sb . Append ( barcode ) . Append ( "')" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return ;
}
}
public void InsertMainBacode ( string barcode , string SemiACode , string MachineID )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "INSERT INTO [dbo].[T_SY_TraceState](Barcode,SemiBarcode_A,ProductID)VALUES('" ) ;
sb . Append ( barcode ) . Append ( "','" ) . Append ( SemiACode ) . Append ( "','" ) . Append ( MachineID ) . Append ( "')" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
//ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return ;
}
}
public string getChongTouStateByBarCode ( string productbarcode )
{
StringBuilder sb = new StringBuilder ( ) ;
try
{
if ( productbarcode ! = "" )
{
sb . Append ( " SELECT TOP(1) ISDis FROM dbo.T_RP_BarcodeRelationShip WHERE ProductBarcode='" ) . Append ( productbarcode ) . Append ( "' order by InsertTime desc" ) ;
}
DbHandler db = new DbHandler ( ) ;
db . dbHelper . ClearParameter ( ) ;
db . dbHelper . CommandType = CommandType . Text ;
db . dbHelper . CommandText = "" ;
db . dbHelper . CommandText = sb . ToString ( ) ;
var obj = db . dbHelper . ToScalar ( ) ;
if ( obj ! = null )
{
return obj . ToString ( ) ;
}
else
{
return "" ;
}
}
catch ( Exception e )
{
return "" ;
}
}
/// <summary>
/// 更新主表,追踪
/// </summary>
public void UpdateTrace ( string Column , string MainCode , string SemiCode )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
StringBuilder sb = new StringBuilder ( ) ;
sb . Append ( "UPDATE [dbo].[T_SY_TraceState] SET " ) ;
sb . Append ( Column ) . Append ( "='" ) . Append ( SemiCode ) . Append ( "' where Barcode='" ) . Append ( MainCode ) . Append ( "'" ) ;
dbHelper . CommandText = sb . ToString ( ) ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
return ;
}
}
public void ChangeLine ( string RFID , string Semibarcode , string stationid )
{
if ( dbHelper = = null )
{
return ;
}
try
{
dbHelper . ClearParameter ( ) ;
dbHelper . CommandType = CommandType . Text ;
dbHelper . CommandText = "" ;
string sql = "Exec SP_Pro_ChangeLine @RFID,@Semibarcode,@stationid" ;
dbHelper . AddParameter ( "@RFID" , RFID ) ;
dbHelper . AddParameter ( "@Semibarcode" , Semibarcode ) ;
dbHelper . AddParameter ( "@stationid" , stationid ) ;
dbHelper . CommandText = sql ;
dbHelper . ExecuteNonQuery ( ) ;
}
catch ( Exception ex )
{
// ICSharpCode.Core.LoggingService.Info(string.Format(ex.ToString()));
}
}
# endregion
}
}