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(); 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() + "】暂不满足申请条件,请刷新后重试;仍无法提交时请联系管理员核查。"; } }