package com.vci.web.controller;
|
|
import com.vci.corba.common.PLException;
|
import com.vci.corba.portal.data.PLTabPage;
|
import com.vci.corba.portal.data.PLUILayout;
|
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.util.VciBaseUtil;
|
import com.vci.web.service.OsBtmServiceI;
|
import com.vci.web.service.UIManagerServiceI;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.List;
|
|
/**
|
* UI定义控制层
|
* @author ludc
|
* @date 2024/8/28 17:09
|
*/
|
@RestController
|
@RequestMapping("/uiManagerController")
|
public class UIManagerController {
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 业务类型的服务
|
*/
|
@Autowired
|
private OsBtmServiceI btmService;
|
|
/**
|
* UI定义服务
|
*/
|
@Autowired
|
private UIManagerServiceI uiManagerService;
|
|
/**
|
* 业务类型列表查询,非树结构:用于UI定义左侧业务类型查询
|
* @param btmName
|
* @return
|
* @throws PLException
|
*/
|
@GetMapping( "/getBizTree")
|
@VciBusinessLog(operateName = "业务类型列表(主要用于UI定义业务类型树查询使用)")
|
public BaseResult getBizTree(String btmName){
|
try {
|
return BaseResult.success(btmService.getBizTree(btmName));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "获取UI定义业务类型列表时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 通过业务类型name查询ui上下文,支持分页
|
* @param baseQueryObject
|
* @return
|
* @throws PLException
|
*/
|
@GetMapping( "/gridUIContextData")
|
@VciBusinessLog(operateName = "通过业务类型name查询出ui上下文")
|
public BaseResult gridUIContextData(BaseQueryObject baseQueryObject){
|
try {
|
return BaseResult.dataGrid(uiManagerService.gridUIContextData(baseQueryObject));
|
}catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "通过业务类型name查询出ui上下文时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 创建UI上下文
|
* btmTypeDTO 链接类型的保存对象
|
* @return 保存结果
|
*/
|
@PostMapping("/saveUIContextData")
|
public BaseResult saveUIContextData(@RequestBody PLUILayout pluiLayout){
|
try {
|
return uiManagerService.saveUIContextData(pluiLayout) ? BaseResult.success("UI上下文创建成功!"):BaseResult.fail("UI上下文创建失败!");
|
} catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "创建UI上下文时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 修改UI上下文
|
* btmTypeDTO
|
* @return 修改结果
|
*/
|
@PutMapping("/updateUIContextData")
|
public BaseResult updateUIContextData(@RequestBody PLUILayout pluiLayout){
|
try {
|
return uiManagerService.updateUIContextData(pluiLayout) ? BaseResult.success("UI上下文修改成功!"):BaseResult.fail("UI上下文修改失败!");
|
} catch (Exception e) {
|
e.printStackTrace();
|
String exceptionMessage = "修改UI上下文时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 删除UI上下文数据
|
* oids 删除的oid信息
|
* @return 删除结果
|
*/
|
@DeleteMapping("/delUIContextData")
|
public BaseResult delUIContextData(String[] oids,String plRelatedType){
|
try {
|
return uiManagerService.delUIContextData(oids,plRelatedType) ? BaseResult.success("UI上下文删除成功!"):BaseResult.fail("UI上下文删除失败!");
|
} catch (PLException e) {
|
e.printStackTrace();
|
String exceptionMessage = "删除UI上下文时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* UI上下文克隆
|
* pluiLayoutCloneVO 克隆参数对象
|
* @return 克隆结构
|
*/
|
@PostMapping("/cloneUIContextData")
|
public BaseResult cloneUIContextData(@RequestBody PLUILayoutCloneVO pluiLayoutCloneVO){
|
try {
|
return uiManagerService.cloneUIContextData(pluiLayoutCloneVO) ? BaseResult.success("UI上下文克隆成功!"):BaseResult.fail("UI上下文克隆失败!");
|
} catch (PLException e) {
|
e.printStackTrace();
|
String exceptionMessage = "UI上下文克隆时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
|
logger.error(exceptionMessage);
|
return BaseResult.fail(exceptionMessage);
|
}
|
}
|
|
/**
|
* 导出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<List<PLTabPage>> getTabByContextIdAndType(String contextId, int areaType){
|
try {
|
return BaseResult.dataList(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);
|
}
|
}
|
|
/**
|
* 根据角色获取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 selectTreeList 勾选的需要保存的数据对象
|
* @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);
|
}
|
}
|
|
}
|