package jnpf.permission.util; import jnpf.permission.CodeNumApi; import jnpf.util.context.SpringContext; import lombok.Synchronized; import java.util.function.Predicate; import java.util.stream.Stream; /** * 获取唯一编码工具 * * @author JNPF开发平台组 * @version v6.0.0 * @copyright 引迈信息技术有限公司 * @date 2025/6/25 14:45:17 */ public class CodeNumUtil { private static CodeNumApi codeNumApi = SpringContext.getBean(CodeNumApi.class); @Synchronized public static String getCodeFunction(String codeType, Predicate existCode) { return Stream.generate(() -> codeNumApi.getCodeOnce(codeType)) .filter(code -> !existCode.test(code)) .findFirst() .orElseThrow(() -> new RuntimeException("无法获取唯一编码")); } }