JavaWeb仓储管理系统优化设计

视频演示地址

在这里插入图片描述

JavaWeb课设之仓储管理系统

以下是完整的课设报告

仓储管理系统优化设计

[摘要]
随着电子商务技术和网络技术的快速发展,现代物流技术也在不断进步。物流技术是指与物流要素活动有关的所有专业技术的总称,包括各种操作方法、管理技能等,如流通加工技术、物品包装技术、物品标识技术、物品实时跟踪技术,物流存储技术等;物流技术还包括物流规划、物流评价、物流设计、物流策略等;当计算机网络技术的应用普及后,物流技术中综合了许多现代技术如GIS(地理信息系统)、GPS(全球卫星定位)、EDI(电子数据交换)、BAR CODE(条码)等。物流业在采用某些现代信息技术方面的成功经验和规范集成,为电子商务的推广普及铺平了道路。例如世界零售业巨头美国沃尔玛早已采用GPS进行物流跟踪和监控来保证商品及时、可靠、安全的到达各个销售地点。
虽然GPS在商业方面的应用在我国目前来说还不太现实,成本也比较高。但是互联网在我国的普及和发展已经非常成熟和稳固,我们利用现有的网络技术也可以实现对物流的商品的跟踪监控!
采用java三层构架技术开发的U/T 网络物流系统实现了对商品库存信息,供应商信息,商品信息,入库商品信息,出库商品信息的便捷管理。实现了仓储管理的信息化,减少了人力,节省了财力,提高了企业运作的效率有效控制商品库存量为企业节省了不必要的浪费。
[关键词] 物流技术、物流业、三层架构技术、U/T网络物流系统

一、绪论
中国进入WTO对中国既是一个机遇也是一个挑战。从这里开始中国的市场要走向国际化,中国的商品走出国门,让世界上所有国家的人们来使用它,检验它的好与坏。面对世界上一流的大企业,我们应该怎么做才能使自己的产品迅速、安全、可靠的运送到顾客的手中呢?其中要特别注意的有三点:迅速,就是要缩短从商品走下生产线到送到顾客手中的时间和距离,要缩短库存时间,减少在途运输时间。安全,就是要保证产品在运输和储存当中免受损伤,保证到用户手中的产品和刚走下生产线的产品是同等质量。可靠,就是要实现在仓储和运输过程中的任何差错都是可以追踪和查询的,销售环节中的操作是正确的。迅速、安全、可靠的商品储存和运输不仅是为了保证商品的质量而且可以减少不必要的财务的浪费,提高企业的盈利能力和竞争力。

1.1设计背景

本次设计的题目是对仓储管理系统设计。通过对仓储的详细调查、需求分析以及模块设计,对仓储的管理系统进行设计,使仓储的使用更加方便快捷的同时,也能对仓储进行更加有效合理的管理。

1.2设计意义
物流系统整合的意义不单单是几个单独运行系统的简单拼装,而是在几个系统之间数据的共享,资源的重新整合是提高效率和降低企业运行费用的关键。是对整个运行流程的全面控制、对原物资运行流程的改造。一个全面的物流系统是包括对多方面内容的管理,包括供应链管理、货物配送管理、订单管理、供应商管理、仓储管理、以及在工作中涉及到的对工作人员的管理、运输工具的管理等等。所以说物流系统的整合是一个庞大的、复杂的、全面的整合工作,特别是对制造行业的企业来说,自己的产品能否迅速、安全、可靠的运送到销售地点、送到用户的手中,是自己奠定在该行业地位取得用户认可的关键,与此同时这样是自己资金周转的关键。只有照顾好我们的顾客,他们才能照顾好我们的利润。在一个效率和效果并重的世界里,时间、速度是致胜的关键!

1.3数据库的选择

