ssm+mysql+ssm small logistics information system requires graduation design - with source code 071146

Design and Realization of Small Logistics Information System

Summary

The rapid development of scientific and technological progress has caused great changes in people's daily life, and the rapid development of electronic information technology has made the application level of electronic information technology in various fields popularized and applied. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In actual application, the working rules and development steps of the application software are used to build a small logistics information system using Java technology.

This design mainly realizes a small-scale logistics information system integrating the advantages of humanization, high efficiency, and convenience, and completes functional modules such as user management, warehouse management, cargo classification, cargo management, and outbound registration. The system communicates with the server through the browser to realize data interaction and change. The system improves work efficiency and reduces errors and omissions in data storage through scientific management methods and convenient services. The small logistics information system uses the Java language and is developed using the SSM framework based on the MVC model. It is written using the MyEclipse 2017 CI 10 compiler. In terms of data, it mainly uses Microsoft's MySQL relational database as the data storage medium, and cooperates with the front desk HTML+CSS technology to complete the development of the system.

Keywords: logistics information; Java language; relational database; SSM framework

Design and implementation of small logistics information system

Abstract

The rapid development of scientific and technological progress has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The advent of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, according to the working rules and development steps of the application software, Java technology is used to build a small logistics information system.

This design mainly realizes a small logistics information system with the advantages of humanization, high efficiency and convenience, and completes the functional modules such as user management, warehouse management, goods classification, goods management, ex warehouse registration and so on. The system communicates with the server through the browser to realize the interaction and change of data. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage. The small logistics information system uses Java language, adopts the SSM framework based on MVC mode for development, and is written with MyEclipse 2017 CI 10 compiler. In terms of data, it mainly uses Microsoft's MySQL relational database as the data storage medium, and completes the development of the system with the foreground HTML + CSS technology.

Key words:Logistics information; Java language; Relational database; SSM framework

Table of contents

Chapter 1 Introduction

1.1  Research background and significance

1.2  Development Status

1.3  Organizational structure of this paper

Chapter 2 Introduction to Related Technologies

2.1 SSM framework

2.2 Java technology

2.3 MYSQL database

2.4 B/S structure

2. 5  MyEclipse development tools

Chapter 3 System Analysis

3.1  Feasibility analysis

3.1.1  Technical Feasibility Analysis

3.1.2  Economic Feasibility Analysis

3.1.3  Operation Feasibility Analysis

3.2  Analysis of Functional Requirements

3.3  Analysis of non-functional requirements

3.4  Data flow analysis

Chapter 4 System Design

4.1  System architecture design

4.2  System function structure

4.3  Functional module design

4.4  Database design

4.4.1  Conceptual Model

4.4.2  Relational Model

4.4.3  Data Sheet

Chapter 5 System Implementation

5.1  Implementation of login module

5.2 Administrator Homepage Module 

5.3  User Management Module

5.4 Personal data management module

5.5 Warehouse Management Module

5.6 Cargo Management Module 

5.7 Outbound registration module 

Chapter 6 System Testing 2 7

6.1  Test purpose 2 7

6.2  Test process 2 7

6.3  Test results 2 8

Chapter 7 Summary and Outlook 2 9

References 3 0

Thanks 3 2

  1. introduction
    1. research background and meaning

In today's rapidly developing information society, the modern logistics industry has developed by leaps and bounds, along with the rapid growth of my country's national economy for many years, creating good conditions for the development of modern logistics. At present, the number of various types of logistics enterprises in my country is increasing, and it can be said that the modern logistics industry will have greater development.

This system is a set of small logistics information system developed according to the actual needs of small and medium-sized enterprises for these problems. The development of the system can help enterprises to realize optimal scheduling and dynamic control of the entire logistics process, efficiently integrate the logistics business of enterprises, and provide efficient, practical and technical small-scale logistics information systems and operating means for the purpose of comprehensively improving economic benefits and efficiency.

    1. development status

The concept of logistics in our country originated from Japan in the late 1970s and early 1980s. Since then, research has begun. Until the 1990s, my country's logistics research has made breakthroughs, mainly in logistics strategy, organization, green In terms of , lean logistics and reverse logistics, national leaders have also expressed their attention to this research, and since then opened a new situation in logistics in our country. Now my country's logistics has become a huge industrial chain, gradually moving towards specialization, scale, collectivization, diversification and internationalization. According to my country's 2014 survey and research, only 22.2% of logistics companies use third-party logistics companies, while the United States uses the third Three-party logistics companies accounted for 58%.

