From 1615c6851b507867f9090f8cafcb1a32d1dad6bc Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期五, 06 九月 2024 12:09:57 +0800 Subject: [PATCH] 表单表格功能添加 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 133 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 118 insertions(+), 15 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index 98d2f58..4dc9c1c 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -8,15 +8,14 @@ import com.vci.corba.omd.btm.BizType; import com.vci.corba.portal.PortalService; import com.vci.corba.portal.data.*; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.UIAuthorDTO; import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.pagemodel.OsBtmTypeVO; import com.vci.pagemodel.PLUILayoutCloneVO; import com.vci.pagemodel.RoleRightVO; import com.vci.starter.web.exception.VciBaseException; -import com.vci.starter.web.pagemodel.BaseQueryObject; -import com.vci.starter.web.pagemodel.DataGrid; -import com.vci.starter.web.pagemodel.SessionInfo; -import com.vci.starter.web.pagemodel.Tree; +import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.VciDateUtil; import com.vci.starter.web.util.WebThreadLocalUtil; @@ -111,16 +110,31 @@ /** * ton閫氳繃涓氬姟绫诲瀷鍜屽悕绉版煡璇� * @param btemName - * @param code + * @param context * @return * @throws PLException */ - public List<PLUILayout> getUIContextDataByBtName(String btemName,String code) throws PLException { + public List<PLUILayout> getUIContextDataByBtName(String btemName,String context) throws PLException { + VciBaseUtil.alertNotNull(btemName,"涓氬姟绫诲瀷"); List<PLUILayout> pluiLayoutList=new ArrayList<>(); - PLUILayout[] pluiLayouts= platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code); - if(pluiLayouts!=null&&pluiLayouts.length>0){ - pluiLayoutList= Stream.of(pluiLayouts).collect(Collectors.toList()); + List<String> contextList= VciBaseUtil.str2List(context); + if(StringUtils.isNotBlank(context)){ + contextList=VciBaseUtil.str2List(context); + }else{ + contextList.add(""); } + contextList.stream().forEach(code->{ + PLUILayout[] pluiLayouts= new PLUILayout[0]; + try { + pluiLayouts = platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code); + } catch (PLException e) { + e.printStackTrace(); + } + if(pluiLayouts!=null&&pluiLayouts.length>0) { + pluiLayoutList.addAll(Arrays.stream(pluiLayouts).collect(Collectors.toList())); + } + }); + return pluiLayoutList; } @@ -319,17 +333,93 @@ bizTypeTree.setParentId(rootNode.getOid()); bizTypeTree.setParentName(rootNode.getText()); bizTypeTree.setShowCheckbox(true); + bizTypeTree.setParentBtmName(bizTypes[i].name); childList.add(bizTypeTree); - List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context); - List<Tree> btmChildList=new ArrayList<>(); - btmChildList.add(bizTypeTree); - setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox); + if(roleRightVOMap.containsKey(bizTypes[i].oid)){ + List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context); + List<Tree> btmChildList=new ArrayList<>(); + btmChildList.add(bizTypeTree); + setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox); + } } rootNode.setChildren(childList); treeList.add(rootNode); return treeList; } + @Override + public boolean authorizedUI(UIAuthorDTO uiAuthorDTO) throws Exception { + boolean res=false; + if(uiAuthorDTO==null||CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){ + throw new VciBaseException("璇烽�夋嫨鑺傜偣杩涜鎺堟潈!"); + } + BaseQueryObject treeQueryObject=new BaseQueryObject(); + Map<String,String> conditionMap = new HashMap<>(); + conditionMap.put("roleId",uiAuthorDTO.getRoleId()); + conditionMap.put("type",uiAuthorDTO.getType()); + conditionMap.put("context",uiAuthorDTO.getContext()); + conditionMap.put("showCheckBox","true"); + treeQueryObject.setConditionMap(conditionMap); + List<Tree> treeList=this.getUIAuthor(treeQueryObject); + HashMap<String,Tree> allTreeMap=new HashMap<>(); + if(!CollectionUtil.isEmpty(treeList)){ + convertTreeDOO2Map(treeList,allTreeMap); + List<RoleRightDTO> roleRightDTOList=new ArrayList<>(); + List<Tree> selectTreeList= uiAuthorDTO.getSelectTreeList(); + getRoleRightDTOS(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightDTOList); + } + return res; + } + + private void getRoleRightDTOS(String roleOid,List<Tree> selectTreeList,HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){ + selectTreeList.stream().forEach(tree -> { + RoleRightDTO roleRightDTO=new RoleRightDTO(); + String id=ObjectUtility.getNewObjectID36(); + Object data= tree.getData(); + + if (data instanceof BizType) {//涓氬姟绫诲瀷 + BizType bizType=(BizType)data; + roleRightDTO.setId(id);//涓婚敭 + roleRightDTO.setCreateUser(null);//鍒涘缓鑰� + roleRightDTO.setCreateTime(null);//鍒涘缓鏃堕棿 + roleRightDTO.setModifyUser(null);//淇敼鑰� + roleRightDTO.setModifyTime(null);//淇敼鏃堕棿 + roleRightDTO.setRoleId(roleOid);//瑙掕壊ID + roleRightDTO.setRightValue(1);// 鏉冮檺鍊� + roleRightDTO.setRightType((short) -1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + roleRightDTO.setFuncId(null); + roleRightDTO.setLicensor(null); + }else if (data instanceof PLUILayout){//UI + + }else if (data instanceof PLTabPage) {//UI涓婁笅鏂� + + + }else if (data instanceof PLPageDefination) {// + + + }else if (data instanceof PLTabButton) {//鎸夐挳 + + } + }); + + + + } + + /** + * + * @param treeList 鏍戣妭鐐� + * @param allTreeMap锛屾墍鏈夌殑鑺傜偣 + */ + private void convertTreeDOO2Map(List<Tree> treeList,Map<String,Tree> allTreeMap){ + Optional.ofNullable(treeList).orElseGet(()->new ArrayList<Tree>()).stream().forEach(tree -> { + List<Tree> childTreeList= tree.getChildren(); + allTreeMap.put(tree.getOid(),tree); + if(!CollectionUtil.isEmpty(childTreeList)){ + convertTreeDOO2Map(childTreeList,allTreeMap); + } + }); + } private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap,boolean isShowCheckBox){ Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<Tree>()).stream().forEach(pTree -> { Object funcObj= pTree.getData(); @@ -340,6 +430,7 @@ contextList.stream().forEach(context->{ Tree childTree=new Tree(context.plOId,context.plName+"("+context.plCode+")",context); childTree.setParentName(pTree.getText()); + childTree.setParentBtmName(pTree.getParentBtmName()); childTree.setParentId(pTree.getOid()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); @@ -364,6 +455,7 @@ Tree childTree=new Tree(plTabPage.plOId,plTabPage.plName,plTabPage); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); chiledTreeList.add(childTree); @@ -385,6 +477,7 @@ Tree childTree=new Tree(plPageDefination.plOId,plPageDefination.name,plPageDefination); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); chiledTreeList.add(childTree); @@ -409,6 +502,7 @@ Tree childTree=new Tree(plTabButton.plOId,plTabButton.plLabel,plTabButton); childTree.setParentName(pTree.getText()); childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); childTree.setLevel(pTree.getLevel()+1); childTree.setShowCheckbox(isShowCheckBox); childTree.setLeaf(true); @@ -424,9 +518,18 @@ } }else if (funcObj instanceof PLTabButton) {//鎸夐挳 - String id = ((PLTabButton) funcObj).plTableOId; + PLTabButton plTabButton= (PLTabButton) funcObj; + String id =plTabButton.plTableOId; if(roleRightVOMap.containsKey(id)){ - pTree.setChecked(true); + RoleRightVO roleRightVO = roleRightVOMap.get(id); + Long rightValue = roleRightVO.getRightValue(); + int nodeValue = plTabButton.plSeq; + if (nodeValue >= 0 && nodeValue <= 63) { + long preValue = (rightValue >> nodeValue) & 1; + if (preValue == 1) { + pTree.setChecked(true); + } + } }else{ pTree.setChecked(false); } -- Gitblit v1.9.3