From 2ed5752003ba572073fb6fd6e3e8fc50c956cbe9 Mon Sep 17 00:00:00 2001 From: libowen Date: Fri, 9 Jan 2026 15:42:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'CA=E5=8F=98=E6=9B=B4=E6=B5=81=E7=A8=8B=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=9B=BA=E5=AE=9A=E4=BA=BA=E5=91=98'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AegChange2_mxJPO.java | 101 ++++++++++++++++++ CA变更流程通知加入固定人员/modify.mql | 13 +++ CA变更流程通知加入固定人员/开发文档.docx | Bin 0 -> 14349 bytes 3 files changed, 114 insertions(+) create mode 100644 CA变更流程通知加入固定人员/AegChange2_mxJPO.java create mode 100644 CA变更流程通知加入固定人员/modify.mql create mode 100644 CA变更流程通知加入固定人员/开发文档.docx diff --git a/CA变更流程通知加入固定人员/AegChange2_mxJPO.java b/CA变更流程通知加入固定人员/AegChange2_mxJPO.java new file mode 100644 index 0000000..e89660c --- /dev/null +++ b/CA变更流程通知加入固定人员/AegChange2_mxJPO.java @@ -0,0 +1,101 @@ +import com.matrixone.apps.domain.util.MqlUtil; +import matrix.db.Context; + +import javax.mail.*; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import java.util.logging.Logger; + +public class AegChange2_mxJPO { + + private static final Logger LOGGER = Logger.getLogger(AegChange2_mxJPO.class.getName()); + private static final String SEND_EMAIL = "aegplm@aeg-imc.com"; + private static final String SEND_PASSWORD = "Aeg-1887"; + private static final String SMTP_HOST = "smtp.partner.outlook.cn"; + private static final String SMTP_PORT = "587"; + private static final String EMAIL = "beiqi.xi@aeg-imc.com"; + + public void AegChangeNotify(Context context, String[] args) throws Exception { + String caId = args[0]; + LOGGER.info("caId == > " + caId); + + String getChangeType = "print bus " + caId + " select type dump |"; + String changeType = MqlUtil.mqlCommand(context, getChangeType); + + if("Change Action".equals(changeType)){ + + String getCAInfo = "print bus " + caId + " select name attribute[Synopsis] description attribute[XP_ChangeAction_Ext.DistributionPersonList] attribute[Originator] dump |"; + String caInfo = MqlUtil.mqlCommand(context, getCAInfo); + LOGGER.info("caInfo ==> " + caInfo); + + String[] caInfoItem = caInfo.split("\\|"); + + Map map = new HashMap<>(); + map.put("projectName", caInfoItem[0]); + map.put("taskName", caInfoItem[1]); + map.put("description", caInfoItem[2]); + map.put("DocumentRecipient", caInfoItem[3]); + map.put("taskOwner", caInfoItem[4]); + + send(map); + } + } + + public void send(Map itemMap){ + LOGGER.info("=============> + <================="); + + Properties properties = new Properties(); + properties.put("mail.smtp.auth", "true"); + properties.put("mail.smtp.starttls.enable", "true"); + properties.put("mail.smtp.host", SMTP_HOST); + properties.put("mail.smtp.port", SMTP_PORT); + properties.put("mail.smtp.ssl.protocols", "TLSv1.2"); + + Session session = Session.getInstance(properties, + new javax.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(SEND_EMAIL, SEND_PASSWORD); + } + }); + session.setDebug(true); + + Message message = new MimeMessage(session); + try { + message.setFrom(new InternetAddress(SEND_EMAIL)); + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(EMAIL)); + + String body = "
" + + "
\n" + + "

" + itemMap.get("projectName") + "

\n" + + "
" + + "
\n" + + "
\n" + + "

" + "\u4efb\u52a1\u540d\u79f0: " + itemMap.get("taskName") + "

\n" + + "

" + "\u4efb\u52a1\u63cf\u8ff0: " + itemMap.get("description") + "

