package jnpf.elnService.template.docx; import jnpf.exception.DataException; import jnpf.util.JsonUtil; import org.springframework.util.StringUtils; import java.util.LinkedHashMap; import java.util.Map; public final class DocxExpectedControlConfig { public static final String DATE_FORMAT = "yyyy-MM-dd"; public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; private DocxExpectedControlConfig() { } @SuppressWarnings("unchecked") public static Map from(String dataType, String json) { Map result = StringUtils.hasText(json) ? new LinkedHashMap<>(JsonUtil.getJsonToBean(json, Map.class)) : new LinkedHashMap<>(); String defaultFormat = "DATETIME".equals(dataType) ? DATETIME_FORMAT : "DATE".equals(dataType) ? DATE_FORMAT : null; if (defaultFormat == null) { return result; } Object configured = result.get("dateFormat"); if (configured == null || configured instanceof String && !StringUtils.hasText((String) configured)) { result.put("dateFormat", defaultFormat); } else if (!(configured instanceof String)) { throw new DataException("日期控件格式必须是字符串"); } return result; } }