package cn.iocoder.yudao.module.mes.dal.dataobject.qc.indicator; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import cn.iocoder.yudao.module.mes.enums.DictTypeConstants; /** * MES 质检指标 DO * * @author 超级管理员 */ @TableName("mes_qc_indicator") @KeySequence("mes_qc_indicator_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class MesQcIndicatorDO extends BaseDO { public static final Long PARENT_ID_ROOT = 0L; /** * 编号 */ @TableId private Long id; /** * 检测项编码 */ private String code; /** * 检测项名称 */ private String name; /** * 父指标编号(0=顶级) * * 报告侧靠它还原「组名合并、子项分行」的两层结构 —— 归属只看这个字段, * 不看 {@link #type}、也不看行序(行表里父项那一行与它的子项并不相邻)。 */ private Long parentId; /** * 条目类型:1=录入项,2=分组项 * * 只用来判断「这个指标够不够格当组头」,归属本身仍看 {@link #parentId} */ private Integer itemType; /** * 公式展示文本(打印报告用,不参与计算) * * 分组项没有规格上下限,它的「检测要求」就是这条公式 */ private String formulaText; /** * 单位文本(如 kg/m³、/%,打印展示用) */ private String unitText; /** * 同级排序号 * * 报告的检验项顺序按它排:分组项与独立项同属「同级」占一个位置,组内子项各自再排 */ private Integer sortOrder; /** * 检测项类型 * * 枚举 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_INDICATOR_TYPE} */ private Integer type; /** * 检测工具 */ private String tool; /** * 结果值类型 * * 字典 {@link DictTypeConstants#MES_QC_RESULT_TYPE} * 枚举 {@link cn.iocoder.yudao.module.mes.enums.qc.MesQcResultValueTypeEnum} * * updateStrategy=ALWAYS:录入项改成分组项时要能把这个值写回 NULL, * 默认的 NOT_NULL 策略会把 null 字段从 UPDATE 里剔除,导致旧的结果值残留 */ @TableField(updateStrategy = FieldStrategy.ALWAYS) private Integer resultType; /** * 结果值属性 * * 1. FILE 时:存 IMG/FILE * 2. DICT 时:存字典类型名 * * updateStrategy 同 {@link #resultType} */ @TableField(updateStrategy = FieldStrategy.ALWAYS) private String resultSpecification; /** * 备注 */ private String remark; }