| | |
| | | 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
|
| | |
| | | {
|
| | | private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
| | |
|
| | | public static Hashtable MTotalData = null;
|
| | | public static string DefaultDept = "市區巡修課";
|
| | | private OracleConnection _connectionTpc;
|
| | | public const string DefaultDept = "市區巡修課";
|
| | |
|
| | | public AddrContrast(OracleConnection conn, OracleTransaction trx)
|
| | | public static AddrContrast Instance { get; } = new AddrContrast();
|
| | |
|
| | | private Dictionary<string, List<ADDRCONTRAST>> totalAddrData = null;
|
| | |
|
| | | private AddrContrast()
|
| | | {
|
| | | _connectionTpc = conn;
|
| | | }
|
| | |
|
| | | ArrayList mData = new ArrayList();
|
| | | string tmp = "";
|
| | | public void initialize(OracleConnection conn)
|
| | | {
|
| | |
|
| | | if (MTotalData != null)
|
| | | if (totalAddrData != null)
|
| | | return;
|
| | |
|
| | | MTotalData = new Hashtable();
|
| | | 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, _connectionTpc, trx);
|
| | | command = new OracleCommand(sqlStmt, conn);
|
| | | reader = command.ExecuteReader();
|
| | |
|
| | | List<ADDRCONTRAST> addrcontrasts = new List<ADDRCONTRAST>();
|
| | | string tmp = "";
|
| | |
|
| | | 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()));
|
| | | 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(city))
|
| | | mData.Add(mRecord);
|
| | |
|
| | | if (tmp.Equals(item.CITY))
|
| | | {
|
| | | addrcontrasts.Add(item);
|
| | | }
|
| | | else
|
| | | {
|
| | | MTotalData.Add(tmp, mData);
|
| | | tmp = city;
|
| | | mData = new ArrayList();
|
| | | mData.Add(mRecord);
|
| | | totalAddrData.Add(tmp, addrcontrasts);
|
| | | tmp = item.CITY;
|
| | | addrcontrasts = new List<ADDRCONTRAST> { item };
|
| | | }
|
| | | }
|
| | | MTotalData.Add(tmp, mData);
|
| | | totalAddrData.Add(tmp, addrcontrasts);
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | Console.WriteLine(e.StackTrace);
|
| | | MTotalData = null;
|
| | | Logger.Warn(e, e.Message);
|
| | | totalAddrData = null;
|
| | | }
|
| | | finally
|
| | | {
|
| | | reader.Close();
|
| | | command.Dispose();
|
| | | reader?.Close();
|
| | | command?.Dispose();
|
| | | }
|
| | | }
|
| | |
|
| | | public int FindDeptId(string city, string region, string road)
|
| | | {
|
| | | int dept = 0;
|
| | | ArrayList mData = (ArrayList)MTotalData[city];
|
| | | var addrcontrasts = totalAddrData[city];
|
| | |
|
| | | try
|
| | | {
|
| | | for (int i = 0; i < mData.Count; i++)
|
| | | foreach (ADDRCONTRAST tmp in addrcontrasts)
|
| | | {
|
| | | 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;
|
| | | if (region.Trim().Equals(tmp.TOWN) && road.Trim().Equals(tmp.ROAD))
|
| | | {
|
| | | return tmp.DEPTID;
|
| | | }
|
| | | }
|
| | | }
|
| | | catch (Exception e)
|
| | |
| | | Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!");
|
| | | }
|
| | | // 當找不到部門別時,Default 設定為市巡
|
| | | dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
| | | var dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept);
|
| | | return dept;
|
| | | }
|
| | | }
|