Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/develop' into develop

linhuili 3 anni fa
parent
commit
62740bb02f
15 ha cambiato i file con 185 aggiunte e 60 eliminazioni
  1. 4 0
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/ObjectInfoController.java
  2. 18 0
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java
  3. 8 4
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java
  4. 35 2
      dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java
  5. 21 24
      dmp-business/dmp-rwd/src/main/resources/mapper/EquipmentReportMapper.xml
  6. 2 2
      dmp-cloud/dmp-file/pom.xml
  7. 7 2
      dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/CompatibleOldFileController.java
  8. 0 18
      dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/FileMigrateController.java
  9. 28 2
      dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/TestController.java
  10. 3 1
      dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/service/impl/CompatibleOldFileServiceImpl.java
  11. 9 1
      dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/service/impl/MinioStorageServiceImpl.java
  12. 20 1
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjectClient.java
  13. 21 1
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjectFacade.java
  14. 3 1
      dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectDigital.java
  15. 6 1
      dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/file/constant/FileCommonConst.java

+ 4 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/define/controller/ObjectInfoController.java

@@ -63,6 +63,10 @@ public class ObjectInfoController {
         if(CollUtil.isEmpty(criteria.getOrders())) {
             wrapper.orderByAsc("show_order");
         }
+        // 如果项目id为空,则设置项目id为0
+        if (StrUtil.isBlank(projectId)){
+            projectId = CommonConstant.DEFAULT_ID;
+        }
         // 如果入参带classCode:不进行分页并连带查出上级类型信息点
         if(CollUtil.isNotEmpty(typeDefineList) && StrUtil.isNotBlank(projectId)) {
             criteria.getCriteria().remove(ObjectDigital.CLASS_CODE_HUM);

+ 18 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -43,6 +43,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -446,6 +447,23 @@ public class ObjectDigitalController{
         return result;
     }
 
+
+    /**
+     * 新增 更新 验证对象,将验证失败的信息放到ObjectDigital。mark中,并返回所有验证失败的记录
+     * @param voList
+     * @return List<ObjectDigital>
+     */
+    @PostMapping("/validateInfoCodeAndGetErrorList")
+    public List<ObjectDigital> validateInfoCodeAndGetErrorList(@RequestBody ArrayNode voList){
+        if(CollUtil.isEmpty(voList)){
+           return Collections.emptyList();
+        }
+        List<ObjectDigital> digitalList = JsonNodeUtils.toEntity(voList, ObjectDigital.class, "infos");
+        return service.validateInfoCodeAndGetError(digitalList);
+    }
+
+
+
     /**
      * 创建默认条件
      * @param voList

+ 8 - 4
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/IObjectDigitalService.java

@@ -4,14 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.dto.RequestData;
-import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.entity.ObjectDigital;
-import org.springframework.web.bind.annotation.RequestBody;
 
-import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -159,4 +155,12 @@ public interface IObjectDigitalService extends IService<ObjectDigital> {
      */
     List<String> queryObjectClassCode(QueryWrapper<ObjectDigital> queryWrapper);
 
+
+    /**
+     * 新增 更新 验证对象,将验证失败的信息放到ObjectDigital。mark中,并返回所有验证失败的记录
+     * @param voList
+     * @return
+     */
+    List<ObjectDigital> validateInfoCodeAndGetError(List<ObjectDigital> voList);
+
 }

+ 35 - 2
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ObjectDigitalServiceImpl.java

@@ -475,6 +475,39 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
         return objectDigitals.stream().map(item -> item.getClassCode()).collect(Collectors.toList());
     }
 