Foreign logistics has developed very strong now. According to statistics, in 2014, the two major express delivery companies in the United States, UPS and FedEx, obtained business licenses from the Chinese government. "Road Economy" has added connections, and at the same time, it has added a lot of overseas generation gaps, and it claims that it can be delivered within three days at the fastest, and it has also added many services, such as the evening parcel delivery service widely promoted by the Dutch Post, and Google is also Developing express delivery services, Amazon has also stepped into this highly competitive industry and has begun to widely promote its fresh food delivery services in New York and other regions; in short, although the domestic logistics industry is developing rapidly, compared with foreign logistics, it is still far behind. It is far from enough, but China's market is huge, and there are still great prospects for development.

    1. Organization of this article

The first chapter is the introduction, the beginning of this article, some textual descriptions of the research background and research significance of this topic.

The second chapter studies the development techniques and tools used in the small logistics information system.

The third chapter is the system analysis part, including the description of the overall requirements of the system, the analysis of system requirements from a functional point of view, and the non-functional analysis of whether the system can be realized.

The fourth chapter is the system design part, an important part of this article, which provides the detailed design of the system architecture and the design description of some main functional modules.

The fifth chapter is the specific realization of the system, introducing the specific realization of each module of the system.

The sixth chapter tests and runs the system on the basis of the previous chapters.

Finally, the system is seriously summarized, so as to have a new prospect for the future.

  1. Related technology introduction
    1.  SSM framework

Today's popular "SSM Combination Framework" is the abbreviation of Spring + SpringMVC + MyBatis, which has been sought after by many. Framework for web projects, usually simpler data sources. Spring belongs to a lightweight inversion of control framework (IoC), but it is also an surface-oriented container (AOP). SpringMVC is often used in the classification work mode of the controller, which is separated from the model object, and the role of the program object is processed with the ATM. This decoupling treatment makes it easier to personalize the entire system. MyBatis is a good sustainability framework that supports common SQL queries and allows data optimization for advanced mapping of stored procedures. Due to the high development cost of large-scale Java Web applications, it is difficult to maintain after development and some difficult problems to solve during the development process, and the "SSM Composition Framework" is adopted, which allows the establishment of business hierarchies and provides a good solution to this problem .

    1. JAVA technology

The JAVA language is currently the most widely used language development program in the software market. It can be used on a variety of platforms, has strong compatibility, adapts to most operating systems on the market, does not appear garbled characters, has better scalability and maintainability, and has the ability to analyze and solve problems. Process-oriented programming allows us to write more robust code.

Compared with other languages, JAVA is relatively simple, more convenient to compile, and has high security and reliability. According to incomplete statistics, there are more than 20 million people in the world using it. JAVA can be used both inlaid and independently. JAVA can be roughly divided into two parts, one part is the compilation that JAVA is responsible for, and the other is the operation that JAVA is responsible for. JAVA is very similar to C++ language, but JAVA is compiled in an object-oriented way when programming, so that the compiled software can be used on a stand-alone computer or on the Internet, and it is more convenient to check for errors. The distributed and architecture-neutral characteristics of JAVA also make its storage faster and programming easier. Object-oriented includes four characteristics, one is encapsulation, which means that certain functions and attributes can be realized when defining a class. The second is abstraction, which is a kind of class. It can encapsulate a class with common attributes in an abstraction, which is convenient for simple compilation. The third is inheritance, as the name implies, it has the characteristics of the former. Another feature is polymorphism, which can be used in multiple ways, which shows that it has good scalability.

    1. MYSQL database

The development of the website must be equipped with a corresponding database. The database has a certain organizational structure and can store and manage data information. In the past, the function of the database was only data storage and management operations, but with the changes and development of the times, the current database has evolved into data processing. In this way, the database has undergone many reforms from the initial simple storage of data table information to the current large database that can store thousands of data.

The database used in the management system developed this time is MYSQL database, which runs fast, has high security performance, and has no restrictions on the platform used, so it is widely used in the development of the system. MySQL is an open-source and multi-threaded relational management database system. MySQL is an open-source database with cross-platform features. Although the functions may not be powerful, many people understand the basic application of this database. In the database, a total of 10 Several tables, each of which is corresponding, each has its own connection, the database is of great significance, if there is no link to the database, there is no way to run the program, which obviously shows the importance of the database and the program, is closely connected.

    1. B/S structure

