New file |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | } |
| | | } |