flowable使用taskService.addComment新增评论需要full_msg字段进行读取
背景
在构建创业项目JeecgFlow过程中,在调用taskService.addComment接口出现了异常。就是数据存储的Message信息出现了截取,也就是存储不完整。 效果如下.

flowable版本=6.7.2
问题排查
- 接口详解及问题代码
//新增评论的接口说明
Comment addComment(String taskId,String processInstanceId,String message)
//出问题的代码
CommentHistoryRes.CommentDTO commentDTO = new CommentHistoryRes.CommentDTO();
commentDTO.setComment(userTaskRejectReq.getComment());
commentDTO.setImageUrl(userTaskRejectReq.getImageUrl());
commentDTO.setTaskStatus("<font color='#E6A23C'>驳回</font>");
taskService.addComment(userTaskRejectReq.getTaskId(),userTaskRejectReq.getProcessInstanceId(), JSON.toJSONString(commentDTO));
- 数据库字段Message的长短的排查
CREATE TABLE `act_hi_comment` (
`ID_` varchar(64) COLLATE utf8_bin NOT NULL,
`TYPE_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`TIME_` datetime(3) NOT NULL,
`USER_ID_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`TASK_ID_` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`PROC_INST_ID_` varchar(64) COLLATE utf8_bin DEFAULT NULL,
`ACTION_` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`MESSAGE_` varchar(4000) COLLATE utf8_bin DEFAULT NULL,
`FULL_MSG_` longblob,PRIMARY KEY (`ID_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
MESSAGE_字段4000, 完全满足我的业务需求啊。应该不是这个原因。
- 错误的原因
1.TaskService.addComment是新增操作, saveComment是修改操作。
2.addComment应该在操作流程之前,例如用户任务节点审批,先进行addComment操作,然后complete完成
3.comment表中,有两个字段message, full_message。message字段存储前163个字段内容。fullMessage完整的审批信息。因此获取审批内容是取fullMessage而不是message字段。
此获取审批内容是取fullMessage而不是message字段。
解决办法,因为我是一次性查询多个task的comment。因此直接走了表查询,采用jdbcTemplate,并且fullMessage使用string字段类型接收.
String ids = taskIdList.stream().map(m -> "'" + m + "'").collect(Collectors.joining(","));
sql.append("select hc.ID_ as id, hc.PROC_INST_ID_ as procInstID, hc.TASK_ID_ as taskId, hc.MESSAGE_ as message, hc.FULL_MESSAGE_ as fullMessage ");
sql.append("from act_hi_comment hc where hc.TASK_ID_ in (" + ids + ")");
List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql.toString());
如果是单个task任务,可以用api
taskService.getTaskComments(taskId)
更多关于工作流知识,请访问: www.jeecgflow.com
相关文章:
flowable使用taskService.addComment新增评论需要full_msg字段进行读取
背景 在构建创业项目JeecgFlow过程中,在调用taskService.addComment接口出现了异常。就是数据存储的Message信息出现了截取,也就是存储不完整。 效果如下. flowable版本6.7.2 问题排查 接口详解及问题代码 //新增评论的接口说明 Comment addComment(…...
java常用技术栈,java面试带答案
前言 我们从一个问题引入今天的主题。 在日常业务开发中,我们可能经常听到 DBA 对我们说“不要”(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 join 本身有问题,还是我们使…...
刷题第11天
代码随想录刷题第11天 | 二叉树前中后序遍历 前序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x…...
QML中动态增加表格数据
1.QML中的表格实现 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_modelTabl…...
OBS插件开发(二)推流实时曲线
不发视频了,截个图算了,嫌麻烦 1,自定义QWidget图表绘制 ,动态更新 2,OBS直播帧率,码率监控 3,主要用于前端推流状况可视化,异常报警,及时性,无人值守直播...
Linux编程3.3 进程-进程的终止
1、正常终止 从main函数返回调用exit(标准C库函数)调用_exti或_Exit(系统调用)最后一个线程从其启动例程返回最后一个线程调用 pthread exit 2、异常终止 调用abort接受到一个信号并终止最后一个线程对取消请求做处理响应 3、进程返回 通常程序运行…...
排序(3)——直接选择排序
目录 直接选择排序 基本思想 整体思路(升序) 单趟 多趟 代码实现 特性总结 直接选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的…...
[LeetBook]【学习日记】数组内重组
题目:训练计划 I 训练计划 I 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以数组形式返回。 示例 1: 输入:act…...
【Linux】磁盘情况、挂载,df -h无法看到的卷
文章目录 解决挂载、解决挂载完重启就消失1、查看linux下的硬盘挂载的空间、使用空间2、查看没有挂载的硬盘是否检测在系统中3、挂载 (挂载完,要在/etc/fstab 下面配置挂载信息 要不然重启挂载就消失了) 解决挂载、解决挂载完重启就消失 linu…...
AIOps实践中常见的挑战:故障根因与可观测性数据的割裂
运维的挑战与责任 在数字化时代,运维团队面临的挑战前所未有。他们不仅要确保系统的高可用性和高性能,还要快速响应并解决故障,以减少对业务的影响。在这种背景下,运维团队急需工具和技术,能够帮助他们提高效率&#…...
python 远程代码第一次推送
conda windows 环境 conda 安装后 配置环境变量 运行 conda init; conda active base 创建虚拟环境 conda create -n my_venv python3.9.5 虚拟环境应用 file-->New project --> Existing interpreter ... -->Virtualenv environment-->interpreter ...--&g…...
C++开发基础之简单的计时器也有适配场景
一、前言 计时器的开发通常涉及到计算时间间隔的方法和计算时间的方式。一般计时器的开发步骤: 获取起始时间点:在开始计时时,记录当前的时间戳作为起始时间点。 获取结束时间点:在结束计时时,记录当前的时间戳作为结…...
数电学习笔记——逻辑函数及其描述方法
目录 一、逻辑函数 二、逻辑函数的描述方法 1、逻辑真值表 2、逻辑函数式 3、逻辑图 4、波形图 三、逻辑函数的两种标准形式 1、最小项与最大项 最小项 最小项的性质 最大项 最大项的性质 2、最大项与最小项的关系 3、逻辑函数的最小项之和形式 4、逻辑函数的最…...
2024年护眼台灯哪家品牌好?五款优质品牌专业推荐
护眼台灯几乎是每个孩子书桌上都会有的灯具,但还是有不少家长觉得是“智商税”。其实护眼台灯好处非常多,列如能够提供舒适的照明,缓解用眼疲劳,预防近视等等。所以今天准备了一期护眼台灯测评,并附上护眼台灯的榜单&a…...
搜索iconfont或者阿里图标就可以得到免费的图标
你在搜索过程中就会出现一些无耻,不要脸的网站,比如说下面这个 这个才是阿里图标 看它的网址 都是免费的...
android实战视频教程,细数Android开发者的艰辛历程
缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美…...
nav2_gps_waypoint_follower_demo 不能在ros2 humble中直接使用的解决方法
GIT上的nav2_gps_waypoint_follower_demo是基于ros-iron编写的,其中followGpsWaypoints(wps) service只能在Iron上使用。 解决方法: 第一步:将interactive_waypoint_follower.py修改为如下代码: import rclpy from rclpy.node …...
华为OD机试 - 螺旋数字矩阵
1 题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始&…...
Vue响应式内容丢失处理
对数组和对象进行不当的修改会使Vue的对象丢失响应式,这时可以直接console.log丢失的对象,看是否有getter和setter 对于数组和对象,只有使用 Vue 提供的一些方法(如 push()、pop()、splice()、set() 等)进行修改才会触…...
Linux安装Rabbitmq
说明:本文章主要是rabbitmq在Linux系统上的安装,文章中包含了rabbitmq的下载及依赖下载 1.版本选取,这里的选取主要是版本的兼容问题 去这个网址查看mq和erlang版本兼容:RabbitMQ Erlang Version Requirements | RabbitMQ 2.相…...
基于ARM9工业平板与Linux的水质在线监测系统开发实践
1. 项目概述:当工业平板电脑遇上水质监测在环保、水产养殖、市政水务这些领域里,数据就是眼睛。过去,我们看水质,得靠人拿着采样瓶,一趟趟跑现场,再送回实验室,等上半天甚至几天才能拿到一份报告…...
云原生安全扫描:保护容器化应用的安全
云原生安全扫描:保护容器化应用的安全 引言 在云原生环境中,安全扫描是保障应用安全的重要手段。通过安全扫描,我们可以发现容器镜像和代码中的安全漏洞。 今天就来分享一下云原生安全扫描的最佳实践。 安全扫描类型 镜像扫描 扫描容器镜像中…...
YOLOv5-6.1单通道图像训练实战:从代码修改到ONNX模型转换全解析
1. 为什么需要单通道图像训练? 在工业视觉和医学影像领域,我们经常会遇到单通道图像数据。比如X光片、红外热成像图、工业CT扫描结果等,这些图像通常都是灰度图,只包含亮度信息而没有颜色信息。传统的YOLOv5默认处理的是三通道RGB…...
暗黑破坏神2存档编辑器终极指南:5步轻松掌握角色定制与物品管理
暗黑破坏神2存档编辑器终极指南:5步轻松掌握角色定制与物品管理 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾因暗黑破坏神2中稀有的装备掉落率而烦恼?是否想重新调整角色属性却不想从头开始&a…...
告别终端!为OpenWrt打造Web版脚本管家:Luci插件开发实战与全功能解析
1. 为什么我们需要Web版脚本管家? 每次在OpenWrt上折腾脚本都要打开终端,这对新手来说简直是噩梦。记得我第一次给路由器写脚本时,光是学会用vi编辑器就花了半小时,保存退出时还差点把系统搞崩。后来发现用WinSCP上传脚本还要改权…...
深入UE渲染管线:从.usf文件到FGlobalShader,理解全局Shader的完整生命周期与最佳实践
深入UE渲染管线:从.usf文件到FGlobalShader,理解全局Shader的完整生命周期与最佳实践 当我们需要在Unreal Engine中实现一个全新的后处理效果或定制底层渲染管线时,全局Shader(Global Shader)往往是必经之路。与材质编…...
集成SERDES+RGMII双接口:BCM54616SC0KFBG在背板与光纤应用中的灵活连接方案
BCM54616SC0KFBG:集成 SERDES 的低功耗单口千兆以太网 PHY在数据中心的服务器接入、企业级交换机上行链路以及工业自动化控制系统中,物理层芯片是实现网络通信的基石。随着网络设备向高密度、低功耗演进,传统的以太网 PHY 面临连接灵活性受限…...
Embulk高级用法指南:如何实现高效并行处理与数据分片
Embulk高级用法指南:如何实现高效并行处理与数据分片 【免费下载链接】embulk Embulk: Pluggable Bulk Data Loader. 项目地址: https://gitcode.com/gh_mirrors/em/embulk Embulk是一个强大的可插拔批量数据加载器,专为高效处理大规模数据迁移而…...
AI行业的“人才缺口”:哪些AI岗位最紧缺
一、AI行业人才缺口的整体态势在AI技术飞速发展的当下,其对各行业的渗透速度远超预期,人才供需矛盾愈发凸显。据《人工智能产业人才发展报告(2025~2026)》测算,中国AI人才总缺口超过580万人,其中核心技术岗位缺口超过80万人。人力…...
RimSort终极指南:开源跨平台RimWorld模组管理器完全解析
RimSort终极指南:开源跨平台RimWorld模组管理器完全解析 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-ma…...