The B/S (browser/server) structure is the current mainstream network structure model. It can concentrate the core functions of the system on the server, and can help system developers simplify operations and facilitate maintenance and use. Users only need to install 360 browser, Google browser, QQ browser and other popular browsers on the client, and install databases such as sqlserver and mysql database in the computer. The installed browser interacts with the server-side database for information and data. Many things that special software can do can also be realized by using the B/S structure mode, which can combine technologies such as Web browser technology, ActiveX technology and various scripting languages. Help program developers save a lot of development costs. At present, the B/S structure has become the mainstream structure of program development. Its best feature is that it has no location restrictions and does not need to install special software. Laptops or computers can access the system with Internet access. The system uses B/S for development, which will save trouble in the later system maintenance. You don’t need to operate on the server for all problems. Simple client processing can solve some problems. The developed program will also enhance the interaction with users. The browser can be refreshed in real time to update the local data information of the program.

 

Figure 1-1 B/S mode three-layer structure diagram

    1. MyEclipseDevelopment Tools

MyEclipse is developed by Genuitec, a very powerful JavaEE integrated development environment, including: complete coding, debugging, testing and publishing functions [10], full support for JSP, Spring, CSS, JavaScript, SpringMVC, HTML, JSF, Mybatis, SQL and other technologies. In terms of architecture, the features of MyEclipse can be divided into seven categories: JavaEE model; Web development tools, EJB development tools, JavaEE project deployment services, connectors for application servers, database services, and MyEclipse integration help.

For each of the above functional categories, there are corresponding functional parts in MyEclipse, and they are realized through a series of plug-ins. The modular structure of MyEclipse allows it to independently expand and upgrade any one of the modules without affecting other modules. The powerful MyEclipse application development platform is not only an Eclipse plug-in, but also a powerful integrated development environment for JavaEE.

  1. system analysis
    1. Feasibility Analysis

This design is based on the B/S mode, using Java and JSP technologies using MySQL database and Myeclipse. The overall feasibility is divided into the following three aspects.

      1. Technical Feasibility Analysis

The so-called technical feasibility refers to whether the functions planned in the early stage can be satisfied within a limited time. Whether there will be problems that cannot be solved in the development and design. Whether the completed project can be well applied, if there are shortcomings, whether there is great difficulty in later maintenance. After evaluating the system, it was determined that existing technology could achieve the goals. Using JSP technology to realize dynamic pages, embedding low-dependency design patterns, flexible databases, and stable servers, the operating efficiency of the entire system is greatly improved. It can be seen that achieving the goal at the technical level is not a nonsense.

      1. Economic Feasibility Analysis

Most of the tools used in the project are currently popular open source and free, so in the early stage of development, the funds used for the project will be greatly reduced, and the development of the software will not be affected by the funds during the project start-up period, so It is still economically feasible. Try to use the least cost to meet the needs of users. Save funds for labor costs and equipment costs. It will go further and further on the road of paperless and high efficiency.

      1. Operational Feasibility Analysis

The operation of this system to realize the function is very simple. The common configuration of ordinary computers can run this software, and as long as you have a rough understanding of the basic common sense of computer use, you can use this software smoothly. The computer has the ability to connect to the Internet and can access the system normally. It does not require the operator to have any superb ability. It only needs to understand the business process and operate correctly according to professional knowledge. Therefore, the small logistics information system is feasible to operate.

    1. Functional Requirements Analysis

Before system development and design, you should make a preliminary idea of ​​the functions, know what sections the management system has, what functions each section has, whether the overall design meets the needs of users, and then conduct a detailed analysis and summary of the developed system functions , so as to design a complete system and implement it. Communication analysis of users and developers to achieve the best understanding and make the system function to the best.

The administrator use case diagram is shown below.

 

Figure 3-1 Administrator use case diagram

Admin module:

Maintain users, review the accounts of ordinary users, freeze the user's login authority, or delete the user account.

Publish goods, and can destroy a certain goods, update goods data, fuzzy search goods data, etc.

Warehouse management, and at the same time view the records of historical warehouses.

Maintain outbound registration data.

    1. Non-Functional Requirements Analysis

