CDSProcessF.cpp 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSProcessF.h"
  4. #include "VmsCommonLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TItsProcess::TItsProcess()
  8. {
  9. FCommStatus = "CMS2"; // 장비 통신상태값
  10. FDoorStatus = "CMS2"; // 장비 Door상태값
  11. FCompleted = false;
  12. FEditMode = DB_INIT;
  13. FGridIndex = -1;
  14. FMEM_DEL = "N";
  15. Clear();
  16. }
  17. //---------------------------------------------------------------------------
  18. void TItsProcess::Clear()
  19. {
  20. #if 0
  21. SYST_ID = "";
  22. SYST_TYPE = "";
  23. SYST_NMBR = "";
  24. SYST_NM = "";
  25. SYST_IP_1 = "";
  26. SYST_IP_2 = "";
  27. PRGM_PORT = "";
  28. HOST_NM = "";
  29. OS_NM = "";
  30. DEL_YN = "N";
  31. STTS_DSPL_YN = "N";
  32. CommStatus = "CMS2"; // 장비 통신상태값
  33. DoorStatus = "CMS2"; // 장비 Door상태값
  34. GridIndex = -1; // 그리드 인덱스
  35. #endif
  36. }
  37. //---------------------------------------------------------------------------
  38. TItsProcess::~TItsProcess()
  39. {
  40. }
  41. //---------------------------------------------------------------------------
  42. //---------------------------------------------------------------------------
  43. TItsProcessManager *ItsProcessManager = NULL;
  44. //---------------------------------------------------------------------------
  45. /*
  46. * Process Manager
  47. */
  48. TItsProcessManager::TItsProcessManager()
  49. {
  50. }
  51. //---------------------------------------------------------------------------
  52. TItsProcessManager::~TItsProcessManager()
  53. {
  54. }
  55. //---------------------------------------------------------------------------
  56. bool TItsProcessManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  57. {
  58. bool bResult = true;
  59. String sQry;
  60. TADOQuery *pADO = NULL;
  61. sQry = "SELECT A.SYST_ID , \r\n"
  62. " A.SYST_TYPE, \r\n"
  63. " A.SYST_NMBR, \r\n"
  64. " A.SYST_NM , \r\n"
  65. " A.SYST_IP_1, \r\n"
  66. " A.SYST_IP_2, \r\n"
  67. " A.PRGM_PORT, \r\n"
  68. " A.HOST_NM , \r\n"
  69. " A.OS_NM , \r\n"
  70. " A.STTS_DSPL_YN, \r\n"
  71. " A.DEL_YN \r\n"
  72. " FROM TB_UNIT_SYST A \r\n";
  73. FLists.Lock();
  74. try
  75. {
  76. FLists.RemoveAll();
  77. try
  78. {
  79. pADO = new TADOQuery(NULL);
  80. pADO->Close();
  81. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  82. pADO->SQL->Clear();
  83. pADO->SQL->Text = sQry;
  84. pADO->Prepared = true;
  85. pADO->Open();
  86. for( ; !pADO->Eof; pADO->Next())
  87. {
  88. TItsProcess *pObj = new TItsProcess();
  89. pObj->SYST_ID = pADO->FieldByName("SYST_ID")->AsString;
  90. pObj->SYST_TYPE = pADO->FieldByName("SYST_TYPE")->AsString;
  91. pObj->SYST_NMBR = pADO->FieldByName("SYST_NMBR")->AsString;
  92. pObj->SYST_NM = pADO->FieldByName("SYST_NM")->AsString;
  93. pObj->SYST_IP_1 = pADO->FieldByName("SYST_IP_1")->AsString;
  94. pObj->SYST_IP_2 = pADO->FieldByName("SYST_IP_2")->AsString;
  95. pObj->PRGM_PORT = pADO->FieldByName("PRGM_PORT")->AsString;
  96. pObj->HOST_NM = pADO->FieldByName("HOST_NM")->AsString;
  97. pObj->OS_NM = pADO->FieldByName("OS_NM")->AsString;
  98. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  99. pObj->STTS_DSPL_YN = pADO->FieldByName("STTS_DSPL_YN")->AsString;
  100. pObj->GridIndex = -1;
  101. pObj->CommStatus = "0";
  102. FLists.Push(pObj->SYST_ID, pObj);
  103. pObj->Completed = true;
  104. pObj->MEM_DEL = "N";
  105. }
  106. }
  107. catch(EDatabaseError &E)
  108. {
  109. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  110. DBERRORMSG("TItsProcessManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  111. bResult = false;
  112. throw Exception(String(E.ClassName()) + E.Message);
  113. }
  114. catch(Exception &exception)
  115. {
  116. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  117. DBERRORMSG("TItsProcessManager::LoadFromDb", String(exception.ClassName()), exception.Message, sQry);
  118. bResult = false;
  119. throw Exception(String(exception.ClassName()) + exception.Message);
  120. }
  121. }
  122. __finally
  123. {
  124. if (pADO)
  125. {
  126. pADO->Close();
  127. delete pADO;
  128. }
  129. FLists.UnLock();
  130. }
  131. return bResult;
  132. }
  133. //---------------------------------------------------------------------------
  134. bool TItsProcessManager::LoadProcessStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  135. {
  136. bool bResult = true;
  137. String sQry;
  138. TADOQuery *pADO = NULL;
  139. sQry = "SELECT SYST_ID, \r\n"
  140. " DECODE(SYST_STTS_CD, 'SPS1', '1', \r\n"
  141. " 'SPS2', '1', \r\n"
  142. " 'SPS4', '2', \r\n"
  143. " '0') AS COMMSTATUS \r\n"
  144. " FROM TB_UNIT_SYST_STTS \r\n"
  145. " WHERE UPDT_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n";
  146. ItsProcessManager->FLists.Lock();
  147. try
  148. {
  149. TItsProcess *pProcess = NULL;
  150. try
  151. {
  152. FOR_STL(TItsProcess*, pObj, ItsProcessManager->FLists)
  153. {
  154. pObj->FCommStatus = "0";
  155. }
  156. pADO = new TADOQuery(NULL);
  157. pADO->Close();
  158. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  159. pADO->SQL->Clear();
  160. pADO->SQL->Text = sQry;
  161. pADO->Prepared = true;
  162. pADO->Open();
  163. //int nRows = pADO->RecordCount;
  164. for( ; !pADO->Eof; pADO->Next())
  165. {
  166. String sId = pADO->FieldByName("SYST_ID")->AsString;
  167. pProcess = ItsProcessManager->FLists.Find(sId);
  168. if (!pProcess) continue;
  169. pProcess->FCommStatus = pADO->FieldByName("COMMSTATUS")->AsString;
  170. }
  171. }
  172. catch(EDatabaseError &E)
  173. {
  174. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  175. DBERRORLOG("TItsProcessManager::LoadProcessStatusFromDb", String(E.ClassName()), E.Message, sQry);
  176. return false;
  177. throw Exception(String(E.ClassName()) + E.Message);
  178. }
  179. catch(Exception &exception)
  180. {
  181. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  182. DBERRORLOG("TItsProcessManager::LoadProcessStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  183. return false;
  184. throw Exception(String(exception.ClassName()) + exception.Message);
  185. }
  186. }
  187. __finally
  188. {
  189. if (pADO)
  190. {
  191. pADO->Close();
  192. delete pADO;
  193. }
  194. ItsProcessManager->FLists.UnLock();
  195. }
  196. return bResult;
  197. }
  198. //---------------------------------------------------------------------------