\n" + + "

" + "\u4efb\u52a1\u6240\u6709\u8005: " + itemMap.get("taskOwner") + "

\n" + + "

" + "\u6587\u4ef6\u63a5\u6536\u4eba: " + itemMap.get("DocumentRecipient") + "

\n" + + " 查看任务\n" + + "
\n" + + "
\n" + + "
\n" + + "

\u672c\u90ae\u4ef6\u53ca\u6240\u6709\u9644\u4ef6\u4ec5\u4f9b\u6536\u4ef6\u5730\u5740\u4e2d\u7684\u4e2a\u4eba\u6216\u5b9e\u4f53\u4f7f\u7528\uff0c\u8fd9\u4e9b\u5185\u5bb9\u5747\u5c5e\u673a\u5bc6\u4fe1\u606f\u5e76\u6216\u8bbe\u6709\u6743\u9650

\n" + + "
\n" + + "
\n" + + "

\u5982\u679c\u60a8\u4e0d\u662f\u4efb\u4f55\u6307\u5b9a\u7684\u6536\u4ef6\u4eba\u6216\u8bef\u6536\u5230\u672c\u90ae\u4ef6,
\n" + + " (i) \u60a8\u4e0d\u80fd\u9605\u8bfb\u3001\u6cc4\u6f0f\u6216\u590d\u5236\u672c\u90ae\u4ef6;
\n" + + " (ii) \u8bf7\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u901a\u77e5\u60a8\u6536\u4ef6\u7684\u53d1\u4ef6\u4eba\u5e76\u5220\u9664\u672c\u90ae\u4ef6\u53ca\u6240\u6709\u9644\u4ef6;
\n" + + " (iii) \u5bf9\u4e8e\u56e0\u4f7f\u7528\u6216\u4f9d\u636e\u672c\u90ae\u4ef6\u800c\u5f15\u8d77\u7684\u4efb\u4f55\u635f\u5931\u6216\u635f\u5bb3,Dassault Systemes \u6982\u4e0d\u8d1f\u8d23\u6216\u627f\u62c5\u8d23\u4efb。

\n" + + "
\n" + + "
"; + message.setSubject("subject"); + message.setContent(body, "text/html;charset=utf-8"); + Transport.send(message); + } catch (MessagingException e) { + throw new RuntimeException(); + } + } +} diff --git a/CA变更流程通知加入固定人员/modify.mql b/CA变更流程通知加入固定人员/modify.mql new file mode 100644 index 0000000..cbc6396 --- /dev/null +++ b/CA变更流程通知加入固定人员/modify.mql @@ -0,0 +1,13 @@ +add bus "eService Trigger Program Parameters" "AEGChangeNotifyFixedPersonnel" "-" + description "AEGChangeNotifyFixedPersonnel" + policy "Business Rule" + "eService Program Argument 1" "${OBJECTID}" + vault "eService Administration" + "eService Program Name" "AegChange2" + "eService Sequence Number" 1 + "eService Method Name" "AegChangeNotify" + current Active; + +modify policy 'Change Action' state 'In Approval' add Trigger Promote Action emxTriggerManager input 'PolicyChangeActionStateInApprovalPromoteAction PolicyChangeActionPromoteDemoteAction AEGChangeNotifyFixedPersonnel'; + +modify policy 'Change Action' state 'In Approval' add Trigger Promote Action emxTriggerManager input 'PolicyChangeActionStateInApprovalPromoteAction PolicyChangeActionPromoteDemoteAction'; \ No newline at end of file diff --git a/CA变更流程通知加入固定人员/开发文档.docx b/CA变更流程通知加入固定人员/开发文档.docx new file mode 100644 index 0000000000000000000000000000000000000000..f5c6f75376693240fca53634b9b695303f51b225 GIT binary patch literal 14349 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 J%ktaR{{wG!tFQn7 literal 0 HcmV?d00001