博主介紹:??
大家好,我是一名在Java圈混跡十余年的程序員,精通Java編程語言,同時也熟練掌握微信小程序、Python和Android等技術(shù),能夠為大家提供全方位的技術(shù)支持和交流。
我擅長在JavaWeb、SSH、SSM、SpringBoot等框架下進行項目開發(fā),具有豐富的項目經(jīng)驗和開發(fā)技能。我的代碼風(fēng)格規(guī)范、優(yōu)美、易讀性強,同時也注重性能優(yōu)化、代碼重構(gòu)等方面的實踐和經(jīng)驗總結(jié)。
我有豐富的成品Java畢設(shè)項目經(jīng)驗,能夠為學(xué)生提供各類個性化的開題框架和實際運作方案。同時我也提供相關(guān)的學(xué)習(xí)資料、程序開發(fā)、技術(shù)解答、代碼講解、文檔報告等專業(yè)服務(wù)。??技術(shù)交流和部署相關(guān)看文章末尾!??
?????精彩專欄推薦訂閱?????不然下次找不到喲
Java項目精品實戰(zhàn)案例(300套)
4S店車輛管理系統(tǒng)源碼下載地址:
https://download.csdn.net/download/weixin_54828627/87790334
一、效果演示
基于springboot+vue的4S店車輛管理系統(tǒng)演示視頻
二、前言介紹
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,人類已進入全新信息化時代,傳統(tǒng)管理技術(shù)已無法高效,便捷地管理信息。為了迎合時代需求,優(yōu)化管理效率,各種各樣的管理系統(tǒng)應(yīng)運而生,各行各業(yè)相繼進入信息管理時代,4S店車輛系統(tǒng)就是信息時代變革中的產(chǎn)物之一。
任何系統(tǒng)都要遵循系統(tǒng)設(shè)計的基本流程,本系統(tǒng)也不例外,同樣需要經(jīng)過市場調(diào)研,需求分析,概要設(shè)計,詳細設(shè)計,編碼,測試這些步驟,基于java語言設(shè)計并實現(xiàn)了4S店車輛系統(tǒng)。該系統(tǒng)基于B/S即所謂瀏覽器/服務(wù)器模式,應(yīng)用java技術(shù),選擇MySQL作為后臺數(shù)據(jù)庫。系統(tǒng)主要包括首頁、個人中心、銷售員管理、維修員管理、客戶管理、供應(yīng)商信息管理、保險公司管理、車輛信息管理、物資信息管理、車輛銷售管理、車輛維修管理、營業(yè)統(tǒng)計管理、銷售統(tǒng)計管理等功能模塊。
三、主要技術(shù)
技術(shù)名 | 作用 |
---|---|
SpringBoot | 后端框架 |
Vue | 前端框架 |
MySQL | 數(shù)據(jù)庫 |
四、系統(tǒng)設(shè)計(部分)
4.1、主要功能模塊設(shè)計?????????
4.2、系統(tǒng)登錄流程設(shè)計?
五、功能截圖
系統(tǒng)登錄,用戶通過填寫注冊時輸入的用戶名、密碼、選擇角色等信息進行登錄操作,如圖5-1所示。
圖5-1系統(tǒng)登錄界面圖
5.1、管理員功能模塊
管理員登錄進入4S店車輛系統(tǒng)可以查看首頁、個人中心、銷售員管理、維修員管理、客戶管理、供應(yīng)商信息管理、保險公司管理、車輛信息管理、物資信息管理、車輛銷售管理、車輛維修管理、營業(yè)統(tǒng)計管理、銷售統(tǒng)計管理等功能進行詳細操作,如圖5-2所示。
圖5-2管理員功能界面圖
銷售員管理
圖5-3銷售員管理界面圖
維修員管理
圖5-4維修員管理界面圖
客戶管理
圖5-5客戶管理界面圖
供應(yīng)商信息管理
圖5-6供應(yīng)商信息管理界面圖
保險公司管理
圖5-7保險公司管理界面圖
車輛信息管理
圖5-8車輛信息管理界面圖
物資信息管理
圖5-9物資信息管理界面圖
車輛銷售管理
圖5-10車輛銷售管理界面圖
車輛維修管理
圖5-11車輛維修管理界面圖
營業(yè)統(tǒng)計管理
圖5-12營業(yè)統(tǒng)計管理界面圖
銷售統(tǒng)計管理
圖5-13銷售統(tǒng)計管理界面圖
5.2、銷售員功能模塊
銷售員登錄進入4S店車輛系統(tǒng)可以查看首頁、個人中心、客戶管理、供應(yīng)商信息管理、保險公司管理、車輛信息管理、車輛銷售管理等功能,并進行詳細操作,如圖5-14所示。
圖5-14銷售員功能界面圖
個人中心
圖5-15個人中心界面圖
客戶管理
圖5-16客戶管理界面圖
車輛信息管理
圖5-17車輛信息管理界面圖
車輛銷售管理
圖5-18車輛銷售管理界面圖
5.3、維修員功能模塊
維修員登錄進入4S店車輛系統(tǒng)可以查看首頁、個人中心、客戶管理、供應(yīng)商信息管理、保險公司管理、物資信息管理、車輛維修管理等功能,并進行詳細操作,如圖5-19所示。
圖5-19維修員功能界面圖
個人中心
圖5-20個人中心界面圖
物資信息管理
圖5-21物資信息管理界面圖
保險公司管理
圖5-22保險公司管理界面圖
六、數(shù)據(jù)庫設(shè)計(部分)
數(shù)據(jù)可設(shè)計要遵循職責(zé)分離原則,即在設(shè)計時應(yīng)該要考慮系統(tǒng)獨立性,即每個系統(tǒng)之間互不干預(yù)不能混亂數(shù)據(jù)表和系統(tǒng)關(guān)系。
數(shù)據(jù)庫命名也要遵循一定規(guī)范,否則容易混淆,數(shù)據(jù)庫字段名要盡量做到與表名類似,多使用小寫英文字母和下劃線來命名并盡量使用簡單單詞。
物資信息E-R圖,如圖6-1所示:
?
圖6-1物資信息E-R圖
維修員E-R圖,如圖6-2所示:
圖6-2維修員E-R圖
客戶E-R圖如圖6-3所示。
圖6-3客戶E-R圖
七、代碼參考
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.GongyingshangxinxiEntity;
import com.entity.view.GongyingshangxinxiView;
import com.service.GongyingshangxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
* 供應(yīng)商信息
* 后端接口
* @author
* @email
* @date 2022-05-06 18:06:12
*/
@RestController
@RequestMapping("/gongyingshangxinxi")
public class GongyingshangxinxiController {
@Autowired
private GongyingshangxinxiService gongyingshangxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,GongyingshangxinxiEntity gongyingshangxinxi,
HttpServletRequest request){
EntityWrapper<GongyingshangxinxiEntity> ew = new EntityWrapper<GongyingshangxinxiEntity>();
PageUtils page = gongyingshangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongyingshangxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,GongyingshangxinxiEntity gongyingshangxinxi,
HttpServletRequest request){
EntityWrapper<GongyingshangxinxiEntity> ew = new EntityWrapper<GongyingshangxinxiEntity>();
PageUtils page = gongyingshangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongyingshangxinxi), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( GongyingshangxinxiEntity gongyingshangxinxi){
EntityWrapper<GongyingshangxinxiEntity> ew = new EntityWrapper<GongyingshangxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( gongyingshangxinxi, "gongyingshangxinxi"));
return R.ok().put("data", gongyingshangxinxiService.selectListView(ew));
}
/**
* 查詢
*/
@RequestMapping("/query")
public R query(GongyingshangxinxiEntity gongyingshangxinxi){
EntityWrapper< GongyingshangxinxiEntity> ew = new EntityWrapper< GongyingshangxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( gongyingshangxinxi, "gongyingshangxinxi"));
GongyingshangxinxiView gongyingshangxinxiView = gongyingshangxinxiService.selectView(ew);
return R.ok("查詢供應(yīng)商信息成功").put("data", gongyingshangxinxiView);
}
/**
* 后端詳情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
GongyingshangxinxiEntity gongyingshangxinxi = gongyingshangxinxiService.selectById(id);
return R.ok().put("data", gongyingshangxinxi);
}
/**
* 前端詳情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
GongyingshangxinxiEntity gongyingshangxinxi = gongyingshangxinxiService.selectById(id);
return R.ok().put("data", gongyingshangxinxi);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody GongyingshangxinxiEntity gongyingshangxinxi, HttpServletRequest request){
gongyingshangxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(gongyingshangxinxi);
gongyingshangxinxiService.insert(gongyingshangxinxi);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody GongyingshangxinxiEntity gongyingshangxinxi, HttpServletRequest request){
gongyingshangxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(gongyingshangxinxi);
gongyingshangxinxiService.insert(gongyingshangxinxi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody GongyingshangxinxiEntity gongyingshangxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(gongyingshangxinxi);
gongyingshangxinxiService.updateById(gongyingshangxinxi);//全部更新
return R.ok();
}
/**
* 刪除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
gongyingshangxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<GongyingshangxinxiEntity> wrapper = new EntityWrapper<GongyingshangxinxiEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = gongyingshangxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
八、技術(shù)交流
大家點贊、收藏、關(guān)注、評論啦 、查看文章結(jié)尾????獲取聯(lián)系方式????
精彩專欄推薦訂閱:在下方專欄????????????????
Java項目精品實戰(zhàn)案例(300套)
????文章來源:http://www.zghlxwxcb.cn/news/detail-613977.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-613977.html
到了這里,關(guān)于基于SpringBoot+Vue的4S店車輛管理系統(tǒng)設(shè)計與實現(xiàn)(源碼+LW+部署文檔等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!