VmsOprMain.cpp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <tchar.h>
  5. #include <cxFormats.hpp>
  6. //---------------------------------------------------------------------------
  7. #include "AppGlobalF.h"
  8. #include "ITSDbF.h"
  9. #include "ITSLangTransF.h"
  10. //---------------------------------------------------------------------------
  11. USEFORM("..\COMMON\FRAME\FRAME_VmsListF.cpp", FRAMEVmsList); /* TFrame: File Type */
  12. USEFORM("PLUGIN\VMSM500M\VMSM510MF.cpp", VMSM510M);
  13. USEFORM("PLUGIN\VMS0100M\VMS0100MF.cpp", VMS0100M);
  14. USEFORM("PLUGIN\COMMON\VMSWBACKF.cpp", VMSWBACK);
  15. USEFORM("PLUGIN\COMMON\VMSBACKMF.cpp", VMSBACKM);
  16. USEFORM("PLUGIN\VMSM500M\VMSM500MF.cpp", VMSM500M);
  17. USEFORM("PLUGIN\VMSM100M\VMSM100MF.cpp", VMSM100M);
  18. USEFORM("PLUGIN\VMS0200M\VMS0200MF.cpp", VMS0200M);
  19. USEFORM("PLUGIN\COMMON\VMSWCAM0F.cpp", VMSWCAM0);
  20. USEFORM("MAIN\FrmVmsOprMainF.cpp", FrmVmsOprMain);
  21. USEFORM("PLUGIN\VMSM900M\VMSM900MF.cpp", VMSM900M);
  22. USEFORM("PLUGIN\COMMON\VMSVIEWMF.cpp", VMSVIEWM);
  23. USEFORM("PLUGIN\VMSM200M\VMSM200MF.cpp", VMSM200M);
  24. USEFORM("PLUGIN\VMSM410M\VMSM410MF.cpp", VMSM410M);
  25. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateF.cpp", FRAMEVmsState); /* TFrame: File Type */
  26. USEFORM("PLUGIN\COMMON\VMSMODL0F.cpp", VMSMODL0);
  27. USEFORM("PLUGIN\99.LOGIN\FRMLoginF.cpp", FRMLogin);
  28. USEFORM("PLUGIN\VMSM600M\VMSM630MF.cpp", VMSM630M);
  29. USEFORM("PLUGIN\VMSM500M\VMSM520MF.cpp", VMSM520M);
  30. USEFORM("PLUGIN\VMSM210M\VMSM210MF.cpp", VMSM210M);
  31. USEFORM("PLUGIN\VMS0010M\VMS0010MF.cpp", VMS0010M);
  32. USEFORM("PLUGIN\VMS0000M\FrmVmsMsgF.cpp", FrmVmsMsg);
  33. USEFORM("PLUGIN\00.FRAME\FRAME_VmsMsgListF.cpp", FRAMEVmsMsgList); /* TFrame: File Type */
  34. USEFORM("PLUGIN\VMS0000M\VMS0000MF.cpp", VMS0000M);
  35. USEFORM("PLUGIN\VMS0000M\FrmIcsCamF.cpp", FrmIcsCam);
  36. USEFORM("PLUGIN\99.LOGIN\FRMPswdChngeF.cpp", FRMPswdChnge);
  37. USEFORM("PLUGIN\VMSM400M\VMSM400MF.cpp", VMSM400M);
  38. USEFORM("PLUGIN\VMSM800M\VMSM800MF.cpp", VMSM800M);
  39. USEFORM("PLUGIN\00.FRAME\FRAME_VmsSchListF.cpp", FRAMEVmsSchList); /* TFrame: File Type */
  40. USEFORM("PLUGIN\COMMON\VMSEDT0MF.cpp", VMSEDT0M);
  41. USEFORM("PLUGIN\VMS0600M\VMS0600MF.cpp", VMS0600M);
  42. USEFORM("PLUGIN\VMS0000M\VMS00MAPF.cpp", VMS00MAP);
  43. USEFORM("PLUGIN\VMS0500M\VMS0500MF.cpp", VMS0500M);
  44. USEFORM("PLUGIN\COMMON\VMSSEL0MF.cpp", VMSSEL0M);
  45. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityStatusListF.cpp", FRAMEFacilityStatusList); /* TFrame: File Type */
  46. USEFORM("PLUGIN\VMSM500M\VMSM530MF.cpp", VMSM530M);
  47. USEFORM("PLUGIN\VMS0300M\VMS0300MF.cpp", VMS0300M);
  48. USEFORM("PLUGIN\VMS0200M\VMS0201MF.cpp", VMS0201M);
  49. USEFORM("PLUGIN\VMSM600M\VMSM600MF.cpp", VMSM600M);
  50. USEFORM("PLUGIN\VMS0000M\FrmVmsCamF.cpp", FrmVmsCam);
  51. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateListF.cpp", FRAMEVmsStateList); /* TFrame: File Type */
  52. USEFORM("PLUGIN\VMSM700M\VMSM700MF.cpp", VMSM700M);
  53. USEFORM("PLUGIN\VMSM600M\VMSM610MF.cpp", VMSM610M);
  54. USEFORM("PLUGIN\COMMON\VMSFORM0F.cpp", VMSFORM0);
  55. USEFORM("PLUGIN\VMSM420M\VMSM420MF.cpp", VMSM420M);
  56. USEFORM("..\COMMON\FRAME\FRAME_OpenMapF.cpp", FRAMEOpenMap); /* TFrame: File Type */
  57. USEFORM("PLUGIN\VMSM430M\VMSM430MF.cpp", VMSM430M);
  58. USEFORM("MAIN\FrmResourceF.cpp", FrmLang);
  59. USEFORM("PLUGIN\VMSM500M\VMSM550MF.cpp", VMSM550M);
  60. USEFORM("PLUGIN\VMSM600M\VMSM650MF.cpp", VMSM650M);
  61. USEFORM("PLUGIN\00.FRAME\FRAME_GoogleMapF.cpp", FRAMEGoogleMap); /* TFrame: File Type */
  62. USEFORM("PLUGIN\VMSM600M\VMSM620MF.cpp", VMSM620M);
  63. USEFORM("PLUGIN\VMSM500M\VMSM540MF.cpp", VMSM540M);
  64. USEFORM("PLUGIN\VMSM600M\VMSM640MF.cpp", VMSM640M);
  65. USEFORM("MAIN\FrmInitializeF.cpp", FrmInitialize);
  66. USEFORM("PLUGIN\00.FRAME\FRAME_VmsIfscListF.cpp", FRAMEVmsIfscList); /* TFrame: File Type */
  67. USEFORM("PLUGIN\VMSM600M\VMSM660MF.cpp", VMSM660M);
  68. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStatusF.cpp", FRAME_VmsStatus); /* TFrame: File Type */
  69. //---------------------------------------------------------------------------
  70. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  71. {
  72. int nLoginRes;
  73. DateSeparator = '-';
  74. TimeSeparator = ':';
  75. ShortDateFormat ="yyyy-MM-dd";
  76. ShortTimeFormat = "hh:nn:ss";
  77. LongTimeFormat = "hh:nn:ss";
  78. String sLoginId = "PATMS";
  79. bool bLogin = true;
  80. int nArgs = ParamCount();
  81. if (nArgs >= 1)
  82. {
  83. sLoginId = ParamStr(1);
  84. //ShowMessage(sLoginId);
  85. bLogin = false;
  86. }
  87. int nRes;
  88. g_nPid = (int)GetCurrentProcessId();
  89. g_sAppDir = ExtractFilePath(Application->ExeName);
  90. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  91. g_sCfgDir = g_sAppDir + "Cfg\\";
  92. g_sLogDir = g_sAppDir + "Log\\";
  93. g_sTempDir = g_sAppDir + "Temp\\";
  94. g_sFormsDir = g_sCfgDir + "Forms\\";
  95. g_sImageDir = g_sAppDir + "Image\\";
  96. g_sVideoDir = g_sAppDir + "Video\\";
  97. g_sMapDir = g_sAppDir + "MAPDATA\\";
  98. ForceDirectories(g_sCfgDir.c_str());
  99. ForceDirectories(g_sLogDir.c_str());
  100. ForceDirectories(g_sTempDir.c_str());
  101. ForceDirectories(g_sFormsDir.c_str());
  102. ForceDirectories(g_sImageDir.c_str());
  103. ForceDirectories(g_sVideoDir.c_str());
  104. ForceDirectories(g_sMapDir.c_str());
  105. String sTempDir = g_sLogDir + "Db\\";
  106. ForceDirectories(sTempDir.c_str());
  107. String sAppDir = ExtractFilePath(Application->ExeName);
  108. ChDir(sAppDir);
  109. /*
  110. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  111. */
  112. LoadDefaultConfigInfo("ITS_OP");
  113. HANDLE hMutex;
  114. try
  115. {
  116. String sLockFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".lock");
  117. String sProgMutexNm = "HANTE_PTATMS_" + sLockFile;
  118. if ((hMutex=OpenMutex(MUTEX_ALL_ACCESS, false, sProgMutexNm.c_str()))==NULL)
  119. hMutex = CreateMutex(NULL, true, sProgMutexNm.c_str());
  120. else
  121. {
  122. if (g_AppCfg.sLang == "kr")
  123. {
  124. Application->MessageBox(L"VMS 운영단말 프로그램이 이미 실행중입니다.\r\n작업관리자의 프로세스 목록에서 프로그램을 종료후 실행해 주십시오.",
  125. L"프로그램 시작 오류!!!",
  126. MB_OK|MB_ICONERROR);
  127. }
  128. else
  129. {
  130. Application->MessageBox(L"The VMS operating terminal program is already running.\r\nPlease exit the program from the process list of Task Manager and execute it.",
  131. L"Program Start Error!!!",
  132. MB_OK|MB_ICONERROR);
  133. }
  134. return 0;
  135. }
  136. }
  137. catch (Exception &exception)
  138. {
  139. Application->ShowException(&exception);
  140. return 0;
  141. }
  142. g_sLangDir = g_sAppDir + "Lang\\";
  143. g_sLangDir = g_sLangDir + g_AppCfg.sLang + "\\";
  144. ForceDirectories(g_sLangDir.c_str());
  145. LangTrans = new TLangTrans("VmsOprMain", g_AppCfg.sLang, g_sLangDir, true);
  146. //CommLog = new TCommLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  147. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  148. ITSLog->FLogCfg = g_LogCfg;
  149. LOGINFO("Program start....");
  150. if (!ITSDb_Initialize())
  151. {
  152. if (g_AppCfg.sLang == "kr")
  153. {
  154. Application->MessageBox(L"Database 자원을 시스템으로부터 얻지 못했습니다.\r\n\r\n프로그램을 종료합니다.",
  155. L"프로그램 시작 오류!!!",
  156. MB_OK|MB_ICONERROR);
  157. }
  158. else
  159. {
  160. Application->MessageBox(L"Database resource could not be obtained from the system.\r\n\r\nExit the program.",
  161. L"Program Start Error!!!",
  162. MB_OK|MB_ICONERROR);
  163. }
  164. goto prog_exit;
  165. }
  166. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  167. g_AppCfg.bLoginPrompt = bLogin;
  168. if (g_AppCfg.bLoginPrompt)
  169. {
  170. /*
  171. * 로그인 처리(라이브러리 로딩 실패시에만 프로그램을 종료하자-일단...)
  172. */
  173. g_AppCfg.sSkinName = "Blue";
  174. nLoginRes = UserLogin();
  175. if (nLoginRes <= 0)
  176. {
  177. goto prog_exit;
  178. }
  179. }
  180. else
  181. {
  182. if (!ITSDb_Open())
  183. {
  184. if (g_AppCfg.sLang == "kr")
  185. {
  186. Application->MessageBox(L"데이터베이스 접속에 실패하였습니다.\r\n\r\n프로그램을 종료합니다.",
  187. L"프로그램 시작 오류!!!",
  188. MB_OK|MB_ICONERROR);
  189. }
  190. else
  191. {
  192. Application->MessageBox(L"Database connection failed.\r\n\r\nExit the program.",
  193. L"Program Start Error!!!",
  194. MB_OK|MB_ICONERROR);
  195. }
  196. goto prog_exit;
  197. }
  198. g_pLOGIN = ITSDb_GetLoginInfo();
  199. g_pLOGIN->bLogin = true;
  200. g_pLOGIN->sUserId = "PATMS";//sLoginId; 라이브러리함수에서 ADMIN으로 변경됨
  201. g_pLOGIN->sUserName = "default";
  202. g_pLOGIN->sUserRightId = "SYS1";
  203. g_pLOGIN->sUserRightName = "SYS1";
  204. g_pLOGIN->sConnSystem = "VMM";
  205. g_pLOGIN->sLoginSeq = "0";
  206. g_pLOGIN->sLoginIp = "127.0.0.1";
  207. g_pLOGIN->sLoginTime = Now().FormatString("yyyymmddhhnnss");
  208. CMM_InsertLoginHist(g_pLOGIN, true);
  209. }
  210. try
  211. {
  212. ReportMemoryLeaksOnShutdown = true;
  213. Application->Initialize();
  214. Application->MainFormOnTaskBar = true;
  215. Application->Title = g_AppCfg.sTitle;
  216. Application->Title = "VMS 운영관리";
  217. Application->CreateForm(__classid(TFrmVmsOprMain), &FrmVmsOprMain);
  218. Application->CreateForm(__classid(TFrmLang), &FrmLang);
  219. Application->Run();
  220. }
  221. catch (Exception &exception)
  222. {
  223. Application->ShowException(&exception);
  224. }
  225. catch (...)
  226. {
  227. try
  228. {
  229. throw Exception("");
  230. }
  231. catch (Exception &exception)
  232. {
  233. Application->ShowException(&exception);
  234. }
  235. }
  236. prog_exit:
  237. try
  238. {
  239. ITSDb_Finalize();
  240. ReleaseMutex(hMutex);
  241. CloseHandle(hMutex);
  242. hMutex = NULL;
  243. LOGINFO("Program end....");
  244. }
  245. catch(...)
  246. {
  247. }
  248. return 0;
  249. }
  250. //---------------------------------------------------------------------------