刘光辉
3 小时以前 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
30
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());
    }
}