From d22454c55089e122dfbeff0a3ab8bbacd8e18ccf Mon Sep 17 00:00:00 2001 From: zouxk Date: Wed, 15 Jul 2020 17:11:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jd/plm/action/WLTZReviseAction.java | 27 +++++++++- .../plm/dialog/EditClassificationDialog.java | 7 ++- .../teamcenter/rac/kernel/DatasetDisable.java | 49 +++++++++++++++++++ .../rac/kernel/kernel_user.properties | 2 + 4 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java create mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java b/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java index 76cb516..be18f27 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java @@ -41,7 +41,7 @@ public class WLTZReviseAction extends AbstractAIFAction { for (String s : list) { System.out.println(s); } - + TCAccessControlService aclService = session.getTCAccessControlService(); TCComponentItemRevision rev; if (target instanceof TCComponentItemRevision) { rev = (TCComponentItemRevision) target; @@ -65,6 +65,7 @@ public class WLTZReviseAction extends AbstractAIFAction { MessageBox.post("当前对象类型不允许修订并发送分类!", "错误", MessageBox.ERROR); return; } + rev.refresh(); TCComponentItem item = rev.getItem(); TCComponent[] comps = rev.getRelatedComponents("fnd0ActuatedInteractiveTsks"); List allow2 = Arrays.asList(JDMethodUtil.getPrefStrArray("jd_wltz_revise_workflow", session)); @@ -74,7 +75,6 @@ public class WLTZReviseAction extends AbstractAIFAction { if (comp.getProperty("object_name").contains("编制") && allow2.contains(comp.getProperty("parent_name")) && comp.getProperty("task_state").equals("已开始")) { System.out.println("开始授权"); - TCAccessControlService aclService = session.getTCAccessControlService(); aclService.grantPrivilege(item, session.getUser(), "READ"); aclService.grantPrivilege(item, session.getUser(), "WRITE"); aclService.grantPrivilege(item, session.getUser(), "DELETE"); @@ -87,6 +87,18 @@ public class WLTZReviseAction extends AbstractAIFAction { if (newRev == null) { newRev = rev.saveAs(item.getNewRev()); } + if (target instanceof TCComponentBOMLine) { + ((TCComponentBOMLine) target).window().refresh(); + } + if (rev.getClassificationClass() == null || "".equals(rev.getClassificationClass())) { + MessageBox.post("升版成功", "提示", MessageBox.WARNING); + aclService.revokePrivilege(item, session.getUser(), "READ"); + aclService.revokePrivilege(item, session.getUser(), "WRITE"); + aclService.revokePrivilege(item, session.getUser(), "DELETE"); + System.out.println("已撤销读写删除权限"); + System.out.println("success"); + return; + } TCComponentICO ico = rev.getClassificationObjects()[0]; ICSProperty[] oldICSProps = ico.getICSProperties(true); int[] ids = new int[oldICSProps.length]; @@ -124,12 +136,23 @@ public class WLTZReviseAction extends AbstractAIFAction { public void run() { // TODO Auto-generated method stub cn.hutool.http.HttpUtil.post(URL, PARAMMAP); + MessageBox.post("升版成功", "提示", MessageBox.WARNING); + try { + aclService.revokePrivilege(item, session.getUser(), "READ"); + aclService.revokePrivilege(item, session.getUser(), "WRITE"); + aclService.revokePrivilege(item, session.getUser(), "DELETE"); + System.out.println("已撤销读写删除权限"); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } System.out.println("success"); } }).start(); } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); + MessageBox.post(e.getMessage(), "错误", MessageBox.ERROR); } } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java index a405be0..a232285 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java @@ -185,6 +185,7 @@ public class EditClassificationDialog extends AbstractAIFDialog { cancelBtn.addActionListener(cancel()); JScrollPane jsp = new JScrollPane(content); + jsp.getVerticalScrollBar().setUnitIncrement(16); jsp.setBounds(0, 0, 300, 300); jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); rootPanel.add(jsp); @@ -243,8 +244,10 @@ public class EditClassificationDialog extends AbstractAIFDialog { try { boolean isAccess = session.getTCAccessControlService().checkPrivilege(rev, "WRITE"); List released = Arrays.asList(rev.getItem().getReleasedItemRevisions()); - if (!isAccess || !released.contains(rev)) { -// JOptionPane.showMessageDialog(this, "当前用户没有修改权限或者当前对象未发布", "提示", JOptionPane.WARNING_MESSAGE); + if (!isAccess) { + JOptionPane.showMessageDialog(this, "权限不够,请联系系统管理员", "提示", JOptionPane.WARNING_MESSAGE); + return false; + } else if (released.contains(rev)) { return false; } diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java new file mode 100644 index 0000000..c13a2c2 --- /dev/null +++ b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java @@ -0,0 +1,49 @@ +package com.teamcenter.rac.kernel; + +import com.teamcenter.rac.aif.kernel.AIFComponentContext; + +public class DatasetDisable implements InterfaceDatasetAction { + + @Override + public int preProcess(TCComponentDataset paramTCComponentDataset, AEShell paramAEShell, int paramInt) { + // TODO Auto-generated method stub + System.out.println("DatasetDisable"); + TCSession session = paramTCComponentDataset.getSession(); + try { + String currentUser = session.getUser().getProperty("object_string"); + String owningUser = paramTCComponentDataset.getTCProperty("owning_user").getTCComponent() + .getProperty("object_string"); + if (currentUser.equals(owningUser)) { + System.out.println("所有者"); + return 0; + } + String loginGroup = session.getUser().getTCProperty("login_group").getTCComponent() + .getProperty("full_name"); + System.out.println("loginGroup===>" + loginGroup); + AIFComponentContext[] parents = paramTCComponentDataset.whereReferenced(); + for (AIFComponentContext aif : parents) { + System.out.println("类型===>" + aif.getComponent().getType()); + if (aif.getComponent() != null && (aif.getComponent() instanceof TCComponentItemRevision)) { + String itemId = aif.getComponent().getProperty("item_id"); + System.out.println("itemId===>" + itemId); + if ((itemId.startsWith("GT") && "研发一部".contentEquals(loginGroup)) + || (itemId.startsWith("BL") && "研发二部".contentEquals(loginGroup)) + || itemId.startsWith("BX") && "研发五部".contentEquals(loginGroup)) { + System.out.println("满足条件"); + return 0; + } + } + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return -1; + } + + @Override + public boolean postProcess(TCComponentDataset paramTCComponentDataset, String paramString, int paramInt) { + // TODO Auto-generated method stub + return false; + } +} diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties new file mode 100644 index 0000000..00f69d4 --- /dev/null +++ b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties @@ -0,0 +1,2 @@ +UGPART.ACTION_OBJECT=com.teamcenter.rac.kernel.DatasetDisable +UGMASTER.ACTION_OBJECT=com.teamcenter.rac.kernel.DatasetDisable \ No newline at end of file