package cn.iocoder.yudao.module.qcreport.engine;
|
|
/**
|
* 判定结果。
|
* <p>
|
* 与前端 {@code engine/context.ts} 的 QUALITY_RESULT 一一对应,取值同时是
|
* {@code QcReportEnums.CheckResultEnum} 的落库值。
|
*/
|
public enum QualityResult {
|
|
PASS("合格"),
|
FAIL("不合格");
|
|
/**
|
* 规则本身出错时的占位文案。
|
* <p>
|
* 没验过不能说合格,没证据也不能说不合格,所以「无结论」必须是一个和 PASS/FAIL 并列的显式状态。
|
* 这类项仍留在合格率分母里,一个跑挂的规则应该把合格结论压住。
|
*/
|
public static final String PENDING_TEXT = "待判定";
|
|
/**
|
* 既没有规则、也没有规格上下限时的占位文案。
|
* <p>
|
* 和 {@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;
|
}
|
|
}
|