using System;
|
|
using System.Collections;
|
using System.Data.OracleClient;
|
using NLog;
|
|
namespace CCSTrace.CCS.Object
|
{
|
public class DeptContrast
|
{
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
|
private ArrayList _mTotalData = null;
|
public static string DefaultDept = "市區巡修課";
|
|
public DeptContrast(OracleConnection connectionTpc, OracleTransaction trx)
|
{
|
if (_mTotalData == null)
|
Initial(connectionTpc, trx);
|
}
|
|
public int getDept_Code(string mMeter)
|
{
|
//int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.GlobalVariable.Dept, DefaultDept);
|
int result = -1;
|
|
try
|
{
|
for (int i = 0; i < _mTotalData.Count; i++)
|
{
|
ArrayList tmpData = (ArrayList)_mTotalData[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(mMeter);
|
|
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 scCode, string meter)
|
{
|
int result = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
try
|
{
|
for (int i = 0; i < _mTotalData.Count; i++)
|
{
|
ArrayList tmpData = (ArrayList)_mTotalData[i];
|
int tmpDept = Convert.ToInt32(tmpData[0].ToString());
|
|
if (tmpDept == scCode)
|
{
|
// 一對一(無最大最小電號限制)
|
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;
|
_mTotalData = 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 scCode = Convert.ToInt32(reader["SC_CODE"].ToString());
|
record.Add(scCode);
|
record.Add(Convert.ToInt32(reader["Dept_Code"].ToString()));
|
record.Add(reader["Max_Meter"].ToString());
|
record.Add(reader["Min_Meter"].ToString());
|
|
_mTotalData.Add(record);
|
}
|
}
|
catch (Exception e)
|
{
|
Console.WriteLine(e.StackTrace);
|
}
|
finally
|
{
|
reader.Close();
|
command.Dispose();
|
}
|
}
|
}
|
}
|