一、开发背景
目前市面上的进销存系统主要存在以下问题:
1.不同行业,甚至同一行业不同物料的属性差异很大,在开发过程中往往需要根据不同行业的特性,进行定制化开发,主要原因在于物料管理系统的灵活性和可扩展性不足;
2.虽然企业信息化的目的是要达到“物流、资金流、信息流三流合一”的目的,但大多数系统在分析层面和设计层面(尤其是数据库设计层面)对于“物流、资金流”的设计缺乏足够的重视,造成在信息流的不畅,虽然在实现层面采用大量的代码来实现上述功能,但由于设计方面的缺陷,只能是治标不治本;
3.不同企业的业务流程不同,对于同一单据的处理流程不尽相同,现有系统在设计和实现中往往采用功能配置的方法加以实现。功能配置的方法虽然能够实现流程的定制功能,但往往需要大量代码维护复杂的业务逻辑,在业务流程需要扩展或者系统功能发生扩展的时候,不便于系统的快速升级。
为解决上述问题,需要从设计层面入手,精心构思和设计系统,使之具有更好的可扩展性、适应性等,满足不同行业的业务需求。
二、设计思路
本系统的设计思路主要有以下几点:
1.物料为核心:通过对物料及物料属性的抽象,并充分考虑企业在采购、销售以及统计等方面的需求,构造灵活、健壮的物料管理系统,使之能够满足不同行业、不同物料的编码管理及业务需求;并在此基础上进一步发展,使之在设计层面能够满足物流追踪的需求;
2.两点一线,三方监控:通过对业务的对象化分析,拆离财务功能在业务过程中的紧耦合关系,使之成为业务过程中的第三方力量,达到“业务过程两点一线,财务功能第三方监控”的目的,一方面使得业务的灵活性能够得到保证,另一方面,在实现“物流、资金流和信息流三流合一”的同时,还能够保证三流的互相监督作用;
3.状态机:在业务流转中,采用状态机原理,实现单据状态的灵活可配置性,其优点主要表现在降低实现(编码)层面的复杂性。
图1、状态机示意图
4.MVC结构:根据多年经验,利用现有的MVC架构(Struts),并进一步扩展控制层,使得系统具有更高的灵活性和可扩展性;
5.多语种:利用Struts的优势,只需要编写不同语种的属性文件,就可以轻松实现多语种功能,满足企业国际化的需要;
6.相对独立的权限系统:分离权限系统的主要目的在于使得系统更加灵活,以便于企业扩张和重组时,尽量通过修改权限配置来满足企业的需求,尽可能少地修改代码;
开源供应链[进销存]系统说明目录