ludc
2025-01-16 986aa62ed00bee39363bab41b4eeb8259d446efd
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -45,7 +45,7 @@
import java.util.stream.Collectors;
/**
 * UI定义服务界面相关接口
 * UI定义管理服务界面相关接口
 * @author ludc
 * @date 2024/8/28 17:05
 */
@@ -849,9 +849,11 @@
    public DataGrid getTabByContextIdAndType(String contextId, int areaType) throws PLException {
        VciBaseUtil.alertNotNull(contextId,"上下文主键",areaType,"区域类型");
        PLTabPage[] plTabPages = platformClientUtil.getUIService().getTabPagesByContextIdAndType(contextId, (short) areaType);
        List<PLTabPage> tabPageList = Arrays.stream(plTabPages).sorted(((o1, o2) -> Math.toIntExact(o1.plSeq - o2.plSeq)))
                .collect(Collectors.toList());
        DataGrid dataGrid = new DataGrid();
        dataGrid.setTotal(plTabPages.length);
        dataGrid.setData(Arrays.asList(plTabPages));
        dataGrid.setData(tabPageList);
        return dataGrid;
    }
@@ -1694,12 +1696,9 @@
        String type = StringUtils.isBlank(conditionMap.get("type")) ? "" : conditionMap.get("type");
        String context = StringUtils.isBlank(conditionMap.get("context")) ? "" : conditionMap.get("context");
        boolean showCheckBox = Boolean.parseBoolean(conditionMap.get("showCheckBox"));
        Map<String,RoleRightVO> roleRightVOMap = new HashMap<>();
        Map<String, List<RoleRightVO>> roleRightVOMap = new HashMap<>();
        if(StringUtils.isNotBlank(roleId)){
            String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
            RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
            List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
            roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue));
            roleRightVOMap = this.getRoleRightMap(roleId);
        }
        BizType[] bizTypes = osBtmServiceI.getBizTypes(type);
        List<Tree> treeList=new ArrayList<>();
@@ -1709,7 +1708,6 @@
        rootNode.setExpanded(true);
        List<Tree> childList=new ArrayList<>();
        //long startTime = System.currentTimeMillis();
        uiDataFetcher = new UIDataFetcher();
        for (int i = 0; i < bizTypes.length; i++) {
            Tree bizTypeTree = new Tree(bizTypes[i].oid,bizTypes[i].name,bizTypes[i]);//(btmItems[i].label+" ["+ btmItems[i].name+"]", btmItems[i]);
@@ -1718,18 +1716,12 @@
            bizTypeTree.setParentId(rootNode.getOid());
            bizTypeTree.setParentName(rootNode.getText());
            bizTypeTree.setParentBtmName(bizTypes[i].name);
            //long startTime1 = System.currentTimeMillis();
            List<PLUILayout> contextList = uiDataFetcher.getContext(bizTypes[i].name/*+context*/);
            //long endTime1 = System.currentTimeMillis();
            //System.out.println("============================================获取UI定义数据引擎耗时:"+((endTime1-startTime1)/1000)+"s");
            List<Tree> btmChildList = new ArrayList<>();
            btmChildList.add(bizTypeTree);
            setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox);
            childList.add(bizTypeTree);
        }
        //long endTime = System.currentTimeMillis();
        //System.out.println("============================================UI定义树计算完毕耗时:"+((endTime-startTime)/1000)+"s");
        rootNode.setChildren(childList);
        treeList.add(rootNode);
        return treeList;
@@ -1737,21 +1729,27 @@
    /**
     * 根据角色主键获取已授权的信息
     * @param roleId
     * @param roleId 如果roleId不传,就会获取当前登录的用户的名称查询权限
     * @return
     * @throws PLException
     */
    /*    @Override
        public Map<String,RoleRightVO> getRightListByRoleId(String roleId) throws PLException {
            VciBaseUtil.alertNotNull(roleId,"查询条件角色主键");
            String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
            RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
            List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
            Map<String,RoleRightVO> roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue));
            return roleRightVOMap;
        }*/
    @Override
    public Map<String, List<RoleRightVO>> getRoleRightMap(String roleId) throws PLException {
        RoleRightInfo[] rightInfos = null;
        String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
        if(Func.isBlank(roleId)){
            rightInfos = platformClientUtil.getFrameworkService().getRoleRightByUserName(userName);
        }else{
            rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName);
        }
        List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
        //分组操作
        Map<String, List<RoleRightVO>> roleRightVOMap = roleRightVOList.stream().collect(Collectors.groupingBy(RoleRightVO::getFuncId,
                Collectors.mapping(e ->e, Collectors.toList())));
        return roleRightVOMap;
    }
    /***
    /**
     * UI授权
     * @param uiAuthorDTO
     * @return
@@ -2149,7 +2147,7 @@
     * @param contextList
     * @param isShowCheckBox
     */
    private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap, boolean isShowCheckBox){
    private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String, List<RoleRightVO>> roleRightVOMap, boolean isShowCheckBox){
        Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<>()).stream().forEach(pTree -> {
            Object funcObj = pTree.getData();
            List<Tree> chiledTreeList = new ArrayList<>();
@@ -2228,8 +2226,8 @@
                PLTabButton plTabButton = (PLTabButton) funcObj;
                String id = plTabButton.plTableOId;
                if(roleRightVOMap.containsKey(id)){
                    RoleRightVO roleRightVO = roleRightVOMap.get(id);
                    Long rightValue =  roleRightVO.getRightValue();
                    RoleRightVO roleRightVO = roleRightVOMap.get(id).get(0);
                    Long rightValue = roleRightVO.getRightValue();
                    int nodeValue = plTabButton.plSeq;
                    if (nodeValue >= 0 && nodeValue <= 63) {
                        long preValue = (rightValue >> nodeValue) & 1;
@@ -3606,6 +3604,7 @@
            d.setSearchTarger(searchTarger);
            d.setShowType(btmType);
            d.setTemplateId(txtVIName);
            d.setOrientation("positive");
            d.setQueryTemplateName(txtQTName);
            d.setExpandCols(expandCols);
            d.setExpandMode(expandMode);
@@ -3703,6 +3702,7 @@
            d.setShowType(btmType);
            d.setLinkType(linkType);
            d.setTemplateId(queryTemplateName);
            d.setOrientation("positive");
            d.setRootContent(showExpressionRoot.trim());
            d.setShowAbs(showExpression.trim());
            d.setShowLinkAbs(refTreeSet.trim());