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