related-doc模板丢失的原因——Bi

xiaoxiao2021-03-01  25

找了整整一个下午,辛苦。

首先找到   Created with the same data  这个按钮,然后找到

/** * 结构模板用相同信息创建 * * @author Majm * */ public class StructureTemplateCopyToolItemHandler extends TemplateToolItemHandler { @Override public void execute(Object... args) { StructureTemplateEditorComposite editorComposite = this.getStructureTemplateEditorComposite(); StructureContentComposite contentComposite = editorComposite.getContentComposite(); StructureTreeComposite treeComposite = editorComposite.getTreeComposite(); DynaTreeNode<DynaObject> node = treeComposite.getNavigationTree().getSelection().get(0); RelationTemplate relationTemplate = (RelationTemplate) node.getValue(); contentComposite.setPage(relationTemplate, CommonResource.COPY); }

找到tree面板

/** * 结构模板设置 的树面板 * * @author Majm * */ public class StructureTreeComposite extends DynaComposite { private static final String CLASS_NAME = "StructureTreeComposite"; private DynaTree<DynaObject> navigationTree = null; private boolean isViewAll = false; public StructureTreeComposite(Composite parent, int style) { super(parent, style); this.createComposite(); }

找到这个tree面板的数据提供器

navigationTree = new DynaTree<DynaObject>(treeComposite, SWT.V_SCROLL | SWT.H_SCROLL, columnField, new TableDataProvider<DynaObject>() { @Override public List<DynaObject> loadData(long rowIndex, int page, int pageSize, boolean isForward, ColumnField sortingField) { List<DynaObject> roots = new ArrayList<DynaObject>(); try { // 设置根节点 List<String> rootBomNameList = null; if (isViewAll) { rootBomNameList = ServiceManager.getBOASService() .listRelationTemplateName4NoFactoryContainObsolete(); } else { rootBomNameList = ServiceManager.getBOASService().listRelationTemplateName4NoFactory(); } if (!SetUtils.isNullList(rootBomNameList)) { for (int i = 0; i < rootBomNameList.size(); i++) { DynaObject dynaObject = new DynaObjectImpl(); dynaObject.put("ID", rootBomNameList.get(i)); roots.add(dynaObject); } } } catch (ServiceRequestException e) { ServiceManager.setErrorMessage(e, CLASS_NAME, "listRelationTemplateName", StructureTreeComposite.this); } return roots; } });

没错,这里就是这句话

rootBomNameList = ServiceManager.getBOASService().listRelationTemplateName4NoFactory();

过滤掉已经废弃的,还剩下47个有用的

List<RelationTemplate> rt = new ArrayList<RelationTemplate>(); if (templateList != null && !templateList.isEmpty()) { for (RelationTemplate t : templateList) { if(t.getName().equalsIgnoreCase("RelatedDoc")) { System.out.println("haha"); } if (!isContainObsolete && !t.isValid()) { continue; } if (type != null && !type.contains(t.getTemplateType())) { continue; } if (structureModel != null && !structureModel.contains(t.getStructureModel().toString())) { continue; } if (bmGuid != null && !(bmGuid.equalsIgnoreCase(t.getBmGuid()) || "ALL".equalsIgnoreCase(t.getBmGuid()))) { continue; } rt.add(t); }

然后还有一个条件

  filterUselessBOTemplate(rt, relationTemplateSequenceList);

private void filterUselessBOTemplate(List<RelationTemplate> relationTemplateList, List<RelationTemplate> relationTemplateSequenceList) throws ServiceRequestException { if (!SetUtils.isNullList(relationTemplateList)) { for (RelationTemplate relationTemplate : relationTemplateList) { if(relationTemplate.getName().equalsIgnoreCase("RelatedDoc")) { System.out.println("heheRelatedDoc"); } if(relationTemplate.getId().equalsIgnoreCase("Item-Doc")) { System.out.println("heheItem-Doc"); } List<RelationTemplateEnd2> relationTemplateEnd2List = relationTemplate.getRelationTemplateEnd2List(); boolean end2BOHasExist = false; if (!SetUtils.isNullList(relationTemplateEnd2List)) { for (RelationTemplateEnd2 templateEnd2 : relationTemplateEnd2List) { String end2BO = templateEnd2.getEnd2BoName(); BOInfo boInfo = this.stubService.getEMM().getCurrentBoInfoByName(end2BO, false); if (boInfo != null) { end2BOHasExist = true; break; } } } if (end2BOHasExist) { relationTemplateSequenceList.add(relationTemplate); } } } }

此处,Bi_Relation_Template_End2中的masterfk是模板的guid

select * from Bi_Relation_Template ww where ww.id='Item-Doc' --guid=691060FCB64547F59F6F26818C9D66F0 select * from Bi_Relation_Template_End2 qw where qw.masterfk='691060FCB64547F59F6F26818C9D66F0' select * from Bi_Relation_Template ww where ww.id='RelatedDoc'--guid=F96F7E2D90B247B4838CE96306941737 select * from Bi_Relation_Template_End2 qw where qw.masterfk='F96F7E2D90B247B4838CE96306941737'--Document

发现,为什么Related-doc消失的原因。

因为在获取Related-doc的end2Name的时候,从数据库中获取end2的Name的时候,获取的是Document这个类,however这个类并没有加入到我们当前的这个模型中。

解决方法:只需将这个文档Document类加入到我们的模型中即可。

 

 

 

转载请注明原文地址: https://www.6miu.com/read-3542444.html

最新回复(0)