From 5eefbd748f86ec5964c5531aff68975518650017 Mon Sep 17 00:00:00 2001 From: tolag3 Date: Tue, 13 Feb 2024 16:20:12 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EC=A4=80=ED=98=B8=20=EC=A0=84?= =?UTF-8?q?=EC=9E=90=EC=A1=B0=EC=A0=80=EC=9D=B4=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 결재 시 다음 대상자에게이메일 발송 --- .../web/InternalApprovManageController.java | 81 +++++++++++++++++++ .../adjcclt/service/AdjstConciliatorVO.java | 11 +++ .../adjcclt/AdjustConciliator_SQL_Mysql.xml | 7 ++ 3 files changed, 99 insertions(+) diff --git a/src/main/java/kcc/kccadr/adjPgrMgr/iam/web/InternalApprovManageController.java b/src/main/java/kcc/kccadr/adjPgrMgr/iam/web/InternalApprovManageController.java index f5a3523c..57dfe315 100644 --- a/src/main/java/kcc/kccadr/adjPgrMgr/iam/web/InternalApprovManageController.java +++ b/src/main/java/kcc/kccadr/adjPgrMgr/iam/web/InternalApprovManageController.java @@ -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); @@ -1554,5 +1580,60 @@ 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) { + } + } } diff --git a/src/main/java/kcc/kccadr/adjcclt/service/AdjstConciliatorVO.java b/src/main/java/kcc/kccadr/adjcclt/service/AdjstConciliatorVO.java index a27c6c27..9e6f282d 100644 --- a/src/main/java/kcc/kccadr/adjcclt/service/AdjstConciliatorVO.java +++ b/src/main/java/kcc/kccadr/adjcclt/service/AdjstConciliatorVO.java @@ -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; @@ -1872,6 +1874,15 @@ public class AdjstConciliatorVO extends ComDefaultVO implements Serializable { public void setCmntOftenFlag(Boolean cmntOftenFlag) { this.cmntOftenFlag = cmntOftenFlag; } + + public String getNextSbmtId() { + return nextSbmtId; + } + + public void setNextSbmtId(String nextSbmtId) { + this.nextSbmtId = nextSbmtId; + } + diff --git a/src/main/resources/egovframework/sqlmap/kccadr/adjcclt/AdjustConciliator_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/kccadr/adjcclt/AdjustConciliator_SQL_Mysql.xml index 012edece..87ec446e 100644 --- a/src/main/resources/egovframework/sqlmap/kccadr/adjcclt/AdjustConciliator_SQL_Mysql.xml +++ b/src/main/resources/egovframework/sqlmap/kccadr/adjcclt/AdjustConciliator_SQL_Mysql.xml @@ -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