jsp版超市信息管理系统-GoodDAO.java

一、登陆界面

可以让不同的用户进行登陆,总共有四种用户类型,分别为经理(可以对所有界面进行查看,修改),销售人员(可以对所有界面进行查看,但只能对销售界面进行操作),库存管理人员(可以对所有界面进行查看,但只能对库存界面进行操作),采购人员(可以对所有界面进行查看,但只能对进退货界面进行操作)。

二. 基本信息

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.util.ArrayList;

import com.shuangyulin.DBUtils.DB;
import com.shuangyulin.javabean.Good;
import com.shuangyulin.javabean.GoodClass;

/*关于商品信息处理的业务处理类*/
public class GoodDAO {
	private String errMessage; /* 保存业务处理时发生的错误信息 */

	private final int pageSize = 8; /* 设置每页显示的商品数量 */

	private int recordCount = 0; /* 保存查询到的总的记录条数 */

	private int totalPage = 0; /* 符合查询条件的总的页数 */

	private int currentPage = 1; /* 当前要显示的页面 */

	private String goodNo = ""; /* 查询商品编号关键字 */

	private String goodName = ""; /* 查询商品名称关键字 */

	private int goodClassId = 0; /* 查询的商品类别 */

	public GoodDAO() {
		this.errMessage = "";
	}

	public String getErrMessage() {
		return errMessage;
	}

	/* 传入商品信息模型对象,进行商品信息的添加业务 */
	public boolean AddGoodInfo(Good good) {
		/* 验证商品编号输入不能为空 */
		if (good.getGoodNo().equals("")) {
			this.errMessage = "商品编号信息输入不能为空!";
			return false;
		}
		/* 验证商品名称输入不能为空 */
		if (good.getGoodName().equals("")) {
			this.errMessage = "商品名称输入不能为空!";
			return false;
		}
		/* 严整该商品名称在系统中是否已经存在 */
		String sqlString = "select count(*) from [goodInfo] where goodNo='"
				+ good.getGoodNo() + "'";
		DB db = new DB();
		try {
			if (db.getRecordCount(sqlString) != 0) {
				this.errMessage = "该商品编号已经存在了!";
				db.all_close();
				return false;

			}
			/* 如果所有验证通过就执行sql插入新商品信息 */
			sqlString = "insert into [goodInfo] "
					+ "(goodNo,goodClassId,goodName,goodUnit,goodModel,goodSpecs,"
					+ "goodPrice,goodPlace,goodMemo,goodAddTime) values ('";
			sqlString += good.getGoodNo() + "',";
			sqlString += good.getGoodClassId() + ",'";
			sqlString += good.getGoodName() + "','";
			sqlString += good.getGoodUnit() + "','";
			sqlString += good.getGoodModel() + "','";
			sqlString += good.getGoodSpecs() + "',";
			sqlString += good.getGoodPrice() + ",'";
			sqlString += good.getGoodPlace() + "','";
			sqlString += good.getGoodMemo() + "','";
			sqlString += good.getGoodAddTime() + "')";
			/* 然后增加该商品的库存量为0 */
			String sqlString2 = "insert into [goodStockInfo] (goodNo,goodCount) values ('"
					+ good.getGoodNo() + "',0)";
			String[] sqlStrings = new String[] { sqlString, sqlString2 };
			if (!db.excuteSqlStrings(sqlStrings)) {
				this.errMessage = "添加商品信息发生了错误!";
				return false;
			}
			return true;
		} catch (Exception e) {
			this.errMessage = "发生了数据错误!";
			db.all_close();
			e.printStackTrace();
			return false;
		}
	}

