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