MySql数据库和SQL Server,Oracle相比是一个轻量级的数据库,由于MySql是一个开源的数据库解决方案因此你可以很方便的修改相关的配置来满足你开发的需要,虽然它的功能和SQL Server Oracle相比没有它们那么强大但是在开发中小型B/S应用系统时,它完全可以满足您的需要。它安装的便捷性,有的版本是绿色安装直接解压出来就可以使用;它的跨平台性也给用户带来了方便,最重要的是连接MySql数据库的速度是其他数据库不能比的,对应连接速度有很高要求的开发可以考虑使用此数据库。它最大支持5000万条记录,这完全可以满足你的开发要求,它对多国语言的支持也方便了不同语种的开发。
Aapche的Tomcat是目前被广泛使用的一款WebApplication服务器,它是Apache开源项目下的一个子项目。它不仅支持JSP、PHP而且经过适当的配置后也可以支持ASP,而且它也是一款跨平台软件,对于学习者和中小型应用项目来说它都是大家的首选并且开发应用已经日趋成熟。虽然它在某些功能方面比不上BEA公司的WebLogi和IBM公司的**,但是它是开源免费的所以从这个方面来说它在中小型应用中还是很有竞争力的。

1.4编程语言的选择

我本次设计采用Java语言从它向世人打招呼的那一天开始它就把自己定位在了致力于网络应用软件开的语言,它的跨平台、安全性、完全的面向对象,使它成为了互连网应用软件开发的一个新的宠儿。Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。

二、需求分析

仓储管理(Warehousing Management)是物流系统的一部分,它从初始点到消费点存储产品(原材料、零部件、半成品、成品),提供存储状态、条件和处置等信息。现代物流中的仓储是在物流体系中是唯一的静态环节,随着经济的发展,需求方式出现了个性化、多样化的改变,生产方式也变为多品种、小批量的柔性生产方式。物流的特征由少品种、大批量变为多品种、少批量或多批次、小批量,仓库的功能也从重视保管效率逐渐变为重视流通功能的实现。储存相当于物流体系的一个节点。仓储是物流中的重要环节,储存功能相对于整个物流体系来说,既有缓冲与调节的作用,也有创值与增效的功能。仓储管理在现代物流管理中处于重要地位,它不但起着物品储藏的功能而且对财务控制、生产供应、销售支持都有很大的作用。合理的库存控制对减少物品的资金占用有起着关键作用,而且合理的库存是为生产有序进行提供了可能,商品的销售也受库存的影响。因此仓储管理的控制是否合理、高效是提升企业竞争力的关键。
在B/S模式的软件开发中采用最多的是MVC设计模式。MVC是一种流行的设计模式,它是Model-View-Controller的简称,即模型-视图-控制器。它把应用程序分成三个层次或者模块:视图层、模型层、控制层,它们各自处理自己的任务。
视图:向用户显示数据,接受用户输入,与模型层交互,向模型查询业务状态,接受模型发出的数据,更新显示用户界面。
模型:模型是应用程序的主体,它用于表示业务数据和业务逻辑。一个模型可以同时为多个视图提供数据,从而提高了代码的可重用性。
控制器:控制器,顾名思义起控制作用。它接受用户输入,并调用模型和视图来完成用户请求。在用户提交表单时,控制器本身不做任何处理和输出工作。控制器所做的仅仅时:接受请求,然后调用模型组件处理请求,最后调用视图来显示模型处理后返回的数据。

2.1可行性研究

2.1.1价值可行性

物流管理可以根据市场分析,提高运营管理效率,合理规划分配资源,调整业务结构,确保每个业务均可盈利。根据数据分析结果,规划、预计运输路线和配送路线,环节运输高峰期的物流行为,提高客户的满意度,提高客户粘度。

2.1.2经济可行性
近年来,我国电子商务和网络购物的迅猛发展,为快递业带来了前所未有的发展机遇。 2013年,全国快递业务量首次超过函件业务量。 2014年,经济增长从高速增长转为中高速增长,全国快递量增幅也有所下滑,但仍超过140亿 件,首次超过美国,跃居世界第一,成为中国经济的一匹黑马。 2015年,全国快递业务量首次突破200亿件大关,继续稳居世界第一,中国快递业在加速流 通、扩大内需、调整结构、吸纳就业、普惠民生等方面的基础性作用日益显现。国家高度关注快递行业发展。 2016年,全国快递业务量突破300亿件,全球占比超过40%,日均服务超过2.5亿人次,支撑网络零售额超过4万亿元,占社会消费品零售总额比重达到12.5%,新增就业20万人以上。 2017年我国快递业务量突破了400亿件,达到400.6亿件,同比增长28% 2018年,我国快递业务量超过美、日、欧等发达经济体之和,规模连续五年稳居世界第一,是第二名美国的3倍多,全年中国快递业务量突破500亿件业务收入突破6000亿元