+    /**
+     * 新增 更新 验证对象,将验证失败的信息放到ObjectDigital。mark中,并返回所有验证失败的记录
+     *
+     * @param voList
+     * @return
+     */
+    @Override
+    public List<ObjectDigital> validateInfoCodeAndGetError(List<ObjectDigital> voList) {
+        if(CollUtil.isEmpty(voList)) {
+            return Collections.emptyList();
+        }
+        // 保存时,项目ID一定有,而且都是操作这个项目的数据。这是前提,若后续放开全集团保存,则应按项目分组后查询信息点
+        String projectId = AppContext.getContext().getProjectId();
+        //获取该信息点当前classCode
+        List<String> classCodes = CollUtil.getFieldValues(voList, "classCode", String.class);
+        // 查询信息点定义
+        Map<String, Map<String, ObjectInfoDefine>> typeInfoMap = infoService.queryInfoMapByClass(projectId, classCodes);
+        // 信息点校验器
+        List<ObjectDigital> restList = new ArrayList<>();
+        for(ObjectDigital vo:voList) {
+            // 获取信息点列表
+            Map<String, ObjectInfoDefine> infoMap = typeInfoMap == null ? null : typeInfoMap.get(vo.getClassCode());
+            if (MapUtil.isEmpty(infoMap)) {
+                log.error(StrUtil.format("没有对象类型【{}】的信息点定义信息!", vo.getClassCode()));
+                vo.setMark(StrUtil.format("没有对象类型【{}】的信息点定义信息!", vo.getClassCode()));
+                // 只保留验证失败的
+                restList.add(vo);
+                continue;
+            }
+        }
+        return restList;
+    }
+
 
     /***
      * Description: 通用处理分页数据方法
@@ -689,7 +722,7 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
      */
     private void validateInfoCode(List<ObjectDigital> voList) {
         if(CollUtil.isEmpty(voList)) {
-            return;
+            return ;
         }
         // 保存时,项目ID一定有,而且都是操作这个项目的数据。这是前提,若后续放开全集团保存,则应按项目分组后查询信息点
         String projectId = AppContext.getContext().getProjectId();
@@ -727,7 +760,7 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
                     InfoDataFactory.parse(infoMap.get(infoCode), infos.get(infoCode));
                 } catch (BusinessException e) {
                     // 校验不通过的移除
-                    infoKeys.remove();;
+                    infoKeys.remove();
                     continue;
                 }
             }

+ 21 - 24
dmp-business/dmp-rwd/src/main/resources/mapper/EquipmentReportMapper.xml

@@ -91,7 +91,7 @@
     </select>
 
     <select id="queryComponentsCountByEquipId" resultType="java.util.Map">
-        SELECT re.obj_from as 'id',count(1) as count,obj.class_code, df.system_code as 'equip_category',df.`name` AS category_name
+        SELECT re.obj_from as 'id',count(1) as count,obj.class_code, df.equipment_code as 'equip_category',df.`name` AS category_name
         FROM dt_object obj
         join dt_relation re on obj.id = re.obj_to
         join dt_define_type df on df.code = obj.class_code
@@ -108,32 +108,29 @@
         <if test="null!=projectId and projectId.length>0">
             AND obj.project_id=#{projectId}
         </if>
-        GROUP BY obj.class_code,re.obj_from,df.system_code,df.name
+        GROUP BY obj.class_code,re.obj_from,df.equipment_code,df.name
     </select>
 
     <select id="queryEquipComponentsByProjectId" resultType="java.util.Map">
