
package sgc.portal.com.sym.batch.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.core.env.Environment;

import sgc.portal.base.util.EasyHashMap;
import sgc.portal.com.sym.batch.model.LongEventBatch;
import sgc.portal.com.sym.batch.persistence.LongEventBatchMapper;
import sgc.portal.com.sym.mail.model.Mail;
import sgc.portal.com.sym.mail.service.MailService;

import java.util.ArrayList;
import java.util.List;

/**
 * The type Authentication exception.
 *
 * @author YongSang
 * @version 1.0.0
 * @since 2020. 7. 28.
 */
@Component
public class LongEventBatchService {
    
	@Autowired
    private LongEventBatchMapper LongEventBatchMapper;
	@Autowired
	private MailService mailService;
	@Autowired
    private Environment environment;
	
    Logger logger = LoggerFactory.getLogger(this.getClass());
    //logger.info("[MYTEST] test LongEventBatch {}", recvAddress);
    
    @Scheduled(cron = "0 0 14 8 * *")		//매월 8일 14시 0분 실행
    public void schedule() throws Exception {
        
		List<EasyHashMap<String, Object>> empList = new ArrayList<EasyHashMap<String, Object>>();
		empList = LongEventBatchMapper.getList();
    	
    	for (EasyHashMap<String, Object> empInfo : empList) {

    		String cmpnCd = String.valueOf(empInfo.get("cmpnCd"));
    		String empNo = String.valueOf(empInfo.get("empNo"));
    		String empNm = String.valueOf(empInfo.get("empNm"));
    		String eMail = String.valueOf(empInfo.get("eMail"));
    		String groupEntDate = String.valueOf(empInfo.get("groupEntDate"));
    		
    		//메일발송
    		doMailSend(cmpnCd, empNo,empNm,eMail);
    		
    		//메일발송 리스트
    		//doInsertMail(cmpnCd, empNo,empNm,eMail, groupEntDate);
    	}
    	
    }
    
    private void doMailSend(String cmpnCd, String empNo, String empNm, String eMail) throws Exception {
    	
    	String dtmStr = "";
    	String dtmStr2 = "";
    		
		dtmStr = "기업문화팀에서 안내드립니다.<br>"+
				 "장기근속 포상 절차서(eP-723-07)에 의거하여 본 메일 수신자는 장기근속 포상휴가 대상자입니다.<br><br>"+
				 "아래 근속기간에 따른 부여 휴가일수를 참고하셔서 휴가를 신청하시기 바랍니다.<br>"+
				 "▶ ERP [휴가신청] - 휴가명 : 포상휴가";

		dtmStr2 = "※︎ 휴가는 입사일을 기준으로 해당 근속년한에 달하는 날로부터 1년 이내에 대상자가 임의로 선택하여 사용할 수 있으며, 분할해서 사용할 수 없습니다.<br><br>"+
				 "관련하여 문의사항이 있으신 경우 기업문화팀으로 문의하시기 바랍니다.<br>" + 
				 "감사합니다.";
		
		mailService.mailSend9("장기근속자 포상안내", "장기근속자 포상",cmpnCd, empNo, empNm, eMail, dtmStr, dtmStr2);
    }
    
    private void doInsertMail(String cmpnCd, String empNo, String empNm, String eMail, String groupEntDate) throws Exception {
    	
    	LongEventBatch longEventBatch = new LongEventBatch();

    	longEventBatch.setCmpnCd(cmpnCd);
    	longEventBatch.setEmpNo(empNo);
    	longEventBatch.setEmpNm(empNm);
    	longEventBatch.setEMail(eMail);
    	longEventBatch.setGroupEntDate(groupEntDate);
		
		LongEventBatchMapper.insertMail(longEventBatch);
        
    }
}