package cn.iocoder.yudao.module.qcreport.engine; /** * 判定结果。 *
* 与前端 {@code engine/context.ts} 的 QUALITY_RESULT 一一对应,取值同时是 * {@code QcReportEnums.CheckResultEnum} 的落库值。 */ public enum QualityResult { PASS("合格"), FAIL("不合格"); /** * 规则本身出错时的占位文案。 *
* 没验过不能说合格,没证据也不能说不合格,所以「无结论」必须是一个和 PASS/FAIL 并列的显式状态。 * 这类项仍留在合格率分母里,一个跑挂的规则应该把合格结论压住。 */ public static final String PENDING_TEXT = "待判定"; /** * 既没有规则、也没有规格上下限时的占位文案。 *
* 和 {@link #PENDING_TEXT} 刻意分开:报告里常有「试样质量 m」「称量瓶 m0」这类只供公式取数的过程参数, * 它们没有规格也就无从判定;这类项不计入合格率分母,也不参与报告结论。 */ public static final String UNDECIDABLE_TEXT = "无判定规则"; /** 判定结果对应的展示文字 */ private final String text; QualityResult(String text) { this.text = text; } public String text() { return text; } /** 展示文字/落库值 → 枚举,识别不出返回 null */ public static QualityResult of(String value) { if (value == null) { return null; } String normalized = value.trim().toUpperCase(); for (QualityResult result : values()) { if (result.name().equals(normalized)) { return result; } } return null; } }