目录
前言
进货管理是超市管理系统的中重要一环。与此前开发的商品管理(含库存管理系统)和销售管理系统,完整地实现了整个超市进销存的运营管理。
传统的进货管理系统,仅仅是为了增加了商品库存。而现在的进货管理系统,则要结合多个管理系统,来实现更加完善的超市运营管理。
- 结合商品管理系统和销售管理系统。对商品库存采用先进先出的管理办法,即最先入库(进货)的商品应最先出库(销售)。
- 结合供应商管理系统。与供应商的系统对接,实现自动报缺和自动入库的功能。
- 结合门店(仓库)管理系统。对于多家门店而言,需要考虑各个门店之间商品平调的功能。对于多个仓库的门店而言,同样考虑各个仓库之间商品平调的功能。对于拥有多家门店且多家仓库的情况,则还需考虑门店与仓库之间商品平调的功能。
- 结合财务管理系统。财务管理系统要依据进货时的进价计算利润。
一、需求分析
进货管理系统也是SMBMS中很重要的环节。
1、需求及ER图
需求表述如下:
- 每条进货信息都含有:批次号、进货日期、状态、总数量及总金额等信息。
- 每条进货信息都应对应多条商品信息,同时同样的商品信息亦能成为多条进货信息里的明细。
2、数据库设计
--创建进货信息表
create table 进货信息表
(
编号 VARCHAR2(16) primary key,
进货日期 Timestamp,
状态 number default 0,--0-未完成,1-已完成
总金额 NUMBER(10,2),
总数量 NUMBER default 0
);
-- 创建进货明细表
create table 进货明细
(
编号 NUMBER primary key,
进价 NUMBER(10,2),
数量 NUMBER default 0,
商品编码 NUMBER,
进货批次号 VARCHAR2(16)
);
二、业务分析
进货管理系统的最要功能是进货记录的增删改查,同时修改商品信息中相应商品的库存。
-
业务流程图
-
拓展功能
进货系统开发完成后,结合销售系统,可以拓展开发以下几个新功能:
- 缺货管理:可以设置一个默认的缺货提醒值,如0。当商品销售出去后,库存减少为0时,发出缺货警告;当商品再次进货后,库存增加,则取消缺货警告。
- 计算每笔订单利润:生成订单明细时,通过零售价与进货价相减,即可计算出每个订单明细的利润。将这些利润进行汇总,生成每日利润报表,月度利润报表以及年度利润报表。
- 按照先进先出的原则来管理库存:先进货(日期最早和批次号最靠前的)的商品,应最先销售出去。当一个批次号的商品全部销售出去后,才能销售下一个批次号的商品;并且获取该批次号的进货价来计算利润。
三、开发与编程
1、进货Been
import java.sql.Timestamp;
public class 进货{
private String 批次号;
private Timestamp 入库时间;
private Integer 状态;
private Double 总数量;
private Double 总金额;
public 进货() {
super();
}
public 进货(String 批次号, Timestamp 入库时间, Integer 状态, Double 总数量, Double 总金额) {
super();
this.批次号 = 批次号;
this.入库时间 = 入库时间;
this.状态 = 状态;
this.总数量 = 总数量;
this.总金额 = 总金额;
}
public String get批次号() {
return 批次号;
}
public void set批次号(String 批次号) {
this.批次号 = 批次号;
}
public Timestamp get入库时间() {
return 入库时间;
}
public void set入库时间(Timestamp 入库时间) {
this.入库时间 = 入库时间;
}
public Integer get状态() {
return 状态;
}
public void set状态(Integer 状态) {
this.状态 = 状态;
}
public Double get总数量() {
return 总数量;
}
public void set总数量(Double 总数量) {
this.总数量 = 总数量;
}
public Double get总金额() {
return 总金额;
}
public void set总金额(Double 总金额) {
this.总金额 = 总金额;
}
}
2、进货明细Been
import java.sql.Timestamp;
public class 进货明细{
private Integer 序号;
private String 备注;
private Integer 是否删除;
private String 条形码;
private String 商品名称;
private Double 进价;
private Integer 数量;
private Integer 商品编号;
private String 进货单号;
}