com.alibaba
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/mapper/ProcessMapper.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/mapper/ProcessMapper.java
index 06e7a9710..b469ce726 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/mapper/ProcessMapper.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/mapper/ProcessMapper.java
@@ -1,7 +1,7 @@
package com.pig4cloud.pigx.flow.task.mapper;
-import com.pig4cloud.pigx.flow.task.entity.Process;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.pig4cloud.pigx.flow.task.entity.Process;
import org.apache.ibatis.annotations.Mapper;
/**
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/IProcessService.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/IProcessService.java
index aabfe61ff..aa828dfae 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/IProcessService.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/IProcessService.java
@@ -2,8 +2,8 @@ package com.pig4cloud.pigx.flow.task.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pig4cloud.pigx.common.core.util.R;
-import com.pig4cloud.pigx.flow.task.vo.ProcessVO;
import com.pig4cloud.pigx.flow.task.entity.Process;
+import com.pig4cloud.pigx.flow.task.vo.ProcessVO;
/**
*
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessCopyServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessCopyServiceImpl.java
index 40daf692e..806aff07f 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessCopyServiceImpl.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessCopyServiceImpl.java
@@ -4,9 +4,9 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.pig4cloud.pigx.common.core.util.R;
import com.pig4cloud.pigx.flow.task.constant.FormTypeEnum;
import com.pig4cloud.pigx.flow.task.constant.ProcessInstanceConstant;
@@ -19,6 +19,7 @@ import com.pig4cloud.pigx.flow.task.service.IProcessNodeDataService;
import com.pig4cloud.pigx.flow.task.service.IProcessService;
import com.pig4cloud.pigx.flow.task.vo.FormItemVO;
import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -37,6 +38,8 @@ import java.util.Map;
@RequiredArgsConstructor
public class ProcessCopyServiceImpl extends ServiceImpl implements IProcessCopyService {
+ private final ObjectMapper objectMapper;
+
private final IProcessService processService;
private final IProcessNodeDataService nodeDataService;
@@ -46,6 +49,7 @@ public class ProcessCopyServiceImpl extends ServiceImpl variableMap = JSON.parseObject(formData, new TypeReference<>() {
+ Map variableMap = objectMapper.readValue(formData, new TypeReference<>() {
});
String nodeId = processCopy.getNodeId();
@@ -64,7 +68,8 @@ public class ProcessCopyServiceImpl extends ServiceImpl formPerms = node.getFormPerms();
- List jsonObjectList = JSON.parseArray(oaForms.getFormItems(), FormItemVO.class);
+ List jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() {
+ });
for (FormItemVO formItemVO : jsonObjectList) {
String fid = formItemVO.getId();
String perm = formPerms.get(fid);
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java
index 9c09bc90e..8b2863a45 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java
@@ -7,9 +7,9 @@ import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.pig4cloud.pigx.admin.api.entity.SysUser;
import com.pig4cloud.pigx.admin.api.feign.RemoteUserService;
import com.pig4cloud.pigx.common.core.util.R;
@@ -22,17 +22,15 @@ import com.pig4cloud.pigx.flow.task.constant.NodeUserTypeEnum;
import com.pig4cloud.pigx.flow.task.constant.ProcessInstanceConstant;
import com.pig4cloud.pigx.flow.task.dto.*;
import com.pig4cloud.pigx.flow.task.entity.Process;
-import com.pig4cloud.pigx.flow.task.entity.ProcessCopy;
-import com.pig4cloud.pigx.flow.task.entity.ProcessInstanceRecord;
-import com.pig4cloud.pigx.flow.task.entity.ProcessNodeRecord;
-import com.pig4cloud.pigx.flow.task.entity.ProcessNodeRecordAssignUser;
+import com.pig4cloud.pigx.flow.task.entity.*;
import com.pig4cloud.pigx.flow.task.service.*;
import com.pig4cloud.pigx.flow.task.utils.NodeFormatUtil;
import com.pig4cloud.pigx.flow.task.vo.FormItemVO;
import com.pig4cloud.pigx.flow.task.vo.NodeFormatParamVo;
-import com.pig4cloud.pigx.flow.task.vo.ProcessCopyVo;
import com.pig4cloud.pigx.flow.task.vo.NodeVo;
+import com.pig4cloud.pigx.flow.task.vo.ProcessCopyVo;
import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -61,6 +59,8 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
private final IProcessNodeRecordAssignUserService processNodeRecordAssignUserService;
+ private final ObjectMapper objectMapper;
+
/**
* 启动流程
* @param processInstanceParamDto
@@ -304,6 +304,7 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
* @param nodeFormatParamVo
* @return
*/
+ @SneakyThrows
@Override
public R formatStartNodeShow(NodeFormatParamVo nodeFormatParamVo) {
String flowId = nodeFormatParamVo.getFlowId();
@@ -334,7 +335,8 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
.one();
String data = processNodeRecordAssignUser.getData();
- Map variableMap = JSON.parseObject(data, new TypeReference<>() {
+
+ Map variableMap = objectMapper.readValue(data, new TypeReference<>() {
});
variableMap.putAll(paramMap);
paramMap.putAll(variableMap);
@@ -362,7 +364,8 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
Process oaForms = processService.getByFlowId(flowId);
String process = oaForms.getProcess();
- Node nodeDto = JSON.parseObject(process, Node.class);
+ Node nodeDto = objectMapper.readValue(process, new TypeReference<>() {
+ });
List processNodeShowDtos = NodeFormatUtil.formatProcessNodeShow(nodeDto, completeNodeSet,
new HashSet<>(), processInstanceId, paramMap);
@@ -375,6 +378,7 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
* @param processInstanceId
* @return
*/
+ @SneakyThrows
@Override
public R detail(String processInstanceId) {
ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery()
@@ -388,14 +392,16 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
// 发起人变量数据
String formData = processInstanceRecord.getFormData();
- Map variableMap = JSON.parseObject(formData, new TypeReference<>() {
+ Map variableMap = objectMapper.readValue(formData, new TypeReference<>() {
});
// 发起人表单权限
String process = oaForms.getProcess();
- Node nodeDto = JSON.parseObject(process, Node.class);
+
+ Node nodeDto = objectMapper.readValue(process, Node.class);
Map formPerms1 = nodeDto.getFormPerms();
- List jsonObjectList = JSON.parseArray(oaForms.getFormItems(), FormItemVO.class);
+ List jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() {
+ });
for (FormItemVO formItemVO : jsonObjectList) {
String id = formItemVO.getId();
String perm = formPerms1.get(id);
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessNodeRecordServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessNodeRecordServiceImpl.java
index 703c5d721..827d47507 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessNodeRecordServiceImpl.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessNodeRecordServiceImpl.java
@@ -1,7 +1,6 @@
package com.pig4cloud.pigx.flow.task.service.impl;
import cn.hutool.core.bean.BeanUtil;
-import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pig4cloud.pigx.common.core.util.R;
import com.pig4cloud.pigx.flow.task.constant.NodeStatusEnum;
@@ -52,7 +51,7 @@ public class ProcessNodeRecordServiceImpl extends ServiceImpl impl
private final Sequence flowSequence;
+ private final ObjectMapper objectMapper;
+
/**
* 获取详细数据
* @param flowId
@@ -68,15 +71,19 @@ public class ProcessServiceImpl extends ServiceImpl impl
* @param flowId 流程ID
* @return 流程详情
*/
+ @SneakyThrows
private ProcessVO getProcessVO(String flowId) {
Process oaForms = getByFlowId(flowId);
String process = oaForms.getProcess();
String formItems = oaForms.getFormItems();
- Node startNode = JSON.parseObject(process, Node.class);
+ Node startNode = objectMapper.readValue(process, new TypeReference<>() {
+ });
Map formPerms = startNode.getFormPerms();
- List formItemVOList = JSON.parseArray(formItems, FormItemVO.class);
+
+ List formItemVOList = objectMapper.readValue(formItems, new TypeReference<>() {
+ });
for (FormItemVO formItemVO : formItemVOList) {
String perm = MapUtil.getStr(formPerms, formItemVO.getId(), ProcessInstanceConstant.FormPermClass.EDIT);
formItemVO.setPerm(perm);
@@ -106,7 +113,7 @@ public class ProcessServiceImpl extends ServiceImpl impl
}
}
- oaForms.setFormItems(JSON.toJSONString(formItemVOList));
+ oaForms.setFormItems(objectMapper.writeValueAsString(formItemVOList));
List selectUserNodeId = NodeUtil.selectUserNodeId(startNode);
diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/TaskServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/TaskServiceImpl.java
index bf977ffe5..cd0d70e14 100644
--- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/TaskServiceImpl.java
+++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/TaskServiceImpl.java
@@ -6,8 +6,8 @@ import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.TypeReference;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.pig4cloud.pigx.common.core.util.R;
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
import com.pig4cloud.pigx.flow.task.api.feign.RemoteFlowEngineService;
@@ -23,6 +23,7 @@ import com.pig4cloud.pigx.flow.task.entity.ProcessNodeRecordAssignUser;
import com.pig4cloud.pigx.flow.task.service.*;
import com.pig4cloud.pigx.flow.task.vo.FormItemVO;
import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -47,12 +48,15 @@ public class TaskServiceImpl implements ITaskService {
private final IProcessInstanceRecordService processInstanceRecordService;
+ private final ObjectMapper objectMapper;
+
/**
* 查询任务
* @param taskId
* @param view
* @return
*/
+ @SneakyThrows
@Override
public R queryTask(String taskId, boolean view) {
@@ -82,7 +86,7 @@ public class TaskServiceImpl implements ITaskService {
if (processNodeRecordAssignUser != null) {
String data = processNodeRecordAssignUser.getData();
if (StrUtil.isNotBlank(data)) {
- Map collect = JSON.parseObject(data, new TypeReference