ludc
2024-08-23 b75e809d02809726382ed45b6c3c3394b091ec7e
首页配置接口联调修改上传
已修改6个文件
536 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmHMSysModConfigServiceI.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmHMSysModConfigServiceImpl.java 176 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/menuConfig.json 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java
@@ -135,10 +135,36 @@
    private Boolean isValid;
    /**
     * 合并了functionOperate对象中的属性的模块的id
     */
    private String funcId;
    /**
     * 模块下关联的操作类型id
     */
    private String operId;
    /**
     * 前端是否隐藏
     */
    private HashMap<String,Boolean> meta = new HashMap<>();
    public void setFuncId(String funcId) {
        this.funcId = funcId;
    }
    public void setOperId(String operId) {
        this.operId = operId;
    }
    public String getFuncId() {
        return funcId;
    }
    public String getOperId() {
        return operId;
    }
    public void setPathC(String pathC) {
        this.pathC = pathC;
    }
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/SmHMSysModConfigServiceI.java
@@ -2,6 +2,7 @@
import com.vci.common.exception.VciException;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.FuncOperationInfo;
import com.vci.pagemodel.MenuVO;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseResult;
@@ -41,10 +42,17 @@
    boolean delModule(MenuVO menuVO);
    /**
     * 删除模块下关联的操作类型
     * @param funcOperationInfo
     * @return
     */
    boolean delFuncOperation(FuncOperationInfo funcOperationInfo);
    /**
     * 增加操作类型
     * @return
     */
    boolean addOperationType(List<MenuVO> menuVOList);
    boolean addOperationType(List<FuncOperationInfo> funcOperationInfoList);
    /**
     * 删除非系统模块
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -34,6 +34,7 @@
import com.vci.web.util.RightControlUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.el.stream.Stream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -319,22 +320,25 @@
                    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.setChildType(childType);
                                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.setModeType("FunctionObject");
                                menuVO.setIsValid(info.isValid);
                                menuVO.setHasChildren(false);
                                menuVOList.add(menuVO);
                            if(Func.isNotEmpty(infos.length)){
                                childType = this.checkChildObject(infos[0].id); //都是同一层所以取第一个即可查询是什么类型
                                for(int i = 0;i < infos.length ;i++){
                                    FuncOperationInfo info = infos[i];
                                    MenuVO menuVO = new MenuVO();
                                    menuVO.setChildType(childType);
                                    menuVO.setId(info.id);
                                    menuVO.setFuncId(info.funcId);
                                    menuVO.setCode(info.operIndentify);
                                    menuVO.setOperId(info.operId);
                                    menuVO.setName(info.operName);
                                    menuVO.setAlias(info.operAlias);
                                    menuVO.setRemark(info.operDesc);
                                    menuVO.setSort((int) info.number);
                                    menuVO.setModeType("FunctionObject");
                                    menuVO.setIsValid(info.isValid);
                                    menuVO.setHasChildren(false);
                                    menuVOList.add(menuVO);
                                }
                            }
                        }catch (PLException e) {
                            e.printStackTrace();
@@ -343,12 +347,15 @@
                    }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);
                                menuVO.setChildType(childType);
                                menuVO.setModeType("FunctionObject");
                                menuVOList.add(menuVO);
                            if(Func.isNotEmpty(funcInfos.length)){
                                childType = this.checkChildObject(funcInfos[0].id); //都是同一层所以取第一个即可查询是什么类型
                                for(int i = 0;i < funcInfos.length; i++){
                                    FunctionInfo funcInfo = funcInfos[i];
                                    MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
                                    menuVO.setChildType(childType);
                                    menuVO.setModeType("FunctionObject");
                                    menuVOList.add(menuVO);
                                }
                            }
                        }catch (PLException e) {
                            e.printStackTrace();
@@ -361,14 +368,18 @@
                }
            }else{
                try{
                    MenuVO parentNode;
                    MenuVO parentNode = null;
                    //将返回的节点外层套上当前父节点
                    if(parentId.equals("systemManagmentNode")){
                    if("systemManagmentNode".equals(parentId)){
                        parentNode = JsonConfigReader.getSysModuleConf().getSystemManagmentNode();
                    }else{
                    }else if("modelManagmentNode".equals(parentId)){
                        parentNode = JsonConfigReader.getSysModuleConf().getModelManagmentNode();
                    }
                    List<MenuVO> menuVOS = new ArrayList<>();
                    //如果查询的是第一层节点就需要直接返回systemManagmentNode或modelManagmentNode节点
                    if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){
                        menuVOList.add(parentNode);
                        return menuVOList;
                    }
                    //查询的三级节点
                    FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll);
                    for(int i = 0;i < funcInfos.length; i++){
@@ -376,10 +387,9 @@
                        MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
                        menuVO.setModeType("FunctionObject");
                        menuVO.setChildType(childType);
                        menuVOS.add(menuVO);
                        menuVOList.add(menuVO);
                    }
                    parentNode.setChildren(menuVOS);
                    menuVOList.add(parentNode);
                    return menuVOList;
                }catch (PLException e) {
                    e.printStackTrace();
                    throw new VciBaseException(String.valueOf(e.code),e.messages);
@@ -455,8 +465,8 @@
    @Override
    public int checkChildObject(String moduleId) throws VciBaseException {
        long res = 0;
        try{
            res = ClientSession.getFrameworkService().checkChildObject(moduleId);
        try{//20D63A69-C6BC-8519-8B2B-E5ACFEA62394
            res = platformClientUtil.getFrameworkService().checkChildObject(moduleId);
        }catch (PLException e) {
            e.printStackTrace();
            throw new VciBaseException(String.valueOf(e.code),e.messages);
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmHMSysModConfigServiceImpl.java
@@ -1,8 +1,8 @@
package com.vci.frameworkcore.compatibility.impl;
import com.vci.client.ClientSession;
import com.vci.client.common.excel.ExcelDocumentUtils;
import com.vci.common.exception.VciException;
import com.vci.common.locale.LocaleDisplay;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.data.UserEntityInfo;
@@ -11,7 +11,8 @@
import com.vci.corba.framework.data.OperateInfo;
import com.vci.frameworkcore.compatibility.SmHMSysModConfigServiceI;
import com.vci.pagemodel.MenuVO;
import com.vci.client.common.excel.SheetDataSet;
import com.vci.starter.poi.bo.SheetDataSet;
import com.vci.starter.poi.bo.SheetRowData;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.util.ExcelUtil;
@@ -166,34 +167,33 @@
    }
    /**
     * 删除模块下关联的操作类型
     * @param funcOperationInfo
     * @return
     */
    @Override
    public boolean delFuncOperation(FuncOperationInfo funcOperationInfo) {
        VciBaseUtil.alertNotNull(funcOperationInfo,"删除的操作类型列表");
        return foDelegate.deleteFuncOperation(funcOperationInfo);
    }
    /**
     * 增加操作类型
     * @return
     */
    @Override
    public boolean addOperationType(List<MenuVO> menuVOList) {
        VciBaseUtil.alertNotNull(menuVOList,"添加操作类型的列表");
    public boolean addOperationType(List<FuncOperationInfo> funcOperationInfoList) {
        VciBaseUtil.alertNotNull(funcOperationInfoList,"添加操作类型的列表");//将操作类型组装成需要存储的对象
        List<FuncOperationInfo> objs = new ArrayList<>();
        //将操作类型组装成需要存储的对象
        menuVOList.stream().forEach(menuVO -> {
            FuncOperationInfo info = new FuncOperationInfo();
            //info.id = menuVO.getId() == null ? "" : menuVO.getId();
            info.funcId = menuVO.getParentId() == null ? "" : menuVO.getParentId();
            info.operId = menuVO.getId() == null ? "" : menuVO.getId();
            info.operName = menuVO.getName() == null ? "" : menuVO.getName();
            //info.operIndentify = menuVO.getOperIndentify() == null ? "" : menuVO.getOperIndentify();
            info.operAlias = menuVO.getAlias() == null ? "" : menuVO.getAlias();
            info.operDesc = menuVO.getRemark() == null ? "" : menuVO.getRemark();
        funcOperationInfoList.stream().forEach(info -> {
            if(Func.isBlank(info.funcId)){
                throw new VciBaseException("父id不能为空!");
            }
            if(Func.isBlank(info.operId)){
                throw new VciBaseException("未获取操作名称!");
            }
            info.number = -1;
            info.isValid = true;
            /*VCIBaseTreeNode node = (VCIBaseTreeNode)treePaths[i].getLastPathComponent();
            OperateObject operateObject = (OperateObject) node.getObj();
            obj.setFuncId(funcObj.getId());
            obj.setOperId(operateObject.getId());
            obj.setOperName(operateObject.getName());
            obj.setOperIndentify(operateObject.getIdentify());
            obj.setOperAlias(operateObject.getAlias());
            obj.setNumber(-1);
            obj.setIsValid(true);*/
            objs.add(info);
        });
@@ -279,7 +279,7 @@
        //写excel
        String excelPath = defaultTempFolder + File.separator + "module.xls";
        final List<String> columns = new ArrayList<String>(Arrays.asList("PLNAME","PLRESOURCEC","PLSUFFIXC","PLRESOURCEB",
                "PLSUFFIXB","PLMODULENO","PLDESC","PLISVALID","PLIMAGE","PLMODULESEQUENCE","PLALIASNAME",
                "PLSUFFIXB","PLDESC","PLISVALID","PLIMAGE","PLMODULESEQUENCE","PLALIASNAME",
                "PLMODULENAME","PLRESOURCEDOTNET","PLRESOURCEMOBIL","级别","别名","PLNO","PLISVALID",
                "PLNAME","PLUNIQUEFLAG","PLDESC","PLALIAS","PLSEQUENCE"));// 设置表单列名
        //int count = transmitTreeObject.getCurrentTreeNode().getChildCount();
@@ -316,7 +316,7 @@
                excelDataList.add(new WriteExcelData(row,6, ""+datas[i][6]));
                excelDataList.add(new WriteExcelData(row,7, ""+datas[i][7]));
                excelDataList.add(new WriteExcelData(row,8, ""+datas[i][8]));
                excelDataList.add(new WriteExcelData(row,9, ""+datas[i][9]));
                excelDataList.add(new WriteExcelData(row,9,""+datas[i][9]));
                excelDataList.add(new WriteExcelData(row,10,""+datas[i][10]));
                excelDataList.add(new WriteExcelData(row,11,""+datas[i][11]));
                excelDataList.add(new WriteExcelData(row,12,""+datas[i][12]));
@@ -329,7 +329,6 @@
                excelDataList.add(new WriteExcelData(row,19,""+datas[i][19]));
                excelDataList.add(new WriteExcelData(row,20,""+datas[i][20]));
                excelDataList.add(new WriteExcelData(row,21,""+datas[i][21]));
                excelDataList.add(new WriteExcelData(row,22,""+datas[i][22]));
            }
        }
        WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
@@ -410,25 +409,23 @@
            if (sheetDataSets != null && !sheetDataSets.isEmpty()) {
                for (SheetDataSet sheet : sheetDataSets) {
                    // sheet不能为空并且必须有出表头外的一条数据
                    if (sheet != null && sheet.getDataSet() != null && sheet.getDataSet().size() > 1) {
                        List<String[]> dataSet = sheet.getDataSet();
                    if (sheet != null && sheet.getRowData() != null && sheet.getRowData().size() > 1) {
                        List<SheetRowData> dataSet = sheet.getRowData();
                        String fParentId=""; //第一级的id(第二级的parentid)
                        boolean boo=true;
                        boolean first=false;
                        String[] pd=new String[100];
                        int jibie=2;
                        for (int i = 1; i < dataSet.size(); i++) {
                            //fileDatas = new ArrayList<FunctionObject>();
                            String[] oneData = dataSet.get(i);
                        for (int i = 0; i < dataSet.size(); i++) {
                            Map<Integer, String> oneData = dataSet.get(i).getData();
                            String id = ObjectUtility.getNewObjectID36();
                            FunctionInfo funObj=new FunctionInfo();
                            boolean onebl=false;
                            boolean twobl=false;
                            boolean same=false;
                            String plName=oneData[0];
                            //TODO: 这里绝对会出问题,导出的第一层的级别都是0,都不会存在等于1的,所以平台这儿等于1应该是不对的
                            if(oneData[14].equals("0")) {
                            String plName = Func.isBlank(oneData.get(0)) ? "":oneData.get(0);
                            if(oneData.get(14).equals("1")) {
                                try {
                                    onebl = foDelegate.firstLevel(plName);
                                } catch (VciException e) {
@@ -462,7 +459,7 @@
                            }
                            //#########################     合并     #########################
                            for(jibie=2;jibie<100;jibie++){
                                if(oneData[14].equals(String.valueOf(jibie))){
                                if(oneData.get(14).equals(String.valueOf(jibie))){
                                    if(first == true && boo == true){
                                        try {
                                            if(pd[jibie]==null){
@@ -495,12 +492,12 @@
                                }
                            }
                            if(oneData[14].equals("-1")) {
                            if(oneData.get(14).equals("-1")) {
                                importExcelData(count);
                                FuncOperationInfo foObj = new FuncOperationInfo();
                                int len=fileFunctionDatas.size();
                                //**************同一节点下不能有相同的操作类型********************
                                String dataOperName=oneData[18];
                                String dataOperName=oneData.get(18);
                                String plFuncOid=fileFunctionDatas.get(len-1).id;
                                try {
                                    same = foDelegate.selSameOper(dataOperName,plFuncOid);
@@ -513,15 +510,15 @@
                                    foObj.id = id;
                                    foObj.funcId = fileFunctionDatas.get(len-1).id;
                                    try {
                                        OperateInfo operObj = foDelegate.fetchOperateTypeByName(oneData[18]);
                                        OperateInfo operObj = foDelegate.fetchOperateTypeByName(oneData.get(18));
                                        foObj.operId = operObj.id;
                                    } catch (VciException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    foObj.number = Integer.parseInt(oneData[16]);
                                    foObj.operAlias = oneData[15];
                                    foObj.isValid = Integer.parseInt(oneData[17]) != 0;
                                    foObj.number = Integer.parseInt(oneData.get(16));
                                    foObj.operAlias = oneData.get(15);
                                    foObj.isValid = Integer.parseInt(oneData.get(17)) != 0;
                                    try {
                                        foDelegate.saveFuncOperation2(foObj);
                                    } catch (VciException e) {
@@ -530,9 +527,9 @@
                                    }
                                } else {
                                    foObj.number = Integer.parseInt(oneData[16]);
                                    foObj.operAlias = oneData[15];
                                    foObj.isValid = Integer.parseInt(oneData[17]) != 0;
                                    foObj.number = Integer.parseInt(oneData.get(16));
                                    foObj.operAlias = oneData.get(15);
                                    foObj.isValid = Integer.parseInt(oneData.get(17)) != 0;
                                    try {
                                        foDelegate.updateOperation(foObj,dataOperName,plFuncOid);
                                    } catch (VciException e) {
@@ -558,7 +555,7 @@
    private boolean importExcelData(int count) throws PLException {
        boolean b=false;
        try {
            b=    foDelegate.importModules(fileFunctionDatas.toArray(new FunctionInfo[]{}),count);
            b = foDelegate.importModules(fileFunctionDatas.toArray(new FunctionInfo[fileFunctionDatas.size()]),count);
        } catch (VciBaseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
@@ -576,13 +573,8 @@
     * @data 2014-3-11
     */
    private List<SheetDataSet> getFileList(File f) throws PLException, IOException {
        // 获取流
        BufferedInputStream fileInputStream = new BufferedInputStream(
                new FileInputStream(f));
        String name = f.getName();
        // 获取表list
        List<SheetDataSet> sheetDataSets = ExcelDocumentUtils
                .readExcelDocument(name, fileInputStream);
        List<SheetDataSet> sheetDataSets = ExcelUtil.readDataObjectFromExcel(f);
        return sheetDataSets;
    }
@@ -618,13 +610,13 @@
                if(isFunction){
                    if(!plDatas[i][16].trim().equals("") && plDatas[i][16]!=null && !plDatas[i][16].equals("-1")){
                        bw.write("insert into plfunction values('"+plDatas[i][0]+"','"+plDatas[i][1]+"',"+"'"+plDatas[i][2]+"',"+"'"+plDatas[i][3]+"',"+"'"+plDatas[i][4]+"',"
                                +"'"+plDatas[i][5]+"',"+"'"+plDatas[i][6]+"',"+"'"+plDatas[i][7]+"',"+"'"+plDatas[i][8]+"',"+"'"+plDatas[i][9]+"',"+"'"+plDatas[i][10]+"',"+"'"+plDatas[i][11]+"',"
                                +"'"+plDatas[i][12]+"',"+"'"+plDatas[i][13]+"',"+"'"+plDatas[i][14]+"',"+"'"+plDatas[i][15]+"');");
                                +"',"+"'"+plDatas[i][5]+"',"+"'"+plDatas[i][6]+"',"+"'"+plDatas[i][7]+"',"+"'"+plDatas[i][8]+"',"+"'"+plDatas[i][9]+"',"+"'"+plDatas[i][10]+"',"
                                +"'"+plDatas[i][11]+"',"+"'"+plDatas[i][12]+"',"+"'"+plDatas[i][13]+"',"+"'"+plDatas[i][14]+"');");
                        bw.write("\r\n");
                    }
                    if(!plDatas[i][16].trim().equals("") && plDatas[i][16]!=null && plDatas[i][16].equals("-1")){
                        bw.write("insert into plfuncoperation values('"+plDatas[i][17]+"','"+plDatas[i][18]+"',"+"'"+plDatas[i][19]+"',"+"'"+plDatas[i][20]+"',"+"'"+plDatas[i][21]+"',"
                                +"'"+plDatas[i][22]+"');");
                    if(!plDatas[i][15].trim().equals("") && plDatas[i][15]!=null && plDatas[i][15].equals("-1")){
                        bw.write("insert into plfuncoperation values('"+plDatas[i][16]+"','"+plDatas[i][17]+"',"+"'"+plDatas[i][18]+"',"+"'"+plDatas[i][19]+"',"+"'"+plDatas[i][20]+"',"
                                +"'"+plDatas[i][21]+"');");
                        bw.write("\r\n");
                    }
                }else{
@@ -695,20 +687,19 @@
        return res;
    }
    public void fuzhi(FunctionInfo functionInfo,String[] oneData){
        functionInfo.name = oneData[0];
        functionInfo.resourceC = oneData[1];
        functionInfo.suffixC = oneData[2];
        functionInfo.desc = oneData[6];
        functionInfo.resourceB = oneData[3];
        functionInfo.suffixB = oneData[4];
        functionInfo.seq = Integer.parseInt(oneData[9]);
        //funObj.setModuleNo(Integer.parseInt(oneData[5]));
        functionInfo.image = oneData[8];
        functionInfo.isValid = Integer.parseInt(oneData[7]) != 0;
        functionInfo.aliasName = oneData[10];
        functionInfo.resourceDotNet = oneData[12];
        functionInfo.resourceMobile = oneData[13];
    public void fuzhi(FunctionInfo functionInfo,Map<Integer,String> oneData){
        functionInfo.name = oneData.get(0);
        functionInfo.resourceC = oneData.get(1);
        functionInfo.suffixC = oneData.get(2);
        functionInfo.desc = oneData.get(5);
        functionInfo.resourceB = oneData.get(3);
        functionInfo.suffixB = oneData.get(4);
        functionInfo.seq = Integer.parseInt(oneData.get(8));
        functionInfo.image = oneData.get(7);
        functionInfo.isValid = Integer.parseInt(oneData.get(6)) != 0;
        functionInfo.aliasName = oneData.get(9);
        functionInfo.resourceDotNet = oneData.get(11);
        functionInfo.resourceMobile = oneData.get(12);
    }
    /**
@@ -827,13 +818,29 @@
        }
        /**
         * 移除模块下的操作
         * @param funcOperationInfo
         * @return
         * @throws VciException
         */
        public boolean deleteFuncOperation(FuncOperationInfo funcOperationInfo) throws VciBaseException{
            boolean res = true;
            try{
                res = platformClientUtil.getFrameworkService().deleteFuncOperation(funcOperationInfo, this.getUserEntityInfo());
            }catch (PLException e) {
                e.printStackTrace();
                throw new VciBaseException(String.valueOf(e.code), e.messages);
            }
            return res;
        }
        /**
         * VO转DO对象
         * @return
         */
        public FunctionInfo menuVO2FunctionInfo(MenuVO object){
            FunctionInfo info = new FunctionInfo();
            info.id = object.getId() == null ? "" : object.getId();
            //info.layer = object.getLayer();
            info.name = object.getName() == null ? "" : object.getName();
            info.parentId = object.getParentId() == null ? "" : object.getParentId();
            info.resourceC = object.getPathC() == null ? "" : object.getPathC();
@@ -842,7 +849,6 @@
            //info.suffixB = object.getSuffixB() == null ? "" : object.getSuffixB();
            info.desc = object.getRemark() == null ? "" : object.getRemark();
            info.seq = object.getSort();
            //info.moduleNo = object.getModuleNo();
            info.image = object.getSource() == null ? "" : object.getSource();
            info.isValid = object.getIsValid();
            info.aliasName = object.getAlias() == null ? "" : object.getAlias();
@@ -862,7 +868,6 @@
         */
        private FunctionInfo check(MenuVO menuVO,String type) {
            FunctionInfo obj = new FunctionInfo();
            //获取表单输入的值
            String modelName = menuVO.getName();
            String csIdentity = menuVO.getPathC();
@@ -871,36 +876,35 @@
            String resDotNet = menuVO.getResourceDotNet();
            String resMobile = menuVO.getResourceMobile();
            //int moduleNo = transferStringToNum(moduleNoTxt.getText());
            int sequence = menuVO.getSort();
            int sequence = Func.isNotEmpty(menuVO.getSort()) ? menuVO.getSort():1;
            String description = menuVO.getRemark();
            if("".equals(modelName) || "null".equals(modelName) || modelName == null) {
            if(Func.isBlank(modelName)) {
                throw new VciBaseException("模块名不能为空!");
            }else if(modelName.length() > 128) {
                throw new VciBaseException("模块名长度不能超过128!");
            }else if(description.length() > 255) {
            }else if(Func.isNotBlank(description) && description.length() > 255) {
                throw new VciBaseException("描述长度不能超过255!");
            }else if(csIdentity != null && !"".equals(csIdentity) && csIdentity.length() > 255) {
            }else if(Func.isNotBlank(csIdentity) && csIdentity.length() > 255) {
                throw new VciBaseException("C/S标识长度不能超过255!");
            } else if(resDotNet != null && !"".equals(resDotNet) && resDotNet.length() > 255) {
            } else if(Func.isNotBlank(resDotNet) && resDotNet.length() > 255) {
                throw new VciBaseException(".NET标识长度不能超过255!");
            }else if(resMobile != null && !"".equals(resMobile) && resMobile.length() > 255) {
            }else if(Func.isNotBlank(resMobile) && resMobile.length() > 255) {
                throw new VciBaseException("Mobile标识长度不能超过255!");
            } else if (sequence < 0) {
                throw new VciBaseException("序号不能小于0!");
            }
            if(type.equals("add")){
                //给object对象赋值
                String parentId = "";
                /*String parentId = "";
                if(menuVO.getModeType().equals("FunctionObject")) {
                    parentId = menuVO.getParentId();
                }else if("modelManagmentNode".equals(menuVO.getParentId())) {
                    parentId = "modelManagmentNode";
                }else if("systemManagmentNode".equals(menuVO.getParentId())) {
                    parentId = "systemManagmentNode";
                }
                obj.parentId = parentId;
                }*/
                obj.parentId = menuVO.getParentId();
            }else{
                obj.id = menuVO.getId();
                obj.parentId = menuVO.getParentId();
@@ -909,11 +913,11 @@
            obj.resourceC = csIdentity;
            obj.desc = description;
            obj.resourceB = bsIdentity;
            obj.suffixC = "";
            obj.suffixB = "";
            /*obj.suffixC = "";
            obj.suffixB = "";*/
            obj.seq = sequence;
            obj.image = menuVO.getSource();
            obj.isValid = menuVO.getValid();//1有效0无效
            obj.isValid = Func.isNotEmpty(menuVO.getValid()) ? menuVO.getValid():false;
            obj.aliasName = aliasName;
            obj.resourceDotNet = resDotNet;
            obj.resourceMobile = resMobile;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java
@@ -1,6 +1,7 @@
package com.vci.web.controller;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.framework.data.FuncOperationInfo;
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
import com.vci.frameworkcore.compatibility.SmHMSysModConfigServiceI;
import com.vci.pagemodel.MenuVO;
@@ -79,7 +80,7 @@
    @PostMapping("/addModel")
    public BaseResult addModel(@RequestBody MenuVO menuVO) {
        try {
            return BaseResult.success(hmSysModConfigService.addModule(menuVO),"模块增加成功");
            return BaseResult.success(hmSysModConfigService.addModule(menuVO),"模块增加成功!");
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "增加模块时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
@@ -123,6 +124,23 @@
    }
    /**
     * 删除模块下关联的操作类型
     * @param funcOperationInfo
     * @return
     */
    @DeleteMapping("/delFuncOperation")
    public BaseResult delFuncOperation(@RequestBody FuncOperationInfo funcOperationInfo) {
        try {
            return BaseResult.success(hmSysModConfigService.delFuncOperation(funcOperationInfo),"模块下操作类型删除成功");
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "模块下操作类型删除时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
     * 管理功能模块、业务功能模块下的叶子节点—修改操作别名接口
     * @param menuVO
     * @return
@@ -141,13 +159,13 @@
    /**
     * 添加操作类型
     * @param menuVOList
     * @param funcOperationInfoList
     * @return
     */
    @PostMapping("/addOperationType")
    public BaseResult addOperationType(@RequestBody List<MenuVO> menuVOList) {
    public BaseResult addOperationType(@RequestBody List<FuncOperationInfo> funcOperationInfoList) {
        try {
            return BaseResult.success(hmSysModConfigService.addOperationType(menuVOList),"操作类型添加成功");
            return BaseResult.success(hmSysModConfigService.addOperationType(funcOperationInfoList),"操作类型添加成功");
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "删除模块时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
@@ -234,7 +252,7 @@
     * 导入模块
     * @return
     */
    @GetMapping("/importModule")
    @PostMapping("/importModule")
    public BaseResult importModule(@RequestParam("files") List<MultipartFile> files) {
        LinkedList<File> fileList = new LinkedList<>();
        try {
@@ -244,7 +262,7 @@
                file.transferTo(file1);
                fileList.add(file1);
            }
            if(Func.isEmpty(fileList)){
            if(Func.isNotEmpty(fileList)){
                return hmSysModConfigService.importModule(fileList);
            } else {
                return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"无导入的文件"});
Source/plt-web/plt-web-parent/plt-web/src/main/resources/menuConfig.json
@@ -1,91 +1,141 @@
{
  "hasChildren": true,
  "children": [
    {
      "hasChildren": true,
      "children": [],
      "id": "systemManagmentNode",
      "name": "管理功能模块",
      "parentId": "VCIBaseTreeNode",
      "code": "systemManagmentNode",
      "alias": "system",
      "meta": {
        "keepAlive": false
  "sysModuleNode": {
    "hasChildren": true,
    "children": [
      {
        "hasChildren": true,
        "children": [],
        "id": "systemManagmentNode",
        "name": "管理功能模块",
        "parentId": "VCIBaseTreeNode",
        "code": "systemManagmentNode",
        "alias": "system",
        "meta": {
          "keepAlive": false
        },
        "sort": 2,
        "soruce": "",
        "path": "views/systemModel/mangeModel/index"
      },
      "sort": 2,
      "soruce": "",
      "path": "views/systemModel/mangeModel/index"
      {
        "hasChildren": true,
        "children": [],
        "id": "modelManagmentNode",
        "name": "业务功能模块",
        "parentId": "VCIBaseTreeNode",
        "code": "modelManagmentNode",
        "alias": "model",
        "meta": {
          "keepAlive": false
        },
        "sort": 3,
        "soruce": "",
        "path": "views/systemModel/businessModel/index"
      },
      {
        "hasChildren": true,
        "children": [],
        "id": "operateNode",
        "name": "操作类型管理",
        "parentId": "VCIBaseTreeNode",
        "code": "operateNode",
        "alias": "operate",
        "meta": {
          "keepAlive": false
        },
        "sort": 4,
        "soruce": "",
        "path": "views/systemModel/operateType/index"
      },
      {
        "hasChildren": false,
        "children": [],
        "id": "sysOptionNode",
        "name": "系统配置",
        "parentId": "VCIBaseTreeNode",
        "code": "sysOptionNode",
        "alias": "sysOption",
        "meta": {
          "keepAlive": false
        },
        "sort": 5,
        "soruce": "",
        "path": "views/systemModel/systemConfig/index"
      },
      {
        "hasChildren": false,
        "children": [],
        "id": "sysMonitorNode",
        "name": "系统运行监控",
        "parentId": "VCIBaseTreeNode",
        "code": "sysMonitorNode",
        "alias": "sysMonitor",
        "meta": {
          "keepAlive": false
        },
        "sort": 5,
        "soruce": "",
        "path": "views/systemModel/systemMonitor/index"
      }
    ],
    "id": "VCIBaseTreeNode",
    "name": "系统模块配置",
    "parentId": "systemManagmentNode",
    "code": "rootNode",
    "alias": "root",
    "meta": {
      "keepAlive": false
    },
    {
      "hasChildren": true,
      "children": [],
      "id": "modelManagmentNode",
      "name": "业务功能模块",
      "parentId": "VCIBaseTreeNode",
      "code": "modelManagmentNode",
      "alias": "model",
      "meta": {
        "keepAlive": false
      },
      "sort": 3,
      "soruce": "",
      "path": "views/systemModel/businessModel/index"
    },
    {
      "hasChildren": true,
      "children": [],
      "id": "operateNode",
      "name": "操作类型管理",
      "parentId": "VCIBaseTreeNode",
      "code": "operateNode",
      "alias": "operate",
      "meta": {
        "keepAlive": false
      },
      "sort": 4,
      "soruce": "",
      "path": "views/systemModel/operateType/index"
    },
    {
      "hasChildren": false,
      "children": [],
      "id": "sysOptionNode",
      "name": "系统配置",
      "parentId": "VCIBaseTreeNode",
      "code": "sysOptionNode",
      "alias": "sysOption",
      "meta": {
        "keepAlive": false
      },
      "sort": 5,
      "soruce": "",
      "path": "views/systemModel/systemConfig/index"
    },
    {
      "hasChildren": false,
      "children": [],
      "id": "sysMonitorNode",
      "name": "系统运行监控",
      "parentId": "VCIBaseTreeNode",
      "code": "sysMonitorNode",
      "alias": "sysMonitor",
      "meta": {
        "keepAlive": false
      },
      "sort": 5,
      "soruce": "",
      "path": "views/systemModel/systemMonitor/index"
    }
  ],
  "id": "VCIBaseTreeNode",
  "name": "系统模块配置",
  "parentId": "systemManagmentNode",
  "code": "rootNode",
  "alias": "root",
  "meta": {
    "keepAlive": false
    "sort": 0,
    "soruce": "",
    "path": ""
  },
  "sort": 0,
  "soruce": "",
  "path": ""
  "systemManagmentNode": {
    "hasChildren": true,
    "children": [],
    "childType": -1,
    "id": "systemManagmentNode",
    "name": "管理功能模块",
    "parentId": "VCIBaseTreeNode",
    "code": "systemManagmentNode",
    "alias": "system",
    "meta": {
      "keepAlive": false
    },
    "sort": 2,
    "soruce": "",
    "path": "views/systemModel/mangeModel/index"
  },
  "modelManagmentNode": {
    "hasChildren": true,
    "children": [],
    "childType": -1,
    "id": "modelManagmentNode",
    "name": "业务功能模块",
    "parentId": "VCIBaseTreeNode",
    "code": "modelManagmentNode",
    "alias": "model",
    "meta": {
      "keepAlive": false
    },
    "sort": 3,
    "soruce": "",
    "path": "views/systemModel/businessModel/index"
  },
  "operateNode": {
    "hasChildren": true,
    "children": [],
    "childType": -1,
    "id": "operateNode",
    "name": "操作类型管理",
    "parentId": "VCIBaseTreeNode",
    "code": "operateNode",
    "alias": "operate",
    "meta": {
      "keepAlive": false
    },
    "sort": 4,
    "soruce": "",
    "path": "views/systemModel/operateType/index"
  }
}