基于javaweb的SSM+Maven防盗门进销存管理系统(java+ssm+html+thymeleaf+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

000923531103

010923531103

020923531103

030923531103

040923531103

050923531103

基于javaweb的SSM+Maven防盗门进销存管理系统(java+ssm+html+thymeleaf+bootstrap+mysql)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
admin   	123456	系统管理员
warehouser 123456 库存管理员
purchaser 123456 采购员
saler 123456 销售员
auditor 123456 订单审核员

采购-入库流程:
1 采购员purchaser-采购
2 订单审核员auditor-审核
3 库存管理员warehouser-入库审核(此时【库存管理】出现库存量)

销售-出库流程:
1 销售员saler-销售
2 订单审核员auditor-审核
3 库存管理员warehouser-出库审核(此时【库存管理】出现销售量)

项目介绍

本项目分为系统管理员、库存管理员、采购员、销售员、订单审核员等角色。 各角色主要功能如下所示:

系统管理员 基础信息管理 商品 仓库 员工 角色 库存管理 库存管理 销售单审核(2出库) 采购单审核(2入库) 订单经理 销售单审核(1审核) 采购单审核(1审核) 采购管理 供应商管理 采购订单 销售管理 客户管理 销售订单 数据统计 采购统计 销售统计 账户管理 用户管理 修改密码

库存管理员

库存管理 库存查看 销售单审核(出库) 采购单审核(入库) 账户管理 修改密码

采购员

基础信息管理 商品(采购可以添加新的商品) 采购管理 供应商管理 采购订单 数据统计 采购统计 账户管理 修改密码

销售员

销售管理 客户管理 销售订单 数据统计 销售统计 账户管理 修改密码

订单审核员

订单审核 销售单审核 采购单审核 账户管理 修改密码

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是 6.数据库:MySql 5.7等版本均可;

技术栈 1. 后端:Spring+SpringMVC+Mybatis

  1. 前端:BootStrap+JavaScript+jQUery+Ajax+CSS+HTML

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat 3.打开jdbc.properties配置文件,修改数据库用户名和密码为自己本地数据库的用户名和密码 注:username与password需要在util/DESUtil中main方法中获取加密后的数据并填写 # 数据库用户名 jdbc.username=Ov4j7fKiCzY=DES加密,加密前为root  # 数据库密码 jdbc.password=Ov4j7fKiCzY=DES加密,加密前为root 4.打开浏览器,输入 localhost:8080/sdims 进入登录界面 5.输入用户名和密码访问系统 账号和密码: 超级管理员: admin 库存管理员: xiaoku 订单经理: xiaodan 采购员:xiaocai 销售员: xiaoxiao 密码均为:111111

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
			SaleOrder currentSaleOrder = saleOrderService.getSaleOrderById(sorderId);
if (currentSaleOrder.getStockState()==1) {
modelMap.put("success", false);
modelMap.put("errMsg", "此订单已经出库,不能撤销!");
return modelMap;
}
int effectNum = saleOrderCheckService.modifySaleOrderRevoke(saleOrder);
if (effectNum < 1) {
modelMap.put("success", false);
modelMap.put("errMsg", "撤销审核失败");
}else {
modelMap.put("success", true);
modelMap.put("successMsg", "撤销审核成功");
}
} catch (Exception e) {
// TODO: handle exception
modelMap.put("success", false);
modelMap.put("errMsg", e.getMessage());
return modelMap;
}
return modelMap;
}
/**
* 判断对于查询销售单时候的筛选条件
* @param orderNumber
* @param checkState
* @return
*/
private SaleOrder compactSaleOrderCheckCondition(String orderNumber,int checkState) {
SaleOrder saleOrderCondition = new SaleOrder();
// 若有指定订单号的要求则添加进去
if (orderNumber != null) {
saleOrderCondition.setOrderNumber(orderNumber);
}
// 若有指定订单经理审核通过
if (checkState != -1L) {
saleOrderCondition.setCheckState(checkState);
}
return saleOrderCondition;
}
}
package top.lothar.sdims.web.stock;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
	 */
