一、前言
如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于仓库信息管理方面的不规范,容错率低,管理人员处理数据费工费时,采用新开发的仓库管理系统可以从根源上规范整个数据处理流程的正规性和合法性。
仓库管理系统实现的功能包括仓库管理,出入库管理,物资管理,员工管理等功能。该系统采用了Mysql数据库,Java语言,SSM框架等技术进行编程实现。
仓库管理系统可以提高仓库信息管理问题的解决效率,优化仓库信息处理流程,并且能够保证存储数据的安全,它是一个非常可靠,非常安全的应用程序。
二、说明文档
推荐使用:谷歌浏览器
后台登录页面
http://localhost:8080/cangkuguanlixitong/admin/dist/index.html
管理员 账户:admin 密码:admin
员工 账户:a1 密码:123456
员工 账户:a2 密码:123456
员工 账户:a3 密码:123456
在src\main\resources\config.properties中编辑
jdbc_url=jdbc:mysql://127.0.0.1:3306/cangkuguanlixitong?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false
jdbc_username=root 数据库用户名 root
jdbc_password=123456 用户密码 123456
图片存放路径: src\main\webapp\upload 里面上传图片名里面不能有中文
三、系统功能设计
仓库管理系统根据使用权限的角度进行功能分析,并运用用例图来展示各个权限需要操作的功能。
图3.1即为管理员用例图,管理员权限操作的功能包括对员工信息,物资信息,仓库信息,出入库信息等信息的管理。
图3.2即为员工用例图,员工权限操作的功能包括管理物资,管理仓库,对物资进行入库操作或出库操作,查询物资出入库明细信息。
三、系统功能效果
四、核心代码
package com.thread;
/**
* 线程执行方法(做一些项目启动后 一直要执行的操作,比如根据时间自动更改订单状态,比如订单签收30天自动收货功能,比如根据时间来更改状态)
*/
public class MyThreadMethod extends Thread {
public void run() {
while (!this.isInterrupted()) {// 线程未中断执行循环
try {
Thread.sleep(5000); //每隔2000ms执行一次
} catch (InterruptedException e) {
e.printStackTrace();
}
// ------------------ 开始执行 ---------------------------
// System.out.println("线程执行中:" + System.currentTimeMillis());
}
}
}
package com.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.lang.reflect.InvocationTargetException;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.beanutils.BeanUtils;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType;
/**
* 仓库信息
*
* @author
* @email
*/
@TableName("cangku")
public class CangkuEntity<T> implements Serializable {
private static final long serialVersionUID = 1L;
public CangkuEntity() {
}
public CangkuEntity(T t) {
try {
BeanUtils.copyProperties(this, t);
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 主键
*/
@TableId(type = IdType.AUTO)
@TableField(value = "id")
private Integer id;
/**
* 仓库编号
*/
@TableField(value = "cangku_uuid_unmber")
private String cangkuUuidUnmber;
/**
* 仓库名称
*/
@TableField(value = "cangku_name")
private String cangkuName;
/**
* 仓库类型
*/
@TableField(value = "cangku_types")
private Integer cangkuTypes;
/**
* 所在区域
*/
@TableField(value = "cangku_address")
private String cangkuAddress;
/**
* 创建时间
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
/**
* 设置:主键
*/
public Integer getId() {
return id;
}
/**
* 获取:主键
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 设置:仓库编号
*/
public String getCangkuUuidUnmber() {
return cangkuUuidUnmber;
}
/**
* 获取:仓库编号
*/
public void setCangkuUuidUnmber(String cangkuUuidUnmber) {
this.cangkuUuidUnmber = cangkuUuidUnmber;
}
/**
* 设置:仓库名称
*/
public String getCangkuName() {
return cangkuName;
}
/**
* 获取:仓库名称
*/
public void setCangkuName(String cangkuName) {
this.cangkuName = cangkuName;
}
/**
* 设置:仓库类型
*/
public Integer getCangkuTypes() {
return cangkuTypes;
}
/**
* 获取:仓库类型
*/
public void setCangkuTypes(Integer cangkuTypes) {
this.cangkuTypes = cangkuTypes;
}
/**
* 设置:所在区域
*/
public String getCangkuAddress() {
return cangkuAddress;
}
/**
* 获取:所在区域
*/
public void setCangkuAddress(String cangkuAddress) {
this.cangkuAddress = cangkuAddress;
}
/**
* 设置:创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 获取:创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "Cangku{" +
"id=" + id +
", cangkuUuidUnmber=" + cangkuUuidUnmber +
", cangkuName=" + cangkuName +
", cangkuTypes=" + cangkuTypes +
", cangkuAddress=" + cangkuAddress +
", createTime=" + createTime +
"}";
}
}