From b0c18d369abd06075c83759b0e19823c2a11d716 Mon Sep 17 00:00:00 2001 From: ulysseskao <ulysseskao@gmail.com> Date: Fri, 29 Apr 2016 18:45:41 +0800 Subject: [PATCH] update for new model --- CCSTrace/CCS/ProcessEvent.cs | 980 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 502 insertions(+), 478 deletions(-) diff --git a/CCSTrace/CCS/ProcessEvent.cs b/CCSTrace/CCS/ProcessEvent.cs index d291fed..eb3c519 100644 --- a/CCSTrace/CCS/ProcessEvent.cs +++ b/CCSTrace/CCS/ProcessEvent.cs @@ -1,306 +1,316 @@ 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.Data.OracleClient; using System.Text; +using CCSTrace.CCS.Domain; +using CCSTrace.CCS.Function; +using CCSTrace.CCS.Object; +using NLog; namespace CCSTrace.CCS { public delegate void ThreadEndEventHandler(object sender, ThreadEndEvent e); - - public class ProcessEvent + + public class ProcessEvent { - public event ThreadEndEventHandler ThreadFinish; + private static Logger logger = LogManager.GetCurrentClassLogger(); - private CCS.Object.EventRecord m_EventRecord; - private CCS.Object.CCSRecord m_CCSRecord; - private RecordLog _PLog; - private OracleConnection _ConnectionTPC; - private OracleTransaction _Trx; - private String _traceConnectionString = String.Empty; + private readonly OracleConnection _connectionTpc; + private readonly CcsRecord _mCcsRecord; - public ProcessEvent(Object.CCSRecord _Record, OracleConnection _Conn, String _traceConnection) + private EventRecord _mEventRecord; + private readonly RecordLog _pLog; + private readonly string _traceConnectionString = string.Empty; + private OracleTransaction _trx; + + public ProcessEvent(CcsRecord record, OracleConnection conn, string traceConnection) { - m_CCSRecord = _Record; - _ConnectionTPC = _Conn; - _traceConnectionString = _traceConnection; - _PLog = new RecordLog(CCS.LocalVariable.CCS_ListPath + _Record.getCCSID() + ".txt"); + _mCcsRecord = record; + _connectionTpc = conn; + _traceConnectionString = traceConnection; + _pLog = new RecordLog(GlobalVariable.CcsListPath + record.CcsId + ".txt"); } + + public event ThreadEndEventHandler ThreadFinish; public void Run() { - bool SendMail = false; - + var sendMail = false; + try { - int FDRID = getFDRID(m_CCSRecord.getMeter()); + var fdrid = GetFdrid(_mCcsRecord.Meter); - if (FDRID != 0) //有饋線代號資料的案件才需比對同饋線上有無案件正在處理 + if (fdrid != 0) //有饋線代號資料的案件才需比對同饋線上有無案件正在處理 { - if (CCSMain.ProcessFDR.ContainsKey(FDRID.ToString())) + if (CcsMain.ProcessFdr.ContainsKey(fdrid.ToString())) { - CCSMain.WaitingCases.Add(new String[] { m_CCSRecord.getCCSID(), FDRID.ToString() }); + CcsMain.WaitingCases.Add(new[] {_mCcsRecord.CcsId, fdrid.ToString()}); return; } else - CCSMain.ProcessFDR.Add(FDRID.ToString(), null); //將要處理的案件的饋線別加入處理中饋線集合 + CcsMain.ProcessFdr.Add(fdrid.ToString(), null); //將要處理的案件的饋線別加入處理中饋線集合 } -/* int TraceCount = this.getTraceCount(m_CCSRecord.getCCSID()); - bool TraceError = false; //追蹤次數超過3次,改為非A類不追蹤合併 + /* int TraceCount = this.getTraceCount(m_CCSRecord.CcsId); + bool TraceError = false; //追蹤次數超過3次,改為非A類不追蹤合併 - switch (TraceCount) - { - case 0: - UpdateTraceCount(m_CCSRecord.getCCSID(),true); - TraceError = false; - break; - case 2: - UpdateTraceCount(m_CCSRecord.getCCSID(),false); - TraceError = true; - break; - default: - UpdateTraceCount(m_CCSRecord.getCCSID(),false); - TraceError = false; - break; - } -*/ - if (this.initialEventRecord(m_CCSRecord.getCCSID())) - { - CCS.Function.Leach m_Leach = new CCS.Function.Leach(_ConnectionTPC, _Trx, _traceConnectionString, _PLog); // 案件過濾與合併 - _PLog.Info("過濾案件..."); - int Return_Status = m_Leach.LeachCase(m_EventRecord); + switch (TraceCount) + { + case 0: + UpdateTraceCount(m_CCSRecord.CcsId,true); + TraceError = false; + break; - switch ( Return_Status ) + case 2: + UpdateTraceCount(m_CCSRecord.CcsId,false); + TraceError = true; + break; + + default: + UpdateTraceCount(m_CCSRecord.CcsId,false); + TraceError = false; + break; + } + */ + if (InitialEventRecord(_mCcsRecord.CcsId)) + { + var mLeach = new Leach(_connectionTpc, _trx, _traceConnectionString, _pLog); // 案件過濾與合併 + _pLog.Info("過濾案件..."); + var returnStatus = mLeach.LeachCase(_mEventRecord); + + switch (returnStatus) { - case CCS.LocalVariable.Success: - _PLog.Info("案件過濾完畢...."); - Process(CCS.LocalVariable.Success); + case GlobalVariable.Success: + _pLog.Info("案件過濾完畢...."); + Process(GlobalVariable.Success); break; - case CCS.LocalVariable.NoMeter: - _PLog.Info("案件過濾完畢,用戶無電號...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); + + case GlobalVariable.NoMeter: + _pLog.Info("案件過濾完畢,用戶無電號...."); + _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; + Process(GlobalVariable.NoMeter); break; - case CCS.LocalVariable.SameCustomer: - _PLog.Info("相同用戶重複來電...."); - processSameCustomer(this.m_CCSRecord, this.m_EventRecord); + + case GlobalVariable.SameCustomer: + _pLog.Info("相同用戶重複來電...."); + ProcessSameCustomer(_mCcsRecord, _mEventRecord); break; - case CCS.LocalVariable.NoSupplyElc: - _PLog.Warn("該饋線未供電,無法作事故案件追蹤合併...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); + + case GlobalVariable.NoSupplyElc: + _pLog.Warn("該饋線未供電,無法作事故案件追蹤合併...."); + _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; + Process(GlobalVariable.NoMeter); break; - case CCS.LocalVariable.No_Sxfmr: - _PLog.Warn("該案件無變壓器...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); + + case GlobalVariable.NoSxfmr: + _pLog.Warn("該案件無變壓器...."); + _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; + Process(GlobalVariable.NoMeter); break; - case CCS.LocalVariable.CaseTypeChanged: - _PLog.Info("變更案件狀態...."); - Process(CCS.LocalVariable.CaseTypeChanged); + + case GlobalVariable.CaseTypeChanged: + _pLog.Info("變更案件狀態...."); + Process(GlobalVariable.CaseTypeChanged); break; - case CCS.LocalVariable.Trace_Failure: - _PLog.Error("故障追蹤錯誤,以一般無電號案件方式受理...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); + + case GlobalVariable.TraceFailure: + _pLog.Error("故障追蹤錯誤,以一般無電號案件方式受理...."); + _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; + Process(GlobalVariable.NoMeter); break; + default: - int TraceCount = this.getTraceCount(m_CCSRecord.getCCSID()); + var traceCount = GetTraceCount(_mCcsRecord.CcsId); - if ( TraceCount < 2 ) + if (traceCount < 2) { - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); + _trx.Dispose(); - if (Return_Status == CCS.LocalVariable.CaseTransfer) - _PLog.Error("案件已移轉,此事故案件暫不被受理...."); - else if (Return_Status == CCS.LocalVariable.Failure_By_DB) - _PLog.Error("資料庫錯誤,此事故案件暫不被受理...."); - else if (Return_Status == CCS.LocalVariable.FDRLocked) - _PLog.Error("饋線被鎖定,此事故案件暫不被受理...."); + if (returnStatus == GlobalVariable.CaseTransfer) + _pLog.Error("案件已移轉,此事故案件暫不被受理...."); + else if (returnStatus == GlobalVariable.FailureByDb) + _pLog.Error("資料庫錯誤,此事故案件暫不被受理...."); + else if (returnStatus == GlobalVariable.FdrLocked) + _pLog.Error("饋線被鎖定,此事故案件暫不被受理...."); else - _PLog.Error("發生非預期錯誤,此事故案件暫不被受理...."); + _pLog.Error("發生非預期錯誤,此事故案件暫不被受理...."); - if (TraceCount == 0) - UpdateTraceCount(m_CCSRecord.getCCSID(), true); + if (traceCount == 0) + UpdateTraceCount(_mCcsRecord.CcsId, true); else - UpdateTraceCount(m_CCSRecord.getCCSID(), false); - + UpdateTraceCount(_mCcsRecord.CcsId, false); } else { - UpdateTraceCount(m_CCSRecord.getCCSID(), false); - if (Return_Status == CCS.LocalVariable.Trace_Counts_3) - m_EventRecord.setNote(m_EventRecord.getNote() + "(本案用戶供電資料追蹤失敗)"); + UpdateTraceCount(_mCcsRecord.CcsId, false); + if (returnStatus == GlobalVariable.TraceCounts3) + _mEventRecord.Note = _mEventRecord.Note+ "(本案用戶供電資料追蹤失敗)"; - _PLog.Error("事故案件處理次數3次,仍無法正常處理,以一般無電號案件方式受理...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); - SendMail = true; + _pLog.Error("事故案件處理次數3次,仍無法正常處理,以一般無電號案件方式受理...."); + _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; + Process(GlobalVariable.NoMeter); + sendMail = true; } break; -/* switch (TraceCount) - { - case 0: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + /* switch (TraceCount) + { + case 0: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); - _Trx.Dispose(); + _Trx.Dispose(); - if ( Return_Status == CCS.LocalVariable.CaseTransfer ) - _PLog.Error("案件已移轉,此事故案件不被受理...."); - else if ( Return_Status == CCS.LocalVariable.Failure_By_DB ) - _PLog.Error("資料庫錯誤,此事故案件不被受理...."); - else if ( Return_Status == CCS.LocalVariable.FDRLocked ) - _PLog.Error("饋線被鎖定,此事故案件不被受理...."); - else - _PLog.Error("此事故案件不被受理...."); - + if ( Return_Status == CCS.GlobalVariable.CaseTransfer ) + _PLog.Error("案件已移轉,此事故案件不被受理...."); + else if ( Return_Status == CCS.GlobalVariable.Failure_By_DB ) + _PLog.Error("資料庫錯誤,此事故案件不被受理...."); + else if ( Return_Status == CCS.GlobalVariable.FDRLocked ) + _PLog.Error("饋線被鎖定,此事故案件不被受理...."); + else + _PLog.Error("此事故案件不被受理...."); - UpdateTraceCount(m_CCSRecord.getCCSID(), true); - break; - case 1: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + UpdateTraceCount(m_CCSRecord.CcsId, true); + break; - _Trx.Dispose(); + case 1: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); - UpdateTraceCount(m_CCSRecord.getCCSID(), false); + _Trx.Dispose(); - break; - default://追蹤次數超過3次,改為非A類不追蹤合併 - UpdateTraceCount(m_CCSRecord.getCCSID(), false); - if (Return_Status == CCS.LocalVariable.Trace_Counts_3) - m_EventRecord.setNote(m_EventRecord.getNote() + "(本案用戶供電資料追蹤失敗)"); + UpdateTraceCount(m_CCSRecord.CcsId, false); - _PLog.Error("追蹤次數3次,無法追蹤到故障設備,以一般無電號案件方式受理...."); - m_EventRecord.setTrace_Finish(CCS.LocalVariable.Trace_Finish); - Process(CCS.LocalVariable.NoMeter); - SendMail = true; - break; - } + break; - break; - case CCS.LocalVariable.CaseTransfer: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + default://追蹤次數超過3次,改為非A類不追蹤合併 + UpdateTraceCount(m_CCSRecord.CcsId, false); + if (Return_Status == CCS.GlobalVariable.Trace_Counts_3) + m_EventRecord.setNote(m_EventRecord.getNote() + "(本案用戶供電資料追蹤失敗)"); - _Trx.Dispose(); - _PLog.Error("案件已移轉,此事故案件不被受理...."); - break; - case CCS.LocalVariable.FDRLocked: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + _PLog.Error("追蹤次數3次,無法追蹤到故障設備,以一般無電號案件方式受理...."); + m_EventRecord.setTrace_Finish(CCS.GlobalVariable.Trace_Finish); + Process(CCS.GlobalVariable.NoMeter); + SendMail = true; + break; + } - _Trx.Dispose(); - _PLog.Error("饋線被鎖定,此事故案件不被受理...."); - break; - case CCS.LocalVariable.Failure_By_DB: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + break; - _Trx.Dispose(); - _PLog.Error("資料庫錯誤,此事故案件不被受理...."); - break; - default: - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + case CCS.GlobalVariable.CaseTransfer: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); - _Trx.Dispose(); - _PLog.Error("此事故案件不被受理...."); - break; -*/ + _Trx.Dispose(); + _PLog.Error("案件已移轉,此事故案件不被受理...."); + break; + + case CCS.GlobalVariable.FDRLocked: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); + + _Trx.Dispose(); + _PLog.Error("饋線被鎖定,此事故案件不被受理...."); + break; + + case CCS.GlobalVariable.Failure_By_DB: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); + + _Trx.Dispose(); + _PLog.Error("資料庫錯誤,此事故案件不被受理...."); + break; + + default: + if (_Trx.Connection.State.ToString().Equals("Open")) + _Trx.Rollback(); + + _Trx.Dispose(); + _PLog.Error("此事故案件不被受理...."); + break; + */ } } - if ( FDRID != 0 ) - CCSMain.ProcessFDR.Remove(FDRID.ToString());//將處理完的案件的饋線別從處理中饋線集合中移除 + if (fdrid != 0) + CcsMain.ProcessFdr.Remove(fdrid.ToString()); //將處理完的案件的饋線別從處理中饋線集合中移除 } catch (Exception e) { - Console.WriteLine("Error = " + e.Message + ". CCSID = " + m_CCSRecord.getCCSID()); - _PLog.Error("Error = " + e.Message + ". CCSID = " + m_CCSRecord.getCCSID()); + Console.WriteLine("Error = " + e.Message + ". CCSID = " + _mCcsRecord.CcsId); + _pLog.Error("Error = " + e.Message + ". CCSID = " + _mCcsRecord.CcsId); - if (_Trx != null) + if (_trx != null) { - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); + _trx.Dispose(); } - if ( m_EventRecord!= null && m_EventRecord.getFdrID() != 0) - CCSMain.ProcessFDR.Remove(m_EventRecord.getFdrID().ToString());//將處理完的案件的饋線別從處理中饋線集合中移除 + if (_mEventRecord != null && _mEventRecord.FdrId!= 0) + CcsMain.ProcessFdr.Remove(_mEventRecord.FdrId.ToString()); //將處理完的案件的饋線別從處理中饋線集合中移除 //throw e; } finally { - _PLog.Close(); - CCSMain.ProcessCases.Remove(m_CCSRecord.getCCSID()); - this.OnThreadFinish(new ThreadEndEvent(_ConnectionTPC)); + _pLog.Close(); + CcsMain.ProcessCases.Remove(_mCcsRecord.CcsId); + OnThreadFinish(new ThreadEndEvent(_connectionTpc)); } - if ( SendMail ) - new CCS.Function.MailService(_ConnectionTPC).SendMail(m_CCSRecord.getCCSID()); - + if (sendMail) + new MailService(_connectionTpc).SendMail(_mCcsRecord.CcsId); } - private void Process(int Kind) + private void Process(int kind) { - CCS.FinishEvent FinishEvent = new CCS.FinishEvent(); + var finishEvent = new FinishEvent(); try { - if (FinishEvent.Finish(Kind, m_EventRecord, _ConnectionTPC, _Trx, _PLog)) + if (finishEvent.Finish(kind, _mEventRecord, _connectionTpc, _trx, _pLog)) { - _PLog.Info("OMS資料更新成功!"); - if (UpdateCCSData(m_EventRecord, m_CCSRecord, CCS.LocalVariable.WaitForDespatch)) + _pLog.Info("OMS資料更新成功!"); + if (UpdateCcsData(_mEventRecord, _mCcsRecord, (int) CCSCaseState.WaitForDespatch)) { - _PLog.Info("CCS資料更新成功!"); + _pLog.Info("CCS資料更新成功!"); } else { - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); - _PLog.Error("CCS資料更新程序發生錯誤!"); + _trx.Dispose(); + _pLog.Error("CCS資料更新程序發生錯誤!"); return; - } - + // 須等全部動作都正確做完才可作commit的動作 - _Trx.Commit(); - _Trx.Dispose(); ; - CCS.Object.AlarmData alarmClient = new CCS.Object.AlarmData(_ConnectionTPC, _Trx, _PLog); - alarmClient.alarm(m_EventRecord.getAcceptNum(), m_EventRecord.getDept()); + _trx.Commit(); + _trx.Dispose(); + ; + var alarmClient = new AlarmData(_connectionTpc, _trx, _pLog); + alarmClient.Alarm(_mEventRecord.AcceptNum, _mEventRecord.Dept); } else { // 有錯誤需要RollBack - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); ; - _PLog.Error("OMS資料更新程序發生錯誤!"); + _trx.Dispose(); + ; + _pLog.Error("OMS資料更新程序發生錯誤!"); } - _PLog.Info("CCS 案件受理程序結束."); + _pLog.Info("CCS 案件受理程序結束."); } catch (Exception e) { throw e; } - } protected virtual void OnThreadFinish(ThreadEndEvent e) @@ -311,194 +321,192 @@ } } - private bool UpdateCCSData(CCS.Object.EventRecord m_Record, CCS.Object.CCSRecord m_CCSRecord, int CaseStatus) + private bool UpdateCcsData(EventRecord mRecord, CcsRecord mCcsRecord, int caseStatus) { - _PLog.Info("進行CCS資料更新程序..."); - CCS.Object.EventQuery EventQuery = new CCS.Object.EventQuery(); - int Status = CaseStatus; + _pLog.Info("進行CCS資料更新程序..."); + var eventQuery = new EventQuery(); + var status = caseStatus; // 設定CCSID - EventQuery.setCCSID(m_CCSRecord.getCCSID()); + eventQuery.CcsId = mCcsRecord.CcsId; // 設定受理時間 - EventQuery.setChangeTime(m_CCSRecord.getAcceptTime()); + eventQuery.ChangeTime = mCcsRecord.AcceptTime; // 設定用戶電號 - if (m_CCSRecord.getMeter() != null) + if (mCcsRecord.Meter != null) { - EventQuery.setMeter(m_CCSRecord.getMeter()); + eventQuery.Meter = mCcsRecord.Meter; } // 如果該案件為子案件,需找出母案件的casestatus來insert eos.eventquery // 若母案件已派工,需一併紀錄預計復電時間等資訊 - if (m_Record.getParentID() != 0) + if (mRecord.ParentId!= 0) { - Status = this.getRealCaseStatus(m_Record.getParentID()) == CCS.LocalVariable.WaitForSponsor ? CCS.LocalVariable.EventDespatched - : CCS.LocalVariable.WaitForDespatch; - if (Status == CCS.LocalVariable.EventDespatched) + status = GetRealCaseStatus(mRecord.ParentId) == (int) CCSCaseState.WaitForSponsor + ? (int) CCSCaseState.EventDespatched + : (int) CCSCaseState.WaitForDespatch; + if (status == (int) CCSCaseState.EventDespatched) { - setDespatchInfo(m_Record.getParentID(), EventQuery); + SetDespatchInfo(mRecord.ParentId, eventQuery); } } // 若此案件為專案案件升級為母案件,則必須判斷原先案件是否已經派工 - if ((m_CCSRecord.getImportCase() == CCS.LocalVariable.isImportCase) && (m_Record.isDespatched())) + if ((mCcsRecord.ImportCase == GlobalVariable.IsImportCase) && mRecord.IsDespatched) { - Status = CCS.LocalVariable.EventDespatched; - setDespatchInfo(m_Record.getCaseID(), EventQuery); + status = (int) CCSCaseState.EventDespatched; + SetDespatchInfo(mRecord.CaseId, eventQuery); } - EventQuery.setCaseStatus(Status); + eventQuery.CaseStatus = status; // 更新CCS.EventQuery - if (!EventQuery.Update(_PLog,_ConnectionTPC,_Trx)) + if (!eventQuery.Update(_pLog, _connectionTpc, _trx)) { - _PLog.Error("更新ccs.eventquery失敗!"); + _pLog.Error("更新ccs.eventquery失敗!"); return false; } - else + _pLog.Info("更新ccs.eventquery成功!"); + var numberContrast = new NumberContrast(); + numberContrast.SetAcceptNum(mRecord.AcceptNum); + numberContrast.SetCaseId(mRecord.CaseId); + numberContrast.SetCcsid(mCcsRecord.CcsId); + // 更新CCS.Num_Contrast + if (!numberContrast.Update(_connectionTpc, _trx)) { - _PLog.Info("更新ccs.eventquery成功!"); - CCS.Object.NumberContrast NumberContrast = new CCS.Object.NumberContrast(); - NumberContrast.setAcceptNum(m_Record.getAcceptNum()); - NumberContrast.setCaseID(m_Record.getCaseID()); - NumberContrast.setCCSID(m_CCSRecord.getCCSID()); - // 更新CCS.Num_Contrast - if (!NumberContrast.Update(_ConnectionTPC,_Trx)) - { - _PLog.Error("更新ccs.num_contrast失敗!"); - return false; - } - _PLog.Info("更新ccs.num_contrast成功!"); + _pLog.Error("更新ccs.num_contrast失敗!"); + return false; } + _pLog.Info("更新ccs.num_contrast成功!"); return true; } - private bool initialEventRecord(String CCSID) + private bool InitialEventRecord(string ccsid) { - CCS.Function.InitialEventData InitialData = new CCS.Function.InitialEventData(_ConnectionTPC,_PLog); - CCS.Object.NumberContrast m_Contrast = new CCS.Object.NumberContrast(); - CCS.Object.Dept_Contrast Dept_Contrast = null; + var initialData = new InitialEventData(_connectionTpc, _pLog); + var mContrast = new NumberContrast(); + DeptContrast deptContrast = null; // Being Transaction - _Trx = _ConnectionTPC.BeginTransaction(); + _trx = _connectionTpc.BeginTransaction(); - Dept_Contrast = new CCS.Object.Dept_Contrast(_ConnectionTPC, _Trx); - m_EventRecord = new CCS.Object.EventRecord(InitialData.getNewCaseID(), _ConnectionTPC, _Trx); - m_EventRecord.setAcceptNum(InitialData.getNewAcceptNum()); + deptContrast = new DeptContrast(_connectionTpc, _trx); + _mEventRecord = new EventRecord(initialData.GetNewCaseId(), _connectionTpc, _trx); + _mEventRecord.AcceptNum = initialData.GetNewAcceptNum(); - m_Contrast.setAcceptNum(m_EventRecord.getAcceptNum()); - m_Contrast.setCaseID(m_EventRecord.getCaseID()); - m_Contrast.setCCSID(m_CCSRecord.getCCSID()); - - if (!m_Contrast.Insert(_ConnectionTPC, _Trx)) + mContrast.SetAcceptNum(_mEventRecord.AcceptNum); + mContrast.SetCaseId(_mEventRecord.CaseId); + mContrast.SetCcsid(_mCcsRecord.CcsId); + + if (!mContrast.Insert(_connectionTpc, _trx)) { - _PLog.Error("初始化寫入CCS.Num_Contrast時發生錯誤!"); + _pLog.Error("初始化寫入CCS.Num_Contrast時發生錯誤!"); - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); return false; } // 設定用戶姓名 - m_EventRecord.setName(m_CCSRecord.getCustomerName()); + _mEventRecord.Name = _mCcsRecord.CustomerName; - if (m_CCSRecord.getMeter() != null && m_CCSRecord.getMeter().Length != 0 ) + if (_mCcsRecord.Meter != null && _mCcsRecord.Meter.Length != 0) { // 需先找出部門代號,再找到該部門屬於哪一個巡修單位 - m_EventRecord.setMeter(m_CCSRecord.getMeter()); - int Tmp = Dept_Contrast.getDept_Code(m_CCSRecord.getMeter()); + _mEventRecord.Meter = _mCcsRecord.Meter; + var tmp = deptContrast.getDept_Code(_mCcsRecord.Meter); - if ( Tmp == -1 ) - m_EventRecord.setDept(findoutDeptByAddr(m_CCSRecord, _Trx)); + if (tmp == -1) + _mEventRecord.Dept = FindoutDeptByAddr(_mCcsRecord, _trx); else - m_EventRecord.setDept(Tmp); + _mEventRecord.Dept = tmp; - m_EventRecord.setFdrID(getFDRID(m_CCSRecord.getMeter())); + _mEventRecord.FdrId = GetFdrid(_mCcsRecord.Meter); } else { // 當無用戶電號時,所找出的部門別不需再去找出屬於哪一個巡修股(findoutDeptByAddr會直接找到相對應的巡修股) - int Dept = this.findoutDeptByAddr(m_CCSRecord, _Trx); - m_EventRecord.setDept(Dept); + var dept = FindoutDeptByAddr(_mCcsRecord, _trx); + _mEventRecord.Dept = dept; } // 設定用戶電話號碼 - if (m_CCSRecord.getCustomerTel() != null) + if (_mCcsRecord.CustomerTel != null) { - m_EventRecord.setTel(m_CCSRecord.getCustomerTel()); + _mEventRecord.Tel = _mCcsRecord.CustomerTel; } // 檢查並設定用戶地址 - String m_Addr = m_CCSRecord.getADDR_City() + m_CCSRecord.getADDR_Town() + m_CCSRecord.getADDR_Road() + m_CCSRecord.getADDR_Other(); + var mAddr = _mCcsRecord.AddressCity + _mCcsRecord.AddressTown + _mCcsRecord.AddressRoad + + _mCcsRecord.AddressOther; - if (m_Addr.Trim().Length == 0) + if (mAddr.Trim().Length == 0) { - _PLog.Error("CCS 案件受理程序初始化失敗...地址為空白"); + _pLog.Error("CCS 案件受理程序初始化失敗...地址為空白"); - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback() ; + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); return false; } - m_EventRecord.setAddr(m_Addr); + _mEventRecord.Addr = mAddr; // 設定事故原因 - m_EventRecord.setBrief(TransferEventBrief(m_CCSRecord.getEventBrief())); + _mEventRecord.Brief = TransferEventBrief(_mCcsRecord.EventBrief); try { - System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); - byte[] source = encoding.GetBytes(m_EventRecord.getBrief()); + var encoding = new ASCIIEncoding(); + var source = encoding.GetBytes(_mEventRecord.Brief); if (source.Length > 24) { - byte[] dest = new byte[24]; - for (int i = 0; i < dest.Length; i++) + var dest = new byte[24]; + for (var i = 0; i < dest.Length; i++) { dest[i] = source[i]; } - System.Text.Encoding enc = System.Text.Encoding.ASCII; - m_EventRecord.setBrief(enc.GetString(dest)); + var enc = Encoding.ASCII; + _mEventRecord.Brief = enc.GetString(dest); source = dest = null; } } catch (Exception) { - m_EventRecord.setBrief("其他"); + _mEventRecord.Brief = "其他"; } - if (m_CCSRecord.getCCSID().StartsWith("A")) - m_EventRecord.setLog("APP"); - else if (m_CCSRecord.getCCSID().StartsWith("W")) - m_EventRecord.setLog("WEB"); + if (_mCcsRecord.CcsId.StartsWith("A")) + _mEventRecord.Log = "APP"; + else if (_mCcsRecord.CcsId.StartsWith("W")) + _mEventRecord.Log = "WEB"; else - m_EventRecord.setLog("CCS"); - - m_EventRecord.setAcceptDate(m_CCSRecord.getAcceptTime()); + _mEventRecord.Log = "CCS"; + + _mEventRecord.AcceptDate = _mCcsRecord.AcceptTime; // 設定用戶種類 - if (m_CCSRecord.getImportCase() == CCS.LocalVariable.isImportCase) + if (_mCcsRecord.ImportCase == GlobalVariable.IsImportCase) { - m_EventRecord.setImportCase(CCS.LocalVariable.isImportCase); - m_EventRecord.setLevel(CCS.LocalVariable.A_Level); // default set A level + _mEventRecord.ImportCase = GlobalVariable.IsImportCase; + _mEventRecord.Level = GlobalVariable.ALevel; // default set A level } else { - m_EventRecord.setImportCase(CCS.LocalVariable.NotImportCase); - m_EventRecord.setLevel(CCS.LocalVariable.No_Level); + _mEventRecord.ImportCase = GlobalVariable.NotImportCase; + _mEventRecord.Level = GlobalVariable.NoLevel; } // 檢查字串中有無特殊字元' ,若有則取代為" - if (m_CCSRecord.getNote() != null) - m_EventRecord.setNote(m_CCSRecord.getNote().Replace('\'', '\"')); - + if (_mCcsRecord.Note != null) + _mEventRecord.Note = _mCcsRecord.Note.Replace('\'', '\"'); // 設定回覆姓名及電話 - if (m_CCSRecord.getRecallName() != null) + if (_mCcsRecord.RecallName != null) { - m_EventRecord.setisReCall(CCS.LocalVariable.isReCall); - m_EventRecord.setReCallName(m_CCSRecord.getRecallName().Replace('\'', '\"')); - m_EventRecord.setReCallTel(m_CCSRecord.getRecallTel()); + _mEventRecord.IsReCall = GlobalVariable.IsReCall; + _mEventRecord.ReCallName = _mCcsRecord.RecallName.Replace('\'', '\"'); + _mEventRecord.ReCallTel = _mCcsRecord.RecallTel; } else { - m_EventRecord.setisReCall(CCS.LocalVariable.NotReCall); + _mEventRecord.IsReCall = GlobalVariable.NotReCall; } - _PLog.Info("初始化EOS.EVENTRECORD成功!"); + _pLog.Info("初始化EOS.EVENTRECORD成功!"); return true; } @@ -518,134 +526,134 @@ // return true; //} - private void checkCaseAlreadyExits(CCS.Object.EventQuery m_EventQuery) + private void CheckCaseAlreadyExits(EventQuery mEventQuery) { - String SqlStmt = "select ccsid from ccs.eventquery where ccsid='" + m_EventQuery.getCCSID() + "'"; + var sqlStmt = "select ccsid from ccs.eventquery where ccsid='" + mEventQuery.CcsId + "'"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC,_Trx); - OracleDataReader reader = Command.ExecuteReader(); + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); try { if (reader.Read()) { - Command.CommandText = "delete from ccs.eventquery where ccsid='" + m_EventQuery.getCCSID() + "'"; - Command.ExecuteNonQuery(); + command.CommandText = "delete from ccs.eventquery where ccsid='" + mEventQuery.CcsId + "'"; + command.ExecuteNonQuery(); - Command.CommandText = "delete from ccs.num_contrast where ccsid='" + m_EventQuery.getCCSID() + "'"; - Command.ExecuteNonQuery(); + command.CommandText = "delete from ccs.num_contrast where ccsid='" + mEventQuery.CcsId + "'"; + command.ExecuteNonQuery(); } } catch (Exception ex) { - _PLog.Warn("Problems occur during checking process: " + ex.Message); + _pLog.Warn("Problems occur during checking process: " + ex.Message); } finally { reader.Close(); - Command.Dispose(); + command.Dispose(); } } - private int findoutDeptByAddr(CCS.Object.CCSRecord CCSRecord, OracleTransaction _Trx) + private int FindoutDeptByAddr(CcsRecord ccsRecord, OracleTransaction trx) { - CCS.Object.Addr_Contrast Addr_Contrast = new CCS.Object.Addr_Contrast(_ConnectionTPC, _Trx, _PLog); - return Addr_Contrast.findDeptID(CCSRecord.getADDR_City(), CCSRecord.getADDR_Town(), CCSRecord.getADDR_Road()); + var addrContrast = new AddrContrast(_connectionTpc, trx, _pLog); + return addrContrast.FindDeptId(ccsRecord.AddressCity, ccsRecord.AddressTown, ccsRecord.AddressRoad); } - private String TransferEventBrief(int Code) + private string TransferEventBrief(int code) { - String Result = ""; - Result = CCS.CCSMain.CCSCodelist.getContent(CCS.LocalVariable.CCSEventBrief, Code); + var result = ""; + result = GlobalVariable.CcsCodelist.GetContent(GlobalVariable.CcsEventBrief, code); -// int MaxLength = this.getFieldLength("EOS", "EVENTRECORD", "EVENTBRIEF"); + // int MaxLength = this.getFieldLength("EOS", "EVENTRECORD", "EVENTBRIEF"); -// if ( Result.ToCharArray().Length > MaxLength ) -// Result.ToCharArray + // if ( Result.ToCharArray().Length > MaxLength ) + // Result.ToCharArray - return Result; + return result; } - private int TransferDept(String DeptCode) + private int TransferDept(string deptCode) { // 傳入部門的英文value(CONTENT),傳回相對應的keyid - return CCS.CCSMain.CCSCodelist.getKeyID(CCS.LocalVariable.CCSDept, DeptCode); + return GlobalVariable.CcsCodelist.GetKeyId(GlobalVariable.CcsDept, deptCode); } - private int getRealCaseStatus(int ParentID) + private int GetRealCaseStatus(int parentId) { - String SqlStmt; - int Status = CCS.LocalVariable.WaitForDespatch; + string sqlStmt; + var status = (int) CCSCaseState.WaitForDespatch; - SqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + ParentID; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); - OracleDataReader reader = Command.ExecuteReader(); - + sqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + parentId; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); try { if (reader.Read()) { - Status = Convert.ToInt32(reader["CaseStatus"].ToString()); + status = Convert.ToInt32(reader["CaseStatus"].ToString()); } } catch (Exception) { - _PLog.Warn("無法取得正確之母案件狀態."); + _pLog.Warn("無法取得正確之母案件狀態."); } finally - { + { reader.Close(); - Command.Dispose(); + command.Dispose(); } - return Status; + return status; } - private void setDespatchInfo(int m_CaseID, CCS.Object.EventQuery m_EventQry) + private void SetDespatchInfo(int mCaseId, EventQuery mEventQry) { - String SqlStmt = "select despatchtime,assumefixtime,assumedtime_nth,delaytime,reason,eventlocation from eos.eventdespatch where caseid=" - + m_CaseID; + var sqlStmt = "select despatchtime,assumefixtime,assumedtime_nth,delaytime,reason,eventlocation from eos.eventdespatch where caseid=" + + mCaseId; - OracleCommand Command = null; + OracleCommand command = null; OracleDataReader reader = null; try { - Command = new OracleCommand(SqlStmt, _ConnectionTPC,_Trx); - reader = Command.ExecuteReader(); + command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + reader = command.ExecuteReader(); if (reader.Read()) { - m_EventQry.setChangeTime(Convert.ToDateTime(reader["despatchtime"]).ToString("yyy/MM/dd HH:mm:ss")); - m_EventQry.setAssumedTime(Convert.ToDateTime(reader["assumefixtime"]).ToString("yyy/MM/dd HH:mm:ss")); - m_EventQry.setAssumedTime_Nth(Convert.ToDateTime(reader["assumedtime_nth"]).ToString("yyy/MM/dd HH:mm:ss")); - m_EventQry.setDelayTimes(Convert.ToInt32(reader["delaytime"].ToString())); - m_EventQry.setReason(reader["reason"].ToString()); - m_EventQry.setEventLocation(reader["eventlocation"].ToString()); + mEventQry.ChangeTime = Convert.ToDateTime(reader["despatchtime"]).ToString("yyy/MM/dd HH:mm:ss"); + mEventQry.AssumedTime = Convert.ToDateTime(reader["assumefixtime"]).ToString("yyy/MM/dd HH:mm:ss"); + mEventQry.AssumedTimeNth = + Convert.ToDateTime(reader["assumedtime_nth"]).ToString("yyy/MM/dd HH:mm:ss"); + mEventQry.DelayTimes = Convert.ToInt32(reader["delaytime"].ToString()); + mEventQry.Reason = reader["reason"].ToString(); + mEventQry.EventLocation = reader["eventlocation"].ToString(); } } catch (Exception) { - _PLog.Warn("無法取得母案件派工資訊."); + _pLog.Warn("無法取得母案件派工資訊."); } finally { - if (reader != null ) + if (reader != null) reader.Close(); - if (Command != null) - Command.Dispose(); + if (command != null) + command.Dispose(); } } - private void processSameCustomer(CCS.Object.CCSRecord m_CCSRecord, CCS.Object.EventRecord m_EventRec) + private void ProcessSameCustomer(CcsRecord mCcsRecord, EventRecord mEventRec) { - _PLog.Info("處理相同用戶重複來電..."); + _pLog.Info("處理相同用戶重複來電..."); StringBuilder note = null; - String SqlStmt = "select note from eos.eventrecord where caseid = " + m_EventRec.getTmpCaseID(); - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); - OracleDataReader reader = Command.ExecuteReader(); + var sqlStmt = "select note from eos.eventrecord where caseid = " + mEventRec.TmpCaseId; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); try { @@ -658,27 +666,26 @@ Console.WriteLine(e.StackTrace); } finally - { + { reader.Close(); - Command.Dispose(); + command.Dispose(); } - if ((!note.ToString().EndsWith("|")) && (!note.ToString().Trim().Equals(""))) + if (!note.ToString().EndsWith("|") && !note.ToString().Trim().Equals("")) note.Append(" | "); - if ((m_EventRec.getNote() != null) && (m_EventRec.getNote().Length != 0)) - note.Append(m_EventRec.getAcceptDate() + " " + m_EventRec.getNote()); + if ((mEventRec.Note!= null) && (mEventRec.Note.Length != 0)) + note.Append(mEventRec.AcceptDate+ " " + mEventRec.Note); else - note.Append(m_EventRec.getAcceptDate() + " 用戶再次報案"); - + note.Append(mEventRec.AcceptDate+ " 用戶再次報案"); // 判斷重複來電的用戶最初成立的案件是否是由CCS受理 - bool acceptByCCS = false; + var acceptByCcs = false; - String SqlStmt1 = "select count(*) as count from ccs.num_contrast c,ccs.eventquery q where c.ccsid=q.ccsid and caseid=" - + m_EventRec.getTmpCaseID(); - OracleCommand Command1 = new OracleCommand(SqlStmt1, _ConnectionTPC,_Trx); - OracleDataReader reader1 = Command1.ExecuteReader(); + var sqlStmt1 = "select count(*) as count from ccs.num_contrast c,ccs.eventquery q where c.ccsid=q.ccsid and caseid=" + + mEventRec.TmpCaseId; + var command1 = new OracleCommand(sqlStmt1, _connectionTpc, _trx); + var reader1 = command1.ExecuteReader(); try { @@ -686,7 +693,7 @@ { if (Convert.ToInt32(reader1["count"].ToString()) != 0) { - acceptByCCS = true; + acceptByCcs = true; } } } @@ -696,36 +703,43 @@ finally { reader1.Close(); - Command1.Dispose(); + command1.Dispose(); } - String updCCSEventQuery = null; + string updCcsEventQuery = null; // 若先前案件由CCS受理,則直接從ccs.eventquery取出先前的案件狀態資料寫入 - if (acceptByCCS) + if (acceptByCcs) { - updCCSEventQuery = "update ccs.eventquery set (casestatus,changetime,handlingsummary,assumedtime,assumedtime_nth,delaytimes,reason,eventlocation) = (select casestatus,changetime,handlingsummary,assumedtime,assumedtime_nth,delaytimes,reason,eventlocation from ccs.eventquery where ccsid=(select ccsid from ccs.num_contrast where caseid=" - + m_EventRec.getTmpCaseID() + " and rownum<2)) where CCSID='" + m_CCSRecord.getCCSID() + "'"; + updCcsEventQuery = "update ccs.eventquery set (casestatus,changetime,handlingsummary,assumedtime,assumedtime_nth,delaytimes,reason,eventlocation) = (select casestatus,changetime,handlingsummary,assumedtime,assumedtime_nth,delaytimes,reason,eventlocation from ccs.eventquery where ccsid=(select ccsid from ccs.num_contrast where caseid=" + + mEventRec.TmpCaseId+ " and rownum<2)) where CCSID='" + mCcsRecord.CcsId + "'"; // 若非由CCS受理(OMS,Web)則從EOS的table中尋找先前案件的狀態資料 } else { - String accepttime = null, despatchtime = null, sponsortime = null, assumefixtime = null, assumedtime_nth = null, changetime = null, handling = null, reason = null, eventlocation = null; + string accepttime = null, + despatchtime = null, + sponsortime = null, + assumefixtime = null, + assumedtimeNth = null, + changetime = null, + handling = null, + reason = null, + eventlocation = null; int casestatus = 0, delaytime = 0; - OracleCommand Command2 = null; + OracleCommand command2 = null; OracleDataReader reader2 = null; try { + var sqlStmt2 = "select 1,to_char(r.accepttime,'YYYY/MM/DD HH24:MI:SS') as ACCEPTTIME,to_char(d.despatchtime,'YYYY/MM/DD HH24:MI:SS') as DESPATCHTIME,to_char(s.reconditiontime,'YYYY/MM/DD HH24:MI:SS')SPONSORTIME,e.casestatus,s.handling,to_char(d.assumefixtime,'YYYY/MM/DD HH24:MI:SS') as assumefixtime,to_char(d.assumedtime_nth,'YYYY/MM/DD HH24:MI:SS') as assumedtime_nth,d.delaytime,d.reason,d.eventlocation from eos.eventrecord r,eos.events e,eos.eventdespatch d,eos.eventsponsor s where (r.caseid=e.caseid) and (r.caseid=d.caseid(+)) and (r.caseid=s.caseid(+)) and r.caseid=" + + mEventRec.TmpCaseId + " union " + + + "select 2,to_char(r.accepttime,'YYYY/MM/DD HH24:MI:SS') as ACCEPTTIME,to_char(d.despatchtime,'YYYY/MM/DD HH24:MI:SS') as DESPATCHTIME,to_char(s.reconditiontime,'YYYY/MM/DD HH24:MI:SS')SPONSORTIME,e.casestatus,s.handling,to_char(d.assumefixtime,'YYYY/MM/DD HH24:MI:SS') as assumefixtime,to_char(d.assumedtime_nth,'YYYY/MM/DD HH24:MI:SS') as assumedtime_nth,d.delaytime,d.reason,d.eventlocation from eos.eventrecord r,eos.events e,eos.eventdespatch d,eos.eventsponsor s where (r.caseid=e.caseid) and (r.caseid=d.caseid(+)) and (r.caseid=s.caseid(+)) and r.caseid= (select parentid from eos.mergecase where caseid=" + + mEventRec.TmpCaseId+ ")"; - String SqlStmt2 = "select 1,to_char(r.accepttime,'YYYY/MM/DD HH24:MI:SS') as ACCEPTTIME,to_char(d.despatchtime,'YYYY/MM/DD HH24:MI:SS') as DESPATCHTIME,to_char(s.reconditiontime,'YYYY/MM/DD HH24:MI:SS')SPONSORTIME,e.casestatus,s.handling,to_char(d.assumefixtime,'YYYY/MM/DD HH24:MI:SS') as assumefixtime,to_char(d.assumedtime_nth,'YYYY/MM/DD HH24:MI:SS') as assumedtime_nth,d.delaytime,d.reason,d.eventlocation from eos.eventrecord r,eos.events e,eos.eventdespatch d,eos.eventsponsor s where (r.caseid=e.caseid) and (r.caseid=d.caseid(+)) and (r.caseid=s.caseid(+)) and r.caseid=" - + m_EventRec.getTmpCaseID() - + " union " - + "select 2,to_char(r.accepttime,'YYYY/MM/DD HH24:MI:SS') as ACCEPTTIME,to_char(d.despatchtime,'YYYY/MM/DD HH24:MI:SS') as DESPATCHTIME,to_char(s.reconditiontime,'YYYY/MM/DD HH24:MI:SS')SPONSORTIME,e.casestatus,s.handling,to_char(d.assumefixtime,'YYYY/MM/DD HH24:MI:SS') as assumefixtime,to_char(d.assumedtime_nth,'YYYY/MM/DD HH24:MI:SS') as assumedtime_nth,d.delaytime,d.reason,d.eventlocation from eos.eventrecord r,eos.events e,eos.eventdespatch d,eos.eventsponsor s where (r.caseid=e.caseid) and (r.caseid=d.caseid(+)) and (r.caseid=s.caseid(+)) and r.caseid= (select parentid from eos.mergecase where caseid=" - + m_EventRec.getTmpCaseID() + ")"; - - Command2 = new OracleCommand(SqlStmt2, _ConnectionTPC, _Trx); - reader2 = Command2.ExecuteReader(); + command2 = new OracleCommand(sqlStmt2, _connectionTpc, _trx); + reader2 = command2.ExecuteReader(); while (reader2.Read()) { @@ -733,11 +747,13 @@ despatchtime = reader2["DESPATCHTIME"].ToString(); sponsortime = reader2["SPONSORTIME"].ToString(); assumefixtime = reader2["ASSUMEFIXTIME"] == null ? "" : reader2["ASSUMEFIXTIME"].ToString(); - assumedtime_nth = reader2["ASSUMEDTIME_NTH"] == null ? "" : reader2["ASSUMEDTIME_NTH"].ToString(); + assumedtimeNth = reader2["ASSUMEDTIME_NTH"] == null ? "" : reader2["ASSUMEDTIME_NTH"].ToString(); handling = reader2["HANDLING"] == null ? "" : reader2["HANDLING"].ToString(); reason = reader2["REASON"] == null ? "" : reader2["REASON"].ToString(); casestatus = Convert.ToInt32(reader2["CASESTATUS"].ToString()); - delaytime = reader2["DELAYTIME"].ToString().Length == 0 ? 0 : Convert.ToInt32(reader2["DELAYTIME"].ToString()); + delaytime = reader2["DELAYTIME"].ToString().Length == 0 + ? 0 + : Convert.ToInt32(reader2["DELAYTIME"].ToString()); eventlocation = reader2["EVENTLOCATION"] == null ? "" : reader2["EVENTLOCATION"].ToString(); } @@ -745,99 +761,104 @@ { changetime = accepttime; } - if (despatchtime != null && despatchtime.Length != 0) + if (!string.IsNullOrEmpty(despatchtime)) { changetime = despatchtime; } - if (sponsortime != null && sponsortime.Length != 0) + if (!string.IsNullOrEmpty(sponsortime)) { changetime = sponsortime; } - updCCSEventQuery = "update ccs.eventquery set casestatus=" + casestatus + ",changetime=to_date('" + changetime - + "','YYYY/MM/DD HH24:MI:SS'),handlingsummary='" + handling + "',assumedtime=to_date('" + assumefixtime - + "','YYYY/MM/DD HH24:MI:SS'),assumedtime_nth=to_date('" + assumedtime_nth + "','YYYY/MM/DD HH24:MI:SS'),delaytimes=" - + delaytime + ",reason='" + reason + "',eventlocation='" + eventlocation + "' where ccsid='" + m_CCSRecord.getCCSID() + "'"; + updCcsEventQuery = "update ccs.eventquery set casestatus=" + casestatus + ",changetime=to_date('" + + changetime + + "','YYYY/MM/DD HH24:MI:SS'),handlingsummary='" + handling + + "',assumedtime=to_date('" + assumefixtime + + "','YYYY/MM/DD HH24:MI:SS'),assumedtime_nth=to_date('" + assumedtimeNth + + "','YYYY/MM/DD HH24:MI:SS'),delaytimes=" + + delaytime + ",reason='" + reason + "',eventlocation='" + eventlocation + + "' where ccsid='" + mCcsRecord.CcsId + "'"; } catch (Exception e) { Console.WriteLine(e.Message); } finally - { + { if (reader2 != null) reader2.Close(); - if (Command2 != null) - Command2.Dispose(); + if (command2 != null) + command2.Dispose(); } } - String updEOSEventRecord = "update eos.eventrecord set note = '" + TrimToLimit(note.ToString(), 127) - + "' where caseid = " + m_EventRecord.getTmpCaseID(); - String updCCSNum_Contrast = "update ccs.num_contrast set(acceptnum,caseid) = (select acceptnum," + m_EventRec.getTmpCaseID() - + " from eos.eventrecord where caseid = " + m_EventRec.getTmpCaseID() + ") where ccsid='" + m_CCSRecord.getCCSID() + "'"; + var updEosEventRecord = "update eos.eventrecord set note = '" + TrimToLimit(note.ToString(), 127) + + "' where caseid = " + _mEventRecord.TmpCaseId; + var updCcsNumContrast = "update ccs.num_contrast set(acceptnum,caseid) = (select acceptnum," + + mEventRec.TmpCaseId + " from eos.eventrecord where caseid = " + mEventRec.TmpCaseId+ + ") where ccsid='" + mCcsRecord.CcsId + "'"; - OracleCommand ExeCommand = new OracleCommand(updCCSEventQuery, _ConnectionTPC,_Trx); + var exeCommand = new OracleCommand(updCcsEventQuery, _connectionTpc, _trx); // 將用戶重複來電案件資料寫回CCS.EventQuery - if (ExeCommand.ExecuteNonQuery() <= 0) + if (exeCommand.ExecuteNonQuery() <= 0) { - ExeCommand.Dispose(); + exeCommand.Dispose(); - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); - _PLog.Error("Fail in write back to ccs.eventquery"); + _trx.Dispose(); + _pLog.Error("Fail in write back to ccs.eventquery"); return; } - ExeCommand.CommandText = updEOSEventRecord; + exeCommand.CommandText = updEosEventRecord; // 將CCS案件備註資料Append到EOS.EventRecord - if (ExeCommand.ExecuteNonQuery() <= 0) + if (exeCommand.ExecuteNonQuery() <= 0) { - ExeCommand.Dispose(); + exeCommand.Dispose(); - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); - _PLog.Error("Fail in update eos.eventquery"); + _trx.Dispose(); + _pLog.Error("Fail in update eos.eventquery"); return; } - ExeCommand.CommandText = updCCSNum_Contrast; + exeCommand.CommandText = updCcsNumContrast; // 寫入ccsid <=> caseid 到CCS.Num_Contrast - if (ExeCommand.ExecuteNonQuery() <= 0) + if (exeCommand.ExecuteNonQuery() <= 0) { - ExeCommand.Dispose(); - if (_Trx.Connection.State.ToString().Equals("Open")) - _Trx.Rollback(); + exeCommand.Dispose(); + if (_trx.Connection.State.ToString().Equals("Open")) + _trx.Rollback(); - _Trx.Dispose(); - _PLog.Error("Fail in insert into ccs.num_contrast"); + _trx.Dispose(); + _pLog.Error("Fail in insert into ccs.num_contrast"); return; } - ExeCommand.Dispose(); - _Trx.Commit(); - _Trx.Dispose(); - _PLog.Info("CCS 案件受理程序結束"); + exeCommand.Dispose(); + _trx.Commit(); + _trx.Dispose(); + _pLog.Info("CCS 案件受理程序結束"); } - private String TrimToLimit(String Msg, int MaxLen) + private string TrimToLimit(string msg, int maxLen) { try { - if (Msg.Length <= 1) + if (msg.Length <= 1) { return ""; } - if (Msg.Length <= MaxLen) + if (msg.Length <= maxLen) { - return Msg; + return msg; } - Msg = Msg.Substring(Msg.IndexOf("|") + 1); - return TrimToLimit(Msg, MaxLen); + msg = msg.Substring(msg.IndexOf("|") + 1); + return TrimToLimit(msg, maxLen); } catch (Exception ex) { @@ -846,18 +867,18 @@ } } - - private int getFieldLength(String Owner, String TableName, String FieldName) + private int GetFieldLength(string owner, string tableName, string fieldName) { - String SqlStmt = "SELECT DATA_LENGTH FROM ALL_TAB_COLUMNS WHERE OWNER = '" + Owner + "' AND TABLE_NAME = '" + TableName + "' AND COLUMN_NAME = '" + FieldName + "'"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); - OracleDataReader reader = Command.ExecuteReader(); - int MaxLength = -1; + var sqlStmt = "SELECT DATA_LENGTH FROM ALL_TAB_COLUMNS WHERE OWNER = '" + owner + "' AND TABLE_NAME = '" + + tableName + "' AND COLUMN_NAME = '" + fieldName + "'"; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); + var maxLength = -1; try { if (reader.Read()) - MaxLength = Convert.ToInt32(reader["DATA_LENGTH"].ToString()); + maxLength = Convert.ToInt32(reader["DATA_LENGTH"].ToString()); } catch (Exception e) { @@ -867,55 +888,61 @@ finally { reader.Close(); - Command.Dispose(); + command.Dispose(); } - return MaxLength; + return maxLength; } - private int getFDRID(string Meter) + private int GetFdrid(string meter) { - string SqlStmt = "SELECT TRAN_CORD FROM BASEDB.METER WHERE METR_NUMB = '" + Meter + "'"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); - OracleDataReader reader = Command.ExecuteReader(); - string TPCLID = ""; - int FDRID = 0; - String group = ""; + var sqlStmt = "SELECT TRAN_CORD FROM BASEDB.METER WHERE METR_NUMB = '" + meter + "'"; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); + var tpclid = ""; + var fdrid = 0; + var group = ""; try { if (reader.Read()) - TPCLID = reader["TRAN_CORD"].ToString(); + tpclid = reader["TRAN_CORD"].ToString(); - if ( TPCLID.Length == 0 ) - return FDRID; + if (tpclid.Length == 0) + return fdrid; - if (TPCLID.Length > 11) + if (tpclid.Length > 11) { - group = TPCLID.Substring(TPCLID.Length - 3); - TPCLID = TPCLID.Substring(0, 11).Trim(); - SqlStmt = "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 115 AND UFID = (SELECT UFID FROM BASEDB.SXFMR WHERE OWNERTPCLID = '" + TPCLID - + "' AND GROUP1='" + group + "' AND ROWNUM < 2)"; + group = tpclid.Substring(tpclid.Length - 3); + tpclid = tpclid.Substring(0, 11).Trim(); + sqlStmt = + "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 115 AND UFID = (SELECT UFID FROM BASEDB.SXFMR WHERE OWNERTPCLID = '" + + tpclid + + "' AND GROUP1='" + group + "' AND ROWNUM < 2)"; } else { - SqlStmt = "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 115 AND UFID = (SELECT UFID FROM BASEDB.SXFMR WHERE OWNERTPCLID = '" + TPCLID - + "' AND ROWNUM < 2)"; + sqlStmt = + "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 115 AND UFID = (SELECT UFID FROM BASEDB.SXFMR WHERE OWNERTPCLID = '" + + tpclid + + "' AND ROWNUM < 2)"; } - Command.CommandText = SqlStmt; - reader = Command.ExecuteReader(); + command.CommandText = sqlStmt; + reader = command.ExecuteReader(); if (reader.Read()) - FDRID = Convert.ToInt32(reader["FDR1"].ToString()); + fdrid = Convert.ToInt32(reader["FDR1"].ToString()); else { - SqlStmt = "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 107 AND UFID = (SELECT UFID FROM BASEDB.HICUSTOMER WHERE OWNERTPCLID = '" + TPCLID + "' AND ROWNUM < 2)"; + sqlStmt = + "SELECT FDR1 FROM BASEDB.CONNECTIVITY WHERE FSC = 107 AND UFID = (SELECT UFID FROM BASEDB.HICUSTOMER WHERE OWNERTPCLID = '" + + tpclid + "' AND ROWNUM < 2)"; - Command.CommandText = SqlStmt; - reader = Command.ExecuteReader(); + command.CommandText = sqlStmt; + reader = command.ExecuteReader(); if (reader.Read()) - FDRID = Convert.ToInt32(reader["FDR1"].ToString()); + fdrid = Convert.ToInt32(reader["FDR1"].ToString()); } } catch (Exception e) @@ -926,23 +953,23 @@ finally { reader.Close(); - Command.Dispose(); + command.Dispose(); } - return FDRID; + return fdrid; } - private int getTraceCount(String CCSID) + private int GetTraceCount(string ccsid) { - String SqlStmt = "SELECT TRACECOUNT FROM CCS.TRACECOUNTS WHERE CCSID = '" + CCSID + "'"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); - OracleDataReader reader = Command.ExecuteReader(); - int Count = 0; + var sqlStmt = "SELECT TRACECOUNT FROM CCS.TRACECOUNTS WHERE CCSID = '" + ccsid + "'"; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); + var reader = command.ExecuteReader(); + var count = 0; try { if (reader.Read()) - Count = Convert.ToInt32(reader["TRACECOUNT"].ToString()); + count = Convert.ToInt32(reader["TRACECOUNT"].ToString()); } catch (Exception e) { @@ -952,29 +979,28 @@ finally { reader.Close(); - Command.Dispose(); + command.Dispose(); } - return Count; + return count; } - private bool UpdateTraceCount(String CCSID,bool isNew) + private bool UpdateTraceCount(string ccsid, bool isNew) { - String SqlStmt ; + string sqlStmt; if (isNew) - SqlStmt = "INSERT INTO CCS.TRACECOUNTS (CCSID,TRACECOUNT) VALUES ('" + CCSID + "',1)"; + sqlStmt = "INSERT INTO CCS.TRACECOUNTS (CCSID,TRACECOUNT) VALUES ('" + ccsid + "',1)"; else - SqlStmt = "UPDATE CCS.TRACECOUNTS SET TRACECOUNT = TRACECOUNT + 1 WHERE CCSID = '" + CCSID + "'"; - OracleCommand Command = new OracleCommand(SqlStmt, _ConnectionTPC, _Trx); + sqlStmt = "UPDATE CCS.TRACECOUNTS SET TRACECOUNT = TRACECOUNT + 1 WHERE CCSID = '" + ccsid + "'"; + var command = new OracleCommand(sqlStmt, _connectionTpc, _trx); try { - int Result = Command.ExecuteNonQuery(); + var result = command.ExecuteNonQuery(); - if (Result == 1) + if (result == 1) return true; - } catch (Exception e) { @@ -983,11 +1009,9 @@ } finally { - Command.Dispose(); + command.Dispose(); } return false; } - - } -} +} \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT