快递物流管理系统(SSM,JQUERY-EASYUI,MYSQL)(毕业论文27564字,共78页,程序代码,MySQL数据库)
【运行环境】 Eclipse, IDEA JDK1.7(JDK1.8) Tomcat7(Tomcat8)
【技术栈】 JAVA, JSP, SSM, JQUERY, JQUERY EASYUI, MYSQL, HTML, CSS, JAVASCRIPT,ECHART
链接:https://pan.baidu.com/s/1WJM-4HaGpWm345o0MVJnDA
提取码:8888
【项目包含内容】
【文档包含内容】
【项目功能介绍】
物流公司货运配送管理系统要求基于B/S架构,开发出一个对硬件要求相对较低,功能全面能实现物流管理人员日常工作,操作简单方便,易上手,使用流畅,可扩展性强的应用管理系统。主要实现用户注册、登录,角色管理,用户管理,配货管理,车辆管理,货物仓储管理,数据汇总统计功能。具体实现目标为:
⑴角色管理:系统通过角色管理对不同角色进行权限分配,实现不同角色的用户登录系统拥有不同的权限功能。系统分为超级管理员、订单管理员、车辆管理员。新注册用户登录系统没有任何操作权限,因为新注册用户没有被分配角色,这需要超级管理员给新用户分配相应角色使该用户拥有该角色的权限。同时超级管理员可进行新角色的创建,删除已有角色,修改角色功能。
⑵用户管理:拥有用户信息管理权限的用户登录后可创建新用户,修改用户信息(密码、联系方式、邮箱等),删除用户,为用户分配角色。但用户列表中不会有超级管理员信息,因为超级管理员信息在系统中不应出现不能被修改,防止误操作。
⑶配货管理:配货管理模块中分为发货管理、车源路线管理、订单管理子模块。发货管理,用户可进行订单的创建,系统自动生产15位的订单号(不可修改),用户填写下单人,下单人联系方式,下单人地址,下单日期,并添加此订单需要运送的货物,保存生成订单。同时可进行订单的修改,批量删除,按订单号查询操作。车源路线管理,用户可选择为还未分配运送车辆的订单分配运送车辆,指定行车路线。车辆处于维修状态的不出现在选择列表中,车辆载重小于货物总重量时通过消息提醒用户重新选择。订单确认,当运送完成时,用户可进行订单确认,确认该订单已完成。
⑷车辆管理:车辆管理模块中分为车辆类型管理、车辆信息管理、行车路线管理子模块。车辆类型管理,用户可创建新的车辆类型,修改车辆类型信息,删除某种车辆类型,当系统中存在车辆属于该类型,则无法删除同时提醒用户。车辆信息管理,用户对车辆信息进行创建、修改、删除操作。行车路线管理,用户可创建新的行车路线,修改路线信息,删除已有的行车路线。
⑸货物仓储管理:该模块主要实现库存分类管理、库存信息管理。库存分类管理,用户可创建新的货物类别,修改删除该货物类别或为该类别添加字类别,删除时库存中有属于该类别的商品则无法删除,系统给出提示消息。库存信息管理,用户可创建新的库存货物,为货物分配所属类型,修改库存信息,删除该货物,但删除是逻辑删除,不是物理删除,货物的状态栏显示该商品已被删除。同时提供分页以及按商品名称查询功能。
⑹数据汇总统计:该模块实现按月度、季度或年度统计各路线的盈利或运货量情况,用户可选择以柱状图或饼图的方式显示。用户可依据统计结构来调整路线及车辆以获得最大化收益。
部分代码:
ItemController.java
package com.am.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.am.pojo.TItem;
import com.am.service.ItemService;
import com.am.util.AMResult;
import com.am.util.CheckBoxVO;
import com.am.util.EasyUIResult;
@Controller
public class ItemController {
/**
* 用于处理Date类型参数处理
*
* @return
*/
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
@Autowired
private ItemService itemService;
@RequestMapping("/item/list")
@ResponseBody
public EasyUIResult getItemList(TItem tItem, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "30") Integer rows) {
// 查询商品列表
EasyUIResult result = itemService.getItemList(tItem, page, rows);
return result;
}
@RequestMapping("/item/additem")
@ResponseBody
public AMResult addItem(TItem tItem) {
return itemService.addItem(tItem);
}
@RequestMapping("/item/updateitem")
@ResponseBody
public AMResult updateItem(TItem tItem) {
return itemService.updateItem(tItem);
}
@RequestMapping("/item/deleteitem")
@ResponseBody
public AMResult deleteItem(Long id) {
return itemService.deleteItem(id);
}
@RequestMapping("/item/getitemcheckboxdata")
@ResponseBody
public List<CheckBoxVO> getItemCheckboxData(Long cid) {
List<TItem> list = itemService.getItemBycid(cid);
List<CheckBoxVO> result = new ArrayList<CheckBoxVO>();
if (list != null && list.size() > 0) {
for (TItem tItem : list) {
CheckBoxVO vo = new CheckBoxVO();
vo.setId(String.valueOf(tItem.getId()));
vo.setText(tItem.getTitle());
result.add(vo);
}
}
return result;
}
}
RoleController.java
package com.am.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.am.pojo.TRole;
import com.am.service.RoleService;
import com.am.util.AMResult;
import com.am.util.EasyUIResult;
import com.am.util.TreeNode;
@Controller
public class RoleController {
/**
* 用于处理Date类型参数处理
*
* @return
*/
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
@Autowired
private RoleService roleService;
@RequestMapping("/role/getroles")
@ResponseBody
public EasyUIResult getRoles(TRole tRole) {
return roleService.getRoles(tRole);
}
@RequestMapping("/role/addrole")
@ResponseBody
public AMResult addRole(TRole tRole, String functionIds) {
tRole.setRolecreate(new Date());
return roleService.addRole(tRole, functionIds);
}
@RequestMapping("/role/updaterole")
@ResponseBody
public AMResult updateRole(TRole tRole, String functionIds) {
return roleService.updateRole(tRole, functionIds);
}
@RequestMapping("/role/deleterole")
@ResponseBody
public AMResult deleteRole(Integer roleid) {
return roleService.deleteRole(roleid);
}
@RequestMapping(value = "/role/getFunctionIdsByRoleId")
@ResponseBody
public AMResult getFunctionIdsByUserId(Integer roleid) {
AMResult result = roleService.getFunctionIdsByUserId(roleid);
return result;
}
@RequestMapping(value = "/role/getFunctionTreeData", produces = "application/json; charset=utf-8")
@ResponseBody
public List<TreeNode> getFunctionTreeData() {
List<TreeNode> result = new ArrayList<TreeNode>();
result = roleService.getFunctionTreeData();
return result;
}
}
UserController.java
package com.am.controller;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.am.pojo.LoginVO;
import com.am.pojo.TUser;
import com.am.service.ImageService;
import com.am.service.UserService;
import com.am.util.AMResult;
import com.am.util.CheckBoxVO;
import com.am.util.EasyUIResult;
import com.am.util.StaticKey;
@Controller
public class UserController {
/**
* 用于处理Date类型参数处理
*
* @return
*/
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(
dateFormat, true));
}
@Autowired
private UserService userService;
@Autowired
private ImageService imageService;
@RequestMapping("/user/userlogin")
@ResponseBody
public AMResult login(LoginVO login, HttpServletRequest request) {
AMResult result = new AMResult();
try {
result = userService.login(login, request);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@RequestMapping("/user/register")
@ResponseBody
public AMResult register(TUser tUser) {
AMResult result = new AMResult();
try {
tUser.setCreatetime(new Date());
result = userService.register(tUser);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@RequestMapping(value = "/user/getimage")
public void getImage(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// 禁止图像缓存。
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
// 将图像输出到Servlet输出流中。
ServletOutputStream sos = response.getOutputStream();
ImageIO.write(imageService.getImage(request), "jpeg", sos);
sos.close();
}
@RequestMapping("/user/updatepd")
@ResponseBody
public AMResult register(String newuserloginpasswd,
HttpServletRequest request) {
AMResult result = new AMResult();
try {
TUser user = (TUser) request.getSession().getAttribute(
StaticKey.LOGIN_USER);
if (user == null) {
return AMResult.build(201, "session没有登录用户");
}
if (newuserloginpasswd == null || "".endsWith(newuserloginpasswd)) {
return AMResult.build(202, "新密码不能为空");
}
user.setUserloginpasswd(newuserloginpasswd);
result = userService.updatePd(user);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@RequestMapping("/user/getusers")
@ResponseBody
public EasyUIResult getUsers(TUser tUser) {
EasyUIResult result = userService.getUsers(tUser);
return result;
}
@RequestMapping("/user/adduser")
@ResponseBody
public AMResult addUser(TUser tUser) {
return userService.addUser(tUser);
}
@RequestMapping("/user/updateuser")
@ResponseBody
public AMResult updateUser(TUser tUser) {
return userService.updateUser(tUser);
}
@RequestMapping("/user/deleteuser")
@ResponseBody
public AMResult updateUser(Integer userid) {
return userService.deleteUser(userid);
}
@RequestMapping("/user/getUserCheckBoxData")
@ResponseBody
public List<CheckBoxVO> getUserCheckBoxData() {
List<CheckBoxVO> checkList = new ArrayList<CheckBoxVO>();
EasyUIResult result = userService.getUsers(null);
List<TUser> list = (List<TUser>) result.getRows();
if (list != null && list.size() > 0) {
for (TUser tUser : list) {
CheckBoxVO vo = new CheckBoxVO();
vo.setId(String.valueOf(tUser.getUserid()));
vo.setText(tUser.getUserloginid());
checkList.add(vo);
}
}
return checkList;
}
}