package com.eactive.eai.rms.onl.common.service;//package com.eactive.eai.rms.onl.common.service;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import org.apache.log4j.Logger;
//import org.quartz.Job;
//import org.quartz.JobExecutionContext;
//import org.quartz.JobExecutionException;
//import org.quartz.SchedulerException;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.ApplicationContext;
//import org.springframework.stereotype.Component;
//
//import com.eactive.eai.rms.common.datasource.DataSourceType;
//import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
//import com.eactive.eai.rms.onl.dashboard.controller.MobileMonitorShareMemory;
//import com.eactive.eai.rms.onl.dashboard.service.Dashboard2RepositoryService;
//
//import com.eactive.eai.rms.onl.tracking.vo.MemStaticsVo;
//
//
//@Component
//public class MobileMonitorTranUpdateJob implements Job{
//
//	/**
//	 * Logger
//	 */
//	private static final Logger logger = Logger.getLogger(MobileMonitorTranUpdateJob.class);
//    
//    
//    @Autowired
//    @Qualifier("dashboard2RepositoryService")
//    private Dashboard2RepositoryService dashboard2Repository;
//    
//    @Autowired
//    @Qualifier("eaiServerInfoService")    
//    private EaiServerInfoService eaiServerInfoService;
//    
//    private final String FIELD_SEP = "," ;
//    private final String LINE_SEP = ";" ;
//    
//    @Override
//	public void execute(JobExecutionContext context) throws JobExecutionException {
//    	
//    	if(logger.isInfoEnabled()) logger.info("START MobileMonitorTranUpdateJob");
//
//   		ApplicationContext appContext = null;
//   		try {
//   			appContext = (ApplicationContext)context.getScheduler().getContext().get("applicationContext");
//   			dashboard2Repository = (Dashboard2RepositoryService)appContext.getBean("dashboard2RepositoryService");
//   			eaiServerInfoService = (EaiServerInfoService)appContext.getBean("eaiServerInfoService");
//   			
//   		} catch (SchedulerException e) {
//   			logger.error("applicationContext get module error",e);
//   			return ;
//   		}  
//   		
//   		
//   	try{
//   			
//   		//String groupCoCd = "ALL";
//		String tradeTarget = "ALL";
//		StringBuffer sb = new StringBuffer();
//		
//		HashMap<String, MemStaticsVo> memStaticsVos = new HashMap<String, MemStaticsVo>();
//		for(DataSourceType dataSourceType : DataSourceTypeManager.getOnlineDataSourceTypes()){
//			String typeName = dataSourceType.getName();
//			memStaticsVos.put(typeName, dashboard2Repository.getMemTradeVoByService(typeName));
//		}
//		
//		//MemStaticsVo vo = null ;
//		
//		int procTotal = 0;
//		int timeoutTotal = 0;
//		int errorTotal = 0;
//		int syserrorTotal = 0;
//		
//		String hostname = "";
//		String instFlag = "";
//
//		HashMap<String,String> keyMap = new HashMap<String,String>();
//		keyMap.put("NSG","ieaapon");
//		keyMap.put("DSG","ieaapod");
//		keyMap.put("GSG","ieaapog");
//		keyMap.put("ZSG","ieaapoz");
//		keyMap.put("ASG","ieaapoa");
//		keyMap.put("ISG","ieaapoi");
//		
//		if( "ALL".equals(tradeTarget) ) {
//			for (String key : memStaticsVos.keySet()) {
//				MemStaticsVo memStaticsVo = memStaticsVos.get(key);
//				
//				DataSourceType dt = DataSourceTypeManager.getDataSourceType(key);
//				String typeText = "";
//				
//				if(dt != null){
//					 typeText = dt.getText();
//				}
//				
//				hostname = getHostName(key);
//				
//				instFlag = keyMap.get(key);
//				
//				sb.append(typeText).append(FIELD_SEP);
//				sb.append(instFlag).append(FIELD_SEP);
//    			sb.append(memStaticsVo.getProcTotal()).append(FIELD_SEP);
//    			sb.append(memStaticsVo.getTimeoutTotal()).append(FIELD_SEP);
//    			sb.append(memStaticsVo.getErrorTotal()).append(FIELD_SEP);
//    			sb.append(memStaticsVo.getSysErrorTotal()).append(FIELD_SEP);
//    			sb.append(LINE_SEP);
//    			
//    			procTotal += memStaticsVo.getProcTotal();
//    			timeoutTotal += memStaticsVo.getTimeoutTotal();
//    			errorTotal += memStaticsVo.getErrorTotal();
//    			syserrorTotal += memStaticsVo.getSysErrorTotal();
//			}
//		} else {
//			MemStaticsVo memStaticsVo = memStaticsVos.get(tradeTarget);
//			
//			sb.append(tradeTarget).append(FIELD_SEP);
//			sb.append(memStaticsVo.getProcTotal()).append(FIELD_SEP);
//			sb.append(memStaticsVo.getTimeoutTotal()).append(FIELD_SEP);
//			sb.append(memStaticsVo.getErrorTotal()).append(FIELD_SEP);
//			sb.append(memStaticsVo.getSysErrorTotal()).append(FIELD_SEP);
//			sb.append(LINE_SEP);
//			
//			procTotal = memStaticsVo.getProcTotal();
//			timeoutTotal = memStaticsVo.getTimeoutTotal();
//			errorTotal = memStaticsVo.getErrorTotal();
//			syserrorTotal += memStaticsVo.getSysErrorTotal();
//		}
//		
//		//�ϰ�����
//		String batchCount = DataSourceTypeManager.BATCH + FIELD_SEP + keyMap.get("ISG") +FIELD_SEP + dashboard2Repository.getProcBatch();
//		sb.append( batchCount );
//		
//		logger.info("����� ����͸� tran : " + sb.toString());
//
//		MobileMonitorShareMemory ms = MobileMonitorShareMemory.getInstance();
//		ms.setTranCount(sb.toString());
//	} catch (Exception e) {
//			// TODO Auto-generated catch block
//		logger.error("MobileMonitorTranUpdateJob error : ",e);
//	}
//		
//				
//   }
//    
//    public String getHostName(String typeName) {
//    	String hostname = "";
//    	List<Map<String, String>> list = eaiServerInfoService.getEaiServerIpList(typeName);
//		if( list != null ) {
//			hostname = list.get(0).get("HOSTNAME");
//		}
//		
//		if(hostname != null && hostname.substring(0,hostname.length()-1) != null){
//			hostname = hostname.substring(0,hostname.length()-1);
//		}
//			
//		return hostname;
//			
//    }
//	
//	
//}
