using System;
|
using System.Data;
|
using System.Configuration;
|
using System.Web;
|
using System.Web.Security;
|
using System.Web.UI;
|
using System.Web.UI.HtmlControls;
|
using System.Web.UI.WebControls;
|
using System.Web.UI.WebControls.WebParts;
|
|
using System.Collections;
|
using System.Data.OracleClient;
|
|
namespace CCSTrace.CCS.Object
|
{
|
public class Dept_Contrast
|
{
|
private ArrayList m_TotalData = null;
|
public static String DefaultDept = "市區巡修課";
|
|
public Dept_Contrast(OracleConnection _ConnectionTPC,OracleTransaction _Trx)
|
{
|
if (m_TotalData == null)
|
this.Initial(_ConnectionTPC,_Trx);
|
}
|
|
public int getDept_Code(String m_Meter)
|
{
|
//int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept);
|
int Result = -1;
|
|
try
|
{
|
for (int i = 0; i < m_TotalData.Count; i++)
|
{
|
ArrayList TmpData = (ArrayList)m_TotalData[i];
|
|
if (TmpData[2] == null)
|
{
|
Result = Convert.ToInt32(TmpData[1].ToString());
|
break;
|
}
|
else
|
{// 一對多(需作比對)
|
long MinMeter = Convert.ToInt64(TmpData[3].ToString());
|
long MaxMeter = Convert.ToInt64(TmpData[2].ToString());
|
long CustMeter = Convert.ToInt64(m_Meter);
|
|
if ((CustMeter > MinMeter) && (CustMeter < MaxMeter))
|
{
|
Result = Convert.ToInt32(TmpData[1].ToString());
|
break;
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
}
|
return Result;
|
}
|
|
public int getDept_Code(int SC_Code, String Meter)
|
{
|
int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept);
|
try
|
{
|
for (int i = 0; i < m_TotalData.Count; i++)
|
{
|
ArrayList TmpData = (ArrayList)m_TotalData[i];
|
int Tmp_Dept = Convert.ToInt32(TmpData[0].ToString());
|
|
if (Tmp_Dept == SC_Code)
|
{
|
// 一對一(無最大最小電號限制)
|
if (TmpData[2] == null)
|
{
|
Result = Convert.ToInt32(TmpData[1].ToString());
|
break;
|
}
|
else
|
{// 一對多(需作比對)
|
long MinMeter = Convert.ToInt64(TmpData[3].ToString());
|
long MaxMeter = Convert.ToInt64(TmpData[2].ToString());
|
long CustMeter = Convert.ToInt64(Meter);
|
|
if ((CustMeter > MinMeter) && (CustMeter < MaxMeter))
|
{
|
Result = Convert.ToInt32(TmpData[1].ToString());
|
break;
|
}
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
}
|
|
return Result;
|
}
|
|
private void Initial(OracleConnection _ConnectionTPC,OracleTransaction _Trx)
|
{
|
String SqlStmt;
|
m_TotalData = new ArrayList();
|
|
SqlStmt = "SELECT SC_CODE,DEPT_CODE,MAX_METER,MIN_METER FROM CCS.DEPT_CONTRAST";
|
OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC,_Trx);
|
OracleDataReader reader = Command.ExecuteReader();
|
|
try
|
{
|
|
while (reader.Read())
|
{
|
ArrayList Record = new ArrayList();
|
int SC_Code = Convert.ToInt32(reader["SC_CODE"].ToString());
|
Record.Add(SC_Code);
|
Record.Add(Convert.ToInt32(reader["Dept_Code"].ToString()));
|
Record.Add(reader["Max_Meter"].ToString());
|
Record.Add(reader["Min_Meter"].ToString());
|
|
m_TotalData.Add(Record);
|
}
|
}
|
catch (Exception e)
|
{
|
Console.WriteLine(e.StackTrace);
|
}
|
finally
|
{
|
reader.Close();
|
Command.Dispose();
|
}
|
}
|
|
}
|
}
|