File was renamed from CCSTrace/CCS/Object/Addr_Contrast.cs |
| | |
| | | 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 AddrContrast
|
| | | {
|
| | | private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
| | |
|
| | | public const string DefaultDept = "市區巡修課";
|
| | |
|
| | | public static AddrContrast Instance { get; } = new AddrContrast();
|
| | |
|
| | | private Dictionary<string, List<ADDRCONTRAST>> totalAddrData = null;
|
| | |
|
| | | private AddrContrast()
|
| | | {
|
| | | }
|
| | |
|
| | | public void initialize(OracleConnection conn)
|
| | | {
|
| | |
|
| | | if (totalAddrData != null)
|
| | | return;
|
| | |
|
| | | totalAddrData = new Dictionary<string, List<ADDRCONTRAST>>();
|
| | |
|
| | | 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, conn);
|
| | | reader = command.ExecuteReader();
|
| | |
|
| | | List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>();
|
| | | string tmp = "";
|
| | |
|
| | | while (reader.Read())
|
| | | {
|
| | | ArrayList mRecord = new ArrayList();
|
| | | ADDRCONTRAST item = new ADDRCONTRAST
|
| | | {
|
| | | CITY = reader["CITY"].ToString(),
|
| | | TOWN = reader["TOWN"].ToString(),
|
| | | ROAD = reader["ROAD"].ToString(),
|
| | | DEPTID = Convert.ToInt32(reader["DEPTID"].ToString())
|
| | | };
|
| | |
|
| | |
|
| | | if (tmp.Equals(item.CITY))
|
| | | {
|
| | | addrcontrasts.Add(item);
|
| | | }
|
| | | else
|
| | | {
|
| | | totalAddrData.Add(tmp, addrcontrasts);
|
| | | tmp = item.CITY;
|
| | | addrcontrasts = new List<ADDRCONTRAST> { item };
|
| | | }
|
| | | }
|
| | | totalAddrData.Add(tmp, addrcontrasts);
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | Logger.Warn(e, e.Message);
|
| | | totalAddrData = null;
|
| | | }
|
| | | finally
|
| | | {
|
| | | reader?.Close();
|
| | | command?.Dispose();
|
| | | }
|
| | | }
|
| | |
|
| | | public int FindDeptId(string city, string region, string road)
|
| | | {
|
| | | var addrcontrasts = totalAddrData[city];
|
| | |
|
| | | try
|
| | | {
|
| | | foreach (ADDRCONTRAST tmp in addrcontrasts)
|
| | | {
|
| | | if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD))
|
| | | {
|
| | | return tmp.DEPTID;
|
| | | }
|
| | | }
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | Logger.Warn(e , e.Message);
|
| | | Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!");
|
| | | }
|
| | | // 當找不到部門別時,Default 設定為市巡
|
| | | var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
| | | return dept;
|
| | | }
|
| | | }
|
| | | 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 AddrContrast |
| | | { |
| | | private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); |
| | | |
| | | public const string DefaultDept = "市區巡修課"; |
| | | |
| | | public static AddrContrast Instance { get; } = new AddrContrast(); |
| | | |
| | | private Dictionary<string, List<ADDRCONTRAST>> _totalAddrData = null; |
| | | |
| | | private AddrContrast() |
| | | { |
| | | } |
| | | |
| | | public void Initialize(OracleConnection conn) |
| | | { |
| | | |
| | | if (_totalAddrData != null) |
| | | return; |
| | | |
| | | _totalAddrData = new Dictionary<string, List<ADDRCONTRAST>>(); |
| | | |
| | | 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, conn); |
| | | reader = command.ExecuteReader(); |
| | | |
| | | List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>(); |
| | | string tmp = ""; |
| | | |
| | | while (reader.Read()) |
| | | { |
| | | ArrayList mRecord = new ArrayList(); |
| | | ADDRCONTRAST item = new ADDRCONTRAST |
| | | { |
| | | CITY = reader["CITY"].ToString(), |
| | | TOWN = reader["TOWN"].ToString(), |
| | | ROAD = reader["ROAD"].ToString(), |
| | | DEPTID = Convert.ToInt32(reader["DEPTID"].ToString()) |
| | | }; |
| | | |
| | | |
| | | if (tmp.Equals(item.CITY)) |
| | | { |
| | | addrcontrasts.Add(item); |
| | | } |
| | | else |
| | | { |
| | | _totalAddrData.Add(tmp, addrcontrasts); |
| | | tmp = item.CITY; |
| | | addrcontrasts = new List<ADDRCONTRAST> { item }; |
| | | } |
| | | } |
| | | _totalAddrData.Add(tmp, addrcontrasts); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Logger.Warn(e, e.Message); |
| | | _totalAddrData = null; |
| | | } |
| | | finally |
| | | { |
| | | reader?.Close(); |
| | | command?.Dispose(); |
| | | } |
| | | } |
| | | |
| | | public int FindDeptId(string city, string region, string road) |
| | | { |
| | | var addrcontrasts = _totalAddrData[city]; |
| | | |
| | | try |
| | | { |
| | | foreach (ADDRCONTRAST tmp in addrcontrasts) |
| | | { |
| | | if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD)) |
| | | { |
| | | return tmp.DEPTID; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Logger.Warn(e , e.Message); |
| | | Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!"); |
| | | } |
| | | // 當找不到部門別時,Default 設定為市巡 |
| | | var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept); |
| | | return dept; |
| | | } |
| | | } |
| | | } |