package jnpf.dmsService; import jnpf.exception.DataException; import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; /** 下载申请明细的时限:非负天数或 na(无截止时间)。 */ public final class DmsDownloadDeadline { private DmsDownloadDeadline() { } public static Date resolve(String value, String detailId) { if (value == null || value.trim().isEmpty()) { throw new DataException("文件下载明细下载时限(xiazai_shixian)不能为空"); } String normalized = value.trim(); if ("na".equalsIgnoreCase(normalized)) return null; int days; try { days = Integer.parseInt(normalized); } catch (NumberFormatException exception) { throw new DataException("文件下载时限(xiazai_shixian)必须是na或非负整数:" + detailId); } if (days < 0) { throw new DataException("文件下载时限(xiazai_shixian)必须是na或非负整数:" + detailId); } return Date.from(LocalDate.now(ZoneId.of("Asia/Shanghai")).plusDays(days) .atTime(23, 59, 59).atZone(ZoneId.of("Asia/Shanghai")).toInstant()); } }