基于javaweb+mysql的ssm+maven汽车维修管理系统(java+ssm+jsp+bootstrap+layui+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven汽车维修管理系统(java+ssm+jsp+bootstrap+layui+mysql)
项目介绍
源码描述:
一、源码介绍
汽车维修管理系统源码使用ssm框架,maven,bootsrap,mysql实现,带数据库。
二、主要功能
分为2个角色,管理员和顾客; 顾客登录后,操作我的车辆,预约订单,历史订单; 管理员登录后,操作订单管理,员工管理,机位管理,用户管理,零件管理。
环境需要
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/8.0等版本均可;
技术栈
- 后端:Spring springmvc mybatis 2. 前端:JSP+css+javascript+jQuery+bootstrap+layui
使用说明 1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置,然后运行; 4. 运行成功后,在浏览器中输入:http://localhost:8080/ 管理员账号密码:admin/admin 用户账号密码:user/123456
@ResponseBody
public Map<String, Object> uplpad(MultipartFile file, HttpServletRequest request) {
String desFilePath = "";
String oriName = "";
Map<String, Object> dataMap = new HashMap<>();
try {
// 1.获取原文件名
oriName = file.getOriginalFilename();
// 2.获取原文件图片后缀,以最后的.作为截取(.jpg)
String extName = oriName.substring(oriName.lastIndexOf("."));
// 3.生成自定义的新文件名,这里以UUID.jpg|png|xxx作为格式(可选操作,也可以不自定义新文件名)
String uuid = UUID.randomUUID().toString();
String newName = uuid + extName;
// 4.获取要保存的路径文件夹
String realPath = request.getRealPath("static/images/car");
// 5.保存图片
desFilePath = realPath + "\\" + newName;
File desFile = new File(desFilePath);
file.transferTo(desFile);
// 6.返回保存结果信息
dataMap.put("src","static/images/car/" + newName);
dataMap.put("code", 0);
dataMap.put("msg","上传成功!");
} catch (IllegalStateException e) {
dataMap.put("code", 1);
System.out.println(desFilePath + "图片保存失败");
} catch (IOException e) {
dataMap.put("code", 1);
System.out.println(desFilePath + "图片保存失败--IO异常");
}
return dataMap;
}
}
public class CommonInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws ServletException, Exception {
@Controller
@RequestMapping("/order")
public class OrderController extends BaseController {
private final Integer WARNING_COUNT=20;
@Resource
private CarService carService;
@Resource
private StationService stationService;
@Resource
private PartService partService;
@Resource
private OrderPartService orderPartService;
@Resource
private OrderWorkerService orderWorkerService;
@Resource
private WorkerService workerService;
@Resource
private OrderService orderService;
/** 页面跳转 预定页面 */
@RequestMapping("/toPreOrder")
public String toPreOrder(HttpServletRequest request, HttpSession session,
String carId) {
return "order/preOrder";
}
/** 订单预定 */
@RequestMapping("/preOrder")
@ResponseBody
public Integer preOrder(HttpServletRequest request, HttpSession session,
String imgurls, String arriveTime, String desc) {
// User user=(User)session.getAttribute("userOn");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date arrDate = null;
try {
String id = request.getParameter("id");
User user=new User();
if(StringUtil.isNotEmpty(id)){
user = userService.selectByPrimaryKey(Integer.parseInt(id));
}
model.addAttribute("user", user);
} catch (Exception e) {
e.printStackTrace();
}
return "user/user_edit";
}
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,User user){
int record=0;
//设置用户等级 默认为0
if(user.getuLevel()==null){
user.setuLevel(0);
}
if( user.getuId()==null){
/*设置id*/
record= userService.insertSelective(user);
}else{
record= userService.updateByPrimaryKeySelective(user);
}
return record;
}
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] sIds = ids.split(",");
for (String sId : sIds) {
userService.deleteByPrimaryKey(Integer.parseInt(sId));
}
return 1;
}else{
return 0;
}
}
}
}
/**添加机床*/
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,Part part){
int record=0;
//设置最后编辑时间
part.setLastbuydate(new Date());
//获取工作人员Id
if( StringUtil.isEmpty(part.getPartId())){
/*设置id*/
part.setPartId(StringUtil.getStringId());
record= partService.insertSelective(part);
}else{
record= partService.updateByPrimaryKeySelective(part);
}
return record;
}
/**删除机床*/
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] sIds = ids.split(",");
for (String sId : sIds) {
partService.deleteByPrimaryKey(sId);
}
return 1;
}else{
return 0;
}
}
}
station.setsState("完好在使用");
stationService.updateByPrimaryKeySelective(station);
for(int i=0;i<parts.size();i++){
JSONObject jo = parts.getJSONObject(i);
String pId = jo.get("id").toString();
int num = Integer.parseInt(jo.get("num").toString());
orderPartService.insert(new OrderPart(orderId, pId,num));
Part part = partService.selectByPrimaryKey(pId);
part.setPartNum(part.getPartNum()-num);
partService.updateByPrimaryKeySelective(part);
}
for(String id :workers){
orderWorkerService.insert(new OrderWorker(orderId,id));
Worker worker = workerService.selectByPrimaryKey(id);
worker.setwState(0);//忙碌
workerService.updateByPrimaryKeySelective(worker);
}
} catch (Exception e) {
success="0";
}
return success;
}
/** 修改订单*/
@RequestMapping("/edit")
public String edit(HttpServletRequest request,String orderId){
Map<String, Object> paramMap=new HashMap<String, Object>();
paramMap.put("orderId", orderId);
//通过id查出只能是一条数据
List<Map<String, Object>> order = orderService.selectOrderByAttr(paramMap);
String[] imgurls = order.get(0).get("imgUrls").toString().split(",");
//查询机床
SStation station = stationService.selectByPrimaryKey(Integer.parseInt(order.get(0).get("s_id").toString()));
//查询工人 0在忙 1 空闲
List<Map<String, Object>> selWorkers = orderWorkerService.selectByOrderId(order.get(0).get("o_id").toString());
//查询所有零件
List<Map<String, Object>> selParts = orderPartService.selectByOrderId(order.get(0).get("o_id").toString());
//查询所有待使用的机床
List<SStation> stations=stationService.selectAll(new HashMap<String, Object>(){{put("s_state", "完好待使用");}});
//查询所有空闲的工人 state=1空闲 2在忙 0离职
List<Worker> workers = workerService.selectWorkersByAttr(new Worker(){{setwState(1);}});
//查询所有可使用零件
List<Part> parts = partService.selectAll();
request.setAttribute("imgurls",imgurls);
}
/**编辑员工信息 */
@RequestMapping("/edit")
public String addWork(HttpServletRequest request,Model model){
try {
String id = request.getParameter("id");
Worker worker = null;
if(StringUtil.isEmpty(id)){
worker = new Worker();
}else{
worker = workerService.selectByPrimaryKey(id);
}
model.addAttribute("worker", worker);
} catch (Exception e) {
e.printStackTrace();
}
return "worker/worker_edit";
}
/**添加员工*/
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,Worker worker){
int record;
//获取工作人员Id
if(StringUtil.isEmpty(worker.getwId())){
worker.setwId(StringUtil.getStringId());
record= workerService.insertSelective(worker);
}else{
record= workerService.updateByPrimaryKeySelective(worker);
}
return record;
}
/**删除员工*/
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] wIds = ids.split(",");
for (String wId : wIds) {
workerService.deleteByPrimaryKey(wId);
}
return 1;
}else{
return 0;
worker = new Worker();
}else{
worker = workerService.selectByPrimaryKey(id);
}
model.addAttribute("worker", worker);
} catch (Exception e) {
e.printStackTrace();
}
return "worker/worker_edit";
}
/**添加员工*/
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,Worker worker){
int record;
//获取工作人员Id
if(StringUtil.isEmpty(worker.getwId())){
worker.setwId(StringUtil.getStringId());
record= workerService.insertSelective(worker);
}else{
record= workerService.updateByPrimaryKeySelective(worker);
}
return record;
}
/**删除员工*/
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] wIds = ids.split(",");
for (String wId : wIds) {
workerService.deleteByPrimaryKey(wId);
}
return 1;
}else{
return 0;
}
}
@RequestMapping("/getWorkData")
@ResponseBody
public List<Map<String,Object>> getWorkData(HttpServletRequest request,String month){
Map<String,Object> param =new HashMap<String, Object>();
if (StringUtil.isEmpty(month)) {
month=DateUtils.getYearMonths(1).get(0);
}
paramMap.put("userId", userOn.getuId());
paramMap.put("carName", carName);
List<Car> cars = carService.selectAllByUser(paramMap);
return TableData.getJson2Table(cars, offset, limit);
}
/**编辑零件信息 */
@RequestMapping("/edit")
public String editWork(HttpServletRequest request,Model model){
try {
String id = request.getParameter("id");
Car car = new Car();
if(StringUtil.isNotEmpty(id)){
car = carService.selectByPrimaryKey(id);
}
model.addAttribute("car", car);
} catch (Exception e) {
e.printStackTrace();
}
return "car/car_edit";
}
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,Car car){
int record=0;
User user=(User)request.getSession().getAttribute("userOn");
if( StringUtil.isEmpty(car.getCarId())){
/*设置关联用户id*/
car.setUserId(user.getuId());
car.setCarId(StringUtil.getStringId());
record= carService.insertSelective(car);
}else{
record= carService.updateByPrimaryKeySelective(car);
}
return record;
}
/**删除机床*/
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] sIds = ids.split(",");
for (String sId : sIds) {
carService.deleteByPrimaryKey(sId);
}
return 1;
}else{
return 0;
}
}
@RequestMapping("/selectCar")
@ResponseBody
public Integer selectCar(HttpServletRequest request,HttpSession session,String carId){
@RequestMapping("/getWorkData")
@ResponseBody
public List<Map<String,Object>> getWorkData(HttpServletRequest request,String month){
Map<String,Object> param =new HashMap<String, Object>();
if (StringUtil.isEmpty(month)) {
month=DateUtils.getYearMonths(1).get(0);
}
param.put("date", month);
List<Map<String,Object>> selectWork = workerService.selectWork(param);
request.setAttribute("selMonth", month);
return selectWork;
}
}
@Controller
@RequestMapping("/station")
public class StationController extends BaseController {
@Resource
private StationService stationService;
/**页面跳转*/
@RequestMapping("/list")
public String workList(HttpServletRequest request,HttpSession session,Worker worker){
return "station/station_list";
}
/**数据获取*/
@RequestMapping("/getData")
@ResponseBody
public String getData(HttpServletResponse response,HttpServletRequest request){
Integer offset = Integer.parseInt(request.getParameter("offset"));//开始条数
* @return
*/
@RequestMapping("/toPage")
public String toPage(){
return "user/signUp";
}
/**
* 用户注册 uLevel默认为0 用户模式
* @param user
* @return 提示信息
*/
@RequestMapping("/signUp")
@ResponseBody
public int signUp(User user){
int signUp =0;
if(user!=null){
signUp= userService.insertSelective(user);
}
return signUp>0?0:1;
}
/**
* 验证登陆 成功跳转至管理页面 失败返回登录
* @param user
* @param session
* @return
*/
@RequestMapping("/login")
public String login(User user,HttpSession session,Model model){
String uri="";
List<User> checkUserLogin = userService.checkUserLogin(user);
if (checkUserLogin!=null && checkUserLogin.size()>0) {
User user2 = checkUserLogin.get(0);
session.setAttribute("userOn",user2 );
session.setAttribute("msg", null);
uri="index";
}else{
session.setAttribute("msg", "用户名或者密码错误");
uri="redirect:/";
}
return uri;
}
@RequestMapping("/out")
public String out(HttpSession session){
session.invalidate();
return "redirect:/";
}
}else{
return 0;
}
}
@RequestMapping("/getWorkData")
@ResponseBody
public List<Map<String,Object>> getWorkData(HttpServletRequest request,String month){
Map<String,Object> param =new HashMap<String, Object>();
if (StringUtil.isEmpty(month)) {
month=DateUtils.getYearMonths(1).get(0);
}
param.put("date", month);
List<Map<String,Object>> selectWork = workerService.selectWork(param);
request.setAttribute("selMonth", month);
return selectWork;
}
}
@Controller
Worker worker = workerService.selectByPrimaryKey(wId);
worker.setwState(1);//1空闲
workerService.updateByPrimaryKeySelective(worker);
}
} catch (Exception e) {
msg="0";
}
return msg;
}
/** 订单*/
@RequestMapping("/home")
public String homePage(HttpServletRequest request,HttpSession sessions){
List<Map<String, Object>> list= orderService.selectOrderByAttr(new HashMap<String, Object>(){{put("state", 0);}});
request.setAttribute("count", list.size());
List<String> yearMonths = DateUtils.getYearMonths(6);//获取半年日期
request.setAttribute("yearMonths", yearMonths);
List<Part> parts = partService.selectAll();
for (int i = 0; i < parts.size(); i++) {
if(parts.get(i).getPartNum()>parts.get(i).getWarning()){
parts.remove(i);
}
}
request.setAttribute("parts", parts);
return "home";
}
/** */
@RequestMapping("/reject")
@ResponseBody
public String rejectOrder(HttpServletRequest request,String orderId,String remark) {
String success="1";
//获取订单id 机床id 员工id集合 零件id num集合
//修改订单状态 修改机床状态 更新order-worker order-part表
try {
Order order = orderService.selectByPrimaryKey(orderId);
order.setoState("2");//3拒绝
order.setRemark(remark);
order.setEndtime(new Date());
orderService.updateByPrimaryKeySelective(order);//更新order
Car car = carService.selectByPrimaryKey(order.getCarId());
car.setCarState(0);
carService.updateByPrimaryKeySelective(car);
}
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
@Resource
private UserService userService;
@RequestMapping("/list")
public String login(HttpServletRequest request,HttpSession session,User user){
return "user/user_list";
}
/**
* 跳转至注册页面
* @return
*/
@RequestMapping("/toPage")
public String toPage(){
return "user/signUp";
}
/**
* 用户注册 uLevel默认为0 用户模式
* @param user
* @return 提示信息
*/
@RequestMapping("/signUp")
if (orderMap.get("s_id")==null) {
request.setAttribute("station",null);
request.setAttribute("selWorkers",null);
request.setAttribute("selParts",null);
}else{
//查询机床
SStation station = stationService.selectByPrimaryKey(Integer.parseInt(orderMap.get("s_id").toString()));
//查询工人 0在忙 1 空闲
List<Map<String, Object>> workers = orderWorkerService.selectByOrderId(orderMap.get("o_id").toString());
//查询所有零件
List<Map<String, Object>> parts = orderPartService.selectByOrderId(orderMap.get("o_id").toString());
request.setAttribute("station",station);
request.setAttribute("selWorkers",workers);
request.setAttribute("selParts",parts);
}
request.setAttribute("imgurls",imgurls);
request.setAttribute("dealOrder",order.get(0));
request.setAttribute("readonly", 1);//只读
return "order/orderDetail";
}
/** 订单*/
@RequestMapping("/userOrder")
public String userOrder(HttpServletRequest request,HttpSession sessions){
User user= (User)sessions.getAttribute("userOn");
Map<String,Object> paramMap=new HashMap<String, Object>();
paramMap.put("userId", user.getuId());
List<Map<String, Object>> orders = orderService.selectOrderByAttr(paramMap);//返回用户的多个订单
request.setAttribute("orders", orders);
return "order/userOrder";
}
@RequestMapping("/done")
@ResponseBody
public String doneOrder(HttpServletResponse response,HttpServletRequest request,String orderId) {
String msg="1";
//更新 1订单状态 2更新机床 3更新员工状态 4更新车辆状态
List<Map<String,Object>> ws = orderWorkerService.selectByOrderId(orderId);
Order order = orderService.selectByPrimaryKey(orderId);
try {
//1
order.setEndtime(new Date());
order.setoState("2");//2完成
orderService.updateByPrimaryKeySelective(order);
//2
SStation station = stationService.selectByPrimaryKey(order.getStationId());
station.setsState("完好待使用");
stationService.updateByPrimaryKeySelective(station);
//4
Car car = carService.selectByPrimaryKey(order.getCarId());
car.setCarState(0);
carService.updateByPrimaryKeySelective(car);
//3
for (Map<String, Object> map : ws) {
String wId= (String)map.get("w_id");
@Controller
@RequestMapping("/car")
public class CarController extends BaseController {
@Resource
private CarService carService;
/**页面跳转*/
@RequestMapping("/list")
public String workList(HttpServletRequest request,HttpSession session){
String tag = request.getParameter("tag");
request.setAttribute("tag", tag);
return "car/car_list";
}
/**数据获取*/
@RequestMapping("/getData")
@ResponseBody
public String getData(HttpServletResponse response,HttpServletRequest request,String carName){
Integer offset = Integer.parseInt(request.getParameter("offset"));//开始条数
Integer limit = Integer.parseInt(request.getParameter("limit"));//每页条数
Map<String, Object> paramMap=new HashMap<String, Object>();
String tag = request.getParameter("tag");
User userOn=(User)request.getSession().getAttribute("userOn");
if(!StringUtil.isEmpty(tag)){
paramMap.put("tag", tag);//tag 标注是否查出在维修车辆 tag=1 不查出
}
paramMap.put("userId", userOn.getuId());
paramMap.put("carName", carName);
List<Car> cars = carService.selectAllByUser(paramMap);
return TableData.getJson2Table(cars, offset, limit);
}
/**编辑零件信息 */
@RequestMapping("/edit")
public String editWork(HttpServletRequest request,Model model){
try {
String id = request.getParameter("id");
Car car = new Car();
if(StringUtil.isNotEmpty(id)){
car = carService.selectByPrimaryKey(id);
}
model.addAttribute("car", car);
} catch (Exception e) {
e.printStackTrace();
}
return "car/car_edit";
}
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,Car car){
int record=0;
User user=(User)request.getSession().getAttribute("userOn");
if( StringUtil.isEmpty(car.getCarId())){
/*设置关联用户id*/
car.setUserId(user.getuId());
return "order/userOrder";
}
@RequestMapping("/done")
@ResponseBody
public String doneOrder(HttpServletResponse response,HttpServletRequest request,String orderId) {
String msg="1";
//更新 1订单状态 2更新机床 3更新员工状态 4更新车辆状态
List<Map<String,Object>> ws = orderWorkerService.selectByOrderId(orderId);
Order order = orderService.selectByPrimaryKey(orderId);
try {
//1
order.setEndtime(new Date());
order.setoState("2");//2完成
orderService.updateByPrimaryKeySelective(order);
//2
SStation station = stationService.selectByPrimaryKey(order.getStationId());
station.setsState("完好待使用");
stationService.updateByPrimaryKeySelective(station);
//4
Car car = carService.selectByPrimaryKey(order.getCarId());
car.setCarState(0);
carService.updateByPrimaryKeySelective(car);
//3
for (Map<String, Object> map : ws) {
String wId= (String)map.get("w_id");
Worker worker = workerService.selectByPrimaryKey(wId);
worker.setwState(1);//1空闲
workerService.updateByPrimaryKeySelective(worker);
}
} catch (Exception e) {
msg="0";
}
return msg;
}
/** 订单*/
@RequestMapping("/home")
public String homePage(HttpServletRequest request,HttpSession sessions){
List<Map<String, Object>> list= orderService.selectOrderByAttr(new HashMap<String, Object>(){{put("state", 0);}});
request.setAttribute("count", list.size());
List<String> yearMonths = DateUtils.getYearMonths(6);//获取半年日期
request.setAttribute("yearMonths", yearMonths);
List<Part> parts = partService.selectAll();
for (int i = 0; i < parts.size(); i++) {
if(parts.get(i).getPartNum()>parts.get(i).getWarning()){
parts.remove(i);
}
}
request.setAttribute("parts", parts);
return "home";
}
}
/**编辑机床信息 */
@RequestMapping("/edit")
public String editWork(HttpServletRequest request,Model model){
try {
String id = request.getParameter("id");
SStation station = new SStation();
if(StringUtil.isNotEmpty(id)){
station = stationService.selectByPrimaryKey(Integer.parseInt(id));
}
model.addAttribute("station", station);
} catch (Exception e) {
e.printStackTrace();
}
return "station/station_edit";
}
/**添加机床*/
@RequestMapping("/add")
@ResponseBody
public Integer addWorker(HttpServletRequest request,SStation station){
int record=0;
station.setBegintime(new Date());
//获取工作人员Id
if(station.getsId()==null){
record= stationService.insertSelective(station);
}else{
record= stationService.updateByPrimaryKeySelective(station);
}
return record;
}
/**删除机床*/
@RequestMapping("/delById")
@ResponseBody
public Integer deleteWorker(HttpServletRequest request){
String ids = request.getParameter("id");
if(StringUtil.isNotEmpty(ids)){
String[] sIds = ids.split(",");
for (String sId : sIds) {
stationService.deleteByPrimaryKey(Integer.parseInt(sId));
}