From a3ee879ba25f1eb355a7d0f9b3c2275c6998a532 Mon Sep 17 00:00:00 2001 From: libowen Date: Fri, 9 Jan 2026 15:42:17 +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=E7=9A=84=E7=8A=B6=E6=80=81=E4=BB=8E=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=B8=AD=E9=80=80=E5=88=B0=E5=B7=A5=E4=BD=9C=E4=B8=AD'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AegCADemote_mxJPO.java | 48 +++++++++++++++++++ CA的状态从审批中退到工作中/modify.mql | 16 +++++++ 2 files changed, 64 insertions(+) create mode 100644 CA的状态从审批中退到工作中/AegCADemote_mxJPO.java create mode 100644 CA的状态从审批中退到工作中/modify.mql diff --git a/CA的状态从审批中退到工作中/AegCADemote_mxJPO.java b/CA的状态从审批中退到工作中/AegCADemote_mxJPO.java new file mode 100644 index 0000000..c5888fb --- /dev/null +++ b/CA的状态从审批中退到工作中/AegCADemote_mxJPO.java @@ -0,0 +1,48 @@ +import com.dassault_systemes.enovia.enterprisechangemgt.common.ChangeAction; +import com.matrixone.apps.domain.util.ContextUtil; +import com.matrixone.apps.domain.util.MapList; +import com.matrixone.apps.domain.util.MqlUtil; +import matrix.db.Context; + +import java.util.Map; +import java.util.logging.Logger; + +public class AegCADemote_mxJPO { + + private static final Logger LOGGER = Logger.getLogger(AegCADemote_mxJPO.class.getName()); + + public void setAffectItemState(Context context, String[] args) throws Exception { + String changeActionId = args[0]; + LOGGER.info("CAId ==> " + changeActionId); + + String getProjectType = "print bus " + changeActionId + " select type dump |"; + String projectType = MqlUtil.mqlCommand(context, getProjectType); + + if("Change Action".equals(projectType)){ + ChangeAction changeAction = new ChangeAction(changeActionId); + MapList mapList = changeAction.getAffectedItems(context); + + for (int i = 0; i < mapList.size(); i++) { + Map map = (Map) mapList.get(i); + + String affectItemId = (String) map.get("id"); + String affectItemCurrent = (String) map.get("current"); + LOGGER.info("affectItemId ==> " + affectItemId); + LOGGER.info("affectItemCurrent ==> " + affectItemCurrent); + +// for (String key : map.keySet()){ +// LOGGER.info("key : " + key + " , value : " + map.get(key)); +// } + + if(!"RELEASED".equals(affectItemCurrent)){ + String updateAffectState = "modify bus " + affectItemId + " current IN_WORK"; + LOGGER.info("updateAffectState ==> " + updateAffectState); + + ContextUtil.pushContext(context); + MqlUtil.mqlCommand(context, updateAffectState); + ContextUtil.popContext(context); + } + } + } + } +} diff --git a/CA的状态从审批中退到工作中/modify.mql b/CA的状态从审批中退到工作中/modify.mql new file mode 100644 index 0000000..51a34c1 --- /dev/null +++ b/CA的状态从审批中退到工作中/modify.mql @@ -0,0 +1,16 @@ +add bus "eService Trigger Program Parameters" "AEGCADemoteStatusModify" "AEGCADemoteStatusModify" + policy "Business Rule" + vault "eService Administration" + "eService Program Argument 1" "${OBJECTID}" + "eService Program Name" "AegCADemote" + "eService Sequence Number" 1 + "eService Method Name" "setAffectItemState" + current Active; + +modify policy 'Change Action' state 'In Approval' add Trigger Demote Action emxTriggerManager input +'PolicyChangeActionStateInApprovalDemoteAction PolicyChangeActionPromoteDemoteAction AEGCADemoteStatusModify'; + +modify policy 'Change Action' state 'In Approval' add Trigger Demote Action emxTriggerManager input +'PolicyChangeActionStateInApprovalDemoteAction PolicyChangeActionPromoteDemoteAction'; + +