There are many non-functional requirements of the system, such as performance requirements, maximum number of users that can be carried, stability, and usability requirements. The analysis of this system takes into account the requirement of ease of use, because the system is used by people, so it is necessary to fully consider the user experience from the user's point of view, so that the system is easy to understand, easy to use and easy to operate.

    1. Data Flow Analysis

The first-level data flow chart includes modules such as login and registration, user functions, and retrieval maintenance. The data used in the login and registration module stores user account documents, and the storage required by the user function module is the data file of each functional module of the user. The above data files are retrieved by keywords.

The layer-by-layer data flow diagram of the system is shown in the figure below.

 

Figure 3-2 System data flow diagram (one layer)    

The second-tier data flow is the refinement of filling in login registration information and user functions in the first-tier data flow diagram. That is: fill in the login registration information and refine it into filling information and background review, and user functions are refined into operations such as user management, warehouse management, cargo classification, cargo management, and outbound registration.

The layer 2 data flow diagram of the system is shown in the figure below.

 

Figure 3-4 System data flow diagram (second floor)

  1. system design
    1. System architecture design

At present, the main data access method of the B/S system is: the user can enter the system through the browser page, and the system can automatically process the request sent by the user to the server. The processing request is carried out in the background of the system. Perform corresponding operations on the page, and you can see the processing results delivered by the server. The small logistics information system is mainly divided into view-model-control three-tier architecture design. In the view layer, it mainly operates the data fed back and displayed from the server to the client. In the model layer, it mainly deals with related business logic, data integration, etc., and the final control layer is between the view and the model. It is to adjust the relationship between the two layers and finally implement the data transmission.

The system architecture diagram is shown in the figure below.

 

Figure 4-1 System architecture diagram

    1. System function structure

The purpose of system design is to analyze all the functional structures included in the system, and make preparations for developers to design, develop and implement the system. After the preliminary demand investigation, analysis and sorting, the determined overall demand mainly includes multiple modules, namely: user management, warehouse management, cargo management, cargo classification, and outbound registration. The overall role of the system is divided into two parts, one is the visitor, and the other is the administrator. The authority distribution is also obvious, tourists can browse relevant information without any verification; administrators are the highest authority holders.

The functional structure diagram of the system is shown in the figure below.

 

Figure 4-2 System function structure diagram

    1. Functional module design

User Management Module

Administrators and super administrators have different permissions after logging in, and administrators cannot exceed permissions. The super administrator can manage the data of the entire system, mainly the user's login authority and the user's operation authority in the system after login.

Cargo Maintenance Module

The operator enters the cargo data, clicks the cargo input button, fills in the cargo data to be entered in turn, clicks the submit button, submits the data to the database, and then refreshes the cargo data page. There are delete and edit buttons on the right of each data to complete the corresponding delete and update functions.

warehouse module

The operator enters the warehouse data, clicks the warehouse entry button, fills in the warehouse data to be entered in turn, clicks the submit button, submits the data to the database, and then refreshes the warehouse data page. There are delete and edit buttons on the right of each data to complete the corresponding delete and update functions.

    1. Database Design
      1. conceptual model

For a system to be developed, ER diagrams allow others to understand the transactions of the system and the relationships between them faster and easier. According to the conclusions drawn in the system analysis stage, it is determined that there are multiple entities in the small logistics information system, which are administrators, warehouse management, cargo classification, cargo management, and warehouse registration.

The overall ER diagram of the system is shown in the figure below.

 

Figure 4-4 System overall ER diagram

      1. relational model

Admin ( admin id , username, password, permissions)

Warehouse management ( warehouse management id , warehouse number, warehouse name, warehouse location, remarks)

Outbound registration ( outbound registration id , outbound order number, cargo number, cargo name, cargo type, storage warehouse, outbound quantity, outbound date, order status, contact person, delivery address)

Goods management ( goods management id , goods number, goods name, goods contact, storage warehouse, inventory, remarks)

Cargo classification ( cargo classification id , cargo type)

      1. data sheet

The logical structure of the database is to describe the ER diagram in the database with specific fields. Use fields and data type descriptions to materialize object characteristics, and finally form a database table structure with certain logical relationships. Part of the data structure table required by the small logistics information system is shown in the table below.

warehouse_management表:

name

type

length

not null

primary key

note

warehouse_management_id

