ludc
2024-09-09 08635bced778daba88cd02a6382f7727de4f7bab
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java
@@ -1,12 +1,16 @@
package com.vci.web.controller;
import com.vci.corba.common.PLException;
import com.vci.corba.portal.data.PLPageDefination;
import com.vci.corba.portal.data.PLTabPage;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.dto.OsBtmTypeDTO;
import com.vci.dto.UIAuthorDTO;
import com.vci.pagemodel.PLUILayoutCloneVO;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIManagerServiceI;
@@ -14,8 +18,13 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
/**
 * UI定义控制层
@@ -121,9 +130,9 @@
     * @return 删除结果
     */
    @DeleteMapping("/delUIContextData")
    public BaseResult delUIContextData(String[] oids){
    public BaseResult delUIContextData(String[] oids,String plRelatedType){
        try {
            return uiManagerService.delUIContextData(oids) ? BaseResult.success("UI上下文删除成功!"):BaseResult.fail("UI上下文删除失败!");
            return uiManagerService.delUIContextData(oids,plRelatedType) ? BaseResult.success("UI上下文删除成功!"):BaseResult.fail("UI上下文删除失败!");
        } catch (PLException e) {
            e.printStackTrace();
            String exceptionMessage = "删除UI上下文时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
@@ -137,10 +146,10 @@
     * pluiLayoutCloneVO 克隆参数对象
     * @return 克隆结构
     */
    @PostMapping("/cloneUiContextData")
    public BaseResult cloneUiContextData(@RequestBody PLUILayoutCloneVO pluiLayoutCloneVO){
    @PostMapping("/cloneUIContextData")
    public BaseResult cloneUIContextData(@RequestBody PLUILayoutCloneVO pluiLayoutCloneVO){
        try {
            return uiManagerService.cloneUiContextData(pluiLayoutCloneVO) ? BaseResult.success("UI上下文克隆成功!"):BaseResult.fail("UI上下文克隆失败!");
            return uiManagerService.cloneUIContextData(pluiLayoutCloneVO) ? BaseResult.success("UI上下文克隆成功!"):BaseResult.fail("UI上下文克隆失败!");
        } catch (PLException e) {
            e.printStackTrace();
            String exceptionMessage = "UI上下文克隆时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
@@ -149,6 +158,168 @@
        }
    }
    /**
     * 导出UI上下文
     * name 链接类型名称
     * @return
     */
    @GetMapping("/expUIContextData")
    public void expUIContextData(String[] oids, HttpServletResponse response) throws PLException, IOException {
        uiManagerService.expUIContextData(oids, response);
    }
    /**
     * 导入UI上下文
     * @param file 上传的文件
     * @return
     */
    @PostMapping("/impUiContextData")
    public BaseResult impUIContextData(MultipartFile file){try {
        return uiManagerService.impUIContextData(file);
    }catch (Throwable e) {
        throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e);
    }
    }
    /**
     * 根据上下文ID和区域类型,按顺序获取当前区域的tab页
     * @param contextId
     * @param areaType
     * @return
     */
    @GetMapping( "/getTabByContextIdAndType")
    @VciBusinessLog(operateName = "根据上下文ID和区域类型,按顺序获取当前区域的tab页")
    public BaseResult<DataGrid> getTabByContextIdAndType(String contextId, int areaType){
        try {
            return BaseResult.dataGrid(uiManagerService.getTabByContextIdAndType(contextId,areaType));
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "根据上下文ID和区域类型,按顺序获取当前区域的tab时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * 创建区域数据
     * @param plTabPage
     * @return 保存结果
     */
    @PostMapping("/addTabData")
    public BaseResult addTabData(@RequestBody PLTabPage plTabPage){
        try {
            return uiManagerService.addTabData(plTabPage) ? BaseResult.success("创建成功!"):BaseResult.fail("创建失败!");
        } catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "创建时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * 修改区域数据
     * @param  plTabPage
     * @return 修改结果
     */
    @PutMapping("/updateTabData")
    public BaseResult updateTabData(@RequestBody PLTabPage plTabPage){
        try {
            return uiManagerService.updateTabData(plTabPage) ? BaseResult.success("修改成功!"):BaseResult.fail("修改失败!");
        } catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "修改时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * UI解析类正则检查
     * @param extAttr
     * @return
     */
    @GetMapping("/checkTabPageExtAttrIsOk")
    public BaseResult checkTabPageExtAttrIsOk(String extAttr){
        try {
            return uiManagerService.checkTabPageExtAttrIsOk(extAttr);
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "UI解析类正则检查时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * 删除数据
     * @param oids
     * @return
     */
    @DeleteMapping("/deleteTabData")
    public BaseResult deleteTabData(String[] oids){
        try {
            return uiManagerService.deleteTabData(oids) ? BaseResult.success("删除成功!"):BaseResult.fail("删除失败!");
        } catch (PLException e) {
            e.printStackTrace();
            String exceptionMessage = "删除时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    //页面设计相关接口
    /**
     * 查询页面设计定义
     * @param pageContextOId
     * @return
     */
    @GetMapping( "/getPLPageDefinations")
    @VciBusinessLog(operateName = "查询页面设计定义")
    public BaseResult<DataGrid> getPLPageDefinations(String pageContextOId){
        try {
            return BaseResult.dataGrid(uiManagerService.getPLPageDefinations(pageContextOId));
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "查询页面设计定义时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * 根据角色获取UI/表单/按钮的权限.
     * @param baseQueryObject
     * @return
     */
    @GetMapping( "/getUIAuthor")
    @VciBusinessLog(operateName = "UI授权(树形结构)")
    public BaseResult getUIAuthor(BaseQueryObject baseQueryObject){
        try {
            return BaseResult.dataList( uiManagerService.getUIAuthor(baseQueryObject));
        }catch (Throwable e) {
            e.printStackTrace();
            String exceptionMessage = "UI授权加载出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /***
     * @param uiAuthorDTO 勾选的需要保存的数据对象
     * @return
     */
    @PostMapping( "/authorizedUI")
    @VciBusinessLog(operateName = "UI授权")
    public BaseResult authorizedUI(UIAuthorDTO uiAuthorDTO){
        try {
            return uiManagerService.authorizedUI(uiAuthorDTO)?BaseResult.success("授权成功!"):BaseResult.fail("授权失败!");
        }catch (Throwable e) {
            e.printStackTrace();
            String exceptionMessage = "UI授权出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
}