刘光辉
5 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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() + "】暂不满足申请条件,请刷新后重试;仍无法提交时请联系管理员核查。";
    }
}