微信小程序毕业设计-汽车维修项目管理系统项目开发实战(附源码+论文)

avatar
作者
筋斗云
阅读量: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<String, Object> 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<WeixiuxiangmuView> list =(List<WeixiuxiangmuView>)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<WeixiuxiangmuEntity> queryWrapper = new EntityWrapper<WeixiuxiangmuEntity>()             .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<WeixiuxiangmuEntity> queryWrapper = new EntityWrapper<WeixiuxiangmuEntity>()             .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<WeixiuxiangmuEntity> 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<WeixiuxiangmuEntity> weixiuxiangmuList = new ArrayList<>();//上传的东西             Map<String, List<String>> 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<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件                         dataList.remove(0);//删除第一行,因为第一行是提示                         for(List<String> 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<String, Object> 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<WeixiuxiangmuView> list =(List<WeixiuxiangmuView>)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<WeixiuxiangmuEntity> queryWrapper = new EntityWrapper<WeixiuxiangmuEntity>()             .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,"表中有相同数据");         }     }   }  

五、获取源码或论文

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!