using System;
|
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Data.OracleClient;
|
using CCSTrace.TPower.DMMS.Model.CCS;
|
using NLog;
|
|
namespace CCSTrace.CCS.Object
|
{
|
public class DeptContrast
|
{
|
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
|
public const string DefaultDept = "市區巡修課";
|
public static DeptContrast Instance { get; } = new DeptContrast();
|
|
private List<DEPTCONTRAST> _mTotalData;
|
|
private DeptContrast()
|
{
|
}
|
|
public int getDept_Code(string mMeter)
|
{
|
//int Result = CCS.CCSMain.EOSCodelist.getKeyID(CCS.GlobalVariable.Dept, DefaultDept);
|
var result = -1;
|
|
try
|
{
|
for (var i = 0; i < _mTotalData.Count; i++)
|
{
|
var tmpData = _mTotalData[i];
|
|
if (tmpData.MAXMETER == null)
|
{
|
result = Convert.ToInt32(tmpData.DEPTCODE);
|
break;
|
}
|
else
|
{// 一對多(需作比對)
|
var minMeter = Convert.ToInt64(tmpData.MINMETER);
|
var maxMeter = Convert.ToInt64(tmpData.MAXMETER);
|
var custMeter = Convert.ToInt64(mMeter);
|
|
if ((custMeter > minMeter) && (custMeter < maxMeter))
|
{
|
result = Convert.ToInt32(tmpData.DEPTCODE);
|
break;
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
Logger.Warn(ex, ex.Message);
|
}
|
return result;
|
}
|
|
public int getDept_Code(int scCode, string meter)
|
{
|
var result = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
try
|
{
|
for (var i = 0; i < _mTotalData.Count; i++)
|
{
|
var tmpData = _mTotalData[i];
|
var tmpDept = Convert.ToInt32(tmpData.SCCODE);
|
|
if (tmpDept == scCode)
|
{
|
// 一對一(無最大最小電號限制)
|
if (tmpData.MAXMETER == null)
|
{
|
result = Convert.ToInt32(tmpData.DEPTCODE);
|
break;
|
}
|
else
|
{// 一對多(需作比對)
|
var minMeter = Convert.ToInt64(tmpData.MINMETER);
|
var maxMeter = Convert.ToInt64(tmpData.MAXMETER);
|
var custMeter = Convert.ToInt64(meter);
|
|
if ((custMeter > minMeter) && (custMeter < maxMeter))
|
{
|
result = Convert.ToInt32(tmpData.DEPTCODE);
|
break;
|
}
|
}
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
Logger.Warn(ex, ex.Message);
|
}
|
|
return result;
|
}
|
|
public void Initialize(OracleConnection conn)
|
{
|
_mTotalData = new List<DEPTCONTRAST>();
|
|
var sqlStmt = "SELECT SC_CODE,DEPT_CODE,MAX_METER,MIN_METER FROM CCS.DEPT_CONTRAST";
|
var command = new OracleCommand(sqlStmt, conn);
|
var reader = command.ExecuteReader();
|
|
try
|
{
|
while (reader.Read())
|
{
|
var deptcontrast = new DEPTCONTRAST
|
{
|
SCCODE = reader["SC_CODE"].ToString(),
|
DEPTCODE = reader["Dept_Code"].ToString(),
|
MAXMETER = reader["Max_Meter"].ToString(),
|
MINMETER = reader["Min_Meter"].ToString()
|
};
|
|
|
_mTotalData.Add(deptcontrast);
|
}
|
}
|
catch (Exception e)
|
{
|
Logger.Warn(e, e.Message);
|
}
|
finally
|
{
|
reader?.Close();
|
command?.Dispose();
|
}
|
}
|
}
|
}
|