仓库管理系统(上货、回库)
超市库存系统,库存管理员可登录系统,三次机会,否则需要管理员解锁。仓库管理员可选择入库,上货,回库。入库时,选择已有商品(可通过检索方式),如果已有商品中没有此商品,则可新建。上货:即将库中物品放至超市中。回库:将超市内物品重新放回库中。 物品即将过期时有过期提醒。
上一篇是写了过期提醒,这篇主要写上货和回库,其他功能大都是实现一些基本的增删改查就不一一写了。
首先说一下页面的布局,是使用easyui的面板,将页面分为上、左、中、右、下,只有中部是通过选择左部菜单中的选项,从而打开选项卡变换的,其他模块都是固定不变的。
以下时上货和回库的效果图:
图1.仓库原内库存量
图2.超市内原货量
图3.上货量超过库存量,发出提醒
图4.上货量为20
图5.上货成功1(库存量减20)
图6.上货成功2(超市内货量加20)
图7.回库量大于超市内货量
图8.回库量30
图9.回库成功1(超市货量减30)
图10.回库成功2(仓库内库存量加30)
大致效果如上。
那么下面就说一下上货和回库在dao层实现的方法吧:其实这两个方法大相径庭,上货呢,就只是在批次表中将库存量减前台页面传来的上货量,再将产品表中的货量加上传过来的上货量;回库呢,就是与之相反的操作,即将sql语句中的加减号与上货的反过来即可(下面附上上货方法的代码)。
* 根据商品编号,和用户输入的数量,改变该商品的数量,
* 即:增加超市内商品数量,减少库存量,简称上货,
*(*********回库,就是减少 超市呢商品数量,增加库存量***********)
* (由前台js做出判断:若上货的数量超过库存量则给予用户提醒)
* @param proid 商品编号
* @param count 数量
* @return
*/
public boolean changeWarehouse(String proid,int amount){
//batch 是批次表,sto_amount是库存量
String sql = "update batch set sto_amount=sto_amount - "+ amount+" where proid="+proid +"and sto_amount >="+ amount ;
//product 是产品表,amount是超市内货量
String sql2 = "update product set amount=amount + "+ amount+" where proid="+proid ;
boolean result = false;
conn = DBUtil.getConn();
try {
ps = conn.prepareStatement(sql);
int count = ps.executeUpdate();
if(count>0){
ps = conn.prepareStatement(sql2);
int count1 = ps.executeUpdate();
if(count1>0){
result = true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.close(rs, ps, conn);
}
return result;
}
接下来是上货的页面代码:
data-options="iconCls:'icon-man',plain:'true'">上货
</a>
当在页面点击 上货 时,会弹出一个window窗口,携带商品编号和需要用户输入的上货量,提交和重置按钮。
(回库 代码与之相似)
在script中
width:80,
plain:true,
iconCls:"icon-edit",
onClick:function(){
var rows = $("#mytable").datagrid("getSelections");
if(rows.length != 1){
$.messager.alert("警告框","请选择一行数据进行修改","info");
return;
}else{
$("#batch_window").window({
title:"上货",
width:260,
height:220,
modal:true,//可视化
href:"${pageContext.request.contextPath}/jsp/change.jsp",
queryParams:{"type":"change",
"baid":rows[0].baid,
"sto_amount":rows[0].sto_amount,
"proid":rows[0].pro.proid,
//"proname":rows[0].pro.proname
},
onClose:function(){
$("#mytable").datagrid("reload");
}
});
}
}
});
下面是上货界面的代码,回库界面代码与之相似
<%@ page language="java" pageEncoding="utf-8"%> <!DOCTYPE HTML> <html> <head> <title>上货界面</title> <script type="text/javascript" src="easyui/jquery.min.js"></script> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script> <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css"> </head> <body> <script type="text/javascript"> $(function(){ $("#btnSub").linkbutton({//提交按钮 width:80, iconCls:"icon-save", onClick:function(){ var rows = $("#mytable").datagrid("getSelections"); var sto_amount = parseInt(rows[0].sto_amount); var count = parseInt($("#count").val()); if(sto_amount<count){ alert("商品上货数量不能超过库存量!"); }else{ $.ajax({ type:'post', url:'WarehouseServlet?type=change', data:$("form").serialize(), success:function(data){ $("#mytable").datagrid('reload'); $("#batch_window").window('close'); } }); } } }); $("#btnSet").linkbutton({//重置按钮 width:80, iconCls:"icon-cancel", onClick:function(){ //重置功能 $("#myform")[0].reset(); } }); }); </script> 页面显示内容 <div id="mypanel" class="easyui-panel" style="text-align:center;border:0"> <form id="myform" action="WarehouseServlet" method="get"> <input hidden="hidden" name="type" value="change"> <p> <label for="pro">商品编号:</label> <input type="text" name="pro" class="easyui-numberbox" value="${param.proid}"/> </p> <p> <label for="count">上货量:</label> <input type="text" id = "count" name="count" class="easyui-numberbox" /> </p> <p> <a id="btnSub">提交</a> <a id="btnSet">重置</a> </p> </form> </div> </body> </html>
最后就是servlet中的代码啦,当用户在页面发出上货(change)的请求,servlet就会调用上货的方法并进行相应的页面跳转,当用户在页面发出回库(back)的请求,servlet也会作出相应的响应。
else if ("change".equals(type)) {
String proid = request.getParameter("pro");//获取商品编号
int amount = Integer.parseInt(request.getParameter("count"));//获取上货量
boolean result = service.changeWarehouse(proid, amount);
Gson obj = new Gson();
String str = obj.toJson(result);//转gson格式
System.out.println(str);
if (result) {
request.getRequestDispatcher("jsp/search.jsp").forward(request,
response);//跳转页面到查询库存列表页面(即查询批次列表)
} else {
out.print("商品上货数量不能超过库存量!");
}
}
// 将从超市中减少的商品数量添加到仓库中的库存量中
else if ("back".equals(type)) {
String proid = request.getParameter("pro");
int amount = Integer.parseInt(request.getParameter("count"));//获取回货量
boolean result = service.changeMarket(proid, amount);
if (result) {
Gson obj = new Gson();
String str = obj.toJson(result);
System.out.println(str);
request.getRequestDispatcher("jsp/products.jsp").forward(
request, response);//跳转到查询超市商品列表页面(即查询产品表)
} else {
out.print("回库的商品数量不能超过超市内货存量!");
}
}
整理得比较凌乱,如有什么不够清楚的地方可以给我评论指出,有什么更好的方法和建议也希望能得到各位大神的指教!
相关推荐
《Access仓库管理系统详解》 Access仓库管理系统是一款基于Microsoft Access数据库技术构建的企业级仓库管理解决方案。在信息化日益发达的今天,有效的仓库管理对于企业的运营至关重要,它可以帮助企业优化库存,...
《C#仓库管理系统详解及源代码分析》 在IT行业中,C#作为一种高效且功能强大的编程语言,被广泛应用于各种软件开发,尤其是企业级应用。本篇将详细讲解基于C#构建的仓库管理系统的核心概念、设计思路以及源代码解析...
【简单的仓库管理系统】是一个专为小型企业或个人设计的轻量级库存管理解决方案。这个系统旨在简化仓库操作,提供高效的商品进出记录、库存查询以及基本的统计分析功能,以帮助用户更好地掌握库存状况,避免过度库存...
仓库管理系统(Warehouse Management System,简称WMS)是实现高效、精确库存控制的关键工具,旨在优化库存流动,提升仓库作业效率,确保订单准确无误地完成。 仓库管理涉及到多个方面,包括库存管理、入库出库操作...
这是一款仓库管理系统,主要采用了netcore3.1+mysql/sqlserver+EFCor架构,适合进行二次开发管理系统使用。用户管理 角色管理 部门管理 数据字典管理 系统日志管理 登陆统计 仓库管理 入库管理 出库管理 库存查询 ...
Qt是一个跨平台的应用程序开发框架,支持多种操作系统,包括Linux,因此该仓库管理系统不仅能在Windows上运行,还能在Linux环境下正常工作。这使得用户在不同操作系统下都能享受到一致的界面和操作体验。 该系统...
【基于C#的仓库管理系统】是一个使用C#编程语言开发的软件应用,旨在帮助企业或组织高效地管理和跟踪库存。C#是一种面向对象的、类型安全的编程语言,由微软公司开发,广泛应用于Windows平台上的应用程序开发,包括...
《JavaWeb仓库管理系统详解》 JavaWeb仓库管理系统是一款基于SSM框架(Spring、SpringMVC、MyBatis)开发的应用程序,适用于毕业设计和课程设计的学习参考。它旨在实现对仓库库存、进出货等业务流程的高效管理,...
【VB仓库管理系统论文】 本文将深入探讨如何使用Visual Basic(VB)编程语言设计并实现一个高效、实用的仓库管理系统。VB作为一款易于学习且功能强大的编程工具,常用于开发企业级应用,尤其在管理和自动化业务流程...
### 仓库管理系统课程设计知识点详解 #### 一、项目背景 仓库管理信息系统作为一种重要的企业管理工具,在企业、工厂和商店等领域广泛应用。它通过自动化的方式提高了仓库的存储效率,并减少了管理漏洞。这种系统...
《仓库管理系统ERP仓库核账系统进销存网络版》 仓库管理系统是企业信息化建设中的重要组成部分,它旨在优化企业的仓储流程,提高库存管理效率,降低运营成本。ERP(Enterprise Resource Planning)仓库核账系统则是...
【Asp仓库管理系统详解】 Asp(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于创建动态网页和Web应用程序。在这个“一个简单的Asp仓库管理系统”中,我们探讨的是如何利用Asp技术来构建一个基础的...
"基于winfrom 开发的仓库管理系统" 这个标题表明这是一个使用Windows Forms(winform)技术开发的应用程序,其主要功能是管理仓库的运营活动。Windows Forms是.NET Framework的一部分,用于构建桌面应用程序,提供...
综上所述,畅管仓库管理系统(免费版)v9.9 是一款全面而实用的仓库管理工具,它不仅提供基础的库存管理功能,还注重用户体验和数据安全性,是小企业优化仓储管理的理想选择。通过下载并安装CgCk.exe文件,用户可以...
该仓库管理系统专为服装行业定制,集成了预览、打印标签等多种功能,旨在满足服装企业在库存管理上的多元化需求。经过长时间的实际运行,系统的稳定性和实用性得到了充分验证,对初学者来说,这样的系统不仅提供了...
它的语法简洁,学习曲线相对平缓,而且有大量的开源库和框架支持,如Laravel、CodeIgniter等,这些都为快速构建仓库管理系统提供了便利。在这个项目中,PHP可能被用来处理HTTP请求,与数据库交互,以及生成动态页面...
ASP仓库管理系统是一款基于ASP技术构建的实用型库存管理软件,主要应用于中小型企业或个人进行货物存储、出入库、库存查询等日常仓储管理。这个系统利用ASP(Active Server Pages)脚本语言,结合数据库技术,实现了...
综上所述,一个全面的Android 仓库管理系统需要覆盖库存管理的各个方面,提供便捷的用户体验,以优化仓库作业流程,降低运营成本,提高整体运营效率。在实际开发过程中,开发者应充分考虑用户需求,持续优化功能,以...
《仓库管理系统:C语言实现与进销存管理》 仓库管理系统是企业运营中不可或缺的一环,它涵盖了库存管理、采购管理、销售管理等关键环节,有效地提升了企业的运营效率。本系统采用C语言进行开发,旨在提供一个简洁而...