微信小程序毕业设计-汽车维修项目管理系统项目开发实战(附源码+论文)
创始人
2025-01-10 21:03:12
0

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:微信小程序毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎Java毕业设计

开发运行环境

①前端:微信小程序开发工具

② 后端:Java

  • 框架:springboot
  • JDK版本:JDK1.8
  • 服务器:tomcat7
  • 数据库:mysql 5.7
  • 数据库工具:Navicat12
  • 开发软件:eclipse/myeclipse/idea
  • Maven包:Maven3.3.9
  • 浏览器:谷歌浏览器

源码下载地址:

https://download.csdn.net/download/2301_76953549/89227594

论文目录

【如需全文请按文末获取联系】
在这里插入图片描述

一、项目简介

汽车维修项目管理系统使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理汽车维修项目管理系统信息,查看汽车维修项目管理系统信息,管理汽车维修项目管理系统。

二、系统设计

2.1软件功能模块设计

在前面分析的管理员功能的基础上,进行接下来的设计工作,最终展示设计的结构图(见下图)。
在这里插入图片描述

2.2数据库设计

(1)下图是出入库详情实体和其具备的属性。
在这里插入图片描述
(2)下图是用户实体和其具备的属性。
在这里插入图片描述

(5)下图是员工实体和其具备的属性。
在这里插入图片描述
(6)下图是维修项目评论实体和其具备的属性。
在这里插入图片描述

三、系统项目部分截图

3.1用户信息管理

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,
还进行了对用户名称的模糊查询的条件
在这里插入图片描述

3.2维修项目管理

如图5.2显示的就是维修项目管理页面,此页面提供给管理员的功能有:查看已发布的维修项目数据,修改维修项目,维修项目作废,即可删除,还进行了对维修项目名称的模糊查询 维修项目信息的类型查询等等一些条件。
在这里插入图片描述

3.3维修项目类型管理

如图5.3显示的就是维修项目类型管理页面,此页面提供给管理员的功能有:根据维修项目类型进行条件查询,还可以对维修项目类型进行新增、修改、查询操作等等。
在这里插入图片描述

