一、登陆界面
可以让不同的用户进行登陆,总共有四种用户类型,分别为经理(可以对所有界面进行查看,修改),销售人员(可以对所有界面进行查看,但只能对销售界面进行操作),库存管理人员(可以对所有界面进行查看,但只能对库存界面进行操作),采购人员(可以对所有界面进行查看,但只能对进退货界面进行操作)。
二. 基本信息
1. 供应商信息管理
2. 商品信息管理
3. 员工信息管理
三. 进退货信息管理
1、进货登记:进行商品进货登记
2、退货登记:商品退货登记,损坏或质量问题的货品退给供应商,因规格或其他问题的商品将退货回库存。
3、进货查询:可根据时间段,商品类别,供应商进行查询
4、退货查询:可根据时间段,商品类别,供应商进行查询
四 、销售管理
1、商品销售处理:可实现多种商品的销售,有销售日期,小票号以及销售人员的编号。
2、销售退货处理: 可依据小票号进行退货,并要有备注可表明退货原因,以及要有退货日期
3、销售查询:按商品名称查询,按销售人员查询,按销售日期查询
4、退货查询:按小票号查询,按商品名称查询,按销售人员查询,按退货日期查询
五. 信息统计查询
1. 商品销售统计排行:可以按时间段,单类商品销售量,多种商品销售量进行查询
2. 销售人员业绩排行:按销售出商品的总金额进行排行
3. 营业历程对比:按月份销售额或季度销售额进行图形或文字或表状(有一种类型的就可以了)的对比。
六、库存管理
1、库存查询:可按商品名进行查询,商品类别进行查询(可实现模糊查询)
2、库存盘点:进货金额和销售金额的对比
3、库存上溢,下限预警,以及库存报损(当库存少于或多于限定数量时就会显示相关文字进行提醒)
七、系统管理设置
1、用户信息管理(限制不同用户的权限)
2. 用户密码修改
package com.shuangyulin.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.shuangyulin.DBUtils.DB;
import com.shuangyulin.javabean.SellBackInfo;
public class SellBackDAO {
private String errMessage; /*保存业务逻辑处理的错误*/
private String goodNo; /*查询的商品编号*/
private String sellNo; /*查询的销售编号*/
private String startDate; /*查询的开始日期*/
private String endDate; /*查询的结束日期*/
private float totalPrice = 0.0f; /*当前查询条件下的所有销售退货总价格*/
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getErrMessage() {
return errMessage;
}
public void setErrMessage(String errMessage) {
this.errMessage = errMessage;
}
public String getGoodNo() {
return goodNo;
}
public void setGoodNo(String goodNo) {
this.goodNo = goodNo;
}
public String getSellNo() {
return sellNo;
}
public void setSellNo(String sellNo) {
this.sellNo = sellNo;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public float getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(float totalPrice) {
this.totalPrice = totalPrice;
}
/*传入商品退货信息模型对象,实现顾客退货的业务操作*/
public boolean AddSellBackInfoAdd(SellBackInfo sellBackInfo,boolean isGood)
{
try {
/*查询销售信息表中是否存在该销售单据号*/
String sqlString = "select COUNT(*) as count from [sellInfo] where sellNo='" + sellBackInfo.getSellNo() + "'";
DB db = new DB();
ResultSet rs = db.executeQuery(sqlString);
int count = 0;
if(rs.next())
count = rs.getInt("count");
if(0 == count) {
this.errMessage = "你输入的销售单据号不存在!";
return false;
}
db.all_close();
/*判断该次销售中是否存在该商品的信息*/
sqlString = "select COUNT(*) as count from [sellInfo] where sellNo='" + sellBackInfo.getSellNo() + "' and goodNo='" + sellBackInfo.getGoodNo() + "'";
rs = db.executeQuery(sqlString);
count = 0 ;
if(rs.next())
count = rs.getInt("count");
if(0 == count) {
this.errMessage = "该次销售没有该商品的信息!";
return false;
}
db.all_close();
/*判断退货的商品数量是否正确*/
sqlString = "select number from [sellInfo] where sellNo='" + sellBackInfo.getSellNo() + "' and goodNo='" + sellBackInfo.getGoodNo() + "'";
int number = 0;
rs = db.executeQuery(sqlString);
if(rs.next())
number = rs.getInt("number");
if(sellBackInfo.getNumber() > number)
{
this.errMessage = "你的退货数量不能大于销售时的数量!";
return false;
}
db.all_close();
/*通过验证后执行商品退货信息的加入*/
sqlString = "insert into [sellBackInfo] (sellNo,goodNo,price,number,totalPrice,sellBackReason,sellBackTime) values ('";
sqlString += sellBackInfo.getSellNo() + "','";
sqlString += sellBackInfo.getGoodNo() + "',";
sqlString += sellBackInfo.getPrice() + ",";
sqlString += sellBackInfo.getNumber() + ",";
sqlString += sellBackInfo.getTotalPrice() + ",'";
sqlString += sellBackInfo.getSellBackReason() + "','";
sqlString += sellBackInfo.getSellBackTime() + "')";
db.executeUpdate(sqlString);
db.all_close();
/*如果退回的商品是完好的,需要将商品入库*/
if (isGood)
{
sqlString = "update [goodStockInfo] set goodCount = goodCount + " + sellBackInfo.getNumber(); ;
db.executeUpdate(sqlString);
db.all_close();
}
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
/*根据商品编号,销售单据,开始时间和结束时间查询商品退货信息*/
public ArrayList<SellBackInfo> QuerySellBackInfo(String goodNo,String sellNo, String startDate, String endDate)
{
ArrayList<SellBackInfo> sellBackInfoList = new ArrayList<SellBackInfo>();
/*根据查询条件构造sql语句*/
String sqlString = "select * from [sellBackInfo] where 1=1";
if (goodNo != "")
sqlString += " and goodNo like '%" + goodNo + "%'";
if (sellNo != "")
sqlString += " and sellNo like '%" + sellNo + "%'";
if (startDate != "")
sqlString += " and sellBackTime >= '" + startDate + "'";
if (endDate != "")
sqlString += " and sellBackTime <= '" + endDate + "'";
try {
/*调用数据层执行查询*/
DB db = new DB();
ResultSet rs = db.executeQuery(sqlString);
while(rs.next()) {
SellBackInfo sellBackInfo = new SellBackInfo();
sellBackInfo.setSellBackId(rs.getInt("sellBackId"));
sellBackInfo.setSellNo(rs.getString("sellNo"));
sellBackInfo.setGoodNo(rs.getString("goodNo"));
//sellBackInfo.setGoodName(rs.getString("goodName"));
sellBackInfo.setPrice(rs.getFloat("price"));
sellBackInfo.setNumber(rs.getInt("number"));
sellBackInfo.setTotalPrice(rs.getFloat("totalPrice"));
sellBackInfo.setSellBackReason(rs.getString("sellBackReason"));
sellBackInfo.setSellBackTime(rs.getTimestamp("sellBackTime"));
totalPrice += sellBackInfo.getTotalPrice();
sellBackInfoList.add(sellBackInfo);
}
db.all_close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sellBackInfoList;
}
}

保存业务逻辑处理的错误*/
*查询的商品编号*/
*查询的销售编号*/
*查询的开始日期*/
*查询的结束日期*/
*当前查询条件下的所有销售退货总价格*/