2.2系统功能需求分析
在需求分析确定之后需要对系统进行整体分析和设计。这包括系统功能的描述、对功能模块的划分对系统流程的分析下面首先对系统功能进行描述。
4.1系统功能模块划分
1.模块划分时描述一个系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发中一个关键过程。分析的根本目的时在开发者和提出需求的人员之间建立一种理解和沟通的机制。因此,物流系统的仓储管理需求分析也是根据开发者和实际用户需求一起来完成的。
这个系统的模块结构如下:
在这里插入图片描述

三、数据库设计

3.1数据库表设计

网络物流系统(仓储管理模块)数据库结构
数据库名称:英文(Logistic)――中文(物流)
数据表编号 数据表英文名称 数据表中文名称 数据表功能描述
01 tb_admin 管理员表 管理员
02 tb_goods 货物表 货物
03 tb_warehouse 仓库表 仓库
04 tb_record 出入库记录表 出入库记录
05 tb_checkrecord 成本核算表 成本核算
06 tb_purchase 采购表 采购
07 tb_purchaser 采购员表 采购员

3.2数据库逻辑结构设计
在这里插入图片描述

四、运行效果截图

4.1登陆界面
在这里插入图片描述

4.2用户登录后界面
在这里插入图片描述

4.3管理员登录后界面

在这里插入图片描述
五、代码展示
5.1登录界面

/**
 * 用于登陆的Servlet
 */
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    
    

    private SqlSession sqlSession;
    //查询数据mapper
    private AdminDao adminDao;
    private PurchaserDao purchaserDao;
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
    
    
        sqlSession = JdbcUtils.getSession();
        req.setCharacterEncoding("utf-8");
        //登陆的用户
        LoginUser loginUser;
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String usertype = req.getParameter("usertype");
        if(usertype.equals("admin")) {
    
    
            Admin admin =new Admin ();
            admin.setUsername(username);
            admin.setPassword(password);
            QueryWrapper<Admin> wrapperAdmin = new QueryWrapper();
            wrapperAdmin.eq("username", username).eq("password", password);
            adminDao =sqlSession.getMapper(AdminDao. class);
            loginUser = adminDao.selectOne(wrapperAdmin);
            if (loginUser != null) {
    
    
                sqlSession.close();
                req.getSession().setAttribute("user", loginUser);
                req.getSession().setAttribute("role", "admin");
                resp.sendRedirect(req.getContextPath() + "/hello.jsp");
                return;
            }
        }
        if(usertype.equals("purchaser")) {
    
    
            Purchaser purchaser =new Purchaser ();
            purchaser.setUsername(username);
            purchaser.setPassword(password);
            QueryWrapper<Purchaser> wrapperPurchaser = new QueryWrapper();
            wrapperPurchaser.eq("username", username).eq("password", password);
            purchaserDao =sqlSession.getMapper(PurchaserDao. class);
            loginUser = purchaserDao.selectOne(wrapperPurchaser);
            if (loginUser != null) {
    
    
                sqlSession.close();
                req.getSession().setAttribute("user", loginUser);
                req.getSession().setAttribute("role", "purchaser");
                resp.sendRedirect(req.getContextPath() + "/hello.jsp");
                return;
            }
        }

        sqlSession.close();
        //登陆失败,就重新登陆
        req.setAttribute("message","账号密码有误,登陆失败");
        req.getRequestDispatcher("/login.jsp").forward(req,resp);

    }

}

5.2采购员用户

/**
* 采购员
*/
@TableName("tb_purchaser")
public class Purchaser implements Serializable ,LoginUser{
    
    

    /**
     *主键
    */
    @TableId
    private String id;
    
        /**
     *用户名
    */
    private String username;
    
        /**
     *密码
    */
    private String password;
    
        /**
     *角色
    */
    private String role;
    
        /**
     *姓名
    */
    private String name;
    
        /**
     *电话
    */
    private String tele;
    
        /**
     *性别
    */
    private String gender;
    
    

