package org.springblade.mdm.program.entity;
|
|
import com.alibaba.excel.util.StringUtils;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import lombok.Getter;
|
import lombok.Setter;
|
import org.springblade.core.mp.base.BizEntity;
|
import org.springblade.mdm.flow.entity.FlowProgramFile;
|
|
import java.util.Date;
|
|
|
@Setter
|
@Getter
|
@TableName("mdm_nc_node")
|
public class NcNode extends BizEntity {
|
/**
|
* 节点类型: 程序状态 10
|
*/
|
public static final String TYPE_PROGRAM_STATUS = "10";
|
/*
|
产品型号
|
*/
|
public static final String TYPE_PRODUCT_MODEL = "15";
|
/**
|
* 节点类型: 零组件号/图号 10
|
*/
|
public static final String TYPE_DRAWING_NO = "20";
|
/**
|
* 工艺版次
|
*
|
*/
|
public static final String TYPE_CRAFT_EDITION = "30";
|
/**
|
* 工序号
|
*
|
*/
|
public static final String TYPE_PROCESS_NO = "40";
|
/**
|
* 工序版次
|
*/
|
public static final String TYPE_PROCESS_EDITION = "45";
|
/**
|
* 加工机床
|
*/
|
//public static final String TYPE_MACHINE_CODE = "50";
|
/**
|
* 加工机床
|
*/
|
public static final String TYPE_MACHINE_GROUP = "50";
|
/**
|
* 程序包名
|
*/
|
public static final String TYPE_PROGRAM_PACKAGE = "60";
|
|
/**
|
* 程序文件
|
*/
|
public static final String TYPE_PROGRAM_FILE = "70";
|
|
/**
|
* 未锁定
|
*/
|
public static final int UNLOCK = 0;
|
/**
|
* 已锁定
|
*/
|
public static final int LOCKED = 1;
|
|
/**
|
* 文件节点文件类型:程序
|
*/
|
public static final String FILE_CATEGOAY_PROGRAM = "program";
|
/**
|
* 文件节点文件类型:其他
|
*/
|
public static final String FILE_CATEGORY_OTHER = "other";
|
/**
|
* 文件节点文件类型:子程序
|
*/
|
public static final String FILE_CATEGORY_SUBPROGRAM = "subprogram";
|
|
private String name;
|
private Long parentId;
|
|
/**
|
* 上级父id集合
|
*/
|
private String parentIds;
|
/**
|
* 设备编号
|
*/
|
private String machineCode;
|
|
/**
|
* 机床组字典吗
|
*/
|
private String machineGroupCode;
|
/**
|
* 工序,如“精铣”
|
*/
|
private String processName;
|
|
/**
|
* 工序版次
|
*/
|
private String processEdition;
|
|
/**
|
* 工艺版次
|
*/
|
private String craftEdition;
|
/**
|
* 是否最新版次,1:最新版次;0:历史版次
|
*/
|
private Integer isLastEdition = 1;
|
/**
|
* 零组件号/图号
|
*/
|
private String drawingNo;
|
/**
|
* 图号版次
|
*/
|
private String drawingNoEdition;
|
|
/**
|
* 是否固化
|
*/
|
private Integer isCured = 0;
|
/**
|
* 过期日期
|
*/
|
private Date expireDate;
|
/**
|
* 是否锁定
|
*/
|
private Integer isLocked = 0;
|
/**
|
* 节点类型:字典
|
*/
|
private String nodeType;
|
|
private String description;
|
private String remark;
|
//0808新增
|
/**
|
* 程序文件节点的数据
|
*/
|
private String processNo;
|
/**
|
* 产品型号
|
*/
|
private String productModel;
|
|
/**
|
* 程序编号(程序包名节点需要)
|
*/
|
private String programNo;
|
|
/**
|
* 历史序列号
|
*/
|
private Long hisSerial;
|
|
/**
|
* 流程程序文件id,只有程序文件(70)类型的节点有此值
|
*/
|
private Long flowProgramFileId;
|
|
/**
|
* 审批时的流程实例id,只有程序包节点有这个字段值
|
*/
|
private String processInstanceId;
|
/**
|
* 偏离单号
|
*/
|
private String deviation;
|
/**
|
* 版本号,更新一次(入升版,dnc导入),就会+1
|
*/
|
private Integer versionNumber = 1;
|
|
transient FlowProgramFile flowProgramFile;
|
|
/**
|
* 是否是偏离程序
|
* @return 是否偏离
|
*/
|
public boolean isDeviationProgram(){
|
return StringUtils.isNotBlank(this.deviation);
|
}
|
/**
|
* 根据当前版本号,获取新增版本号
|
* @return 升级后的版本号
|
*/
|
public int genNewVersionNumber(){
|
if(this.versionNumber == null){
|
return 1;
|
}else{
|
return this.versionNumber + 1;
|
}
|
}
|
|
/**
|
* 是否在有效期内
|
* @return 是否
|
*/
|
public boolean withinValidityPeriod() {
|
if(expireDate == null){
|
return true;
|
}
|
return expireDate.getTime() > System.currentTimeMillis();
|
}
|
|
/**
|
* 是否已经固化
|
* @return 是否
|
*/
|
public boolean hasCured() {
|
return this.isCured != null && this.isCured == 1;
|
}
|
|
public void upgradeVersionNumber() {
|
this.versionNumber = genNewVersionNumber();
|
}
|
|
/**
|
* 锁定节点
|
*/
|
public void lock() {
|
this.isLocked = LOCKED;
|
}
|
|
/**
|
* 锁定节点
|
* @param remark 锁定原因
|
*/
|
public void lock(String remark) {
|
this.isLocked = LOCKED;
|
this.remark = remark;
|
}
|
|
public void unlock() {
|
this.isLocked = UNLOCK;
|
}
|
|
/**
|
* 是否已锁定
|
* @return 是否
|
*/
|
public boolean hasLocked() {
|
return this.isLocked != null && this.isLocked == LOCKED;
|
}
|
|
public String subNodeParentIds(){
|
return this.parentIds+","+this.getId();
|
}
|
|
/**
|
* 组装程序名称
|
* @return 程序名称
|
*/
|
public String programName(){
|
return this.drawingNo+"-"+this.getProcessNo()+"-"+this.getProcessEdition();
|
}
|
}
|