刘光辉
8 小时以前 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
package jnpf.base.util;
 
import cn.hutool.crypto.digest.DigestUtil;
import jnpf.base.model.uploadedit.UploadEditContext;
import jnpf.base.model.uploadedit.UploadEditDraft;
import jnpf.util.JsonUtil;
import java.util.Arrays;
import java.util.Objects;
 
/** 独立命名空间,不将旧个人工作稿误当成流程共享稿。 */
public final class UploadEditWorkingCopy {
    private UploadEditWorkingCopy() { }
    public static String id(String tenant, UploadEditContext c) {
        return DigestUtil.sha256Hex(JsonUtil.getObjectToString(Arrays.asList("workflow-working-file-v1", tenant,
                c.getTaskId(), c.getModelId(), c.getRecordId(), text(c.getParentField()), text(c.getRowId()), c.getField())));
    }
    public static boolean shared(UploadEditDraft d) {
        if (d == null || text(d.getTaskId()).isEmpty()) return false;
        UploadEditContext c = new UploadEditContext();
        c.setTaskId(d.getTaskId()); c.setModelId(d.getModelId()); c.setRecordId(d.getRecordId());
        c.setParentField(d.getParentField()); c.setRowId(d.getRowId()); c.setField(d.getField());
        return Objects.equals(d.getId(), id(d.getTenantId(), c));
    }
    public static boolean active(UploadEditDraft d) {
        return d.getLeaseId() != null && d.getUpdatedAt() != null
                && System.currentTimeMillis() - d.getUpdatedAt().getTime() < 120_000L;
    }
    private static String text(String s) { return s == null ? "" : s; }
}