From 540014a7702a9bae7a3b9c00098671a132e869e8 Mon Sep 17 00:00:00 2001
From: ulysseskao <ulysseskao@gmail.com>
Date: Thu, 05 May 2016 10:21:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/usestp'

---
 CCSTrace/CCS/FinishEvent.cs |  216 ++++++++++++++++++++++++++----------------------------
 1 files changed, 104 insertions(+), 112 deletions(-)

diff --git a/CCSTrace/CCS/FinishEvent.cs b/CCSTrace/CCS/FinishEvent.cs
index 011554a..81eaef5 100644
--- a/CCSTrace/CCS/FinishEvent.cs
+++ b/CCSTrace/CCS/FinishEvent.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Data.OracleClient;
 using CCSTrace.CCS.Domain;
+using CCSTrace.CCS.Object;
 using NLog;
 
 namespace CCSTrace.CCS
@@ -8,28 +9,16 @@
     public class FinishEvent
     {
         private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
+        private int _originCaseStatus;
 
-        private bool _upLevel;
-        private int _originCaseStatus = 0;
-        private Object.EOSEventRecord _eosEventRecord = null;
-        private OracleConnection _connectionTpc;
-        private OracleTransaction _transaction;
 
-        public FinishEvent()
+        public bool Finish(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord, int mKind)
         {
-        }
-
-        public bool Finish(int mKind, Object.EOSEventRecord eosEventRecord, OracleConnection conn, OracleTransaction trx)
-        {
-            _eosEventRecord = eosEventRecord;
-            _connectionTpc = conn;
-            _transaction = trx;
-
             Logger.Info("進行OMS資料更新程序...");
             if (eosEventRecord.ParentId == 0)
             {
                 // Original Case
-                if (!(ProcessSingalCase(eosEventRecord)))
+                if (!ProcessSingalCase(conn, trx, eosEventRecord))
                 {
                     return false;
                 }
@@ -38,7 +27,7 @@
             else
             {
                 // Child Case
-                if (!(ProcessMergeCase(eosEventRecord)))
+                if (!ProcessMergeCase(conn, trx, eosEventRecord))
                 {
                     return false;
                 }
@@ -46,7 +35,7 @@
             }
 
             // inert into eos.eventrecord && eos.eventrecord_ex
-            OracleCommand command = new OracleCommand(eosEventRecord.GetInsertSqlStmt(), _connectionTpc, _transaction);
+            var command = new OracleCommand(eosEventRecord.GetInsertSqlStmt(), conn, trx);
             OracleCommand command1 = null;
 
             try
@@ -72,7 +61,7 @@
                     /* 當饋線全停時不需注意影響虛擬用戶,影響用戶資料會由實際切開關產生 */
                     if (eosEventRecord.Fsc != GlobalVariable.Breaker)
                     {
-                        if (!SetVisualCustomer(eosEventRecord))
+                        if (!SetVisualCustomer(conn, trx, eosEventRecord))
                         {
                             Logger.Error("新增影響用戶資料錯誤.");
                             return false;
@@ -80,16 +69,16 @@
                         Logger.Info("新增影響用戶成功!");
                     }
 
-                    _upLevel = false; /* 判斷交辦案件是否升級為母案件 */
+                    var upLevel = false;
 
-                    if (!(UpdateImportCase(eosEventRecord)))
+                    if (!UpdateImportCase(conn, trx, eosEventRecord, upLevel))
                     {
                         Logger.Error("處理案件等級變更時發生錯誤.");
                         return false;
                     }
                     Logger.Info("處理案件等級變更成功!");
 
-                    if (!(UpdateRecuseOrder(eosEventRecord)))
+                    if (!UpdateRecuseOrder(conn, trx, eosEventRecord, upLevel))
                     {
                         Logger.Error("新增搶修順序資料時發生錯誤.");
                         return false;
@@ -98,7 +87,7 @@
 
                     if (mKind == GlobalVariable.CaseTypeChanged)
                     {
-                        if (!DeleteOldCase(eosEventRecord))
+                        if (!DeleteOldCase(conn, trx, eosEventRecord))
                         {
                             Logger.Error("案件轉換發生錯誤");
                             return false;
@@ -106,7 +95,7 @@
                         Logger.Info("案件轉換成功!");
                     }
 
-                    if (!SaveCustomerTel(eosEventRecord))
+                    if (!SaveCustomerTel(conn, trx, eosEventRecord))
                     {
                         Logger.Error("無法將用戶電話回存回資料庫.");
                         return false;
@@ -115,11 +104,12 @@
                 }
                 else if (mKind == GlobalVariable.NoMeter)
                 {
-                    var sqlStmt = "INSERT INTO EOS.RESCUE_ORDER SELECT " + eosEventRecord.CaseId + ",999,COUNT(*) + 1,'',"
+                    var sqlStmt = "INSERT INTO EOS.RESCUE_ORDER SELECT " + eosEventRecord.CaseId +
+                                  ",999,COUNT(*) + 1,'',"
                                   + eosEventRecord.LocateEquipment.DsUfid + " FROM EOS.RESCUE_ORDER WHERE DSUFID = "
                                   + eosEventRecord.LocateEquipment.DsUfid;
 
-                    command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+                    command1 = new OracleCommand(sqlStmt, conn, trx);
                     if (command1.ExecuteNonQuery() <= 0)
                     {
                         Logger.Error("新增搶修順序資料時發生錯誤.");
@@ -132,7 +122,7 @@
 
                 if (eosEventRecord.ParentId == 0)
                 {
-                    if (!InsertIntoSri(eosEventRecord))
+                    if (!InsertIntoSri(conn, trx, eosEventRecord))
                     {
                         Logger.Error("新增資料庫(OCSDB.SRI)錯誤.");
                         return false;
@@ -154,13 +144,14 @@
             return true;
         }
 
-        private bool ProcessSingalCase(Object.EOSEventRecord eosEventRecord)
+        private bool ProcessSingalCase(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
             var result = false;
-            var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + eosEventRecord.CaseId + "," + CCSCaseState.WaitForDespatch + ",1,"
+            var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + eosEventRecord.CaseId + "," + CCSCaseState.WaitForDespatch +
+                          ",1,"
                           + GlobalVariable.OriginalCase + ",0)";
 
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+            var command = new OracleCommand(sqlStmt, conn, trx);
 
             try
             {
@@ -180,13 +171,14 @@
             return result;
         }
 
-        private bool ProcessMergeCase(Object.EOSEventRecord eosEventRecord)
+        private bool ProcessMergeCase(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
             // insert eos.events
-            var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + eosEventRecord.CaseId + "," + CCSCaseState.WaitForDespatch + ",1,"
+            var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + eosEventRecord.CaseId + "," + CCSCaseState.WaitForDespatch +
+                          ",1,"
                           + GlobalVariable.ChildCase + ",0)";
 
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+            var command = new OracleCommand(sqlStmt, conn, trx);
 
             try
             {
@@ -198,7 +190,8 @@
                 }
 
                 // insert into eos.mergecase
-                sqlStmt = "INSERT INTO EOS.MERGECASE VALUES(" + eosEventRecord.CaseId + ",'" + eosEventRecord.AcceptNum + "'," +
+                sqlStmt = "INSERT INTO EOS.MERGECASE VALUES(" + eosEventRecord.CaseId + ",'" + eosEventRecord.AcceptNum +
+                          "'," +
                           eosEventRecord.ParentId + ")";
 
                 command.CommandText = sqlStmt;
@@ -224,7 +217,8 @@
 
                 // update parent case data(EOS.EVENTRECORD)
                 sqlStmt = "UPDATE EOS.EVENTRECORD SET FSC = " + eosEventRecord.Fsc + ",UFID = " + eosEventRecord.Ufid +
-                          " WHERE CASEID in (SELECT CASEID FROM EOS.MERGECASE WHERE PARENTID = " + eosEventRecord.ParentId +
+                          " WHERE CASEID in (SELECT CASEID FROM EOS.MERGECASE WHERE PARENTID = " +
+                          eosEventRecord.ParentId +
                           ") OR CASEID = "
                           + eosEventRecord.ParentId;
 
@@ -247,14 +241,14 @@
             return true;
         }
 
-        private bool SetVisualCustomer(Object.EOSEventRecord eosEventRecord)
+        private bool SetVisualCustomer(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
-            var sqlStmt = "";
             var customerKind = "C"; // 高壓用戶or一般用戶
 
-            sqlStmt = "SELECT COUNT(*) as COUNT FROM BASEDB.HICUSTOMER WHERE METR_NUMB = '" + eosEventRecord.Meter + "'";
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-            OracleDataReader reader = command.ExecuteReader();
+            var sqlStmt = "SELECT COUNT(*) as COUNT FROM BASEDB.HICUSTOMER WHERE METR_NUMB = '" + eosEventRecord.Meter +
+                          "'";
+            var command = new OracleCommand(sqlStmt, conn, trx);
+            var reader = command.ExecuteReader();
 
             try
             {
@@ -285,7 +279,7 @@
                           "FROM BASEDB.METER M,BASEDB.MSTADDR A WHERE M.METR_NUMB = A.M_CUST_NO(+) AND M.METR_NUMB = '" +
                           eosEventRecord.Meter + "'";
 
-                OracleCommand command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+                var command1 = new OracleCommand(sqlStmt, conn, trx);
                 if (command1.ExecuteNonQuery() >= 0)
                 {
                     command1.Dispose();
@@ -294,24 +288,23 @@
                 command1.Dispose();
                 return false;
             }
-            else
-            {
-                return InsertMutilCustomer(customerKind, eosEventRecord);
-            }
+            return InsertMutilCustomer(conn, trx, customerKind, eosEventRecord);
         }
 
-        private bool InsertMutilCustomer(string customerKind, Object.EOSEventRecord eosEventRecord)
+        private bool InsertMutilCustomer(OracleConnection conn, OracleTransaction trx, string customerKind,
+            EOSEventRecord eosEventRecord)
         {
-            string sqlStmt = "";
-            bool updateCustomer = false;
-            string mTpclidGroupId = "";
-            string mCustomerKind = "C";
+            var sqlStmt = "";
+            var updateCustomer = false;
+            var mTpclidGroupId = "";
+            var mCustomerKind = "C";
 
             sqlStmt = "SELECT COUNT(*) as COUNT FROM EOS.TMPAFFECTCUSTMS WHERE CASEID = " + eosEventRecord.ParentId +
-                      " OR CASEID IN (SELECT CASEID FROM EOS.MERGECASE WHERE PARENTID = " + eosEventRecord.ParentId + ")";
+                      " OR CASEID IN (SELECT CASEID FROM EOS.MERGECASE WHERE PARENTID = " + eosEventRecord.ParentId +
+                      ")";
 
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-            OracleDataReader reader = command.ExecuteReader();
+            var command = new OracleCommand(sqlStmt, conn, trx);
+            var reader = command.ExecuteReader();
 
             try
             {
@@ -344,7 +337,7 @@
 
                 try
                 {
-                    command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+                    command1 = new OracleCommand(sqlStmt, conn, trx);
                     reader = command1.ExecuteReader();
 
                     if (reader.Read())
@@ -399,10 +392,11 @@
             sqlStmt = "INSERT INTO EOS.TMPAFFECTCUSTMS SELECT " + eosEventRecord.CaseId + ",A.M_NAME,"
                       + "M.TELE_NUMB,M.METR_NUMB,A.M_ADDR,M.TPCLIDGROUPID,M.CUST_TYPE,'" + customerKind + "' "
                       + "FROM (SELECT TELE_NUMB,METR_NUMB,TRAN_CORD as TPCLIDGROUPID,CUST_TYPE FROM BASEDB.METER "
-                      + "WHERE TRAN_CORD = (SELECT TRAN_CORD FROM BASEDB.METER WHERE METR_NUMB = '" + eosEventRecord.Meter +
+                      + "WHERE TRAN_CORD = (SELECT TRAN_CORD FROM BASEDB.METER WHERE METR_NUMB = '" +
+                      eosEventRecord.Meter +
                       "')) M,BASEDB.MSTADDR A WHERE M.METR_NUMB = A.M_CUST_NO(+) ";
 
-            OracleCommand command2 = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+            var command2 = new OracleCommand(sqlStmt, conn, trx);
             if (command2.ExecuteNonQuery() < 0)
             {
                 Logger.Error("無法新增新受理案件的影響用戶資料.");
@@ -413,7 +407,7 @@
             return true;
         }
 
-        private bool UpdateImportCase(Object.EOSEventRecord eosEventRecord)
+        private bool UpdateImportCase(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord, bool upLevel)
         {
             /* 該案件不為交辦案件 */
             if (eosEventRecord.ImportCase != GlobalVariable.IsImportCase)
@@ -429,8 +423,8 @@
 
             /* 若母案件已為交辦案件,則不需再作任何更動 */
             var sqlStmt = "SELECT IMPORTCASE FROM EOS.EVENTRECORD WHERE CASEID = " + eosEventRecord.ParentId;
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-            OracleDataReader reader = command.ExecuteReader();
+            var command = new OracleCommand(sqlStmt, conn, trx);
+            var reader = command.ExecuteReader();
 
             try
             {
@@ -452,14 +446,14 @@
             }
 
             /* 開始進行交辦案件升級動作 */
-            _upLevel = true;
+            upLevel = true;
 
             /* 將交辦案件改為母案件 */
             sqlStmt = "UPDATE EOS.EVENTS SET CASETYPE = " + GlobalVariable.ParentCase + ",MERGECASECOUNT = "
                       + "(SELECT MERGECASECOUNT FROM EOS.EVENTS WHERE CASEID = " + eosEventRecord.ParentId +
                       ") WHERE CASEID = " + eosEventRecord.CaseId;
 
-            OracleCommand command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+            var command1 = new OracleCommand(sqlStmt, conn, trx);
             if (command1.ExecuteNonQuery() <= 0)
             {
                 Logger.Error("無法將交辦案件改為母案件.");
@@ -480,7 +474,8 @@
             }
 
             // 將EOS.MERGECASE內的資料修正 1.將原先該母案件下的子案件都改掛在交辦案件下 2.將已INSERT入EOS.MERGECASE內的交辦案件資料改為原先母案件的資料(CaseID,AcceptNum)
-            sqlStmt = "UPDATE EOS.MERGECASE SET PARENTID = " + eosEventRecord.CaseId + " WHERE PARENTID = " + eosEventRecord.ParentId;
+            sqlStmt = "UPDATE EOS.MERGECASE SET PARENTID = " + eosEventRecord.CaseId + " WHERE PARENTID = " +
+                      eosEventRecord.ParentId;
 
             command1.CommandText = sqlStmt;
             if (command1.ExecuteNonQuery() <= 0)
@@ -502,14 +497,14 @@
             }
             command1.Dispose();
 
-            return UpdateOtherTable(eosEventRecord.ParentId, eosEventRecord.CaseId, eosEventRecord.AcceptNum);
+            return UpdateOtherTable(conn, trx, eosEventRecord);
         }
 
-        private bool UpdateOtherTable(int oldCaseId, int newCaseId, string newAcceptNum)
+        private bool UpdateOtherTable(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
-            var sqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + oldCaseId;
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-            OracleDataReader reader = command.ExecuteReader();
+            var sqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + eosEventRecord.ParentId;
+            var command = new OracleCommand(sqlStmt, conn, trx);
+            var reader = command.ExecuteReader();
 
             try
             {
@@ -530,7 +525,8 @@
                         break;
 
                     case (int) CCSCaseState.WaitForSponsor:
-                        sqlStmt = "UPDATE EOS.EVENTDESPATCH SET CASEID = " + newCaseId + " WHERE CASEID = " + oldCaseId;
+                        sqlStmt = "UPDATE EOS.EVENTDESPATCH SET CASEID = " + eosEventRecord.CaseId + " WHERE CASEID = " +
+                                  eosEventRecord.ParentId;
 
                         command.CommandText = sqlStmt;
                         if (command.ExecuteNonQuery() < 0)
@@ -541,7 +537,7 @@
                         }
 
                         sqlStmt = "update eos.events set casestatus=" + CCSCaseState.WaitForSponsor + " where caseid=" +
-                                  newCaseId;
+                                  eosEventRecord.CaseId;
                         command.CommandText = sqlStmt;
                         if (command.ExecuteNonQuery() < 0)
                         {
@@ -550,12 +546,12 @@
                             return false;
                         }
 
-                        _eosEventRecord.IsDespatched = true;
+                        eosEventRecord.IsDespatched = true;
                         break;
                 }
 
                 sqlStmt = "UPDATE EOS.EVENTS SET CASESTATUS = " + CCSCaseState.WaitForDespatch + " WHERE CASEID = " +
-                          oldCaseId;
+                          eosEventRecord.ParentId;
 
                 command.CommandText = sqlStmt;
                 if (command.ExecuteNonQuery() <= 0)
@@ -565,9 +561,9 @@
                     return false;
                 }
 
-                sqlStmt = "UPDATE OCSDB.SRI SET SCENENAME = '" + newAcceptNum +
+                sqlStmt = "UPDATE OCSDB.SRI SET SCENENAME = '" + eosEventRecord.AcceptNum +
                           "' WHERE SCENENAME = (SELECT ACCEPTNUM FROM "
-                          + "EOS.EVENTRECORD WHERE CASEID = " + oldCaseId + ")";
+                          + "EOS.EVENTRECORD WHERE CASEID = " + eosEventRecord.ParentId + ")";
 
                 command.CommandText = sqlStmt;
                 if (command.ExecuteNonQuery() < 0)
@@ -577,11 +573,11 @@
                     return false;
                 }
 
-                sqlStmt = "SELECT COUNT(*) as COUNT FROM EOS.CRTAPOLOGY WHERE CASEID = " + oldCaseId;
+                sqlStmt = "SELECT COUNT(*) as COUNT FROM EOS.CRTAPOLOGY WHERE CASEID = " + eosEventRecord.ParentId;
 
                 command.CommandText = sqlStmt;
                 reader = command.ExecuteReader();
-                int count = 0;
+                var count = 0;
 
                 if (reader.Read())
                 {
@@ -592,7 +588,8 @@
                 // 已有切過開關
                 if (count > 0)
                 {
-                    sqlStmt = "UPDATE EOS.EVENTFACILITY SET CASEID = " + newCaseId + " WHERE CASEID = " + oldCaseId;
+                    sqlStmt = "UPDATE EOS.EVENTFACILITY SET CASEID = " + eosEventRecord.CaseId + " WHERE CASEID = " +
+                              eosEventRecord.ParentId;
 
                     command.CommandText = sqlStmt;
                     if (command.ExecuteNonQuery() < 0)
@@ -602,7 +599,8 @@
                         return false;
                     }
 
-                    sqlStmt = "UPDATE EOS.CRTAPOLOGY SET CASEID = " + newCaseId + " WHERE CASEID = " + oldCaseId;
+                    sqlStmt = "UPDATE EOS.CRTAPOLOGY SET CASEID = " + eosEventRecord.CaseId + " WHERE CASEID = " +
+                              eosEventRecord.ParentId;
 
                     command.CommandText = sqlStmt;
                     if (command.ExecuteNonQuery() < 0)
@@ -612,7 +610,8 @@
                         return false;
                     }
 
-                    sqlStmt = "UPDATE EOS.EVENTAFFECT SET CASEID = " + newCaseId + " WHERE CASEID = " + oldCaseId;
+                    sqlStmt = "UPDATE EOS.EVENTAFFECT SET CASEID = " + eosEventRecord.CaseId + " WHERE CASEID = " +
+                              eosEventRecord.ParentId;
 
                     command.CommandText = sqlStmt;
                     if (command.ExecuteNonQuery() < 0)
@@ -629,9 +628,9 @@
                     //                    return false;
                     //                }
 
-                    sqlStmt = "UPDATE OCSDB.LOCKFEATURE SET DESCRIPTION = '" + newAcceptNum +
+                    sqlStmt = "UPDATE OCSDB.LOCKFEATURE SET DESCRIPTION = '" + eosEventRecord.AcceptNum +
                               "' WHERE DESCRIPTION = (SELECT ACCEPTNUM FROM "
-                              + "EOS.EVENTRECORD WHERE CASEID = " + oldCaseId + ")";
+                              + "EOS.EVENTRECORD WHERE CASEID = " + eosEventRecord.ParentId + ")";
 
                     command.CommandText = sqlStmt;
                     if (command.ExecuteNonQuery() < 0)
@@ -653,14 +652,14 @@
             return true;
         }
 
-        private bool UpdateRecuseOrder(Object.EOSEventRecord eosEventRecord)
+        private bool UpdateRecuseOrder(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord, bool upLevel)
         {
-            int rank = 999;
-            int priority = 1;
+            var rank = 999;
+            var priority = 1;
             OracleCommand command = null;
 
             /* 單純的子案件或不需升級的交辦案件,不需要更新EOS.RESCUE_ORDER */
-            if ((eosEventRecord.ParentId != 0) && !(_upLevel))
+            if ((eosEventRecord.ParentId != 0) && !upLevel)
             {
                 return true;
             }
@@ -674,14 +673,14 @@
             try
             {
                 string sqlStmt;
-                if (_upLevel)
+                if (upLevel)
                 {
                     /* 將原先母案件的編號改為新的母案件編號 */
                     sqlStmt = "UPDATE EOS.RESCUE_ORDER SET CASEID = " + eosEventRecord.CaseId + " WHERE CASEID = " +
                               eosEventRecord.ParentId +
                               " AND DSUFID = " + eosEventRecord.LocateEquipment.DsUfid;
 
-                    command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+                    command = new OracleCommand(sqlStmt, conn, trx);
                     if (command.ExecuteNonQuery() <= 0)
                     {
                         Logger.Error("無法更新EOS.RESCUE_ORDER: 無法將原先母案件的編號改為新的母案件編號.");
@@ -694,8 +693,8 @@
                     /* 找出該饋線的等級 */
                     sqlStmt = "SELECT RANK FROM EOS.IMP_FEEDER WHERE FEEDERID = " + eosEventRecord.FdrId;
 
-                    command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-                    OracleDataReader reader = command.ExecuteReader();
+                    command = new OracleCommand(sqlStmt, conn, trx);
+                    var reader = command.ExecuteReader();
 
                     if (reader.Read())
                     {
@@ -756,7 +755,8 @@
                     }
 
                     /* 將本身資料存入資料庫內 */
-                    sqlStmt = "INSERT INTO EOS.RESCUE_ORDER (CASEID,RANK,PRIORITY,DSUFID) VALUES (" + eosEventRecord.CaseId +
+                    sqlStmt = "INSERT INTO EOS.RESCUE_ORDER (CASEID,RANK,PRIORITY,DSUFID) VALUES (" +
+                              eosEventRecord.CaseId +
                               "," + rank + ","
                               + (priority + 1) + "," + eosEventRecord.LocateEquipment.DsUfid + ")";
 
@@ -784,30 +784,25 @@
         }
 
         // 當原先同一用戶在事故受理後又報案,不過從一般案件轉為交辦案件所需作的轉換工作
-        private bool DeleteOldCase(Object.EOSEventRecord eosEventRecord)
+        private bool DeleteOldCase(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
-            string sqlStmt;
-            int caseId = 0; // 原先的事故號碼
-            int caseType = GlobalVariable.ChildCase; // 原先的種類
-            int count = 0; // 原先的來電次數
-            int caseStatus = 0; // 原先的案件狀態
             OracleCommand command = null;
 
-            sqlStmt = "SELECT R.CASEID as CASEID,E.CASETYPE as CASETYPE,E.CASESTATUS as CASESTATUS,E.COUNT as COUNT FROM "
-                      + "EOS.EVENTRECORD R,EOS.EVENTS E WHERE R.CASEID = E.CASEID AND R.CUSTOMERMETER = '" +
-                      eosEventRecord.Meter + "' AND R.CASEID <> "
-                      + eosEventRecord.CaseId + " AND E.CASESTATUS <= " + CCSCaseState.WaitForSponsor;
+            var sqlStmt = "SELECT R.CASEID as CASEID,E.CASETYPE as CASETYPE,E.CASESTATUS as CASESTATUS,E.COUNT as COUNT FROM "
+                          + "EOS.EVENTRECORD R,EOS.EVENTS E WHERE R.CASEID = E.CASEID AND R.CUSTOMERMETER = '" +
+                          eosEventRecord.Meter + "' AND R.CASEID <> "
+                          + eosEventRecord.CaseId + " AND E.CASESTATUS <= " + CCSCaseState.WaitForSponsor;
 
             try
             {
-                command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
-                OracleDataReader reader = command.ExecuteReader();
+                command = new OracleCommand(sqlStmt, conn, trx);
+                var reader = command.ExecuteReader();
 
+                var caseId = 0; // 原先的事故號碼
+                var count = 0; // 原先的來電次數
                 if (reader.Read())
                 {
                     caseId = Convert.ToInt32(reader["CASEID"].ToString());
-                    caseType = Convert.ToInt32(reader["CASETYPE"].ToString());
-                    caseStatus = Convert.ToInt32(reader["CASESTATUS"].ToString());
                     count = Convert.ToInt32(reader["COUNT"].ToString());
                     reader.Close();
                 }
@@ -946,26 +941,23 @@
             catch (Exception e)
             {
                 Logger.Error(e, e.Message);
-
-                if (command != null)
-                    command.Dispose();
-
+                command?.Dispose();
                 return false;
             }
             return true;
         }
 
-        private bool InsertIntoSri(Object.EOSEventRecord eosEventRecord)
+        private bool InsertIntoSri(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
-            int count = 0;
-            OracleCommand command = null;
+            var count = 0;
+            OracleCommand command;
             OracleDataReader reader = null;
 
             var sqlStmt = "SELECT COUNT(*) AS COUNT FROM OCSDB.SRI WHERE SCENENAME = '" + eosEventRecord.AcceptNum + "'";
 
             try
             {
-                command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+                command = new OracleCommand(sqlStmt, conn, trx);
                 reader = command.ExecuteReader();
 
                 if (reader.Read())
@@ -1008,7 +1000,7 @@
             return true;
         }
 
-        private bool SaveCustomerTel(Object.EOSEventRecord eosEventRecord)
+        private bool SaveCustomerTel(OracleConnection conn, OracleTransaction trx, EOSEventRecord eosEventRecord)
         {
             // 無電號資料
             /*
@@ -1031,7 +1023,7 @@
             var sqlStmt = "UPDATE BASEDB.METER SET TELE_NUMB = '" + eosEventRecord.Tel.Trim() + "' WHERE METR_NUMB = '" +
                           eosEventRecord.Meter + "'";
 
-            OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction);
+            var command = new OracleCommand(sqlStmt, conn, trx);
 
             try
             {

--
Gitblit v0.0.0-SNAPSHOT