이준호 전자조저이스템 커밋

- 결재 시 다음 대상자에게이메일 발송
This commit is contained in:
leejunho 2024-02-13 16:20:12 +09:00
parent 38b01ab0ed
commit 5eefbd748f
3 changed files with 99 additions and 0 deletions

View File

@ -5,8 +5,17 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections.CollectionUtils;
@ -58,6 +67,7 @@ import kcc.kccadr.cmm.CmmUtil;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.kccadr.ozSchd.web.OzSchdExportUtil;
import kcc.kccadr.sendMgr.service.SendMgrService;
import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.uss.umt.service.UserManageVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@ -116,6 +126,9 @@ public class InternalApprovManageController {
@Resource(name = "drtCtrService")
private DrtCtrService drtCtrService;
@Resource(name = "SendMgrService")
private SendMgrService SendMgrService;
// 실서버 개발서버 구분
private static String islocal; // /pdf/out/
@Value("#{globalSettings['Globals.prod.islocal']}")
@ -505,6 +518,19 @@ public class InternalApprovManageController {
kccadrMgrUdtService.updateAdrMgrUdt(arv
, s_adrHstryMgrSeq
);
}else if(StringUtils.isNotEmpty(statInfo.getNextSbmtId())) {
UserManageVO userManageVO = userManageService.selectUser(statInfo.getNextSbmtId());
String address = userManageVO.getEmailAdres();
try {
emailSend(address);
}catch (Exception e) {
// TODO: handle exception
}
}
modelAndView.addObject("rs", (rs>0));
modelAndView.addObject("result", KccadrConstants.SUCCESS);
@ -1555,4 +1581,59 @@ public class InternalApprovManageController {
return adjstReqVO;
}
private void emailSend(String address) {
String emailFrom = "no-reply@copyright.or.kr"; // 추후 globals.properties 이용하여 변경
String emailPs = "Copycopy12!"; // 추후 globals.properties 이용하여 변경
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "smtp.gov-dooray.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1");
props.put("mail.smtp.ssl.protocols", "TLSv1.1");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.put("mail.debug", "true");
Authenticator authenticator = new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(emailFrom,emailPs);
}
};
try {
Session session = Session.getInstance(props, authenticator) ;
InternetAddress fromAddress = new InternetAddress(emailFrom);
String result = "";
String emailTo = "";
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
adjReqMgrVO.setEmailTitle("전자조정시스템 결재 순서 입니다.");
adjReqMgrVO.setEmailSendContent("전자조정시스템 결재 대상자 입니다. 결재 목록을 확인해주세요.");
emailTo = address;
InternetAddress toAddress = new InternetAddress(emailTo);
MimeMessage message = new MimeMessage(session);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, toAddress );
message.setSubject(adjReqMgrVO.getEmailTitle());
message.setContent(adjReqMgrVO.getEmailSendContent()," text/html; charset=KSC5601");
System.out.println("------------------ 메일발송 시작 ----------------");
Transport.send(message);
System.out.println("------------------ 메일발송 끝 ----------------");
System.out.println("------------------ 메일발송Log 추가 시작----------------");
String encEmailFrom = egovCryptoUtil.encrypt(emailFrom); // email 수신자 주소 암호화
String encEmailTo = egovCryptoUtil.encrypt(emailTo); // email 발신자 주소 암호화
adjReqMgrVO.setEmailFrom(encEmailFrom);
adjReqMgrVO.setEmailTo(encEmailTo);
result = SendMgrService.insertAdrEmailLog(adjReqMgrVO);
System.out.println("------------------ 메일발송Log 추가 끝----------------");
} catch (Exception e) {
}
}
}

View File

@ -318,6 +318,8 @@ public class AdjstConciliatorVO extends ComDefaultVO implements Serializable {
private String openYn; //공개여부
private String prtclCn; //조서내용
private String nextSbmtId;
public String getAdrSeq() {
return adrSeq;
@ -1873,6 +1875,15 @@ public class AdjstConciliatorVO extends ComDefaultVO implements Serializable {
this.cmntOftenFlag = cmntOftenFlag;
}
public String getNextSbmtId() {
return nextSbmtId;
}
public void setNextSbmtId(String nextSbmtId) {
this.nextSbmtId = nextSbmtId;
}

View File

@ -1619,6 +1619,13 @@
END AS confirmStatus
, IF(SBMT_YN1 = 'N' OR SBMT_YN2 = 'N' OR SBMT_YN3 = 'N' OR SBMT_YN4 = 'N' OR SBMT_YN5 = 'N' OR SBMT_YN6 = 'N', 'Y', 'N') AS rejectYn
, IF((IF(SBMT_YN1 = 'Y',1,0)+IF(SBMT_YN2 = 'Y',1,0)+IF(SBMT_YN3 = 'Y',1,0)+IF(SBMT_YN4 = 'Y',1,0)+IF(SBMT_YN5 = 'Y',1,0)+IF(SBMT_YN6 = 'Y',1,0)) = SBMT_STEP_CNT, 'Y' , 'N') AS allYn
,CASE
WHEN SBMT_STEP_CNT = 2
THEN IF((SBMT_YN1 = 'Y' AND SBMT_YN1 != 'A'),IF((SBMT_YN2 = 'Y' AND SBMT_YN2 != 'A'), NULL, SBMT_ID2), SBMT_ID1)
WHEN SBMT_STEP_CNT = 3
THEN IF((SBMT_YN1 = 'Y' AND SBMT_YN1 != 'A'),IF((SBMT_YN2 = 'Y' AND SBMT_YN2 != 'A'), IF((SBMT_YN3 = 'Y' AND SBMT_YN3 != 'A'), null, SBMT_ID3), SBMT_ID2),SBMT_ID1)
ELSE NULL
END AS nextSbmtId
,CASE WHEN SBMT_YN1 = 'A' THEN SBMT_ID1
WHEN SBMT_YN2 = 'A' THEN SBMT_ID2
WHEN SBMT_YN3 = 'A' THEN SBMT_ID3