@ResponseBody
@RequestMapping(value="/modifyrepository",method=RequestMethod.POST)
private Map<String, Object> modifyRepository(HttpServletRequest request){
Map<String, Object> modelMap = new HashMap<String,Object>();
//这里的数据要包含ID因为是根据ID进行更新
String repositoryStr = HttpServletRequestUtil.getString(request, "repositoryStr");
//JSON转化后的员工存储对象
Repository repository = null;
//存放json的对象
ObjectMapper objectMapper = new ObjectMapper();
//接受json形式的Employee信息
try {
//使用ObjectMapper类把请求中的json信息存放在Employee实体类中
repository = objectMapper.readValue(repositoryStr, Repository.class);
//设置更新的时间
repository.setUpdateTime(new Date());
} catch (Exception e) {
// TODO: handle exception
modelMap.put("success", false);
modelMap.put("errMsg", e.getMessage());
return modelMap;
}
try {
int effectNum = repositoryService.modifyRepository(repository);
if (effectNum < 1) {
modelMap.put("success", false);
modelMap.put("errMsg", "更新员工失败");
}else {
modelMap.put("success", true);
}
} catch (Exception e) {
// TODO: handle exception
modelMap.put("success", false);
modelMap.put("errMsg", e.getMessage());
return modelMap;
}
return modelMap;
}
}
package top.lothar.sdims.web.sale;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
* 采购订单管理页
* @return
*/
@RequestMapping(value="purchaseorder", method=RequestMethod.GET)
public String purchaseOrder() {
return "purchase/purchaseorder";
}
/*-------------------------------------------销售管理页----------------------------------------------*/
/**
* 销售商管理页
* @return
*/
@RequestMapping(value="salecustomer", method=RequestMethod.GET)
public String saleCustomer() {
return "sale/salecustomer";
}
/**
* 销售订单管理页
* @return
*/
@RequestMapping(value="saleorder", method=RequestMethod.GET)
public String saleOrder() {
return "sale/saleorder";
}
/*-------------------------------------------订单审核管理页----------------------------------------------*/
/**
* 采购单审核管理页
* @return
*/
@RequestMapping(value="purchaseordercheck", method=RequestMethod.GET)
public String purchaseOrderCheck() {
return "ordercheck/purchaseordercheck";
}
/**
* 销售单审核管理页
* @return
*/
@RequestMapping(value="saleordercheck", method=RequestMethod.GET)
public String saleOrderCheck() {
return "ordercheck/saleordercheck";
}
/*-------------------------------------------库存管理页----------------------------------------------*/
/**
* 仓库管理页(仓库管理员专用路由)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@RequestMapping(value="/addgoods",method=RequestMethod.POST)
private Map<String, Object> addGoods(HttpServletRequest request){
Map<String, Object> modelMap = new HashMap<String, Object>();
String goodsStr = HttpServletRequestUtil.getString(request, "goodsStr");
//JSON转化后的仓库存储对象
Goods goods= null;
//存放json的对象
ObjectMapper objectMapper = new ObjectMapper();
//接受json形式的Employee信息
try {
//使用ObjectMapper类把请求中的json信息存放在repository实体类中
goods = objectMapper.readValue(goodsStr, Goods.class);
} catch (Exception e) {
// TODO: handle exception
modelMap.put("success", false);
modelMap.put("errMsg", e.getMessage());
return modelMap;
}
try {
//非空判断
if (goods!=null) {
int effectNum = goodsService.addGoods(goods);
if (effectNum < 1) {
modelMap.put("success", false);
modelMap.put("errMsg", "插入失败");
}else {
modelMap.put("success", true);
}
}
} catch (Exception e) {
// TODO: handle exception
modelMap.put("success", false);
modelMap.put("errMsg", e.getMessage());
return modelMap;
}
return modelMap;
}
/**
* 根据前台传的ID移除对应商品
* @param request
* @return
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 * @param request
* @return
*/
@ResponseBody
@RequestMapping(value="/getgoodslist",method=RequestMethod.GET)
private Map<String, Object> getGoodsList(HttpServletRequest request){
Map<String, Object> modelMap = new HashMap<String, Object>();
// 获取页码
int pageIndex = HttpServletRequestUtil.getInt(request, "pageIndex");
// 获取每页展示的数据量
int pageSize = 5;
// 获取查询条件
String name = HttpServletRequestUtil.getString(request, "name");
String code = HttpServletRequestUtil.getString(request, "code");
String type = HttpServletRequestUtil.getString(request, "type");
String brand = HttpServletRequestUtil.getString(request, "brand");
String standard = HttpServletRequestUtil.getString(request, "standard");
String material = HttpServletRequestUtil.getString(request, "material");
Goods goodsCondition = new Goods();
goodsCondition.setName(name);
goodsCondition.setCode(code);
goodsCondition.setType(type);
goodsCondition.setBrand(brand);
goodsCondition.setStandard(standard);
goodsCondition.setMaterial(material);
// 非空判断
if (pageIndex > -1) {
TExecution<Goods> goodsExecution = goodsService.getGoodsList(goodsCondition, pageIndex, pageSize);
pageBean = new PageBean<Goods>();
// 总记录数
pageBean.setAllRowCounts(goodsExecution.getCount());
// 仓库列表
pageBean.setDatas(goodsExecution.getData());
// 每页记录数
pageBean.setPageSize(5);
// 当前页
pageBean.setCurPage(pageIndex);
int sumPages = PageBean.getSumPages(goodsExecution.getCount(), pageSize);
// 总页数
pageBean.setSumPages(sumPages);
// 定义数组(用于页码展示组件)
int[] tempNum = new int[sumPages];
for (int i = 0; i < sumPages; i++) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
		return modelMap;
}
}
package top.lothar.sdims.web.ordercheck;

/**
* 采购单审核
*
*/
@Controller
@RequestMapping("/ordercheck")
public class PurchaseOrderCheckController {

@Autowired
private PurchaseOrderService purchaseOrderService;

@Autowired
private PurchaseOrderCheckService purchaseOrderCheckService;

private PageBean<PurchaseOrder> pageBean;
/**
* 条件查询采购单列表
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value="/getpurchaseorderchecklist",method=RequestMethod.GET)


项目链接:
https://javayms.github.io?id=161023501103200zv
https://javayms.pages.dev?id=161023501103200zv