抽象工厂实现流程

1. 概要

在供应链系统中,处理和管理各种单据是业务流程自动化的关键组成部分。面对不同的单据类型,如内销单、外销单、退货单等,每次新建或更新操作都可能触发需求数的更新和数据统计的需求。然而,由于不同单据类型之间在需求数处理逻辑上的差异性,以及随着业务发展可能不断增加的单据种类,如果对每种单据类型都单独编写一套处理逻辑,将不可避免地导致代码的冗余和膨胀。

这种代码冗余不仅增加了开发和维护的难度,也严重影响了项目的可扩展性和灵活性。为了解决这一问题,我们采用了抽象工厂设计模式,这是一种被广泛认可的软件设计模式,特别适合于处理这种具有多种产品但又需要统一管理的场景。

通过封装和抽象化需求数处理的核心逻辑,我们能够创建一个灵活且可扩展的系统,它能够适应不断变化的业务需求而无需重写现有代码。Spring框架提供的工厂设计模式支持,进一步增强了我们解决方案的灵活性和可维护性。利用Spring的依赖注入和生命周期管理特性,我们可以轻松地注册、获取和使用各种单据类型的具体处理器,而不必担心它们背后的实现细节。

本文档将详细介绍我们的设计方案,包括抽象工厂的实现方式、各个组件之间的交互流程,以及如何通过这种模式提高代码复用性、降低系统耦合度,并最终实现一个更加健壮和易于维护的系统。

2. 整体架构流程

2.1 定义实体类

@Data
@ApiModel(value = "DemandRecordBO", description = "需求记录统一转换入参")
public class DemandRecordBO{
   

    /**
     * 单据类型:根据具体业务定义枚举值
     */
    private String sourceType;
    
    /**
     * 单据编号
     */
    private String sourceNo;
    
    /**
     * 零件编号
     */
    private String partNo;
    
    /**
     * 零件名称
     */
    private String partName;
    
    /**
     * 需求数
     */
    private BigDecimal unissuedQty;
    
    /**
     * 零件行号
     */
    private String itemNo;
    
    /**
     * 无效/ 有效 标识(eg: 0. 无效; 1. 有效)
     */
    private Integer validFlag;
    
    /**
     * 创建人姓名
     */
    private String createByName;
    
    /**
     * 更新人姓名
     */
    private String updateByName;

	/**
     * 创建时间
     */
	private Date createTime;
	
	/**
     * 更新人姓名
     */
	private Date updateTime;
	
    /**
     * 版本号
     */
    private Integer version;
}
@Data
@ApiModel(value = "DomesticOrderEvent ", description = "内销业务推送事件的入参")
public class DomesticOrderEvent {
   

    @ApiModelProperty(value = "内销单号")
    private String domesticSalesNo;

    @ApiModelProperty(value = "内销单ID")
    private Long domesticSalesId;

    @ApiModelProperty(value = "bo号")
    private String boNo;

    @ApiModelProperty(value = "厂家")
    private String mfr;

    
  • 41
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值