yangys
2024-05-07 1251cce20deab6e388b1e2ff8cdddd2896db162b
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package com.qianwen.smartman.modules.dnc.context;
 
import com.alibaba.fastjson.JSONObject;
import com.qianwen.smartman.common.cache.ParamCache;
import com.qianwen.smartman.common.constant.FmsConstant;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.modules.dnc.dto.ArtBagFileNameProcessRule;
import com.qianwen.smartman.modules.dnc.dto.DefaultDncFileNameProcessRule;
import com.qianwen.smartman.modules.dnc.dto.DirectoryFileNameProcessRule;
import com.qianwen.smartman.modules.dnc.enums.DncFileNameProcessRuleEnum;
import com.qianwen.smartman.modules.dnc.template.impl.ArtBagFileNameProcess;
import com.qianwen.smartman.modules.dnc.template.impl.DirectoryFileNameProcess;
 
public class DncFileNameProcessRuleFactory {
    public static String getDncFileName(DncFileNameProcessRuleContext context) {
        String result = context.getFileName();
        String content = getDncFileNameProcessRule();
        if (Func.isBlank(content)) {
            return "";
        }
        DefaultDncFileNameProcessRule rule = (DefaultDncFileNameProcessRule) JSONObject.parseObject(content, DefaultDncFileNameProcessRule.class);
        switch (DncFileNameProcessRuleEnum.of(rule.getExtraSource())) {
            case DIRTECTORY:
                DirectoryFileNameProcess directoryFileNameProcess = new DirectoryFileNameProcess();
                DirectoryFileNameProcessRule directoryFileNameProcessRule = (DirectoryFileNameProcessRule) JSONObject.parseObject(content, DirectoryFileNameProcessRule.class);
                result = directoryFileNameProcess.generateFinallyFileName(context, directoryFileNameProcessRule);
                break;
            case ARTBAG:
                ArtBagFileNameProcess artBagFileNameProcess = new ArtBagFileNameProcess();
                ArtBagFileNameProcessRule artBagFileNameProcessRule = (ArtBagFileNameProcessRule) JSONObject.parseObject(content, ArtBagFileNameProcessRule.class);
                result = artBagFileNameProcess.generateFinallyFileName(context, artBagFileNameProcessRule);
                break;
        }
        return result;
    }
 
    protected static String getDncFileNameProcessRule() {
        String value = ParamCache.getValue(FmsConstant.FILE_PARAM_KEY);
        if (FmsConstant.MANUAL.equals(value)) {
            return "";
        }
        return ParamCache.getValue(FmsConstant.DNC_EXTRA_SETTING);
    }
}