一 問題描述
倉庫管理系統是現代倉儲企業進行貨物管理和處理的業務操作系統。它可以實現本地一個或幾個倉庫的精細化管理,也可實現制造企業、物流企業、連鎖業在全國范圍內、異地多點倉庫的管理;它可以對貨物存儲和出貨等進行動態安排,可以對倉儲作業流程的全過程進行電子化操作;可以與客服中心建立數據接口使客戶通過互聯網實現遠程貨物管理,可以與企業的ERP系統實現無縫連接。
在現代企業中,倉庫管理是一項繁瑣復雜的工作,每天要處理大量的單據數據。為及時結清每筆業務,盤點庫存和貨物流動情況,保證企業生產用料以及貨物安全,庫管人員要花費大量人力物力和時間來作數據記錄統計工作。
眾所周知,倉庫管理是一種既麻煩又單調的工作,每天都是重復記錄一些貨物的存入與取出,而且貨物的種類繁多,存取有很大的隨機性,這樣為工作人員帶來了很大的不便,在操作過程中,由於人為的計算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經營者增加了很多成本。所以開發一個可行的倉庫管理系統是十分必要的。
本系統是為物流管理而設計的高效管理系統,系統功能強大,同時操作又比較簡單,而管理人員大多受到過系統的培訓,並能夠操作電腦,所以只要花很少的時間,就能夠讓他們熟悉本系統。
系統開發的總體任務是實現各種信息的系統化、規范化和自動化。系統功能分析是在系統開發的總體任務的基礎上完成。本倉庫管理系統需要完成功能主要有:
●倉庫管理各種信息的輸入,包括貨物、供應商、客戶、倉庫信息的輸入等。
●倉庫管理各種信息的查詢、統計、修改和維護,包括貨物、單據查詢,貨物出入、職員操作統計,各種信息的修改和維護等。
●打印報表的生成。
●在貨物管理中加入最高儲備和最低儲備字段,對倉庫中的產品實現監控和報警。
●操作日志的管理。
二 總體設計
三 代碼
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.javateam3.struts.form.LoginForm;
import com.javateam3.whmsys.common.dao.LoginService;
/**
* MyEclipse Struts
* Creation date: 05-30-2009
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/webpage/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
try{
String userName=loginForm.getUser_name().trim();
String psw=loginForm.getPsw().trim();
LoginService loginService=new LoginService();
HttpSession session = request.getSession(true);
if(loginService.login(userName, psw)){
session.setAttribute("username",userName);
//如果登錄成功把登錄的名字放在session中以便在過濾器中判斷
return mapping.findForward("loginSuccess");
//返回到登陸成功頁面
}else{
session.invalidate();
request.setAttribute("loginError", "用戶或者密碼錯誤!!");
//返回到錯誤頁面
return mapping.findForward("loginError");
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
登陸過濾器
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
public class SecurityAndDeny implements Filter {
public void destroy() {
//注銷時調用
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)resp;
HttpSession session = request.getSession(false);
//取出來session如果沒有得到空值
if (session== null||session.getAttribute("username")== null) {
//判斷是否登錄過如果沒有就重定向到登陸頁面
String temp="你還沒登陸請重新登陸!!";
temp=java.net.URLEncoder.encode(temp.toString(),"utf-8"); response.sendRedirect("http://localhost:8080/JT03EtpLgtWebProject03/login.jsp?loginErr="+temp);
return;
}
//如果登錄了就進入請求頁面
chain.doFilter(req, resp);
}
public void init(FilterConfig arg0) throws ServletException {
//初始化時調用的方法
}
}
登陸DAO
public Boolean login(String userName,String psw)
{
Employee employee=new Employee();
employee.setPsw(psw) ;
employee.setUserName(userName);
List results=findByExample(employee);
int length=results.size();
if(length==1)
{
return true;
}
else
{
return false;
}
}
供貨商查詢Action
package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.javateam3.whmsys.common.PageBean;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.QueryForm;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;
import com.javateam3.whmsys.common.pojo.Supplier;
import com.javateam3.whmsys.common.utils.Tool;
public class QueryAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
QueryForm queryForm = (QueryForm) form;
SupplierService ss = new SupplierService();
PageBean pageBean = new PageBean();
List list = null;
//存放查出來的spplier對象
String crrPage = request.getParameter("cp");
int currentPage = pageBean.getCurrentPage();
int lineSize = pageBean.getLineSize();
Supplier supplier = change(queryForm);
if (crrPage != null) {
currentPage = Integer.parseInt(crrPage);
} else {
int allRecorders = ss.getCount(supplier);
Tool.setALLRECORDERS(allRecorders);
Tool.setPAGESIZE((allRecorders + lineSize - 1) / lineSize);
pageBean.setAllRecorders(allRecorders);
pageBean.setPageSize((allRecorders + lineSize - 1) / lineSize);
}
list = ss.queryByExample(supplier, currentPage, lineSize);
pageBean.setCurrentPage(currentPage);
request.setAttribute("pageBean", pageBean);
request.setAttribute("list", list);
//把查詢出來的supplier對象放在request里
return mapping.findForward("supplierResult");
}
//把form表單里的東西轉化為supplier對象
public Supplier change(QueryForm queryForm) {
Supplier supplier = new Supplier();
if (queryForm.getSupplierId() != null
&& !queryForm.getSupplierId().equals(""))
supplier.setSupplierId(queryForm.getSupplierId());
if (queryForm.getAddress() != null
&& !queryForm.getAddress().equals(""))
supplier.setAddress(queryForm.getAddress());
if (queryForm.getName() != null && !queryForm.getName().equals(""))
supplier.setName(queryForm.getName());
if (queryForm.getCredit() != null && !queryForm.getCredit().equals(""))
supplier.setCredit(queryForm.getCredit());
if (queryForm.getPhone() != null && !queryForm.getPhone().equals(""))
supplier.setPhone(queryForm.getPhone());
if (queryForm.getRemark() != null && !queryForm.getRemark().equals(""))
supplier.setRemark(queryForm.getRemark());
return supplier;
}
}
供貨商修改Action
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.javateam3.whmsys.common.pojo.Supplier;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.ModifyForm;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;
public class ModifyAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ModifyForm modifyForm = (ModifyForm) form;
Supplier supplier = new Supplier();
supplier.setAddress(modifyForm.getAddress());
supplier.setCredit(modifyForm.getCredit());
supplier.setName(modifyForm.getName());
supplier.setPhone(modifyForm.getPhone());
supplier.setRemark(modifyForm.getRemark());
supplier.setSupplierId(modifyForm.getSupplierId());
SupplierService ss = new SupplierService();
try {
ss.upDate(supplier);
return mapping.findForward("success");
} catch (Exception e) {
e.printStackTrace();
return mapping.findForward("error");
}
}
}供貨商添加Action
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.javateam3.whmsys.common.pojo.Supplier;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.AddForm;
import com.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;
public class AddAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
AddForm addForm = (AddForm) form;
Supplier supplier = new Supplier();
supplier.setAddress(addForm.getAddress());
supplier.setCredit(addForm.getCredit());
supplier.setName(addForm.getName());
supplier.setPhone(addForm.getPhone());
supplier.setRemark(addForm.getRemark());
supplier.setSupplierId(addForm.getSupplierId());
SupplierService ss = new SupplierService();
try {
ss.insert(supplier);
return mapping.findForward("success");
} catch (Exception e) {
e.printStackTrace();
//出現異常打印軌跡
return mapping.findForward("error");
}
}
}
供貨商DAO
package com.javateam3.whmsys.manager.basicinfo.supplyerinfo.dao;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Example;
import com.javateam3.whmsys.common.dao.BaseHibernateDAO;
import com.javateam3.whmsys.common.pojo.Supplier;
import com.javateam3.whmsys.common.utils.UtilGetExample;
public class SupplierDAO extends BaseHibernateDAO {
public static final String NAME = "name";
public static final String ADDRESS = "address";
public static final String PHONE = "phone";
public static final String CREDIT = "credit";
public static final String REMARK = "remark";
public static final String SUPPLIERID="supplierId";
public void save(Supplier transientInstance) {
Transaction transaction=null;
try {
Session session= getSession();
transaction=session.beginTransaction();
session.save(transientInstance);
transaction.commit();
session.close();
} catch (Exception re) {
}
}
public void upDate(Supplier transientInstance)throws Exception {
try {
Session session= getSession();
Transaction transaction = session.beginTransaction();
session.update(transientInstance);
transaction.commit();
session.close();
} catch (RuntimeException re) {
throw re;
}
}
public Supplier findById(java.lang.String id) {
try {
Session session= getSession();
Transaction transaction = session.beginTransaction();
Supplier instance = (Supplier) session.get(
"com.javateam3.whmsys.common.pojo.Supplier", id);
session.close();
return instance;
} catch (RuntimeException re) {
throw re;
}
}
public int getCount(Supplier instance) throws Exception {
if(instance.getSupplierId()!=null)
{
Supplier supplier=findById(instance.getSupplierId());
if(supplier!=null)
{
return 1;
}
else{
return 0;
}
}
else{
Session session= getSession();
Transaction transaction = session.beginTransaction();
Criteria c = session.createCriteria(
"com.javateam3.whmsys.common.pojo.Supplier").add(
Example.create(instance));
int i=c.list().size();
transaction.commit();
session.close();
return i;}
}
public List findByExample(Supplier instance, int currentPage, int lineSize)
throws Exception {
List list = null;
Session session=getSession();
if(findByProperty(SUPPLIERID, instance.getSupplierId()).size()==0||findByProperty("supplierId", instance.getSupplierId())==null)
{
Example es=UtilGetExample.getExample(instance);
Transaction transaction = session.beginTransaction();
Criteria c = session.createCriteria(
"com.javateam3.whmsys.common.pojo.Supplier")
.add(es);
c.setFirstResult((currentPage - 1) * lineSize);
c.setMaxResults(lineSize);
list = c.list();
transaction.commit();
getSession().close();
if(list.size()==0||list==null)
{
return null;
}
return list;
}
else
{
return findByProperty("supplierId", instance.getSupplierId());
}
}
四 運行截圖