-        SELECT code,name,IFNULL(count,0) 'count' FROM (
-            SELECT DISTINCT code,name,
-            (select count(class_code) from dt_object where obj_type='component'
-                <if test="null!=equipmentId and equipmentId.length>0">
-                    AND JSON_CONTAINS(infos, JSON_OBJECT('parentId',#{equipmentId}))
-                </if>
-                AND class_code = code
-                <if test="null!=projectId and projectId.length>0">
-                    AND project_id=#{projectId}
-                </if>
-                <if test="null!=groupCode and groupCode.length>0">
-                    AND group_code=#{groupCode}
-                </if>
-                GROUP BY class_code
-            ) count
-            FROM dt_define_type
-            WHERE
-            valid=TRUE AND group_code = '0' -- 查询通用定义
-            <if test="null!=category and category.length>0">
-                AND equipment_code = #{category}
-            </if>
-        ) temp
+        SELECT dt_define_type.`code`,dt_define_type.`name`,IFNULL(temp.count,0) AS count FROM dt_define_type
+        LEFT JOIN (SELECT dt_object.class_code,COUNT(dt_object.id) AS count FROM dt_object
+            INNER JOIN dt_relation ON (dt_relation.obj_to=dt_object.id AND dt_object.obj_type='component'
+        <if test="null!=equipmentId and equipmentId.length>0">
+        AND dt_relation.obj_from=#{equipmentId}
+        </if>
+        AND dt_relation.graph_code='MechSubset' AND dt_relation.rel_code='Eq2Ec'
+        <if test="null!=projectId and projectId.length>0">
+            AND dt_object.project_id=#{projectId}
+        </if>
+        <if test="null!=groupCode and groupCode.length>0">
+            AND dt_object.group_code=#{groupCode}
+        </if>
+        AND dt_object.valid=TRUE AND dt_relation.valid=TRUE) GROUP BY dt_object.class_code) AS temp
+            ON(temp.class_code=dt_define_type.`code`) WHERE dt_define_type.obj_type='component'
+        <if test="null!=category and category.length>0">
+          AND dt_define_type.`code` LIKE CONCAT(#{category},'%')
+        </if>
+          AND dt_define_type.project_id='0' AND dt_define_type.group_code = '0' AND dt_define_type.valid=TRUE;
     </select>
 
     <select id="queryDefineInfoByObjType" resultType="java.util.Map">

+ 2 - 2
dmp-cloud/dmp-file/pom.xml

@@ -17,10 +17,10 @@
             <groupId>com.persagy</groupId>
             <artifactId>integrated-config-client</artifactId>
         </dependency>
-        <dependency>
+        <!--<dependency>
             <groupId>com.persagy</groupId>
             <artifactId>integrated-redis-spring-boot-starter</artifactId>
-        </dependency>
+        </dependency>-->
         <!-- 项目启动 -->
         <dependency>
             <groupId>com.persagy</groupId>

+ 7 - 2
dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/CompatibleOldFileController.java

@@ -137,8 +137,13 @@ public class CompatibleOldFileController {
      */
     @GetMapping(value = "/common/image_get")
     public void imageGet(HttpServletResponse response) {
-        compatibleOldFileService.getFile(response);
         response.setContentType("image/jpg");
+        // 兼容获取svg内容
+        if (StrUtil.isNotBlank(OldFileAppContext.getContext().getKey())
+                && OldFileAppContext.getContext().getKey().endsWith(FileCommonConst.SVG_FILE_SUFFIX)){
+            response.setContentType("text/xml");
+        }
+        compatibleOldFileService.getFile(response);
     }
     /***
      * Description: 图片下载
@@ -147,8 +152,8 @@ public class CompatibleOldFileController {
      */
     @GetMapping(value = "/common/svg_get")
     public void imageSvgGet(HttpServletResponse response) {
-        compatibleOldFileService.getFile(response);
         response.setContentType("image/svg+xml");
+        compatibleOldFileService.getFile(response);
     }
     /***
      * Description: 图片下载

+ 0 - 18
dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/FileMigrateController.java

@@ -1,35 +1,17 @@
 package com.persagy.dmp.file.controller;
 
 import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.thread.ThreadUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.persagy.common.lock.Lock;
-import com.persagy.dmp.common.constant.ResponseCode;
-import com.persagy.dmp.common.exception.BusinessException;
-import com.persagy.dmp.common.lang.PsDateTime;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ResultHelper;
-import com.persagy.dmp.file.model.FileInfo;
-import com.persagy.dmp.file.model.FileInfoCreator;
 import com.persagy.dmp.file.service.FileMigrateFactory;
 import com.persagy.dmp.file.service.FileMigrateService;
-import com.persagy.dmp.file.service.IFileService;
-import io.minio.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.*;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.*;
 
 /**

+ 28 - 2
dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/controller/TestController.java

@@ -98,8 +98,8 @@ public class TestController {
     @SneakyThrows
     public static void main(String[] args) {
         //byte[] streamBytes = FileStorageHelper.getStreamBytes(new FileInputStream(new File("D:\\test\\temp\\20211209_Eq440305000274029fde4b7f459a872d5e15646c285c.png")));
-        byte[] streamBytes = FileStorageHelper.getStreamBytes(new FileInputStream(new File("D:\\test\\temp\\上海国际航空服务中心龙华二期_塔楼_F18_20211206.rvt")));
-        System.out.println(DigestUtil.md5Hex(streamBytes));
+//        byte[] streamBytes = FileStorageHelper.getStreamBytes(new FileInputStream(new File("D:\\test\\temp\\上海国际航空服务中心龙华二期_塔楼_F18_20211206.rvt")));
+//        System.out.println(DigestUtil.md5Hex(streamBytes));
         // 4ee40f88485bcbe9282592d6d97ce6ff
         //EFDDF79F60624752814D8F2A36CD3B9D
 //        MinioClient minioClient=MinioClient.builder()
@@ -127,6 +127,32 @@ public class TestController {
 //        System.out.println(getObjectResponse.read());
         // System.out.println(JSONObject.toJSONString(statObject));
 
+        MinioClient minioClient=MinioClient.builder()
+                .endpoint("http://common.ysbdtp.com",9000,false)
+                .credentials("persagy", "persagy@2021")
+                .region("GM+8")
+                .build();
+//        GetObjectResponse objectResponse = minioClient.getObject(GetObjectArgs.builder()
+//                .bucket("dataplatform")
+//                .object("/20211228/1608088181183.svg")
+//                .region("GM+8")
+//                .build());
+//        minioClient.uploadObject(UploadObjectArgs.builder()
+//                .bucket("dataplatform")
+//                .object("/20211228/1608088181183.svg")
+//                .region("GM+8")
+//                .contentType("text/xml")
+//                .filename("D:\\test\\temp\\20211228_1608088181183.svg")
+//                .build());
+        // Get information of an object.
+        StatObjectResponse statObject = minioClient
+                .statObject(StatObjectArgs.builder()
+                        .bucket("dataplatform")
+                        .object("/20211228/1608088181183.svg")
+                        .region("GM+8")
+                        .build());
+        System.out.println(JSONObject.toJSONString(statObject.contentType()));
+
     }
 
 }

+ 3 - 1
dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/service/impl/CompatibleOldFileServiceImpl.java

@@ -287,7 +287,9 @@ public class CompatibleOldFileServiceImpl implements CompatibleOldFileService {
             return;
         }
         // 3.通过文件流的方式下载文件
-        IoUtil.copy(service.download(fileInfo.getFileBucket(),fileInfo.getFilePath(),response,fileInfo.getFileName()),response.getOutputStream());
+        InputStream inputStream = service.download(fileInfo.getFileBucket(), fileInfo.getFilePath(), response, fileInfo.getFileName());
+        IoUtil.copy(inputStream,response.getOutputStream());
+        IoUtil.close(inputStream);
         // 4.2021年12月22日12:00:21,先申请下载地址,然后通过重定向的方式直接请求文件服务器进行下载
 //        String fetchUrl = service.fetchUrl(fileInfo.getFileBucket(), fileInfo.getFilePath());
 //        if (StrUtil.isBlank(fetchUrl)){

+ 9 - 1
dmp-cloud/dmp-file/src/main/java/com/persagy/dmp/file/service/impl/MinioStorageServiceImpl.java

@@ -20,6 +20,8 @@ import lombok.extern.slf4j.Slf4j;
 import okhttp3.Headers;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.MimeType;
+import org.springframework.util.MimeTypeUtils;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayInputStream;
@@ -160,7 +162,13 @@ public class MinioStorageServiceImpl implements IFileStorageService, Initializin
             if (null!=response){
                 // 添加header
                 Headers headers = objectResponse.headers();
-                headers.names().forEach(name->response.addHeader(name,headers.get(name)));
+                headers.names().forEach(name->{
+                    if (FileCommonConst.REPONSE_HEAD_CONTENT_TYPE.equalsIgnoreCase(name)
+                            && response.containsHeader(FileCommonConst.REPONSE_HEAD_CONTENT_TYPE)){
+                        return;
+                    }
+                    response.addHeader(name,headers.get(name));
+                });
                 if (StrUtil.isNotBlank(realFileName)){
                     response.addHeader(FileCommonConst.REPONSE_HEAD_CONTENT_DISPOSITION, StrUtil
                             .format(FileCommonConst.REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT,

+ 20 - 1
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjectClient.java

@@ -1,12 +1,12 @@
 package com.persagy.dmp.digital.client;
 
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.config.DigitalFeignConfig;
 import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.digital.entity.ObjectDigital;
-import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -211,4 +211,23 @@ public interface DigitalObjectClient {
                               @RequestParam("appId") String appId,
                               @RequestParam("userId") String userId,
                               @RequestBody List<ObjectDigital> objectDigitals);
+
+
+
+    /**
+     * 新增 更新 验证对象,将验证失败的信息放到ObjectDigital。mark中,并返回所有验证失败的记录
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param voList
+     * @return List<ObjectDigital>
+     */
+    @PostMapping("validateInfoCodeAndGetErrorList")
+    List<ObjectDigital> validateInfoCodeAndGetErrorList(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody ArrayNode voList);
 }

+ 21 - 1
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjectFacade.java

@@ -1,12 +1,12 @@
 package com.persagy.dmp.digital.client;
 
 import cn.hutool.extra.spring.SpringUtil;
+import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.dto.RequestData;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ResultHelper;
-import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import com.persagy.dmp.digital.entity.ObjectDigital;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -266,4 +266,24 @@ public class DigitalObjectFacade {
         return client.batchUpdateClassCodesByIds(groupCode,
                 projectId, appId, userId, objectDigitals);
     }
+
+
+
+    /**
+     * 新增 更新 验证对象,将验证失败的信息放到ObjectDigital。mark中,并返回所有验证失败的记录
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param voList
+     * @return List<ObjectDigital>
+     */
+    public static List<ObjectDigital> validateInfoCodeAndGetErrorList(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody ArrayNode voList){
+        return client.validateInfoCodeAndGetErrorList(groupCode, projectId, appId, userId, voList);
+    }
 }

+ 3 - 1
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectDigital.java

@@ -14,7 +14,6 @@ import lombok.NoArgsConstructor;
 import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
-import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Set;
 
@@ -120,4 +119,7 @@ public class ObjectDigital extends AuditableEntity {
     /** 该对象的对象分类所拥有的classCode集合 */
     @TableField(exist = false,typeHandler = JacksonTypeHandler.class,value = "objTypeClassCodes")
     private Set<String> objTypeClassCodes;
+    /** 单条数据验证信息存储 **/
+    @TableField(exist = false)
+    private String mark;
 }

+ 6 - 1
dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/file/constant/FileCommonConst.java

@@ -20,12 +20,17 @@ public interface FileCommonConst {
     String BUCKET_PATTERN = "^[a-z0-9][a-z0-9\\-]*[a-z0-9]$";
     /** 分片文件的后缀 */
     String CHUCK_FILE_SUFFIX = ".chunk";
+    /** 分片文件的后缀 */
+    String SVG_FILE_SUFFIX = ".svg";
     /**响应头:Content-disposition*/
     String REPONSE_HEAD_CONTENT_DISPOSITION = "Content-disposition";
     /**响应头:Content-disposition*/
     String REPONSE_HEAD_CONTENT_LENGTH = "Content-Length";
+    /**响应头:Content-disposition*/
+    String REPONSE_HEAD_CONTENT_TYPE = "Content-Type";
     /**响应头:attachment;filename=*/
-    String REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT = "attachment;filename={}";
+    //String REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT = "attachment;filename={}";
+    String REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT = "filename={}";
     /**响应头:minio的查询参数*/
     String RESPONSE_CONTENT_DISPOSITION = "response-content-disposition";
 }