//package com.eactive.eai.agent.web;
//
//import java.io.BufferedReader;
//import java.io.InputStreamReader;
//import java.io.PrintWriter;
//import java.net.URL;
//import java.net.URLConnection;
//import java.util.ArrayList;
//import java.util.HashMap;
//
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import com.eactive.eai.batch.rule.dirInfo.BatchJobPriorityManager;
//import com.eactive.eai.batch.rule.dirInfo.BatchJobPriorityVO;
//import com.eactive.eai.common.property.PropManager;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//
//public class ImgJobPriorityAgent extends HttpServlet
//{
//
//	private static final long serialVersionUID = 1L;
//	Logger logger = LoggerFactory.getLogger(ElinkLogger.LOGGER_DEFAULT);
//
//   /**
//    * 1. 기능 :  요청으로 전달된 Command 실행
//    * 2. 처리 개요 : 요청으로 전달된 Command 실행하고 실행된 결과를 ObjectOutStream을 통해 전송
//    * 3. 주의사항
//    *
//    * @param    request     HttpServletRequest
//    * @param    response    HttpServletResponse
//    * @return
//    * @exception
//    **/
//    public void service(HttpServletRequest request, HttpServletResponse response) {
//    	 String propName = "TelegramInfo{BIIMG_KFTS}";
//         String rurl = "http://172.17.167.92/mf/Pres_Logic/mf1/jsp_mf1eaitranconfirm/evnEaiTranConfirm_Response.jsp";
//         String rvalue = "rvalue=0";
//         boolean isNormal = true;
//
//        try {
//            logger.info("[ImgJobPriorityAgent] Servlet starting .......");
//
//            try{
//	        	PropManager pmanager = PropManager.getInstance();
//	        	rurl = pmanager.getProperty(propName, "result.url");
//            }catch (Exception e){
//            	e.printStackTrace();
//            	isNormal = false;
//            	rvalue="rvalue=-1";
//            	logger.error("[ImgJobPriorityAgent] url property 를 가져오는데 실패했습니다. 프로퍼티가 설정되어있는지 확인요함. - propName : ["+propName+"], url을 기본값 ["+rurl+"]로 설정합니다.");
//            }
//            
//            logger.info("[ImgJobPriorityAgent] rurl : ["+rurl+"]");
//    	
//        	String list = request.getParameter("list");
//        	String strsendCount = request.getParameter("scount");
//        	String strtotalCount = request.getParameter("tcount");
//        	String[] lists = list.split(",");
//        	
//        	if (list == null || list.length() <=0 || lists.length != 3){
//        		logger.error("ImgJobPriorityAgent ] 우선순위 목록 데이터가 비정상적입니다. - ["+list+"]");
//        		isNormal = false;
//        		rvalue="rvalue=-1";
//        	}
//
//        	int sendCount = 0;
//        	int totalCount = 0;
//        	
//        	try{
//        		sendCount = Integer.parseInt(strsendCount);
//        		totalCount = Integer.parseInt(strtotalCount); 
//        		
//        		if (sendCount < 0 || totalCount <0 || sendCount > totalCount){
//        			logger.error("ImgJobPriorityAgent ] count value faile.. [sendCount/totalCount] - ["+sendCount+"/"+totalCount+"]");
//        			isNormal = false;
//            		rvalue="rvalue=-1";
//        		}
//        		
//        	}catch (Exception ne){
//        		ne.printStackTrace();
//        		logger.error("ImgJobPriorityAgent ] count value faile.. [sendCount/totalCount] - ["+sendCount+"/"+totalCount+"]");
//        		isNormal = false;
//        		rvalue="rvalue=-1";
//        	}
//        	
//        	
//        	if (isNormal){
//	            BatchJobPriorityManager jobpmanager = BatchJobPriorityManager.getInstance();
//	        	HashMap jobmap = jobpmanager.getPriorityDatas();
//	        	
//	        	ArrayList alist = (ArrayList)jobmap.get(lists[0]);
//	        	
//	        	if (alist != null && alist.size()>0){
//	    			
//	    			BatchJobPriorityVO vo1 = (BatchJobPriorityVO)alist.get(1); //두번째 가져오기..
//	    			
//	    			if (vo1.isExecuted() && vo1.getDataCount() < totalCount ){
//	    				logger.error("ImgJobPriorityAgent ] 어음 이미지 데이터가 대외기관으로 전송중이므로 메모리 정보 업데이트가 불가합니다.");
//	            		isNormal = false;
//	            		rvalue="rvalue=-2";
//	    			}
//	        	}else {
//	        		ArrayList palist = new ArrayList();
//	        		
//	        		for (int plistIndex = 0; plistIndex < lists.length; plistIndex++){
//	        			
//	        			BatchJobPriorityVO jpvo = new BatchJobPriorityVO();
//	        			
//	        			//기본정보를 설정한다.
//	        			jpvo.setBizCode(lists[plistIndex]);
//	        			jpvo.setOsdCd("KFTS");
//	        			jpvo.setOsdName("결제원송신");
//	        			jpvo.setProcessCd("BIIMG");
//	        			jpvo.setProcessName("어음이미지");
//	
//	        			
//	        			if (plistIndex == 0){
//	        				jpvo.setExecutedFlag(true);
//	            			jpvo.setDataCount(1);		//첫번째는 시작 파일로 파일 수는 1개임.
//	        			}
//	        			if (plistIndex == 1){
//	        				jpvo.setExecutedFlag(true);
//	        				jpvo.setDataCount(sendCount);		//데이터파일은 파라메터값으로 설정.
//	        				jpvo.setDataCountInfo(totalCount);
//	        			}
//	        			
//	        			palist.add(plistIndex, jpvo);
//	
//	        		}
//	        		jobpmanager.addJobPriorityData(lists[0], palist);
//	        		
//	        		logger.info("[ImgJobPriorityAgent] 메모리정보 업데이트했습니다. - ["+list+"/"+strsendCount+"/"+strtotalCount+"]");
//	        	}
//        	}
//
//        	URL u = new URL(rurl);
//        	URLConnection conn = u.openConnection();
//
//            if (conn == null) {
//            	logger.error("[ImgJobPriorityAgent] HttpURLConnection 을 생성할 수 없습니다. (URL : "+ rurl +")");
//            }
//
//            conn.setDoInput(true);
//            conn.setDoOutput(true);
//            conn.setUseCaches(false);
//           
//      
//            PrintWriter pout = new PrintWriter(conn.getOutputStream());
//            pout.println(rvalue);
//            pout.close();
//
//            try{
//            	
//            	BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//
//            }catch (Exception ce){
//            	logger.error("[ImgJobPriorityAgent] 처리결과를 전송할 connection이 올바른지 확인이 필요합니다. - "+ce.getMessage());
//            }
//           
//        } catch (Exception ex) {
//            ex.printStackTrace();
//            response.setStatus(500);
//            
//            try {
//                response.getWriter().println(ex.getMessage());
//                throw ex;
//            } catch (Exception e) {
//                // IGNORE
//            }
//        }
//    }
//
//}
