首页 > 编程语言 >车险自助理赔系统 JAVA开源项目 毕业设计

车险自助理赔系统 JAVA开源项目 毕业设计

时间:2023-10-26 13:02:33浏览次数:38  
标签:vc 理赔 毕业设计 开源 车辆 模块 new JAVA String

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot

https://gf.bilibili.com/item/detail/1104012029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_02


一、摘要

基于Vue+SpringBoot+MySQL 的车险自助理赔系统包含车辆管理模块、车险理赔模块、理赔审核模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,车险自助理赔系统基于角色的访问控制,给车险管理员、用户、理赔专员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。


二、功能模块

车险自助理赔系统的功能性需求主要包含数据中心模块、角色管理模块、车辆档案模块、车辆理赔模块这五大模块,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:

2.1 数据中心模块

数据中心模块包含了车险自助理赔系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。 其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。 组织架构,指的是运营公司的组织架构,该模块适用于管理这些组织架构的部门层级和员工的部门归属情况。 用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。 系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。 公用云盘管理模块,用于统一化维护车险自助理赔系统中的图片,如理赔单照片、车辆照片等等。

2.2 角色管理模块

车险自助理赔系统是给多个角色使用的,车主和理赔管理员拥有着不同的菜单权限,所以需要建立角色管理模块。其中角色的字段包括角色名称、状态、排序值、备注、创建人、创建时间、更新人、更新时间等,管理员可以新增、删除、修改、条件查询角色,用户查询管理员发布的角色数据。

2.3 车辆档案模块

车辆是车险自助理赔系统的核心,有了车辆才可以申请理赔,所以需要对车辆的档案进程维护,车辆信息包括归属人、联系电话、车牌号、车辆照片、品牌、保险状态、创建人、创建时间等,车主可以申请添加自己名下的车辆,管理员可以对车辆信息进行添加、删除、编辑和条件查询操作。

2.4 车辆理赔模块

车辆理赔模块用于车主对自己车辆的理赔事宜进行申请和维护。车辆理赔的字段包括车辆、归属人、联系电话、车牌号、车辆照片、品牌、理赔事由、审核状态等,车主可以发起车辆理赔申请,管理员可以对车主发起的理赔申请进行审核操作。

2.5 理赔照片模块

为了更好的表达车辆理赔的情况,设计了理赔照片模块,车主可以根据需要上传理赔的照片,更好的说明理赔的情况,理赔照片的字段包括理赔单、照片、上传时间、上传、备注、排序值、更新时间、更新人,车主可以上传理赔照片,并挂靠到某个车辆理赔单上,管理员可以根据理赔单查询理赔的照片数据。


三、系统设计

3.1 用例设计

车险自助理赔系统 JAVA开源项目 毕业设计_java_03

3.2 数据库设计

3.2.1 角色表

车险自助理赔系统 JAVA开源项目 毕业设计_vue.js_04

3.2.2 车辆表

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_05

3.2.3 理赔表

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_06

3.2.4 理赔照片表

车险自助理赔系统 JAVA开源项目 毕业设计_vue.js_07


四、系统展示

车险自助理赔系统 JAVA开源项目 毕业设计_车险理赔_08

车险自助理赔系统 JAVA开源项目 毕业设计_java_09

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_10

车险自助理赔系统 JAVA开源项目 毕业设计_车险理赔_11

车险自助理赔系统 JAVA开源项目 毕业设计_车险理赔_12

车险自助理赔系统 JAVA开源项目 毕业设计_管理系统_13

车险自助理赔系统 JAVA开源项目 毕业设计_管理系统_14

车险自助理赔系统 JAVA开源项目 毕业设计_java_15

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_16

车险自助理赔系统 JAVA开源项目 毕业设计_车险理赔_17

车险自助理赔系统 JAVA开源项目 毕业设计_spring boot_18


五、核心代码

