hank
2015-08-18 2d4b747b3ac277babbd8eddfd88f378953f497bd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
 
using System.Collections;
using System.Data.OracleClient;
 
namespace CCSTrace.CCS.Object
{
    public class Addr_Contrast
    {
        public static Hashtable m_TotalData = null;
        public static String DefaultDept = "市區巡修課";
        private OracleConnection _ConnectionTPC;
        private RecordLog _PLog;
 
        public Addr_Contrast(OracleConnection _Conn, OracleTransaction _Trx, RecordLog _Log)
        {
            _ConnectionTPC = _Conn;
            _PLog = _Log;
 
            String SqlStmt;
            String City;
            ArrayList m_Data = new ArrayList();
            String Tmp = "";
 
            if (m_TotalData != null)
                return;
 
            m_TotalData = new Hashtable();
            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 m_Record = new ArrayList();
                    City = reader["CITY"].ToString();
                    m_Record.Add(City);
                    m_Record.Add(reader["TOWN"].ToString());
                    m_Record.Add(reader["ROAD"].ToString());
                    m_Record.Add(Convert.ToInt32(reader["DEPTID"].ToString()));
 
                    if (Tmp.Equals(City))
                        m_Data.Add(m_Record);
                    else
                    {
                        m_TotalData.Add(Tmp, m_Data);
                        Tmp = City;
                        m_Data = new ArrayList();
                        m_Data.Add(m_Record);
                    }
                }
                m_TotalData.Add(Tmp, m_Data);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
                m_TotalData = null;
            }
            finally
            {
                reader.Close();
                Command.Dispose();
            }
 
        }
 
        public int findDeptID(String City, String Region, String Road)
        {
            int Dept = 0;
            ArrayList m_Data = (ArrayList)m_TotalData[City];
 
            try
            {
                for (int i = 0; i < m_Data.Count; i++)
                {
                    ArrayList Tmp = (ArrayList)m_Data[i];
                    String m_Region = Tmp[1].ToString().Trim();
                    String m_Road = Tmp[2].ToString().Trim();
                    int DeptID = Convert.ToInt32(Tmp[3].ToString());
 
                    if ((Region.Trim().Equals(m_Region)) && (Road.Trim().Equals(m_Road)))
                        return DeptID;
                }
            }
            catch (Exception)
            {
                _PLog.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!");
            }
            // 當找不到部門別時,Default 設定為市巡
            Dept = CCS.CCSMain.EOSCodelist.getKeyID(CCS.LocalVariable.Dept, DefaultDept);
            return Dept;
        }
 
    }
}