ludc
2024-12-04 e405b861b9521f5ea38c5402203a5b05988f9de2
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
@@ -1,22 +1,28 @@
package com.vci.web.controller;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.dto.OsAttributeDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
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.pagemodel.OsAttributeVO;
import com.vci.starter.web.pagemodel.Tree;
import com.vci.starter.web.pagemodel.TreeQueryObject;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import org.apache.commons.lang3.StringUtils;
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.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
@@ -42,12 +48,31 @@
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * 获取所有属性(树形结构)
     * @return 查询结果
     */
    @GetMapping( "/getTreeAttributes")
    @VciBusinessLog(operateName = "获取属性(树形结构)")
    public BaseResult<List<Tree>> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject){
        try {
            List<Tree> trees = attributeService.getTreeAttributesByBtmName(treeQueryObject);
            return BaseResult.dataList(trees);
          //  return BaseResult.tree(trees);
        }catch (Throwable e) {
            e.printStackTrace();
            String exceptionMessage = "查询业务类型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
    }
    /**
     * 属性列表
     * @param baseQueryObject 查询对象
     * @return 属性的显示对象
     */
    @GetMapping("/gridAttribute")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "属性列表")
    public BaseResult<OsAttributeVO> gridAttribute(BaseQueryObject baseQueryObject){
        try {
            return BaseResult.dataGrid(attributeService.gridAttribute(baseQueryObject));
@@ -65,6 +90,7 @@
     * @return
     */
    @GetMapping("/getByAttributeNames")
    @VciBusinessLog(operateName = "根据多个属性名称查询属性")
    public BaseResult getByAttributeNames(String[] attrNames){
        try {
            return BaseResult.dataList(attributeService.getByAttributeNames(attrNames));
@@ -79,17 +105,16 @@
    /**
     * 添加单条属性到属性池
     * @param osAttributeDTO
     * @return 列表的内容
     * @return
     */
    @PostMapping( "/addAttribute")
    @VciBusinessLog(operateName = "添加属性")
    @VciUnCheckRight
    public BaseResult addAttribute(@RequestBody OsAttributeDTO osAttributeDTO) {
        try {
            return attributeService.addAttribute(osAttributeDTO) ? BaseResult.success("属性添加成功!"):BaseResult.fail("属性添加失败!");
        }catch (Exception e) {
            e.printStackTrace();
            String exceptionMessage = "增加属性型时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            String exceptionMessage = "增加属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            logger.error(exceptionMessage);
            return BaseResult.fail(exceptionMessage);
        }
@@ -156,14 +181,13 @@
     * @param response
     */
    @GetMapping( "/exportAttributes")
    @VciBusinessLog(operateName = "导出枚举类型")
    @VciUnCheckRight
    @VciBusinessLog(operateName = "导出属性")
    public void exportAttributes(String exportFileName,String attrNames, HttpServletResponse response){
        try {
            String excelPath = attributeService.exportAttributes(exportFileName,attrNames);
            String excelPath = attributeService.exportAttributes(exportFileName,attrNames,false);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "导出枚举时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            String msg = "导出属性时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            try {
                //出错时
                e.printStackTrace();
@@ -174,5 +198,51 @@
        }
    }
    /**
     * 下载属性导入模板
     * @param exportFileName
     * @param response
     */
    @GetMapping( "/downloadAttributeTemplate")
    @VciBusinessLog(operateName = "导出属性")
    public void downloadAttributeTemplate(String exportFileName, HttpServletResponse response){
        try {
            String excelPath = attributeService.downloadAttributeTemplate(exportFileName);
            ControllerUtil.writeFileToResponse(response,excelPath);
        } catch (Exception e) {
            String msg = "下载枚举导入模板时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
            try {
                //出错时
                e.printStackTrace();
                ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
    }
    /**
     * 导入属性
     * @param file
     * @return
     */
    @PostMapping("/importAttributes")
    @VciBusinessLog(operateName = "导入属性")
    public BaseResult importAttributes(MultipartFile file){
        String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename());
        File file1 = new File(excelFileName);
        try {
            file.transferTo(new File(excelFileName));
            if (file != null) {
                return attributeService.importAttributes(file1,false);
            } else {
                return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"无导入的文件"});
            }
        }catch (Throwable e) {
            throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e);
        }finally {
            file1.delete();
        }
    }
}