int

11

yes

yes

warehouse management ID

warehouse_no

varchar

64

yes

no

warehouse number

warehouse_name

varchar

64

no

no

warehouse name

warehouse_location

varchar

64

no

no

warehouse location

remark_information

varchar

64

no

no

Remarks

recommend

int

11

yes

no

Intelligent Recommendation

create_time

datetime

0

yes

no

creation time

update_time

timestamp

0

yes

no

update time

outbound_registration table:

name

type

length

not null

primary key

note

outbound_registration_id

int

11

yes

yes

Outbound Registration ID

delivery_order_no

varchar

64

yes

no

Number Delivery

goods_no

varchar

64

no

no

Item Number

name_of_goods

varchar

64

no

no

item name

type_of_goods

varchar

64

no

no

cargo type

storage_warehouse

varchar

64

no

no

storage warehouse

outbound_quantity

int

11

no

no

Out of stock

delivery_date

date

0

no

no

Exit date

order_status

varchar

64

no

no

Order Status

contacts

varchar

64

no

no

contact person

shipping_address

varchar

64

no

no

Shipping Address

recommend

int

11

yes

no

Intelligent Recommendation

create_time

datetime

0

yes

no

creation time

update_time

timestamp

0

yes

no

update time

cargo_management table:

name

type

length

not null

primary key

note

cargo_management_id

int

11

yes

yes

Cargo Management ID

goods_no

varchar

64

yes

no

Item Number

name_of_goods

varchar

64

no

no

item name

type_of_goods

varchar

64

no

no

cargo type

storage_warehouse

varchar

64

no

no

storage warehouse

stock

int

11

no

no

in stock

remarks

varchar

64

no

no

Remark

recommend

int

11

yes

no

Intelligent Recommendation

create_time

datetime

0

yes

no

creation time

update_time

timestamp

0

yes

no

update time

cargo_classification表:

name

type

length

not null

primary key

note

cargo_classification_id

int

11

yes

yes

Cargo Class ID

type_of_goods

varchar

64

yes

no

cargo type

recommend

int

11

yes

no

Intelligent Recommendation

create_time

datetime

0

yes

no

creation time

update_time

timestamp

0

yes

no

update time

  1. System implementation
    1. Implementation of the login module

The login window of the system is the user's entrance, and the user can enter and visit only after the login is successful. By submitting the form at login, the background process judges whether it is a legitimate user, jumps to the page, and enters the system.

Login legality judgment process: After the user enters the account number and password, the system first determines the legality of the input data, then sends a login request on the login.jsp page, and calls the dopost method of the mainctrl class under src to verify.

The IPO for the user login module looks like this:

Enter: username and password.

deal with:

1) Detect whether the account and password entered by the user are correct and exist in the database.

2) Extract records from the database and store them in the local session (timeout default=30min).

3) According to the user name, it will be displayed on the system home page.

Output: information about success.

The login flowchart is as follows.

 

Figure 5-1 Login flow chart

The system login interface is as follows.

 

Figure 5-2 System login interface    

The logic code for login is as follows.

