From 56de7a42d2567ce72885be8ebb1d1250d68ddd1b Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 16 八月 2024 17:53:34 +0800
Subject: [PATCH] 业务类型接口联调调整,首页系统模块配置查询接口上传

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java |  244 +++++++++++++++++++++++++++++-------------------
 1 files changed, 149 insertions(+), 95 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
index ec3221a..1f6c4de 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -2,8 +2,13 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.vci.client.ClientSession;
+import com.vci.common.exception.VciException;
+import com.vci.common.locale.LocaleDisplay;
 import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.FuncOperationInfo;
 import com.vci.corba.framework.data.FunctionInfo;
+import com.vci.corba.framework.data.OperateInfo;
 import com.vci.corba.framework.data.RoleRightInfo;
 import com.vci.corba.omd.data.BusinessObject;
 import com.vci.corba.portal.data.PLUILayout;
@@ -14,13 +19,13 @@
 import com.vci.pagemodel.MenuVO;
 import com.vci.pagemodel.SmFunctionVO;
 import com.vci.omd.utils.ObjectTool;
-import com.vci.pagemodel.SmFunctionVO;
 import com.vci.starter.web.constant.QueryOptionConstant;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.*;
 import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.pagemodel.UIContentVO;
+import com.vci.web.properties.JsonConfigReader;
 import com.vci.web.service.UIEngineServiceI;
 import com.vci.web.service.WebBoServiceI;
 import com.vci.web.util.Func;
@@ -279,107 +284,156 @@
             }
             functionVOList.add(functionVO);
         }
+        //濡傛灉鏄紑鍙戞垨鑰呮祴璇曠敤鎴凤紝闇�鍝熻幏鍙栫郴缁熸ā鍧楅厤缃彍鍗�
         if(adminOrDeveloperOrRoot){
-            functionVOList.addAll(this.getSystemMenu());
+            //鑾峰彇棣栭〉绯荤粺妯″潡閰嶇疆鑿滃崟
+            MenuVO menuVO = JsonConfigReader.getMenuVO();
+            functionVOList.add(menuVO);
         }
         return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList());
     }
 
     /**
-     * 鑾峰彇棣栭〉绯荤粺妯″潡閰嶇疆鑿滃崟
+     * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃
+     * @param parentId
+     * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷�
+     * @return
+     * @throws VciBaseException
+     */
+    @Override
+    public List<MenuVO> getSysModelTreeMenuByPID(String parentId,boolean isAll) throws VciBaseException{
+        List<MenuVO> menuVOList = new ArrayList<>();
+        if(Func.isBlank(parentId)){
+            return menuVOList;
+        }
+        if(parentId.equals("mangeModel") || parentId.equals("businessModel")){
+            if(parentId.equalsIgnoreCase("FunctionObject")){
+                try {
+                    /**鍒ゆ柇璇ユā鍧椾笅瀛愬璞℃槸妯″潡杩樻槸鎿嶄綔锛�0琛ㄧず鏃犲瓙鑺傜偣锛�1琛ㄧず鏄ā鍧楋紝2琛ㄧず鏄搷浣�**/
+                    int childType = this.checkChildObject(parentId);
+                    if(childType == 2){
+                        try{
+                            FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(parentId, "", false);
+                            for(int i = 0;i < infos.length ;i++){
+                                FuncOperationInfo info = infos[i];
+                                MenuVO menuVO = new MenuVO();
+                                menuVO.setId(info.id);
+                                menuVO.setCode(info.funcId);
+                                menuVO.setId(info.operId);
+                                menuVO.setName(info.operName);
+                                //menuVO.setOperIndentify(info.operIndentify);
+                                menuVO.setAlias(info.operAlias);
+                                menuVO.setRemark(info.operDesc);
+                                menuVO.setSort((int) info.number);
+                                //menuVO.setIsValid(info.isValid);
+                                menuVO.setHasChildren(false);
+                                menuVOList.add(menuVO);
+                            }
+                        }catch (PLException e) {
+                            e.printStackTrace();
+                            throw new VciBaseException(String.valueOf(e.code), e.messages);
+                        }
+                    }else if(childType == 1){
+                        try{
+                            FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll);
+                            for(int i = 0;i < funcInfos.length; i++){
+                                FunctionInfo funcInfo = funcInfos[i];
+                                MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
+                                menuVOList.add(menuVO);
+                            }
+                        }catch (PLException e) {
+                            e.printStackTrace();
+                            throw new VciBaseException(String.valueOf(e.code),e.messages);
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    throw new VciBaseException("妯″潡鏌ヨ鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+VciBaseUtil.getExceptionMessage(e));
+                }
+            }else{
+                try{
+                    FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll);
+                    for(int i = 0;i < funcInfos.length; i++){
+                        FunctionInfo funcInfo = funcInfos[i];
+                        MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
+                        menuVO.setModeType("FunctionObject");
+                        menuVOList.add(menuVO);
+                    }
+                }catch (PLException e) {
+                    e.printStackTrace();
+                    throw new VciBaseException(String.valueOf(e.code),e.messages);
+                }
+            }
+        }else if(parentId.equals("operateType")){
+            //鍔犺浇鎵�鏈夋搷浣�
+            try{
+                OperateInfo[] operateInfos = platformClientUtil.getFrameworkService().getOperateTreeList(parentId);
+                for(int i = 0; i < operateInfos.length;i++ ){
+                    OperateInfo operateInfo = operateInfos[i];
+                    MenuVO menuVO = new MenuVO();
+                    menuVO.setId(operateInfo.id);
+                    menuVO.setName(operateInfo.name);
+                    menuVO.setCode(operateInfo.identify);
+                    menuVO.setAlias(operateInfo.alias);
+                    menuVO.setCategory(2);
+                    menuVO.setRemark(operateInfo.desc);
+                    menuVO.getMeta().put("keepAlive",false);
+                    menuVO.setSort((int) operateInfo.seq);
+                    menuVO.setModeType("operateObject");
+                    menuVO.setHasChildren(false);
+                    menuVOList.add(menuVO);
+                }
+            }catch (PLException e) {
+                e.printStackTrace();
+                throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)});
+            }
+        }
+        return menuVOList;
+    }
+
+    /**
+     * functionInfo杞琕O瀵硅薄
+     * @param funcInfo
      * @return
      */
