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"; /** * PROGRAM目录(虚拟,无实际文件夹) */ public static final String DIR_TYPE_PROGRAM = "PROGRAM"; /** * 文件异常类型:正常 */ 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 machineCode; /** * 目录类型 SEND/REC/TEMP */ private String dirType; /** * 文件创建时间 */ private Date fileCreateTime; private Date fileModifyTime; /** * 文件md5 */ private String md5; /** * 文件字节数 */ private Long fileSize; /** * 程序状态 */ private String programStatus; /** * 临时更改单号,SQ/GH/LG 其他值都是未知 */ private String deviation; /** * 临时更改单号序号,P后面的部分 */ private String deviationSerial; /** * 确认时间,接受或者拒绝的时间 */ private Date determineTime; /** * REC目录文件异常类型(0/null:正常; 1非文本格式;2:文件名格式不合法;3:文件确失(段数不够);4:文件段数与下发记录不匹配(车床/现场编制除外) */ private Integer exceptionType; /** * oss文件名,用于program文件夹 */ private String ossName; /** * 生成文件大小的显示文本 * @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 -> "正常"; }; } }