	/* 查询符合条件的商品信息 */
	public ArrayList QueryGoodInfo() {
		this.PrepareQuery(); /* 首先根据查询条件计算总的记录和总的页数 */
		ArrayList<Good> goodList = new ArrayList<Good>(); /* 保存符合条件的某页记录的集合链表 */
		String sqlString = "select * from [goodInfo] where 1=1";
		if (goodNo != "")
			sqlString += " and goodNo like '%" + goodNo + "%'";
		if (goodName != "")
			sqlString += " and goodName like '%" + goodName + "%'";
		if (goodClassId != 0)
			sqlString += " and goodClassId=" + goodClassId;
		/* 调用数据层进行查询 */
		DB db = new DB();
		try {
			ResultSet rs = db.executeQuery(sqlString);
			if (this.currentPage < 1)
				this.currentPage = 1;
			if (this.currentPage > this.totalPage)
				this.currentPage = this.totalPage;
			/* 计算要移动多少记录数才可以到达要显示的页面 */
			int moveRecordCount = this.pageSize * (this.currentPage - 1);
			for (int i = 0; i < moveRecordCount; i++)
				rs.next();
			/* 移动rs记录指针到达目标页后就对目标页的每条记录进行处理 */
			for (int i = 0; i < this.pageSize; i++) {
				if (rs.next()) {
					Good good = new Good();
					good.setGoodNo(rs.getString("goodNo"));
					good.setGoodClassId(rs.getInt("goodClassId"));
					good.setGoodName(rs.getString("goodName"));
					good.setGoodUnit(rs.getString("goodUnit"));
					good.setGoodModel(rs.getString("goodModel"));
					good.setGoodSpecs(rs.getString("goodSpecs"));
					good.setGoodPrice(rs.getFloat("goodPrice"));
					good.setGoodPlace(rs.getString("goodPlace"));
					good.setGoodMemo(rs.getString("goodMemo"));
					good.setGoodAddTime(rs.getTimestamp("goodAddTime"));
					goodList.add(good);
				} else {
					break;
				}
			}
			db.all_close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return goodList;
	}

	/* 得到符合某个查询条件的总的页数 */
	public void PrepareQuery() {
		String sqlString = "select count(*) from [goodInfo] where 1=1";
		if (goodNo != "")
			sqlString += " and goodNo like '%" + goodNo + "%'";
		if (goodName != "")
			sqlString += " and goodName like '%" + goodName + "%'";
		if (goodClassId != 0)
			sqlString += " and goodClassId=" + goodClassId;
		DB db = new DB();
		try {
			/* 得到符合条件的总的记录数 */
			recordCount = db.getRecordCount(sqlString);
			db.all_close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		/* 根据总的记录数和每页显示的记录条数计算总的页数 */
		this.totalPage = (this.recordCount + pageSize - 1) / this.pageSize;
	}

	/* 根据商品编号得到某个商品的详细信息 */
	public static Good GetGoodInfoByGoodNo(String goodNo) {
		Good good = new Good();
		String sql = "select * from [goodInfo] where goodNo='" + goodNo + "'";
		DB db = new DB();
		ResultSet rs;
		try {
			rs = db.executeQuery(sql);
			if (rs.next()) {
				/* 将数据库中的该商品信息保存在商品信息模型对象中 */
				good.setGoodNo(rs.getString("goodNo"));
				good.setGoodClassId(rs.getInt("goodClassId"));
				good.setGoodName(rs.getString("goodName"));
				good.setGoodUnit(rs.getString("goodUnit"));
				good.setGoodModel(rs.getString("goodModel"));
				good.setGoodSpecs(rs.getString("goodSpecs"));
				good.setGoodPrice(rs.getFloat("goodPrice"));
				good.setGoodPlace(rs.getString("goodPlace"));
				good.setGoodMemo(rs.getString("goodMemo"));
				good.setGoodAddTime(rs.getTimestamp("goodAddTime"));
			}
		} catch (Exception e) {
			System.out.println("遍历商品类别信息时发生了错误!");
			e.printStackTrace();
		} finally {
			db.all_close();
		}
		return good;
	}

	/* 更新商品信息 */
	public static int UpdateGoodInfo(Good good) {
		int result = 0;
		String sql = "update [goodInfo] set goodClassId=";
		sql += good.getGoodClassId() + ",goodName='";
		sql += good.getGoodName() + "',goodUnit='";
		sql += good.getGoodUnit() + "',goodModel='";
		sql += good.getGoodModel() + "',goodSpecs='";
		sql += good.getGoodSpecs() + "',goodPrice=";
		sql += good.getGoodPrice() + ",goodPlace='";
		sql += good.getGoodPlace() + "',goodMemo='";
		sql += good.getGoodMemo() + "' where goodNo='" + good.getGoodNo() + "'";
		DB db = new DB();
		try {
			result = db.executeUpdate(sql);
			db.all_close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}

	public static ArrayList<Good> QueryAllGoodInfo() {
		ArrayList<Good> goodList = new ArrayList<Good>();
		String sqlString = "select * from [goodInfo]";
		/* 调用数据层进行查询 */
		DB db = new DB();
		try {
			ResultSet rs = db.executeQuery(sqlString);
			while (rs.next()) {
				Good good = new Good();
				good.setGoodNo(rs.getString("goodNo"));
				good.setGoodClassId(rs.getInt("goodClassId"));
				good.setGoodName(rs.getString("goodName"));
				good.setGoodUnit(rs.getString("goodUnit"));
				good.setGoodModel(rs.getString("goodModel"));
				good.setGoodSpecs(rs.getString("goodSpecs"));
				good.setGoodPrice(rs.getFloat("goodPrice"));
				good.setGoodPlace(rs.getString("goodPlace"));
				good.setGoodMemo(rs.getString("goodMemo"));
				good.setGoodAddTime(rs.getTimestamp("goodAddTime"));
				goodList.add(good);
			}
			db.all_close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return goodList;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getGoodClassId() {
		return goodClassId;
	}

	public void setGoodClassId(int goodClassId) {
		this.goodClassId = goodClassId;
	}

	public String getGoodName() {
		return goodName;
	}

	public void setGoodName(String goodName) {
		this.goodName = goodName;
	}

	public String getGoodNo() {
		return goodNo;
	}

	public void setGoodNo(String goodNo) {
		this.goodNo = goodNo;
	}

	public int getRecordCount() {
		return recordCount;
	}

	public void setRecordCount(int recordCount) {
		this.recordCount = recordCount;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public int getPageSize() {
		return pageSize;
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值