using System;
|
|
using System.Collections;
|
using System.Data.OracleClient;
|
using NLog;
|
|
namespace CCSTrace.CCS.Object
|
{
|
public class AddrContrast
|
{
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
|
public static Hashtable MTotalData = null;
|
public static string DefaultDept = "市區巡修課";
|
private OracleConnection _connectionTpc;
|
|
public AddrContrast(OracleConnection conn, OracleTransaction trx)
|
{
|
_connectionTpc = conn;
|
|
ArrayList mData = new ArrayList();
|
string tmp = "";
|
|
if (MTotalData != null)
|
return;
|
|
MTotalData = new Hashtable();
|
var sqlStmt = "SELECT DEPTID,CITY,TOWN,ROAD FROM CCS.ADDR_CONTRAST ORDER BY CITY,TOWN,ROAD";
|
|
OracleCommand command = null;
|
OracleDataReader reader = null;
|
try
|
{
|
command = new OracleCommand(sqlStmt, _connectionTpc, trx);
|
reader = command.ExecuteReader();
|
|
while (reader.Read())
|
{
|
ArrayList mRecord = new ArrayList();
|
var city = reader["CITY"].ToString();
|
mRecord.Add(city);
|
mRecord.Add(reader["TOWN"].ToString());
|
mRecord.Add(reader["ROAD"].ToString());
|
mRecord.Add(Convert.ToInt32(reader["DEPTID"].ToString()));
|
|
if (tmp.Equals(city))
|
mData.Add(mRecord);
|
else
|
{
|
MTotalData.Add(tmp, mData);
|
tmp = city;
|
mData = new ArrayList();
|
mData.Add(mRecord);
|
}
|
}
|
MTotalData.Add(tmp, mData);
|
}
|
catch (Exception e)
|
{
|
Console.WriteLine(e.StackTrace);
|
MTotalData = null;
|
}
|
finally
|
{
|
reader.Close();
|
command.Dispose();
|
}
|
}
|
|
public int FindDeptId(string city, string region, string road)
|
{
|
int dept = 0;
|
ArrayList mData = (ArrayList)MTotalData[city];
|
|
try
|
{
|
for (int i = 0; i < mData.Count; i++)
|
{
|
ArrayList tmp = (ArrayList)mData[i];
|
string mRegion = tmp[1].ToString().Trim();
|
string mRoad = tmp[2].ToString().Trim();
|
int deptId = Convert.ToInt32(tmp[3].ToString());
|
|
if ((region.Trim().Equals(mRegion)) && (road.Trim().Equals(mRoad)))
|
return deptId;
|
}
|
}
|
catch (Exception e)
|
{
|
Logger.Warn(e , e.Message);
|
Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!");
|
}
|
// 當找不到部門別時,Default 設定為市巡
|
dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
return dept;
|
}
|
}
|
}
|