吉安感知网项目-后端
linwei
2026-06-04 ad935c07a6cabf05fed9c615c7bd4f67f6d65293
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
 
package org.sxkj.resource.entity;
 
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.util.StringUtils;
import org.sxkj.common.utils.file.FileNameHarsher;
 
import java.util.List;
import java.util.Objects;
import java.util.stream.Stream;
 
/**
 * 附件表实体类
 *
 * @author Chill
 */
@Data
@TableName(value = "blade_attach")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Attach对象", description = "附件表")
public class Attach extends TenantEntity {
    /**
     * ai类型
     */
    public static final String RESULT_TYPE_AI = "2";
    /**
     * 图片类型
     */
    public static final String RESULT_TYPE_IMG = "0";
    /**
     * 视频类型(压缩)
     */
    public static final String RESULT_TYPE_VEDIO_SHOW = "9";
    /**
     * 视频类型
     */
    public static final String RESULT_TYPE_VEDIO = "1";
 
    private static final long serialVersionUID = 1L;
 
    /**
     * 附件地址
     */
    @ApiModelProperty(value = "附件地址")
    private String link;
    /**
     * 附件域名
     */
    @ApiModelProperty(value = "附件域名")
    private String domainUrl;
    /**
     * 附件名称
     */
    @ApiModelProperty(value = "附件名称")
    private String name;
    /**
     * 附件原名
     */
    @ApiModelProperty(value = "附件原名")
    private String originalName;
    /**
     * 附件拓展名
     */
    @ApiModelProperty(value = "附件拓展名")
    private String extension;
    /**
     * 附件大小
     */
    @ApiModelProperty(value = "附件大小")
    private Long attachSize;
 
    @ApiModelProperty(value = "巡查任务id")
    @TableField(value = "patrol_task_id")
    private String patrolTaskId;
 
    @ApiModelProperty(value = "附件类型: 1=巡查类文档,2=巡检类文档,3=安保类文档,4=文旅类文档,5=采集数据类文档")
    private String resultType;
 
    @ApiModelProperty(value = "设备SN")
    private String deviceSn;
 
    @ApiModelProperty(value = "工作空间id")
    private String workspaceId;
 
    @TableField(exist = false)
    @ApiModelProperty(value = "备注")
    private String remark;
 
    @ApiModelProperty(value = "媒体元数据")
    private String metadata;
 
    @ApiModelProperty(value = "文件昵称")
    private String nickName;
 
    /**
     * 最末尾文件名称hash算法
     */
    @TableField("md5")
    private String md5;
 
    @TableField("is_deleted")
    private Integer isDeleted;
 
    //区域
    @TableField(exist = false)
    private String areaCode;
 
    public String getMd5() {
        String link = this.link;
        if (!StringUtils.isEmpty(link)) {
            return FileNameHarsher.generateFileHash(link);
        }
        return null;
    }
 
 
    /**
     * 设置是否为缩略图
     */
    public Boolean getThumbnail() {
        if (StringUtil.isNotBlank(originalName)) {
            String result = Stream.of("_small", "_show")
                .filter(suffix -> originalName.indexOf(suffix) > 0)
                .findFirst().orElse(null);
            return StringUtil.isNotBlank(result);
        }
        return null;
    }
 
    /**
     * 获取昵称
     *
     * @param attach
     * @return
     */
    public static String getNickName(Attach attach) {
        if (Objects.isNull(attach)) {
            return "";
        }
        if (!StringUtils.isEmpty(attach.getNickName())) {
            return attach.getNickName();
        }
        if (StringUtils.isEmpty(attach.getName())) {
            return null;
        }
        return attach.getName().substring(attach.getName().lastIndexOf("/") + 1, attach.getName().lastIndexOf("."));
    }
 
 
    public Object getMetadata() {
        return JSON.parseObject(metadata);
    }
 
}