-    private List<MenuVO> getSystemMenu(){
-        /*濡傛灉鏄祴璇曡处鍙锋垨鑰呭紑鍙戣处鍙凤紝澶勭悊杩斿洖systemManagmentNode鍜宮odelManagmentNode浠ュ锛�
-         杩橀渶瑕佽繑鍥炴搷浣滅被鍨嬬鐞嗚彍鍗曡妭鐐癸紙operateNode锛夊拰绯荤粺閰嶇疆銆佺郴缁熻繍琛岀洃鎺ц妭鐐�*/
-        List<MenuVO> functionVOList = new ArrayList<>();
-        String menuJson = "{\n" +
-                "    \"hasChildren\": true,\n" +
-                "    \"children\": [\n" +
-                "        {\n" +
-                "            \"hasChildren\": true,\n" +
-                "            \"children\": [],\n" +
-                "            \"id\": \"systemManagmentNode\",\n" +
-                "            \"name\": \"绠$悊鍔熻兘妯″潡\",\n" +
-                "            \"parentId\": \"VCIBaseTreeNode\",\n" +
-                "            \"code\": \"systemManagmentNode\",\n" +
-                "            \"alias\": \"system\",\n" +
-                "            \"meta\": {\n" +
-                "                \"keepAlive\": false\n" +
-                "            },\n" +
-                "            \"sort\": 2,\n" +
-                "            \"soruce\": \"\"\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"hasChildren\": true,\n" +
-                "            \"children\": [],\n" +
-                "            \"id\": \"modelManagmentNode\",\n" +
-                "            \"name\": \"涓氬姟鍔熻兘妯″潡\",\n" +
-                "            \"parentId\": \"VCIBaseTreeNode\",\n" +
-                "            \"code\": \"modelManagmentNode\",\n" +
-                "            \"alias\": \"model\",\n" +
-                "            \"meta\": {\n" +
-                "                \"keepAlive\": false\n" +
-                "            },\n" +
-                "            \"sort\": 3,\n" +
-                "            \"soruce\": \"\"\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"hasChildren\": true,\n" +
-                "            \"children\": [],\n" +
-                "            \"id\": \"operateNode\",\n" +
-                "            \"name\": \"鎿嶄綔绫诲瀷绠$悊\",\n" +
-                "            \"parentId\": \"VCIBaseTreeNode\",\n" +
-                "            \"code\": \"operateNode\",\n" +
-                "            \"alias\": \"operate\",\n" +
-                "            \"meta\": {\n" +
-                "                \"keepAlive\": false\n" +
-                "            },\n" +
-                "            \"sort\": 4,\n" +
-                "            \"soruce\": \"\"\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"hasChildren\": false,\n" +
-                "            \"children\": [],\n" +
-                "            \"id\": \"sysOptionNode\",\n" +
-                "            \"name\": \"绯荤粺閰嶇疆\",\n" +
-                "            \"parentId\": \"VCIBaseTreeNode\",\n" +
-                "            \"code\": \"sysOptionNode\",\n" +
-                "            \"alias\": \"sysOption\",\n" +
-                "            \"meta\": {\n" +
-                "                \"keepAlive\": false\n" +
-                "            },\n" +
-                "            \"sort\": 5,\n" +
-                "            \"soruce\": \"\"\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"hasChildren\": false,\n" +
-                "            \"children\": [],\n" +
-                "            \"id\": \"sysMonitorNode\",\n" +
-                "            \"name\": \"绯荤粺杩愯鐩戞帶\",\n" +
-                "            \"parentId\": \"VCIBaseTreeNode\",\n" +
-                "            \"code\": \"sysMonitorNode\",\n" +
-                "            \"alias\": \"sysMonitor\",\n" +
-                "            \"meta\": {\n" +
-                "                \"keepAlive\": false\n" +
-                "            },\n" +
-                "            \"sort\": 5,\n" +
-                "            \"soruce\": \"\"\n" +
-                "        }\n" +
-                "    ],\n" +
-                "    \"id\": \"VCIBaseTreeNode\",\n" +
-                "    \"name\": \"绯荤粺妯″潡閰嶇疆\",\n" +
-                "    \"parentId\": \"\",\n" +
-                "    \"code\": \"rootNode\",\n" +
-                "    \"alias\": \"root\",\n" +
-                "    \"meta\": {\n" +
-                "        \"keepAlive\": false\n" +
-                "    },\n" +
-                "    \"sort\": 1,\n" +
-                "    \"soruce\": \"\"\n" +
-                "}";
-        functionVOList.add(JSON.parseObject(menuJson, MenuVO.class));
-        return functionVOList;
+    private MenuVO functionInfoToMenuVO(FunctionInfo funcInfo){
+        MenuVO menuVO = new MenuVO();
+        menuVO.setId(funcInfo.id);
+        menuVO.setSource(funcInfo.image);
+        //if(StringUtils.isBlank(menu.resourceB)){
+        //    continue;
+        //}
+        menuVO.setPath(funcInfo.resourceB);
+        menuVO.setParentId(funcInfo.parentId);
+        menuVO.setCode(funcInfo.aliasName);
+        menuVO.setAlias(funcInfo.aliasName);
+        menuVO.setName(funcInfo.name);
+        menuVO.getMeta().put("keepAlive",false);
+        menuVO.setSort((int) funcInfo.seq);
+        if(this.checkChildObject(menuVO.getId()) == 0){
+            menuVO.setHasChildren(false);
+        }else{
+            menuVO.setHasChildren(true);
+        }
+        return menuVO;
+    }
+
+    /**
+     * 閫氳繃妯″潡ID妫�鏌ヨ妯″潡瀛愮骇瀵硅薄鏄ā鍧楄繕鏄搷浣�
+     * @param moduleId
+     * @return 0琛ㄧず娌℃湁妯″潡涔熸病鏈夋搷浣滐紝1琛ㄧず鏈夋ā鍧楋紝2琛ㄧず鏈夋搷浣�
+     * @throws VciException
+     */
+    @Override
+    public int checkChildObject(String moduleId) throws VciBaseException {
+        long res = 0;
+        try{
+            res = ClientSession.getFrameworkService().checkChildObject(moduleId);
+        }catch (PLException e) {
+            e.printStackTrace();
+            throw new VciBaseException(String.valueOf(e.code),e.messages);
+        }
+        return (int)res;
     }
 
     public List<MenuVO> findChildFunctionVO(String parentOid,Map<String, List<FunctionInfo>> map) throws PLException {
@@ -723,6 +777,7 @@
         }
         return dataGrid(queryMap,pageHelper);
     }
+
     /**
      * 鎵归噺鏍规嵁瑙掕壊鐨勪富閿幏鍙栧叧鑱旂殑鏉冮檺
      *
@@ -755,7 +810,6 @@
         }
         return gridFunctionByRoleOid(roleOidCollection.stream().collect(Collectors.joining(",")), queryMap,pageHelper,resourceControlTypeEnum,false);
     }
-
 
     /**
      * 娓呴櫎缂撳瓨

--
Gitblit v1.9.3