5.1 查询车辆档案

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询车辆")
public Result<IPage<Vehicle>> getByPage(@ModelAttribute Vehicle vehicle ,@ModelAttribute PageVo page){
    QueryWrapper<Vehicle> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(vehicle.getUserName())) {
        qw.like("user_name",vehicle.getUserName());
    }
    if(!ZwzNullUtils.isNull(vehicle.getCarNumber())) {
        qw.like("car_number",vehicle.getCarNumber());
    }
    if(!ZwzNullUtils.isNull(vehicle.getStatus())) {
        qw.like("status",vehicle.getStatus());
    }
    IPage<Vehicle> data = iVehicleService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Vehicle>>().setData(data);
}

5.2 申请车辆理赔

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "小程序申请理赔")
public Result<Object> addOne(@RequestParam String carId,@RequestParam String reason,@RequestParam String money,@RequestParam String image){
    Vehicle v = iVehicleService.getById(carId);
    if(v == null) {
        return ResultUtil.error("车辆不存在");
    }
    VehicleClaim vc = new VehicleClaim();
    vc.setVehicleId(v.getId());
    vc.setUserId(v.getUserId());
    vc.setUserName(v.getUserName());
    vc.setMobile(v.getMobile());
    vc.setCarNumber(v.getCarNumber());
    vc.setImage(v.getImage());
    vc.setBrand(v.getBrand());
    vc.setClaimReason(reason);
    vc.setClaimTime1(DateUtil.now());
    vc.setClaimTime2("");
    vc.setClaimStatus("未审核");
    vc.setClaimUser("");
    try {
        vc.setClaimMoney(BigDecimal.valueOf(Long.parseLong(money)));
    } catch (Exception e) {
        vc.setClaimMoney(BigDecimal.ZERO);
    }
    iVehicleClaimService.saveOrUpdate(vc);
    User currUser = securityUtil.getCurrUser();
    String[] imageList = image.split(",");
    for (String vo : imageList) {
        VehicleImage vi = new VehicleImage();
        vi.setClaimId(vc.getId());
        vi.setImage(vo);
        vi.setUploadTime(DateUtil.now());
        vi.setUploadUser(currUser.getNickname());
        iVehicleImageService.saveOrUpdate(vi);
    }
    return ResultUtil.success();
}

5.3 上传理赔照片

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增照片")
public Result<VehicleImage> addOne(@RequestParam String id,@RequestParam String image){
    User currUser = securityUtil.getCurrUser();
    String[] imageList = image.split(",");
    for (String vo : imageList) {
        VehicleImage vi = new VehicleImage();
        vi.setClaimId(id);
        vi.setImage(vo);
        vi.setUploadTime(DateUtil.now());
        vi.setUploadUser(currUser.getNickname());
        iVehicleImageService.saveOrUpdate(vi);
    }
    return ResultUtil.success();
}

5.4 小程序登录

@RequestMapping(value = "/loginOnWeb", method = RequestMethod.GET)
@ApiOperation(value = "小程序登陆")
public Result<String> loginOnWeb(@RequestParam String userName, @RequestParam String password){
    QueryWrapper<User> qw = new QueryWrapper<>();
    qw.eq("username",userName);
    List<User> userList = iUserService.list(qw);
    if(userList.size() < 1) {
        User u = new User();
        u.setUsername(userName);
        u.setNickname(userName);
        u.setMobile(userName);
        u.setEmail(u.getMobile() + "@qq.com");
        String encryptPass = new BCryptPasswordEncoder().encode(password);
        u.setPassword(encryptPass).setType(0);
        iUserService.saveOrUpdate(u);
        QueryWrapper<Role> roleQw = new QueryWrapper<>();
        roleQw.eq("default_role",true);
        List<Role> roleList = iRoleService.list(roleQw);
        if(roleList.size() > 0){
            for(Role role : roleList) {
                iUserRoleService.saveOrUpdate(new UserRole().setUserId(u.getId()).setRoleId(role.getId()));
            }
        }
        String accessToken = securityUtil.getToken(u.getUsername(), true);
        UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(u), null, null);
        SecurityContextHolder.getContext().setAuthentication(authentication);
        return new ResultUtil<String>().setData(accessToken);
    }
    User user = userList.get(0);
    if(!new BCryptPasswordEncoder().matches(password, user.getPassword())){
        return ResultUtil.error("密码不正确");
    }
    String accessToken = securityUtil.getToken(user.getUsername(), true);
    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(new SecurityUserDetails(user), null, null);
    SecurityContextHolder.getContext().setAuthentication(authentication);
    return new ResultUtil<String>().setData(accessToken);
}

