package jnpf.flowable.service;
|
|
import jnpf.dmsBusinessOccupancy.BusinessFileIneligibleException;
|
import jnpf.flowable.mapper.DmsLifecycleNativeFormMapper;
|
import java.util.LinkedHashSet;
|
|
/** 只转换DMS准入拒绝提示,不更改准入判断。 */
|
final class DmsLifecycleEligibilityMessages {
|
private DmsLifecycleEligibilityMessages() { }
|
|
static String render(DmsLifecycleNativeFormMapper mapper, String tenant, BusinessFileIneligibleException failure) {
|
var messages = new LinkedHashSet<String>();
|
try {
|
for (var reason : failure.getReasons()) {
|
var configured = mapper.eligibilityMessages(tenant, reason.name());
|
if (configured == null || configured.size() != 1 || configured.get(0) == null
|
|| configured.get(0).isBlank()) return fallback(failure);
|
messages.add(configured.get(0).replace("{number}", failure.getFileNumber()));
|
}
|
} catch (RuntimeException unavailable) {
|
return fallback(failure);
|
}
|
return messages.isEmpty() ? fallback(failure) : String.join("\n", messages);
|
}
|
|
private static String fallback(BusinessFileIneligibleException failure) {
|
return "文件【" + failure.getFileNumber() + "】暂不满足申请条件,请刷新后重试;仍无法提交时请联系管理员核查。";
|
}
|
}
|