四、部分核心代码

 package com.controller;  import java.io.File; import java.math.BigDecimal; import java.net.URL; import java.text.SimpleDateFormat; import com.alibaba.fastjson.JSONObject; import java.util.*; import org.springframework.beans.BeanUtils; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.ContextLoader; import javax.servlet.ServletContext; import com.service.TokenService; import com.utils.*; import java.lang.reflect.InvocationTargetException;  import com.service.DictionaryService; import org.apache.commons.lang3.StringUtils; import com.annotation.IgnoreAuth; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.entity.*; import com.entity.view.*; import com.service.*; import com.utils.PageUtils; import com.utils.R; import com.alibaba.fastjson.*;  /**  * 维修项目  * 后端接口  * @author  * @email */ @RestController @Controller @RequestMapping("/weixiuxiangmu") public class WeixiuxiangmuController {     private static final Logger logger = LoggerFactory.getLogger(WeixiuxiangmuController.class);      @Autowired     private WeixiuxiangmuService weixiuxiangmuService;       @Autowired     private TokenService tokenService;     @Autowired     private DictionaryService dictionaryService;      //级联表service      @Autowired     private YonghuService yonghuService;     @Autowired     private YuangongService yuangongService;       /**     * 后端列表     */     @RequestMapping("/page")     public R page(@RequestParam Map params, HttpServletRequest request){         logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));         String role = String.valueOf(request.getSession().getAttribute("role"));         if(false)             return R.error(511,"永不会进入");         else if("用户".equals(role))             params.put("yonghuId",request.getSession().getAttribute("userId"));         else if("员工".equals(role))             params.put("yuangongId",request.getSession().getAttribute("userId"));         params.put("weixiuxiangmuDeleteStart",1);params.put("weixiuxiangmuDeleteEnd",1);         if(params.get("orderBy")==null || params.get("orderBy")==""){             params.put("orderBy","id");         }         PageUtils page = weixiuxiangmuService.queryPage(params);          //字典表数据转换         List list =(List)page.getList();         for(WeixiuxiangmuView c:list){             //修改对应字典表字段             dictionaryService.dictionaryConvert(c, request);         }         return R.ok().put("data", page);     }      /**     * 后端详情     */     @RequestMapping("/info/{id}")     public R info(@PathVariable("id") Long id, HttpServletRequest request){         logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);         WeixiuxiangmuEntity weixiuxiangmu = weixiuxiangmuService.selectById(id);         if(weixiuxiangmu !=null){             //entity转view             WeixiuxiangmuView view = new WeixiuxiangmuView();             BeanUtils.copyProperties( weixiuxiangmu , view );//把实体数据重构到view中              //修改对应字典表字段             dictionaryService.dictionaryConvert(view, request);             return R.ok().put("data", view);         }else {             return R.error(511,"查不到数据");         }      }      /**     * 后端保存     */     @RequestMapping("/save")     public R save(@RequestBody WeixiuxiangmuEntity weixiuxiangmu, HttpServletRequest request){         logger.debug("save方法:,,Controller:{},,weixiuxiangmu:{}",this.getClass().getName(),weixiuxiangmu.toString());          String role = String.valueOf(request.getSession().getAttribute("role"));         if(false)             return R.error(511,"永远不会进入");          Wrapper queryWrapper = new EntityWrapper()             .eq("weixiuxiangmu_name", weixiuxiangmu.getWeixiuxiangmuName())             .eq("weixiuxiangmu_types", weixiuxiangmu.getWeixiuxiangmuTypes())             .eq("weixiuxiangmu_clicknum", weixiuxiangmu.getWeixiuxiangmuClicknum())             .eq("shangxia_types", weixiuxiangmu.getShangxiaTypes())             .eq("weixiuxiangmu_delete", weixiuxiangmu.getWeixiuxiangmuDelete())             ;          logger.info("sql语句:"+queryWrapper.getSqlSegment());         WeixiuxiangmuEntity weixiuxiangmuEntity = weixiuxiangmuService.selectOne(queryWrapper);         if(weixiuxiangmuEntity==null){             weixiuxiangmu.setWeixiuxiangmuClicknum(1);             weixiuxiangmu.setShangxiaTypes(1);             weixiuxiangmu.setWeixiuxiangmuDelete(1);             weixiuxiangmu.setCreateTime(new Date());             weixiuxiangmuService.insert(weixiuxiangmu);             return R.ok();         }else {             return R.error(511,"表中有相同数据");         }     }      /**     * 后端修改     */     @RequestMapping("/update")     public R update(@RequestBody WeixiuxiangmuEntity weixiuxiangmu, HttpServletRequest request){         logger.debug("update方法:,,Controller:{},,weixiuxiangmu:{}",this.getClass().getName(),weixiuxiangmu.toString());          String role = String.valueOf(request.getSession().getAttribute("role")); //        if(false) //            return R.error(511,"永远不会进入");         //根据字段查询是否有相同数据         Wrapper queryWrapper = new EntityWrapper()             .notIn("id",weixiuxiangmu.getId())             .andNew()             .eq("weixiuxiangmu_name", weixiuxiangmu.getWeixiuxiangmuName())             .eq("weixiuxiangmu_types", weixiuxiangmu.getWeixiuxiangmuTypes())             .eq("weixiuxiangmu_clicknum", weixiuxiangmu.getWeixiuxiangmuClicknum())             .eq("shangxia_types", weixiuxiangmu.getShangxiaTypes())             .eq("weixiuxiangmu_delete", weixiuxiangmu.getWeixiuxiangmuDelete())             ;          logger.info("sql语句:"+queryWrapper.getSqlSegment());         WeixiuxiangmuEntity weixiuxiangmuEntity = weixiuxiangmuService.selectOne(queryWrapper);         if("".equals(weixiuxiangmu.getWeixiuxiangmuPhoto()) || "null".equals(weixiuxiangmu.getWeixiuxiangmuPhoto())){                 weixiuxiangmu.setWeixiuxiangmuPhoto(null);         }         if(weixiuxiangmuEntity==null){             weixiuxiangmuService.updateById(weixiuxiangmu);//根据id更新             return R.ok();         }else {             return R.error(511,"表中有相同数据");         }     }        /**     * 删除     */     @RequestMapping("/delete")     public R delete(@RequestBody Integer[] ids){         logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());         ArrayList list = new ArrayList<>();         for(Integer id:ids){             WeixiuxiangmuEntity weixiuxiangmuEntity = new WeixiuxiangmuEntity();             weixiuxiangmuEntity.setId(id);             weixiuxiangmuEntity.setWeixiuxiangmuDelete(2);             list.add(weixiuxiangmuEntity);         }         if(list != null && list.size() >0){             weixiuxiangmuService.updateBatchById(list);         }         return R.ok();     }       /**      * 批量上传      */     @RequestMapping("/batchInsert")     public R save( String fileName, HttpServletRequest request){         logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);         Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         try {             List weixiuxiangmuList = new ArrayList<>();//上传的东西             Map> seachFields= new HashMap<>();//要查询的字段             Date date = new Date();             int lastIndexOf = fileName.lastIndexOf(".");             if(lastIndexOf == -1){                 return R.error(511,"该文件没有后缀");             }else{                 String suffix = fileName.substring(lastIndexOf);                 if(!".xls".equals(suffix)){                     return R.error(511,"只支持后缀为xls的excel文件");                 }else{                     URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径                     File file = new File(resource.getFile());                     if(!file.exists()){                         return R.error(511,"找不到上传文件,请联系管理员");                     }else{                         List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件                         dataList.remove(0);//删除第一行,因为第一行是提示                         for(List data:dataList){                             //循环                             WeixiuxiangmuEntity weixiuxiangmuEntity = new WeixiuxiangmuEntity(); //                            weixiuxiangmuEntity.setWeixiuxiangmuName(data.get(0));                    //标题 要改的 //                            weixiuxiangmuEntity.setWeixiuxiangmuPhoto("");//详情和图片 //                            weixiuxiangmuEntity.setWeixiuxiangmuTypes(Integer.valueOf(data.get(0)));   //维修类型 要改的 //                            weixiuxiangmuEntity.setWeixiuxiangmuNewMoney(data.get(0));                    //维修价格 要改的 //                            weixiuxiangmuEntity.setWeixiuxiangmuClicknum(Integer.valueOf(data.get(0)));   //点击次数 要改的 //                            weixiuxiangmuEntity.setWeixiuxiangmuContent("");//详情和图片 //                            weixiuxiangmuEntity.setShangxiaTypes(Integer.valueOf(data.get(0)));   //是否上架 要改的 //                            weixiuxiangmuEntity.setWeixiuxiangmuDelete(1);//逻辑删除字段 //                            weixiuxiangmuEntity.setCreateTime(date);//时间                             weixiuxiangmuList.add(weixiuxiangmuEntity);                               //把要查询是否重复的字段放入map中                         }                          //查询是否重复                         weixiuxiangmuService.insertBatch(weixiuxiangmuList);                         return R.ok();                     }                 }             }         }catch (Exception e){             e.printStackTrace();             return R.error(511,"批量插入数据异常,请联系管理员");         }     }          /**     * 前端列表     */     @IgnoreAuth     @RequestMapping("/list")     public R list(@RequestParam Map params, HttpServletRequest request){         logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));          // 没有指定排序字段就默认id倒序         if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){             params.put("orderBy","id");         }         PageUtils page = weixiuxiangmuService.queryPage(params);          //字典表数据转换         List list =(List)page.getList();         for(WeixiuxiangmuView c:list)             dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段         return R.ok().put("data", page);     }      /**     * 前端详情     */     @RequestMapping("/detail/{id}")     public R detail(@PathVariable("id") Long id, HttpServletRequest request){         logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);         WeixiuxiangmuEntity weixiuxiangmu = weixiuxiangmuService.selectById(id);             if(weixiuxiangmu !=null){                  //点击数量加1                 weixiuxiangmu.setWeixiuxiangmuClicknum(weixiuxiangmu.getWeixiuxiangmuClicknum()+1);                 weixiuxiangmuService.updateById(weixiuxiangmu);                  //entity转view                 WeixiuxiangmuView view = new WeixiuxiangmuView();                 BeanUtils.copyProperties( weixiuxiangmu , view );//把实体数据重构到view中                  //修改对应字典表字段                 dictionaryService.dictionaryConvert(view, request);                 return R.ok().put("data", view);             }else {                 return R.error(511,"查不到数据");             }     }       /**     * 前端保存     */     @RequestMapping("/add")     public R add(@RequestBody WeixiuxiangmuEntity weixiuxiangmu, HttpServletRequest request){         logger.debug("add方法:,,Controller:{},,weixiuxiangmu:{}",this.getClass().getName(),weixiuxiangmu.toString());         Wrapper queryWrapper = new EntityWrapper()             .eq("weixiuxiangmu_name", weixiuxiangmu.getWeixiuxiangmuName())             .eq("weixiuxiangmu_types", weixiuxiangmu.getWeixiuxiangmuTypes())             .eq("weixiuxiangmu_clicknum", weixiuxiangmu.getWeixiuxiangmuClicknum())             .eq("shangxia_types", weixiuxiangmu.getShangxiaTypes())             .eq("weixiuxiangmu_delete", weixiuxiangmu.getWeixiuxiangmuDelete())             ;         logger.info("sql语句:"+queryWrapper.getSqlSegment());         WeixiuxiangmuEntity weixiuxiangmuEntity = weixiuxiangmuService.selectOne(queryWrapper);         if(weixiuxiangmuEntity==null){             weixiuxiangmu.setWeixiuxiangmuDelete(1);             weixiuxiangmu.setCreateTime(new Date());         weixiuxiangmuService.insert(weixiuxiangmu);             return R.ok();         }else {             return R.error(511,"表中有相同数据");         }     }   }  

五、获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。

相关内容

热门资讯

第4个拥有(来玩德州)软件透明... 第4个拥有(来玩德州)软件透明挂(辅助挂)太坑了其实是有挂的(2021已更新)(哔哩哔哩);详细来玩...
重大推荐《Wepoke安卓版》... 【福星临门,好运相随】;重大推荐《Wepoke安卓版》软件透明挂!(辅助挂)外挂透明挂脚本(2024...
一分钟了解(智星菠萝德州)软件... 一分钟了解(智星菠萝德州)软件透明挂(辅助挂)辅助透视测试(2023已更新)(哔哩哔哩);是一款可以...
科技揭秘wpk有猫腻的(透视辅... 科技揭秘wpk有猫腻的(透视辅助)软件透明挂(2021已更新)(哔哩哔哩)科技揭秘wpk有猫腻的(透...
让我来分享经验(微扑克线上)外... 让我来分享经验(微扑克线上)外挂辅助器AI代打(微扑克)辅助挂程序(2020已更新)(哔哩哔哩)是一...
重磅来袭钱塘十三水外挂(辅助挂... 重磅来袭钱塘十三水外挂(辅助挂)太坑了其实确实是有挂(2020已更新)(哔哩哔哩)是一款可以让一直输...
分享实测《wepokE》软件透... 分享实测《wepokE》软件透明挂!(辅助挂)外挂透明挂软件(2023已更新)(哔哩哔哩);1. a...
记者揭秘(传奇扑克)软件透明挂... 记者揭秘(传奇扑克)软件透明挂(辅助挂)辅助透视神器(2022已更新)(哔哩哔哩);超受欢迎的传奇扑...
重大通报(微扑克智能)外挂辅助... 您好,微扑克这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏中...
如何分辨真伪(德州wpk)软件... 您好,德州wpk这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游...