5.5 修改个人昵称

@RequestMapping(value = "/changeName", method = RequestMethod.GET)
@ApiOperation(value = "修改昵称")
public Result<User> changeName(@RequestParam String nickname){
    User user = iUserService.getById(securityUtil.getCurrUser().getId());
    if(user == null) {
        return ResultUtil.error("用户不存在");
    }
    user.setNickname(nickname);
    iUserService.saveOrUpdate(user);
    return new ResultUtil<User>().setData(user);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

标签:vc,理赔,毕业设计,开源,车辆,模块,new,JAVA,String
From: https://blog.51cto.com/u_16322671/8032747

相关文章

  • 森林火灾预警系统 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104013029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于websocket+Vue+SpringBoot+MySQL的森林火灾预警系统,包含园区数据模块、温度传感器模块、烟雾传感器模块、园区监控模块、......
  • 高校学院网站 JAVA开源项目 毕业设计
    https://gf.bilibili.com/item/detail/1104015029为了帮助小白入门Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。一、摘要基于Vue2/Vue3+SpringBoot+MySQL的高校学院网站包含学院概况模块、学院院系模块、党建园地模块、竞赛报名模块、教育教学模块......
  • Java 创建线程的方法
    目录继承Thread类实现Runnable接口实现Callable接口,并结合Future实现通过线程池创建线程方式一:Runnable方式二:CompletableFutureJava中创建线程有四种方式,分别是:继承Thread类首先定义一个类来继承Thread类,重写run方法。然后创建这个子类对象,并调用start......
  • JAVASCRIPT 上传文件的几种方式
    方法1:使用ajax,通过formdata传参//注意:FormData只兼容到IE10varformData=newFormData();varfile=$('.import-file-btn').get(0).files[0];formData.append('file',file);formData.append('id',id);formData.append('name',name)......
  • Java 练习题03 String类
    1. 编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转, "Tobeornottobe",将变成"oTebrotonoteb."。importjava.util.Arrays;publicclassTest08{publicstaticvoidmain(String[]args){Strings="Tobeornottobe";//1.将字符串切......
  • java中jdk8新特性
    Java中Jdk8的新特性包括:Lambda表达式:Lambda表达式是推动Java8发布的最重要新特性,允许把函数作为一个方法的参数或者把代码看成数据,使代码更加简洁紧凑。新的日期API:引入新的日期API,提供更加便捷的日期处理方式。Optional:引入Optional类,可以用来表示值存在或不存在的情况。Base64:内......
  • java8之引入流
    1.filter(筛选):接受Lanbda,从流中排出某些元素2.map(提取):接受一个Lanbda,将元素转换成其他形式或提取信息3.limit(截断):截断流,使其元素不超过给定数量4.distinct:筛选掉重复的元素4.collect:将流转换为其他形式注:流只能消费一次5.使用Collection接......
  • Java Calendar类练习题(获取日期)
    1.获取当前对象的日期的100天前的日期packagezuoye;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;publicclassTest1_01{publicstaticvoidmain(String[]args){//1、获取当前对象的日期的100天前的日期Calendarc......
  • javac命令的理解
    javac是编译命令javacA.java-ddirclass-encodingutf-8javac-classpath/-cp依赖包的路径,需要用:拼接起来,例如egjavac-cpspark_2.11.jar;flink_1.12.jarB.java-d/testdir多个依赖包,windows下用;分号,linux下用:冒号拼接依赖的包windows本地试验javac-cpD:\test......
  • Java 练习题02 (包装类 (对字符串进行排序))
    有一个字符串“101,87,88,87,98”对数字由小到大排序。importjava.util.Arrays;publicclassDemo01{publicstaticvoidmain(String[]args){Stringspa="101,87,88,87,98";//1.分割每个数字String[]str=spa.split(",");//2.定义int类型数......