
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.FamilyEventBatch;
import sgc.portal.com.sym.batch.persistence.FamilyEventBatchMapper;
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 FamilyEventBatchService {
    
	@Autowired
    private FamilyEventBatchMapper FamilyEventBatchMapper;
	@Autowired
	private MailService mailService;
	@Autowired
    private Environment environment;
	
    Logger logger = LoggerFactory.getLogger(this.getClass());
    //logger.info("[MYTEST] test FamilyEventBatch {}", recvAddress);
    
    @Scheduled(cron = "0 0 13 10 * *")		//매월 10일 13시 0분 실행
    public void schedule() throws Exception {
        
		List<EasyHashMap<String, Object>> empList = new ArrayList<EasyHashMap<String, Object>>();
		empList = FamilyEventBatchMapper.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 cdRela = String.valueOf(empInfo.get("cdRela"));
    		String dtBirth = String.valueOf(empInfo.get("dtBirth"));
    		
    		//메일발송
    		doMailSend(cmpnCd, empNo,empNm,eMail);
    		
    		//메일발송 리스트
    		doInsertMail(cmpnCd, empNo,empNm,eMail, cdRela, dtBirth);
    	}
    	
    }
    
    private void doMailSend(String cmpnCd, String empNo, String empNm, String eMail) throws Exception {
    	
    	String dtmStr = "";
    	String dtmStr2 = "";
    		
		dtmStr = "총무팀에서 안내드립니다.<br><br>"+
				 "본 메일을 수신하신 직원분은 경조사지원 및 경조사지급 지침[I-SH2-0301-G02]에<br>"+
				 "의거하여 경조금 지급대상에 해당하오니 확인 후 아래 사항을 참고하셔서<br>"+
				 "SGC Portal 접속 - 신청업무 > 복리후생 > 복리후생 신청 > 신청업무[경조금]<br>"+
				 "클릭 후 신청 부탁드립니다. 증빙서류는 첨부 파일에 첨부하여 주시기 바랍니다.<br><br>"+
				 "또한 화환 지급이 필요하신 분들은 신청 가능일 내(아래 사유 발생일 참고)<br>"+
				 "SGC Portal 접속 - 일반업무 > 일반업무 신청 > 신청업무[화환] 클릭 후<br>"+
				 "증빙서류는 첨부 파일에 첨부하여 주시기 바랍니다.<br>"+
				 "비고란에는 축하화환,꽃바구니,동양난,서양난 중 택 1로 작성 부탁드립니다.";

		dtmStr2 = "※︎ 사유 발생일로부터 30일 전후에 휴가 및 경조비를 신청 지급합니다.<br>"+
				 "ex) 사유 발생일 : 9/16 (가족관계증명서 및 주민등록등본 상 생년월일 기준)<br>"+
				 "신청가능일 : 8/16 ~ 10/16까지(신청기간 이후 신청안됨.)";
		
		mailService.mailSend3("경조금 신청안내", "경조금 신청",cmpnCd, empNo, empNm, eMail, dtmStr, dtmStr2);
    }
    
    private void doInsertMail(String cmpnCd, String empNo, String empNm, String eMail, String cdRela, String dtBirth) throws Exception {
    	
    	FamilyEventBatch familyEventBatch = new FamilyEventBatch();

    	familyEventBatch.setCmpnCd(cmpnCd);
    	familyEventBatch.setEmpNo(empNo);
    	familyEventBatch.setEmpNm(empNm);
    	familyEventBatch.setEMail(eMail);
    	familyEventBatch.setCdRela(cdRela);
    	familyEventBatch.setDtBirth(dtBirth);
		
		FamilyEventBatchMapper.insertMail(familyEventBatch);
        
    }
}