CDSProcessF.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSProcessF.h"
  4. #include "AppGlobalF.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. return LoadProcessMaster(ADbConn);
  59. }
  60. //---------------------------------------------------------------------------
  61. bool TItsProcessManager::LoadProcessMaster(TADOConnection *ADbConn/*=NULL*/)
  62. {
  63. bool bResult = true;
  64. String sQry;
  65. TADOQuery *pADO = NULL;
  66. sQry = "SELECT A.SYST_ID , \r\n"
  67. " A.SYST_TYPE, \r\n"
  68. " A.SYST_NMBR, \r\n"
  69. " A.SYST_NM , \r\n"
  70. " A.SYST_IP_1, \r\n"
  71. " A.SYST_IP_2, \r\n"
  72. " A.PRGM_PORT, \r\n"
  73. " A.HOST_NM , \r\n"
  74. " A.OS_NM , \r\n"
  75. " A.STTS_DSPL_YN, \r\n"
  76. " A.DEL_YN \r\n"
  77. " FROM TB_UNIT_SYST A \r\n";
  78. // " ORDER BY A.SYST_ID \r\n";
  79. try
  80. {
  81. FLists.Lock();
  82. FLists.RemoveAll();
  83. try
  84. {
  85. pADO = new TADOQuery(NULL);
  86. pADO->Close();
  87. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  88. pADO->SQL->Clear();
  89. pADO->SQL->Text = sQry;
  90. pADO->Open();
  91. for( ; !pADO->Eof; pADO->Next())
  92. {
  93. TItsProcess *pObj = new TItsProcess();
  94. pObj->SYST_ID = pADO->FieldByName("SYST_ID")->AsString;
  95. pObj->SYST_TYPE = pADO->FieldByName("SYST_TYPE")->AsString;
  96. pObj->SYST_NMBR = pADO->FieldByName("SYST_NMBR")->AsString;
  97. pObj->SYST_NM = pADO->FieldByName("SYST_NM")->AsString;
  98. pObj->SYST_IP_1 = pADO->FieldByName("SYST_IP_1")->AsString;
  99. pObj->SYST_IP_2 = pADO->FieldByName("SYST_IP_2")->AsString;
  100. pObj->PRGM_PORT = pADO->FieldByName("PRGM_PORT")->AsString;
  101. pObj->HOST_NM = pADO->FieldByName("HOST_NM")->AsString;
  102. pObj->OS_NM = pADO->FieldByName("OS_NM")->AsString;
  103. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  104. pObj->STTS_DSPL_YN = pADO->FieldByName("STTS_DSPL_YN")->AsString;
  105. pObj->GridIndex = -1;
  106. pObj->CommStatus = "0";
  107. FLists.Push(pObj->SYST_ID, pObj);
  108. pObj->Completed = true;
  109. pObj->MEM_DEL = "N";
  110. }
  111. }
  112. catch(EDatabaseError &E)
  113. {
  114. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  115. DBERRORMSG("TItsProcessManager::LoadProcessMaster", String(E.ClassName()), E.Message, sQry);
  116. bResult = false;
  117. throw Exception(String(E.ClassName()) + E.Message);
  118. }
  119. catch(Exception &exception)
  120. {
  121. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  122. DBERRORMSG("TItsProcessManager::LoadProcessMaster", String(exception.ClassName()), exception.Message, sQry);
  123. bResult = false;
  124. throw Exception(String(exception.ClassName()) + exception.Message);
  125. }
  126. }
  127. __finally
  128. {
  129. if (pADO)
  130. {
  131. pADO->Close();
  132. delete pADO;
  133. }
  134. FLists.UnLock();
  135. }
  136. return bResult;
  137. }
  138. //---------------------------------------------------------------------------
  139. bool TItsProcessManager::LoadProcessStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  140. {
  141. bool bResult = true;
  142. String sQry;
  143. TADOQuery *pADO = NULL;
  144. sQry = "SELECT SYST_ID, \r\n"
  145. " DECODE(SYST_STTS_CD, 'SPS1', '1', \r\n"
  146. " 'SPS2', '1', \r\n"
  147. " 'SPS4', '2', \r\n"
  148. " '0') AS COMMSTATUS \r\n"
  149. " FROM TB_UNIT_SYST_STTS \r\n"
  150. " WHERE UPDT_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n";
  151. try
  152. {
  153. TItsProcess *pProcess = NULL;
  154. ItsProcessManager->FLists.Lock();
  155. try
  156. {
  157. FOR_STL(TItsProcess*, pObj, ItsProcessManager->FLists)
  158. {
  159. pObj->FCommStatus = "0";
  160. }
  161. pADO = new TADOQuery(NULL);
  162. pADO->Close();
  163. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  164. pADO->SQL->Clear();
  165. pADO->SQL->Text = sQry;
  166. pADO->Open();
  167. //int nRows = pADO->RecordCount;
  168. for( ; !pADO->Eof; pADO->Next())
  169. {
  170. String sId = pADO->FieldByName("SYST_ID")->AsString;
  171. pProcess = ItsProcessManager->FLists.Find(sId);
  172. if (!pProcess) continue;
  173. pProcess->FCommStatus = pADO->FieldByName("COMMSTATUS")->AsString;
  174. }
  175. }
  176. catch(EDatabaseError &E)
  177. {
  178. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  179. DBERRORLOG("TItsProcessManager::LoadProcessStatusFromDb", String(E.ClassName()), E.Message, sQry);
  180. return false;
  181. throw Exception(String(E.ClassName()) + E.Message);
  182. }
  183. catch(Exception &exception)
  184. {
  185. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  186. DBERRORLOG("TItsProcessManager::LoadProcessStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  187. return false;
  188. throw Exception(String(exception.ClassName()) + exception.Message);
  189. }
  190. }
  191. __finally
  192. {
  193. if (pADO)
  194. {
  195. pADO->Close();
  196. delete pADO;
  197. }
  198. ItsProcessManager->FLists.UnLock();
  199. }
  200. return bResult;
  201. }
  202. //---------------------------------------------------------------------------