/**

     * Log in

     * @param date

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        QueryWrapper wrapper = new QueryWrapper<User>();

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

    1. 管理员首页模块

系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。

如下图所示为系统的首页界面。

 

图5-3系统首页界面

    1. 用户管理模块

用户在yhzhgl查看用户信息,先使用sql语句查询出所有用户表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,在jsp页面中解析ArrayList对象,得到其各个键值对的值。

用户管理界面如下图所示。

 

图5-17用户管理界面

用户管理关键代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        Map<String,Object> paramMap = service.readBody(request.getReader());

        this.addMap(paramMap);

        return success(1);

}

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    1. 个人资料管理模块

用户点击登录填写账号信息登录后,会切换内容为“某某用户欢迎您”和历史订单,并给出注销链接。当用户登录成功后会将个人信息保存在session作用域中,点击自己的用户名时,会跳转到个人详细信息页面,由后台通过Freemarker取出session作用域中的用户信息进行动态渲染,例如,邮箱、电话号码、用户名等等。同时页面上会显示修改个人信息和修改密码的按钮,这时客户可以修改自己的登录密码以保障账号的安全性,防止被人窃取账号,通过UserController.java的updatePassword()实现,同时也可以根据自己的个人信息是否变动做出相应的修改,通过updateUserInfo()实现。

密码修改流程图如下所示。

 

图5-1密码修改流程图

    1. 仓库管理模块

添加仓库信息时,输入必填字段后,表现层的WupinController接受传过来的仓库信息参数,再调用WupinController类的addWupin方法,经过WupinService业务层到WupinMapper持久层的处理,完成对整个添加仓库信息的操作。addWupin方法也和用户管理中的addUser方法类似,同时做添加和修改工作。

修改仓库信息时,选择需要修改的仓库进行修改,调用WupinController控制器的editWupin方法,拿到该仓库原本的信息并显示到页面,管理员再对需要修改的仓库信息字段进行修改,完成后调用addWupin方法,调用业务层的updateByKey方法,更新数据库的仓库信息表的数据。

仓库管理流程图如下所示。

 

图5-1仓库管理流程图

仓库添加界面如下图所示。

 

图5-1仓库添加界面

仓库查询界面如下图所示。

 

图5-1仓库查询界面

仓库信息添加关键代码如下所示。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    1. 货物管理模块

删除货物时,选择需要删除的货物进行删除,把主键的uId传到JiashiyuanController控制器,再调用控制器的deleteJiashiyuan方法,数据经过JiashiyuanService业务层解析和处理,请求JiashiyuanMapper持久层调用deleteByPrimaryKey方法操作数据库将货物数据从数据库中删除。

查找货物时,输入需要查找的货物名,调用getData方法获取所有数据并且进行分页,把获取到的所有数据显示到视图上,这时候只需要用脚本方法便能快速查找,不涉及对数据库操作。

货物管理流程图如下所示。

 

图5-1货物管理流程图

货物添加界面如下图所示。

 

图5-1货物添加界面

货物查询界面如下图所示。

 

图5-1货物查询界面

货物信息添加关键代码如下所示。

public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

    1. 出库登记模块

管理员选择货物添加出库登记,用户在wupinxinxi_list查看货物,点击出库,跳转至rukuxinxi_add.jsp,添加从出库登记则将添加的出库登记数据封装在HashMap中,然后调用CommDAO的insert方法将出库登记内容插入入库记录表中。

出库登记管理流程图如下所示。

 

图5-1出库登记管理流程图

出库添加界面如下图所示。

 

图5-1出库添加界面

出库登记查询界面如下图所示。

 

图5-1出库登记查询界面

  1. 系统测试
    1. 测试目的

在对该系统进行完详细设计和编码之后,就要对小型物流信息系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。

    1. 测试过程

在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。

登录测试用例表如下所示。

表6-1登录测试用例

测试性能

用户或操作员登录系统

用例目的

测试用户或操作员登录系统时功能是否正常

前提条件

进入用户登录页面或操作员登录页面

输入条件

预期输出

实际情况

各项信息不予填写,直接点击登陆按钮

不允许登录,提示填写账号相关信息

一致

填写错误的登录名或密码后点击登录系统

提示用户名或密码错误,要求重新填写进行登录

一致

填写与验证码信息不一致的信息

系统显示出提示信息,表明验证码错误,要求重新填写

一致

出库登记测试用例表如下所示。

表6-2出库登记托运测试用例

测试性能

用户进行出库登记的操作

用例目的

测试用户进行出库登记操作时,该功能是否正常

前提条件

用户进入出库登记详情页,该出库登记能够被出库

输入条件

预期输出

实际情况

对着某出库点击“对登记”按钮

界面跳转至登记界面

一致

在出库登记界面,输入必填项,点击“提交”按钮

提示“出库成功”,并返回上一级界面

一致

在出库界面,填写出库表单的时候未输入完整,点击“提交”按钮

提示“出库失败”

一致

货物管理测试用例表如下所示。

表6-4货物管理测试用例

测试性能

货物相关信息管理功能

用例目的

测试系统操作者对货物相关信息进行管理的功能是否正常

前提条件

登录系统进入相关管理页面

输入条件

预期输出

实际情况

进入货物管理界面,点击“录入”按钮,填写所有必填项,点击提交

提示“录入成功”,并返回查询界面

一致

进入货物管理界面,点击“录入”按钮,未填写一个或者多个必填项,点击提交

提示“录入失败”,请填写必填项

一致

进入货物管理界面,选择要修改的一条数据,点击该条数据后面的“修改”按钮 

节目跳转至修改界面

一致

在修改界面,修改可修改项后,点击“提交”按钮

提示“修改成功”,并返回查询界面

一致

进入货物管理界面,点击某条数据后面的删除按钮

提示“是否要删除该数据”,如果用户点击“确定”按钮,则成功删除该条数据,并提示“删除成功”,之后返回查询界面

一致

    1. 测试结果

经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。

  1. 总结与展望

通过小型物流信息系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。

目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。

本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。

系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。

参考文献

[1]吴丽娜,郭俊一.“互联网+”思政视野下物流信息系统专业课程建设实践探索[J].物流工程与管理,2022,44(04):187-189.

[2]尹健康,谭方文,刘宁,张卫东,陈奕江,王柯轲,宋红文,江海,张建,杨帆,陶林,刘颖,唐艺楠,陈思佚,郑胜东,赵洪,羊正军,欧达宇,龚强,曾立胜. 基于组合预测法卷烟物流集散分拨中心信息系统[P]. 四川省:CN114266395A,2022-04-01.

[3]王静,刘振华,李奉瑾.军事物流信息系统标准体系研究[J].物流技术,2021,40(12):127-129.

[4]武富强.基于GIS技术的物流信息系统设计与开发[J].电声技术,2021,45(12):73-75.DOI:10.16311/j.audioe.2021.12.019.

[5]赵新宇. 九号仓物流信息系统升级方案研究[D].河北科技大学,2021.DOI:10.27107/d.cnki.ghbku.2021.000616.

[6]李钊,赵爽,林永民,殷志勇,赵广顺.钢铁企业销售物流管理一体化信息系统研究——以SG集团为例[J].中国金属通报,2021(11):128-129.

[7]徐慧卿.基于项目化+翻转的物流信息系统课堂教学设计与实践[J].现代信息科技,2021,5(21):195-198.DOI:10.19850/j.cnki.2096-4706.2021.21.051.

[8]姜欢.区块链技术在冷链物流信息系统建设中的应用[J].中国储运,2021(11):140-141.DOI:10.16301/j.cnki.cn12-1204/f.2021.11.074.

[9]Zhang Xiaohong. Third Party Logistics Information System based on Internet of Things Technology[J]. Journal of Physics: Conference Series,2021,2037(1).

[10]GB/T 39461-2020, 国际物流信息系统数据接口[S].

[11]Friska Heriyanti,Aulia Ishak. Design of logistics information system in the finished product warehouse with the waterfall method: review literature[J]. IOP Conference Series Materials Science and Engineering,2020,801(1).

[12], 成都铁路局 物流信息系统研发. 韩江平 主编,中国铁道年鉴,《中国铁道年鉴》编辑部,2017,383-384,年鉴.

[13]杨正升. 钢铁企业厂内车载物流信息系统及其应用[A]. 全国冶金自动化信息网、《冶金自动化》杂志社.全国冶金自动化信息网2017年会论文集[C].全国冶金自动化信息网、《冶金自动化》杂志社:《冶金自动化》杂志社,2017:5.

[14]CHO Gyu Sung. Improvements of Security System based on Port Logistics Information System[J]. JOURNAL OF FISHRIES AND MARINE SCIENCES EDUCATION,2017,29(4).

[15]李翔,叶欧,张鹏伟.基于云计算的印刷企业供应物流信息系统[J].包装工程,2016,37(21):211-216.DOI:10.19554/j.cnki.1001-3563.2016.21.038.

致谢

伴随着设计的完成,大学生涯也随之即将结束。大学期间是我最珍惜的时光,大学时光中学会了很多,也成长了很多,这段时光中每一段回忆都刻在脑海中。感谢一起学习,一起成长同学们,和成长过程悉心教导的老师们,非常感激有你们的陪伴。

首先感谢我的指导老师,设计的完成离不开老师的一系列指导。在毕业设计的完成过程中,老师给出了很多中肯的建议,正是由于老师一丝不苟的工作态度,我的设计才能顺利的完成。

最后,感谢在大学生涯中每一位教导我的老师,是你们教给了我丰富的知识,更教会了我遇到问题时,如何去应对并解决。谢谢你们的帮助与支持。

点赞+收藏+关注 → 私信领取本源代码、数据库
 

Guess you like

Origin blog.csdn.net/weixin_61498557/article/details/131560729