超市仓库管理系统(过期提醒)
在超市系统的超市库存系统中,会有一个 对物品即将过期或已过期但未处理的物品的提醒。下面是仓库管理系统主页的一个显示情况:
图1.仓库系统主页
从中截取出要实现的提醒部分如下:(布局有点Low,先将就一下)
图2.商品过期提醒
实现步骤:
一、在dao层写出具体实现的方法,思路:设根据商品保质期的五分之一的天数作为快过期天数,然后用sql语句查询出将过期和已过期商品批次编号和天数,将数据放入map集合。
select 批次编号、((有效期-生产日期)/5 - abs(有效期-当前时间) ) 天数 from 商品批次表
where (有效期-生产日期)/5 >= (有效期-当前时间)
/**
* 商品过期提醒(设根据商品保质期的五分之一的天数作为快过期天数,再作出判断)
* @return
*/
public Map<Integer, Integer> proDate(){
//定义map集合,用来存放商品批次编号和天数
Map<Integer,Integer> maps = new HashMap<Integer, Integer>() ;
//查询出将过期和已过期商品批次编号和天数 (过期提醒时间=保质期内时间/5)
//(有效期-生产日期)/5 - abs(有效期-当前时间) = 天数
//where条件:(有效期-生产日期)/5 >= (有效期-当前时间)
String sql = "select baid,(trunc(effdate,'dd')-trunc(prodate,'dd'))/5 - "
+ "(abs(trunc(effdate,'dd')-trunc(sysdate,'dd'))) time"
+ " from batch where ((trunc(effdate,'dd')-trunc(prodate,'dd'))/5 >= "
+ "(trunc(effdate,'dd')-trunc(sysdate,'dd')))";
conn = DBUtil.getConn();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
int baid = rs.getInt(1);
int time = rs.getInt(2);
maps.put(baid, time);
//判断:如果天数小于零表示该商品已过期,因为天数小于零是负数所有要加绝对值
if(time<0){
System.out.println("第 "+baid+ " 批次商品已过期"+Math.abs(time)+"天!");
}
//判断:如果天数刚好等于0则表示该批次商品于当前日期过期
else if(time==0){
System.out.println("第 "+baid+ " 批次商品今天过期!");
}
//判断:如果天数大于0,则表示该批次商品在保质期的五分之一时间内,也就是说即将过期
else if(time>0){
System.out.println("第 "+baid+ " 批次商品还有"+time+"天过期!");
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.close(rs, ps, conn);
}
return maps;
}
* 商品过期提醒(设根据商品保质期的五分之一的天数作为快过期天数,再作出判断)
* @return
*/
public Map<Integer, Integer> proDate(){
//定义map集合,用来存放商品批次编号和天数
Map<Integer,Integer> maps = new HashMap<Integer, Integer>() ;
//查询出将过期和已过期商品批次编号和天数 (过期提醒时间=保质期内时间/5)
//(有效期-生产日期)/5 - abs(有效期-当前时间) = 天数
//where条件:(有效期-生产日期)/5 >= (有效期-当前时间)
String sql = "select baid,(trunc(effdate,'dd')-trunc(prodate,'dd'))/5 - "
+ "(abs(trunc(effdate,'dd')-trunc(sysdate,'dd'))) time"
+ " from batch where ((trunc(effdate,'dd')-trunc(prodate,'dd'))/5 >= "
+ "(trunc(effdate,'dd')-trunc(sysdate,'dd')))";
conn = DBUtil.getConn();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
int baid = rs.getInt(1);
int time = rs.getInt(2);
maps.put(baid, time);
//判断:如果天数小于零表示该商品已过期,因为天数小于零是负数所有要加绝对值
if(time<0){
System.out.println("第 "+baid+ " 批次商品已过期"+Math.abs(time)+"天!");
}
//判断:如果天数刚好等于0则表示该批次商品于当前日期过期
else if(time==0){
System.out.println("第 "+baid+ " 批次商品今天过期!");
}
//判断:如果天数大于0,则表示该批次商品在保质期的五分之一时间内,也就是说即将过期
else if(time>0){
System.out.println("第 "+baid+ " 批次商品还有"+time+"天过期!");
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.close(rs, ps, conn);
}
return maps;
}
二、在index.jsp主页的页面布局中将提醒位置放在页面右边
<div data-options="region:'east',split:false" style="width:190px;">
<div id="p" class="easyui-panel" title="备注" data-options="fit:true" >
<p style="font-size:20px;text-align:center">商品过期提醒!</p>
<div data-options="fit:true" id="panel" class="easyui-panel"
style="color:red ;font-size:15px;" >
</div>
</div>
</div>
<div id="p" class="easyui-panel" title="备注" data-options="fit:true" >
<p style="font-size:20px;text-align:center">商品过期提醒!</p>
<div data-options="fit:true" id="panel" class="easyui-panel"
style="color:red ;font-size:15px;" >
</div>
</div>
</div>
然后在该页面的script中调用servlet,获取数据到页面。
//将后台数据加载到面板中来
$("#panel").panel({
href:"WarehouseServlet?type=date"
});
$("#panel").panel({
href:"WarehouseServlet?type=date"
});
三、servelet响应,从map中取出数据。
//商品过期提醒
if("date".equals(type)){
Map<Integer,Integer> maps = service.proDate();
for(Map.Entry<Integer, Integer> entry :maps.entrySet()){
int key = entry.getKey();
int value = entry.getValue();
if(value<0){
out.println("第 "+key+ " 批次商品已过期 "+Math.abs(value)+" 天!"+"\t\n");
}
else if(value==0){
out.println("第 "+key+ " 批次商品今天过期!"+"\t\n");
}
else if(value>0){
out.println("第 "+key+ " 批次商品还有 "+value+" 天过期!"+"\t\n");
}
out.println();
}
}
if("date".equals(type)){
Map<Integer,Integer> maps = service.proDate();
for(Map.Entry<Integer, Integer> entry :maps.entrySet()){
int key = entry.getKey();
int value = entry.getValue();
if(value<0){
out.println("第 "+key+ " 批次商品已过期 "+Math.abs(value)+" 天!"+"\t\n");
}
else if(value==0){
out.println("第 "+key+ " 批次商品今天过期!"+"\t\n");
}
else if(value>0){
out.println("第 "+key+ " 批次商品还有 "+value+" 天过期!"+"\t\n");
}
out.println();
}
}
大致实现过程就这样,不过还有很多地方不贴合实际情况。。。
最后还有一个监听器,每隔一段时间就来监听商品是否即将过期。
/**
* 监听器:1.每隔一段时间监听看是否有商品即将过期
* @author sunflower
*
*/
public class MyListener extends Thread implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
this.start();
}
@Override
public void run() {
WarehouseDao dao = new WarehouseDao();
while(true){
dao.proDate();//商品过期提醒
try {
Thread.sleep(1000*60*60);//时间可以自己任意设置
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
* 监听器:1.每隔一段时间监听看是否有商品即将过期
* @author sunflower
*
*/
public class MyListener extends Thread implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
this.start();
}
@Override
public void run() {
WarehouseDao dao = new WarehouseDao();
while(true){
dao.proDate();//商品过期提醒
try {
Thread.sleep(1000*60*60);//时间可以自己任意设置
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
相关推荐
C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理系统源码 C#仓库管理...
基于springboot+vue的商场超市仓库管理系统源码+数据库(高分毕业设计).zip 代码完整下载可用,纯手打高分毕业设计项目,小白可以实操,确保可以运行。 基于springboot+vue的商场超市仓库管理系统源码+数据库...
《超市仓库管理系统》 超市仓库管理系统是一款以C语言编写的软件,旨在提升超市商品存储和调配的效率,满足消费者的消费需求。系统设计的核心理念是规范化记录、自动化查询以及资源共享,通过计算机技术实现超市...
仓库管理系统开题报告知识点 一、仓库管理系统的背景和重要性 仓库管理是企业生存和发展的重要组成部分,随着经济文化水平的提高,人们对生活质量和工作环境的要求也越来越高。仓库管理系统可以帮助企业实现自动化...
从给定的文件信息来看,我们正在探讨一个基于C语言编写的超市仓库管理系统。这个系统旨在帮助超市管理者更有效地管理库存、入库、出库以及退货等业务流程,并提供商品统计功能,以支持决策制定和运营优化。下面,...
《基于SSM的超市仓库管理系统详解》 在IT行业中,SSM框架是Java Web开发中的一个常见选择,它由Spring、Spring MVC和MyBatis三个组件组成,为开发者提供了强大的功能支持。本项目"基于SSM超市仓库管理系统"旨在帮助...
基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、django 2.2、MySQL 基于DJango开发的仓库管理系统,软件架构:python 3.5、...
《仓库管理系统JAVA源代码解析与应用》 仓库管理系统是企业运营中的重要组成部分,它负责对库存物品进行跟踪、控制和管理,确保供应链的顺畅运行。本文将深入探讨一款基于JAVA语言开发的仓库管理系统,该系统以其...
【C#超市仓库管理系统】是一款基于C#编程语言和SQL Server数据库技术的毕业设计项目,旨在为超市提供一套高效、易用的库存管理解决方案。系统的设计与实现涵盖了多个IT领域的核心知识点,包括软件工程、数据库设计、...
仓库管理系统需求分析报告 仓库管理系统需求分析报告旨在对仓库管理系统的需求进行分析和描述。本报告将对仓库管理系统的目的、功能需求、用户需求、系统流程图、数据描述等进行详细的描述,以便于更好地理解和实现...
python课程设计仓库管理系统,包含源码,文档,ppt 仓库管理系统应解决一些问题,例如:非常依赖人工经验,新手上手速度慢;对正在进行的现场作业的可见度不高;缺乏日常仓库作业报表,无法为管理者提供更多数据...
仓库管理系统asp 仓库管理系统asp 仓库管理系统asp 仓库管理系统asp
《基于JSP的仓库管理系统设计与实现》 随着全球化市场竞争加剧,企业的生产运营效率成为决定其竞争力的关键因素。仓库作为企业物流的重要环节,其管理效率直接影响到企业的整体运营。因此,构建一套高效、安全的...
《C# Winform仓库管理系统详解》 C# Winform仓库管理系统是一种基于Microsoft .NET Framework的桌面应用程序,它利用C#编程语言和Windows Forms(Winform)技术构建,旨在实现高效、便捷的仓库库存管理。本系统的...
仓库管理系统ER图是一种数据建模方法,用于描述仓库管理系统的实体关系,以便更好地理解系统中的数据结构和业务流程。在数据库设计中,ER图(实体关系图)是至关重要的一步,它将现实世界的对象和它们之间的关系转化...
仓库管理系统源码是用于实现企业或组织内部仓库管理信息化的重要工具。这个系统涵盖了库存控制、物品出入库记录、库存盘点、库存预警等多个功能模块,旨在提高仓库作业效率,减少库存成本,确保库存数据的准确性和...
基于springboot的仓库管理系统源码+数据库,毕业设计项目,已获老师指导并高分通过。 项目简介 本项目是一套基于springboot的仓库管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习...