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());
|
}
|
}
|