    public String getId () {
    
    
        return id;
    }
    public void setId (String id ) {
    
    
        this.id = id;
    }
        public String getUsername () {
    
    
        return username;
    }
    public void setUsername (String username ) {
    
    
        this.username = username;
    }
        public String getPassword () {
    
    
        return password;
    }
    public void setPassword (String password ) {
    
    
        this.password = password;
    }
        public String getRole () {
    
    
        return role;
    }
    public void setRole (String role ) {
    
    
        this.role = role;
    }
        public String getName () {
    
    
        return name;
    }
    public void setName (String name ) {
    
    
        this.name = name;
    }
        public String getTele () {
    
    
        return tele;
    }
    public void setTele (String tele ) {
    
    
        this.tele = tele;
    }
        public String getGender () {
    
    
        return gender;
    }
    public void setGender (String gender ) {
    
    
        this.gender = gender;
    }
    



}

5.3管理员

/**
 * 查询管理员
 */
@WebServlet("/admin/list")
public class ListAdminServlet  extends HttpServlet {
    
    
    private SqlSession sqlSession;
    //查询数据mapper
    private AdminDao adminDao;
    //查询外键数据的mapper
                            @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
    
    
        sqlSession = JdbcUtils.getSession();
        req.setCharacterEncoding("utf-8");
        QueryWrapper<Admin> wrapper = new QueryWrapper<Admin>();

                            String username = req.getParameter("username");
            if(username !=null && !username.equals("")){
    
    
                                    wrapper.like("username",username);
                            }
                                                 String name = req.getParameter("name");
            if(name !=null && !name.equals("")){
    
    
                                    wrapper.like("name",name);
                            }
             
        adminDao = sqlSession.getMapper(AdminDao .class);
                        List<Admin> adminList = adminDao .selectList(wrapper);


                        
        //将数据放入request
                                                        //循环遍历list数据,统计、获取外键数据
        for(Admin stAv : adminList){
    
    
                                                        }


                                                        //session关闭
        sqlSession.close();
        req.setAttribute("adminList",adminList);
        req.getRequestDispatcher("/pages/admin-list.jsp").forward(req,resp);
    }

}

六、总结

经过几个月的再次学习和努力,在老师的指导下使我在Java技术方面的应用有了进一步的提高。作为一个在校的学生由于经验匮乏,难免在有些方面有考虑不太周全的地方如果没有老师的指导和同学的帮助设计的进展是不会有这么快的。老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!
在设计过程中我也等到了很多同学的帮助,遇到困难时跟他们相互交流、探讨问题的解决方法。这使得我从同学身上学到了很多东西,学到了他们对知识的探索精神和对解决问题的执着意志,同学之间相互鼓励共同学习进步。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
我即将离开大学走入社会,大学的快乐的学生生活就要结束。走入社会这所大学就要开始新的学习,不但学习专业知识还要学会社会上的为人处世学会生存技能。大学的学习和养成的习惯为以后自己发展奠定了基础,我要感谢在大学教育我的老师和帮助过我的同学。大学是教一个人生存的技能和不断学习进取的方法,是教一个人思考问题解决问题的方法,是教一个人养成思考问题的方法。

七、参考文献

[1].《Jsp和Servlet核心编程》 出版社:清华大学出版社 作者:(美)霍尔 (美)布朗 著 赵学良 译
[2].《深入Java Servlet编程》出版社:清华大学出版社 作者:陈海山
[3].《Jsp和Servlet程序设计使用专辑》出版社:机械工业出版社 作者:程曼华等译
[4].《Java Servlet程序开发权威指南》出版社:中国青年出版社 作者:陈兆阳
[5].《Jsp程序开发范例宝典》出版社:人民邮电出版社 作者:明日科技 著
[6].《精通Jsp—Web开发与典型应用》出版社:人民邮电出版社 作者:张新曼 著
[7].《Jsp应用开发详解》出版社:电子工业出版社 作者:周晓华 等著
[8].《Struts+Hibernate开发Web应用》出版社:人民邮电出版社 作者:吴明辉 著
[9].《精通J2EE——Eclipse、Struts、Hibernate及Spring整合应用案例 》
出版社:人民邮电出版社 作者:计雷,李里

Guess you like

Origin blog.csdn.net/xianyu120/article/details/122493826