首页 > 其他分享 >【客户投诉系统】 Sringboot+vue+soap+activiti+mybatis+element-ui

【客户投诉系统】 Sringboot+vue+soap+activiti+mybatis+element-ui

时间:2024-11-07 22:49:47浏览次数:3  
标签:vue activiti System element println taskService variable complain complainReques

[!NOTE]

分享课程系统,客户平台投诉系统

主要框架Springboot, mybatis, Activiti, soap, Element-UI , Vue

主要功能:用户可以对不同的平台,例如美团、学习通、饿了么等进行投诉(Springboot, mybatis),工作管理员会对该投诉信息进行审批(Activiti),若审批通过,通过soap服务传递给对应平台提供的接口,对不同的平台设置了ProcessTime处理投诉的变量,模拟处理时间,当服务启动默认有工作人员在处理,当处理时间为0时,表示投诉处理完成,通过请求将对应ID的投诉信息返回。

系统框架

在这里插入图片描述

登录界面

用户申请投诉

在这里插入图片描述

管理员界面
  • 投诉信息管理

在这里插入图片描述

  • 代办任务管理

在这里插入图片描述

Activiti bpmn图

在这里插入图片描述

代码展示
  • 投诉信息审批阶段的判断
@PostMapping("/judge")
    public String judge(@RequestBody Map<String, String> requestData) {
        String username = requestData.get("username");
        String varible = requestData.get("varible");
        String taskId = requestData.get("taskId");
        if (username.equals("boss")) {
            System.out.println("———————————————————————————————————————阿斯顿发射点———————ASDFASDF");
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
            RuntimeService runtimeService = processEngine.getRuntimeService();
            TaskService taskService = processEngine.getTaskService();
            Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
            Object variable = runtimeService.getVariable(task.getProcessInstanceId(), "complainRequest");
            if (varible.equals("0")) {
                if (variable != null) {
                    try {
                        // 将 JSON 字符串转换回 ComplainRequest 对象
                        ObjectMapper objectMapper = new ObjectMapper();
                        Complain complain = objectMapper.readValue(variable.toString(), Complain.class);
                        jdbcTemplate.update(UPDATE_SQL2, complain.getId());
                        process(complain);
                    } catch (Exception e) {
                        System.out.println("Error deserializing complainRequest: " + e.getMessage());
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("complainRequest is null or not of type ComplainRequest");
                }
                taskService.complete(task.getId());
                return "succuess";
            }else {
                if (variable != null) {
                    try {
                        // 将 JSON 字符串转换回 ComplainRequest 对象
                        ObjectMapper objectMapper = new ObjectMapper();
                        Complain complain = objectMapper.readValue(variable.toString(), Complain.class);
                        jdbcTemplate.update(UPDATE_SQL3, complain.getId());
                        process(complain);
                    } catch (Exception e) {
                        System.out.println("Error deserializing complainRequest: " + e.getMessage());
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("complainRequest is null or not of type ComplainRequest");
                }
                taskService.complete(task.getId());
                return "succuess";
            }
        }
        else{
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
            TaskService taskService = processEngine.getTaskService();
            Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
            RuntimeService runtimeService = processEngine.getRuntimeService();
            Object variable = runtimeService.getVariable(task.getProcessInstanceId(), "complainRequest");

            taskService.setVariable(taskId, "judge", varible);
            taskService.complete(task.getId());

            if (varible.equals("0")) {
                if (variable != null) {
                    try {
                        // 将 JSON 字符串转换回 ComplainRequest 对象
                        ObjectMapper objectMapper = new ObjectMapper();
                        Complain complain = objectMapper.readValue(variable.toString(), Complain.class);
                        jdbcTemplate.update(UPDATE_SQL2, complain.getId());
                        process(complain);
                    } catch (Exception e) {
                        System.out.println("Error deserializing complainRequest: " + e.getMessage());
                        e.printStackTrace();
                    }
                } else {
                    System.out.println("complainRequest is null or not of type ComplainRequest");
                }
                return "success"; //
            }
            return "success";
        }

标签:vue,activiti,System,element,println,taskService,variable,complain,complainReques
From: https://blog.csdn.net/weixin_51908696/article/details/143607889

相关文章

  • CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro
    说明此文章为转发的,方便日后查看。系统演示环境http://www.cc-admin.top/#/home简介CC-ADMIN前端简介现在市面的上后台管理系统很多,不差你这一个,为啥又来个轮子?答:材料不一样。本轮子的选材是在考察过antv、element之后选择了quasar,前两个很优秀,尤其是antv的外观我特......
  • [免费]SpringBoot+Vue(高校)学籍管理系统【论文+源码+SQL脚本】
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue(高校)学籍管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue(高校)学籍管理系统Java毕业设计_哔哩哔哩_bilibili项目介绍对在线学籍管理的流程进行科学整理、归纳和功能的精简,通过软件工程的研究方法,结合当......
  • 基于nodejs+vue在线音乐网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于在线音乐网站的研究,现有研究多侧重于音乐推荐算法、版权管理等方面3。专门针对在线音乐网站整体功能架构,包括用户、歌手分类、歌曲信息等综合系统功......
  • 基于nodejs+vue在线音乐播放平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于在线音乐播放平台的研究,现有研究主要集中在大型商业音乐平台的整体运营、用户体验优化等方面,如QQ音乐、网易云音乐等平台的功能拓展、营销策略等。......
  • vue项目滑动验证组件
    父组件---表单部分:<el-form-itemprop="phone"style="margin-top:6%"><el-inputv-model="ruleForm.phone"placeholder="请输入手机号"clearable:readonly="st......
  • VUE模块化开发思路
    构建工具:vite需求:在多个项目下,低层框架可复用,样式可复用,模块可复用。一、项目示例例如当前有两个项目:aaAdmin项目atwtighten项目b项目a和项目b中都有共同的低层逻辑,比如登录,权限验证,前端框架样式等等。在这个两个项目中我们独立出一个公用项目adminCommon,a和b都引用......
  • nginx 部署2个相同的vue
    起因:最近遇到一个问题,在前端用nginx部署vue,发现如果前端有改动,如果不适用热更新,而是直接复制项目过去,会404因此想到用nginx负载两套相同vue项目,然后一个个复制vue项目就可以了。 废话不多:一在nginx下创建两个vue的路径 二修改nginx的配置文件worker_processes......
  • Vue3 - 详细实现虚拟列表前端虚拟滚动列表解决方案,vue3长列表优化之虚拟列表,解决列表
    前言Vue2版本,请访问这篇文章在vue3项目开发中,详解实现虚拟列表高度不固定(不定高)且复杂含有图片视频等复杂虚拟列表教程,决列表每项高度不确定及img图像或视频的加载方案,利用缓冲区技术解决用户浏览时渲染不及时列表闪烁白屏/列表加载闪屏,解vue3实现虚拟列表优化大......
  • vue—ref属性
    原文链接:vue—ref属性–每天进步一点点 在vue中ref属性基本有两个作用,一个是获取dom元素,另一个是获取组件实例化对象。初始页面和初始代码如下:123456789101112131415161718192021222324252627282930313233343536<template>......
  • vue-props配置
    原文链接:vue-props配置–每天进步一点点1.props作用props主要用于组件实例对象之间传递参数,比如我们前面创建的student组件,我们在组件中让他显示一些信息,比如下面这样:Student组件如下:1234567891011121314151617181920<template>  <div> ......