版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012893325/article/details/85162427
MIS后台统一流程处理
已添加操作为例子说明:
接口的定义:
public interface IMisTemplateIdService {
/** * 功能描述: 〈添加模板的数据信息〉 * * @param schemaDataInfo * @return: com.missfresh.mis.admin.domain.bean.SchemaDataInfo * @author: wangbo * @date : 2018-12-14 17:58:08 */ Result<SchemaDataInfo> setSchemaDataInfo(SchemaDataInfo schemaDataInfo);
}
接口的实现:
//仓组的实现类
@Service("misWarehouseGroup") public class MisWarehouseGroupImpl extends MisTemplateIdCommonService implements IMisTemplateIdService{
@Override public Result<SchemaDataInfo> setSchemaDataInfo(SchemaDataInfo schemaDataInfo) {
//TODO 实现
}
}
//仓组和微仓的关系实现类
@Service("misWarehouseGroupRelation") public class MisWarehouseGroupRelationImpl implements IMisTemplateIdService {
@Override public Result<SchemaDataInfo> setSchemaDataInfo(SchemaDataInfo schemaDataInfo) throws YouSelfException { // 不支持该功能,直接抛异常 throw new YouSelfException(FailCodeEnum.ERR_SERVER_ERROR.getCode(), FailCodeEnum.ERR_SERVER_ERROR.getMessage()); }
}
//
不同的template场景,选择不同实现
//
@Service("misTemplateIdServiceFactory") public class MisTemplateIdServiceFactory { private static Logger logger = LoggerFactory.getLogger(MisTemplateIdServiceFactory.class); /** 仓组模板id */ @Value("${template.id.warehouse-group}") private Long warehouseGroup; @Resource(name = "misWarehouseGroup") private IMisTemplateIdService misWarehouseGroup; /** 仓组和微仓关系模板id */ @Value("${template.id.warehouse-group-relation}") private Long warehouseGroupRelation; @Resource(name = "misWarehouseGroupRelation") private IMisTemplateIdService misWarehouseGroupRelation; /** * 功能描述: 〈根据templateId 选择不同的实现〉 * * @param templateId * @return: com.missfresh.mis.admin.service.IMisTemplateIdService * @author: wangbo * @date : 2018-12-14 15:52:32 */ public IMisTemplateIdService getHandleService(Long templateId) { if (templateId.equals(warehouseGroup)) { return misWarehouseGroup; }else if(templateId.equals(warehouseGroupRelation)) { return misWarehouseGroupRelation; } else { //统一处理逻辑 return null; } } }
基于以上的操作在 MIS通过操作中:
实现了MIS的同一处理流程 模块id不同,底层操作不同 的功能