yangys
2025-09-22 0bdfd76339bb58be09927b8c2fe268175c3a7cc8
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
package org.springblade.mdm.machinefile.entity;
 
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.io.FileUtils;
import org.springblade.core.mp.base.BizEntity;
 
import java.util.Date;
 
/**
 * 机床文件
 */
@Setter
@Getter
@TableName("mdm_machine_file")
public class MachineFile extends BizEntity {
    /**
     * 正常状态,刚接收
     */
    public static final int STATUS_NORMAL = 1;
    /**
     * 用户接收了
     */
    public static final int STATUS_ACCEPTED = 2;
    /**
     * 用户拒绝接收
     */
    public static final int STATUS_REJECTED = 3;
    /**
     * 文件被清除(被定时任务标记)
     */
    public static final int STATUS_REMOVED = 4;
 
    /**
     * 程序状态,试切
     */
    public static final int PROGRAM_STATUS_TRY = 1;
    /**
     * 程序状态,固化
     */
    public static final int PROGRAM_STATUS_CURED = 2;
    /**
     * 程序状态,偏离
     */
    public static final int PROGRAM_STATUS_DIVIASTION = 3;
    /**
     * 程序状态,未知
     */
    public static final int PROGRAM_STATUS_UNKNOWN = 4;
    /**
     * 节点类型: REC目录
     */
    public static final String DIR_TYPE_REC = "REC";
    /**
     * send目录
     */
    public static final String DIR_TYPE_SEND = "SEND";
 
    /**
     * temp目录
     */
    public static final String DIR_TYPE_TEMP = "TEMP";
    /**
     * 文件异常类型:正常
     */
    public static final int EXCEPTION_OK = 0;
    /**
     * 文件异常类型:非文本文件
     */
    public static final int EXCEPTION_NOT_TEXT = 1;
    /**
     * 文件异常类型:文件名格式不合法
     */
    public static final int EXCEPTION_BAD_FILENAME = 2;
    /**
     * 文件异常类型:文件确失(段数不够)
     */
    public static final int EXCEPTION_LOST_FILES = 3;
 
    /**
     * 文件异常类型:文件段数与下发记录不匹配(车床/现场编制除外)
     */
    public static final int EXCEPTION_NOT_MATCH_SEND_SEG_COUNT = 4;
 
    /**
     * 不匹配下发记录(试切下发 、 现场编程下发)
     */
    public static final int EXCEPTION_NOT_MATCH_RECORD = 5;
 
    /**
     * 不匹配下发记录临时更改单部分
     */
    public static final int EXCEPTION_NOT_MATCH_SEND_LG = 6;
    /**
     * 文件名
     */
    private String name;
 
 
    /**
     * 节点类型:字典
      */
    //private String nodeType;
 
    /**
     * 所属机床
     */
    private String machineCode;
    /**
     * 目录类型 SEND/REC/TEMP
     */
    private String dirType;
 
    /**
     * 文件创建时间
     */
    private Date fileCreateTime;
 
    private Date fileModifyTime;
 
    /**
     * 文件md5
     */
    private String md5;
    /**
     * 文件字节数
     */
    private Long fileSize;
 
    /**
     * 确认时间,接受或者拒绝的时间
     */
    private Date determineTime;
    /**
     * 程序状态(1试切;2固化;3偏离;4未知)
     */
    private Integer programStatus;
 
    /**
     * REC目录文件异常类型(0/null:正常; 1非文本格式;2:文件名格式不合法;3:文件确失(段数不够);4:文件段数与下发记录不匹配(车床/现场编制除外)
     */
    private Integer exceptionType;
 
 
    /**
     * 生成文件大小的显示文本
     * @return 显示文本
     */
    public String getFileSizeDisplay(){
        return FileUtils.byteCountToDisplaySize(fileSize);
    }
 
    /**
     * 标记文件已经删除
     */
    public void markFileDeleted() {
        this.setStatus(STATUS_REMOVED);
    }
 
    /**
     * 接收文件
     */
    public void accept() {
        setStatus(STATUS_ACCEPTED);
        this.determineTime = new Date();
    }
 
    public void reject() {
        setStatus(STATUS_REJECTED);
        this.determineTime = new Date();
    }
 
    /**
     * 异常详细描述
     * @return 描述文本
     */
    public String getExceptionMsg(){
        if(exceptionType == null){
            return "正常";
        }
        return switch (exceptionType) {
            case EXCEPTION_NOT_TEXT -> "非文本";
            case EXCEPTION_BAD_FILENAME -> "文件名格式错误";
            case EXCEPTION_LOST_FILES -> "文件确失";
            case EXCEPTION_NOT_MATCH_SEND_SEG_COUNT -> "段数与下发记录不匹配";
            case EXCEPTION_NOT_MATCH_RECORD -> "无记录匹配";//试切下发,现场编程都不匹配
            case EXCEPTION_NOT_MATCH_SEND_LG -> "临时更改单不匹配";
            default -> "正常";
        };
    }
}