mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-14 22:29:00 +08:00
♻️ [工作流] 代办任务列表查询修改查询用户ID列表和去掉查询任务参数
(cherry picked from commit 84e0116e9bce2725dcd20274c4faf1872f7c86fe)
This commit is contained in:
1 parent
a616bcc2de
commit
51a20ad898
4 files changed
+486
-494
No files matched your search
+280
-280
@@ -45,51 +45,52 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class ProcessInstanceServiceImpl implements IProcessInstanceService {
|
||||
|
||||
private final RemoteFlowEngineService flowEngineService;
|
||||
private final RemoteFlowEngineService flowEngineService;
|
||||
|
||||
private final RemoteUserService userService;
|
||||
private final RemoteUserService userService;
|
||||
|
||||
private final IProcessInstanceRecordService processInstanceRecordService;
|
||||
private final IProcessInstanceRecordService processInstanceRecordService;
|
||||
|
||||
private final IProcessCopyService processCopyService;
|
||||
private final IProcessCopyService processCopyService;
|
||||
|
||||
private final IProcessService processService;
|
||||
private final IProcessService processService;
|
||||
|
||||
private final IProcessNodeRecordService processNodeRecordService;
|
||||
private final IProcessNodeRecordService processNodeRecordService;
|
||||
|
||||
private final IProcessNodeRecordAssignUserService processNodeRecordAssignUserService;
|
||||
private final IProcessNodeRecordAssignUserService processNodeRecordAssignUserService;
|
||||
|
||||
private final ObjectMapper objectMapper;
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
/**
|
||||
* 启动流程
|
||||
* @param processInstanceParamDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R startProcessInstance(ProcessInstanceParamDto processInstanceParamDto) {
|
||||
/**
|
||||
* 启动流程
|
||||
*
|
||||
* @param processInstanceParamDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R startProcessInstance(ProcessInstanceParamDto processInstanceParamDto) {
|
||||
|
||||
PigxUser user = SecurityUtils.getUser();
|
||||
PigxUser user = SecurityUtils.getUser();
|
||||
|
||||
processInstanceParamDto.setStartUserId(String.valueOf(user.getId()));
|
||||
Map<String, Object> paramMap = processInstanceParamDto.getParamMap();
|
||||
Dict rootUser = Dict.create()
|
||||
.set("id", user.getId())
|
||||
.set("name", user.getUsername())
|
||||
.set("type", NodeUserTypeEnum.USER.getKey());
|
||||
paramMap.put("root", CollUtil.newArrayList(rootUser));
|
||||
return flowEngineService.startProcess(processInstanceParamDto);
|
||||
}
|
||||
processInstanceParamDto.setStartUserId(String.valueOf(user.getId()));
|
||||
Map<String, Object> paramMap = processInstanceParamDto.getParamMap();
|
||||
Dict rootUser = Dict.create()
|
||||
.set("id", user.getId())
|
||||
.set("name", user.getUsername())
|
||||
.set("type", NodeUserTypeEnum.USER.getKey());
|
||||
paramMap.put("root", CollUtil.newArrayList(rootUser));
|
||||
return flowEngineService.startProcess(processInstanceParamDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前登录用户的待办任务
|
||||
* @param pageVO
|
||||
* @param taskDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineTask(TaskQueryParamDto taskQueryParamDto) {
|
||||
taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString());
|
||||
/**
|
||||
* 查询当前登录用户的待办任务
|
||||
*
|
||||
* @param taskQueryParamDto 查询参数
|
||||
* @return R
|
||||
*/
|
||||
@Override
|
||||
public R queryMineTask(TaskQueryParamDto taskQueryParamDto) {
|
||||
taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString());
|
||||
R<Page<TaskDto>> r = flowEngineService.queryAssignTask(taskQueryParamDto);
|
||||
|
||||
if (CollUtil.isEmpty(r.getData().getRecords())) {
|
||||
@@ -108,10 +109,9 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
|
||||
.list();
|
||||
|
||||
// 发起人
|
||||
List<SysUser> startUserList = processInstanceRecordList.stream()
|
||||
.map(ProcessInstanceRecord::getUserId)
|
||||
.map(userId -> userService.getUserById(userId).getData())
|
||||
.toList();
|
||||
// 发起人
|
||||
List<Long> collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList());
|
||||
List<SysUser> startUserList = userService.getUserById(collect).getData();
|
||||
|
||||
Page<TaskDto> pageResultDto = r.getData();
|
||||
List<TaskDto> taskDtoList = new ArrayList<>();
|
||||
@@ -141,304 +141,304 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService {
|
||||
pageResultDto.setRecords(taskDtoList);
|
||||
|
||||
return R.ok(pageResultDto);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询已办任务
|
||||
* @param taskQueryParamDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineEndTask(TaskQueryParamDto taskQueryParamDto) {
|
||||
taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString());
|
||||
R<Page<TaskDto>> r = flowEngineService.queryCompletedTask(taskQueryParamDto);
|
||||
/**
|
||||
* 查询已办任务
|
||||
*
|
||||
* @param taskQueryParamDto 查询参数
|
||||
* @return R
|
||||
*/
|
||||
@Override
|
||||
public R queryMineEndTask(TaskQueryParamDto taskQueryParamDto) {
|
||||
taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString());
|
||||
R<Page<TaskDto>> r = flowEngineService.queryCompletedTask(taskQueryParamDto);
|
||||
|
||||
Page<TaskDto> pageResultDto = r.getData();
|
||||
List<TaskDto> records = pageResultDto.getRecords();
|
||||
if (CollUtil.isEmpty(records)) {
|
||||
return R.ok(pageResultDto);
|
||||
Page<TaskDto> pageResultDto = r.getData();
|
||||
List<TaskDto> records = pageResultDto.getRecords();
|
||||
if (CollUtil.isEmpty(records)) {
|
||||
return R.ok(pageResultDto);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Set<String> processInstanceIdSet = records.stream()
|
||||
.map(TaskDto::getProcessInstanceId)
|
||||
.collect(Collectors.toSet());
|
||||
Set<String> processInstanceIdSet = records.stream()
|
||||
.map(TaskDto::getProcessInstanceId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 流程实例记录
|
||||
List<ProcessInstanceRecord> processInstanceRecordList = processInstanceRecordService.lambdaQuery()
|
||||
.in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet)
|
||||
.list();
|
||||
// 流程实例记录
|
||||
List<ProcessInstanceRecord> processInstanceRecordList = processInstanceRecordService.lambdaQuery()
|
||||
.in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet)
|
||||
.list();
|
||||
|
||||
// 发起人
|
||||
List<SysUser> startUserList = processInstanceRecordList.stream()
|
||||
.map(ProcessInstanceRecord::getUserId)
|
||||
.map(userId -> userService.getUserById(userId).getData())
|
||||
.toList();
|
||||
// 发起人
|
||||
List<Long> collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList());
|
||||
List<SysUser> startUserList = userService.getUserById(collect).getData();
|
||||
|
||||
List<TaskDto> taskDtoList = new ArrayList<>();
|
||||
for (TaskDto record : records) {
|
||||
List<TaskDto> taskDtoList = new ArrayList<>();
|
||||
for (TaskDto record : records) {
|
||||
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream()
|
||||
.filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId()))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream()
|
||||
.filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId()))
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
|
||||
if (processInstanceRecord != null) {
|
||||
if (processInstanceRecord != null) {
|
||||
|
||||
record.setProcessName(processInstanceRecord.getName());
|
||||
record.setProcessName(processInstanceRecord.getName());
|
||||
|
||||
SysUser startUser = startUserList.stream()
|
||||
.filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId())
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
SysUser startUser = startUserList.stream()
|
||||
.filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId())
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
|
||||
record.setRootUserId(processInstanceRecord.getUserId());
|
||||
record.setGroupName(processInstanceRecord.getGroupName());
|
||||
record.setRootUserName(startUser.getName());
|
||||
record.setRootUserAvatarUrl(startUser.getAvatar());
|
||||
record.setTaskId(record.getTaskId());
|
||||
record.setStartTime(processInstanceRecord.getCreateTime());
|
||||
taskDtoList.add(record);
|
||||
}
|
||||
}
|
||||
record.setRootUserId(processInstanceRecord.getUserId());
|
||||
record.setGroupName(processInstanceRecord.getGroupName());
|
||||
record.setRootUserName(startUser.getName());
|
||||
record.setRootUserAvatarUrl(startUser.getAvatar());
|
||||
record.setTaskId(record.getTaskId());
|
||||
record.setStartTime(processInstanceRecord.getCreateTime());
|
||||
taskDtoList.add(record);
|
||||
}
|
||||
}
|
||||
|
||||
pageResultDto.setRecords(taskDtoList);
|
||||
pageResultDto.setRecords(taskDtoList);
|
||||
|
||||
return R.ok(pageResultDto);
|
||||
}
|
||||
return R.ok(pageResultDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 流程结束
|
||||
* @param processsInstanceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R end(String processsInstanceId) {
|
||||
processInstanceRecordService.lambdaUpdate()
|
||||
.set(ProcessInstanceRecord::getEndTime, new Date())
|
||||
.set(ProcessInstanceRecord::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processsInstanceId)
|
||||
.update(new ProcessInstanceRecord());
|
||||
return R.ok();
|
||||
}
|
||||
/**
|
||||
* 流程结束
|
||||
*
|
||||
* @param processsInstanceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R end(String processsInstanceId) {
|
||||
processInstanceRecordService.lambdaUpdate()
|
||||
.set(ProcessInstanceRecord::getEndTime, new Date())
|
||||
.set(ProcessInstanceRecord::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processsInstanceId)
|
||||
.update(new ProcessInstanceRecord());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询我发起的
|
||||
* @param pageDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineStarted(TaskQueryParamDto taskQueryParamDto) {
|
||||
/**
|
||||
* 查询我发起的
|
||||
*
|
||||
* @param taskQueryParamDto 查询条件
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineStarted(TaskQueryParamDto taskQueryParamDto) {
|
||||
|
||||
long userId = SecurityUtils.getUser().getId();
|
||||
long userId = SecurityUtils.getUser().getId();
|
||||
|
||||
Page<ProcessInstanceRecord> instanceRecordPage = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getUserId, userId)
|
||||
.eq(ProcessInstanceRecord::getStatus, taskQueryParamDto.getStatus())
|
||||
.between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessInstanceRecord::getCreateTime,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null)
|
||||
.orderByDesc(ProcessInstanceRecord::getCreateTime)
|
||||
.page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize()));
|
||||
Page<ProcessInstanceRecord> instanceRecordPage = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getUserId, userId)
|
||||
.eq(ProcessInstanceRecord::getStatus, taskQueryParamDto.getStatus())
|
||||
.between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessInstanceRecord::getCreateTime,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null)
|
||||
.orderByDesc(ProcessInstanceRecord::getCreateTime)
|
||||
.page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize()));
|
||||
|
||||
return R.ok(instanceRecordPage);
|
||||
}
|
||||
return R.ok(instanceRecordPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询抄送给我的
|
||||
* @param pageDto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineCC(TaskQueryParamDto taskQueryParamDto) {
|
||||
/**
|
||||
* 查询抄送给我的
|
||||
*
|
||||
* @param taskQueryParamDto 查询参数
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R queryMineCC(TaskQueryParamDto taskQueryParamDto) {
|
||||
|
||||
long userId = SecurityUtils.getUser().getId();
|
||||
long userId = SecurityUtils.getUser().getId();
|
||||
|
||||
Page<ProcessCopy> page = processCopyService.lambdaQuery()
|
||||
.eq(ProcessCopy::getUserId, userId)
|
||||
.between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessCopy::getCreateTime,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null)
|
||||
.orderByDesc(ProcessCopy::getNodeTime)
|
||||
.page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize()));
|
||||
Page<ProcessCopy> page = processCopyService.lambdaQuery()
|
||||
.eq(ProcessCopy::getUserId, userId)
|
||||
.between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessCopy::getCreateTime,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null,
|
||||
ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null)
|
||||
.orderByDesc(ProcessCopy::getNodeTime)
|
||||
.page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize()));
|
||||
|
||||
List<ProcessCopy> records = page.getRecords();
|
||||
List<ProcessCopy> records = page.getRecords();
|
||||
|
||||
List<ProcessCopyVo> processCopyVoList = BeanUtil.copyToList(records, ProcessCopyVo.class);
|
||||
List<ProcessCopyVo> processCopyVoList = BeanUtil.copyToList(records, ProcessCopyVo.class);
|
||||
|
||||
if (CollUtil.isNotEmpty(records)) {
|
||||
// 发起人
|
||||
List<SysUser> startUserList = records.stream()
|
||||
.map(ProcessCopy::getStartUserId)
|
||||
.map(id -> userService.getUserById(id).getData())
|
||||
.toList();
|
||||
if (CollUtil.isNotEmpty(records)) {
|
||||
// 发起人
|
||||
List<Long> userIdList = records.stream().map(ProcessCopy::getStartUserId).collect(Collectors.toList());
|
||||
List<SysUser> startUserList = userService.getUserById(userIdList).getData();
|
||||
|
||||
for (ProcessCopyVo record : processCopyVoList) {
|
||||
SysUser startUser = startUserList.stream()
|
||||
.filter(w -> w.getUserId().longValue() == record.getStartUserId())
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
record.setStartUserName(startUser.getUsername());
|
||||
}
|
||||
}
|
||||
for (ProcessCopyVo record : processCopyVoList) {
|
||||
SysUser startUser = startUserList.stream()
|
||||
.filter(w -> w.getUserId().longValue() == record.getStartUserId())
|
||||
.findAny()
|
||||
.orElse(null);
|
||||
record.setStartUserName(startUser.getUsername());
|
||||
}
|
||||
}
|
||||
|
||||
Page p = BeanUtil.copyProperties(page, Page.class);
|
||||
Page p = BeanUtil.copyProperties(page, Page.class);
|
||||
|
||||
p.setRecords(processCopyVoList);
|
||||
p.setRecords(processCopyVoList);
|
||||
|
||||
return R.ok(p);
|
||||
}
|
||||
return R.ok(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化流程显示
|
||||
* @param nodeFormatParamVo
|
||||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public R formatStartNodeShow(NodeFormatParamVo nodeFormatParamVo) {
|
||||
String flowId = nodeFormatParamVo.getFlowId();
|
||||
String processInstanceId = nodeFormatParamVo.getProcessInstanceId();
|
||||
if (StrUtil.isAllBlank(flowId, processInstanceId)) {
|
||||
return R.ok(new ArrayList<>());
|
||||
}
|
||||
/**
|
||||
* 格式化流程显示
|
||||
*
|
||||
* @param nodeFormatParamVo
|
||||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public R formatStartNodeShow(NodeFormatParamVo nodeFormatParamVo) {
|
||||
String flowId = nodeFormatParamVo.getFlowId();
|
||||
String processInstanceId = nodeFormatParamVo.getProcessInstanceId();
|
||||
if (StrUtil.isAllBlank(flowId, processInstanceId)) {
|
||||
return R.ok(new ArrayList<>());
|
||||
}
|
||||
|
||||
if (StrUtil.isBlankIfStr(flowId) && StrUtil.isNotBlank(processInstanceId)) {
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId)
|
||||
.one();
|
||||
flowId = processInstanceRecord.getFlowId();
|
||||
if (StrUtil.isBlankIfStr(flowId) && StrUtil.isNotBlank(processInstanceId)) {
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId)
|
||||
.one();
|
||||
flowId = processInstanceRecord.getFlowId();
|
||||
|
||||
}
|
||||
Map<String, Object> paramMap = nodeFormatParamVo.getParamMap();
|
||||
if (StrUtil.isNotBlank(nodeFormatParamVo.getTaskId())) {
|
||||
VariableQueryParamDto variableQueryParamDto = new VariableQueryParamDto();
|
||||
variableQueryParamDto.setTaskId(nodeFormatParamVo.getTaskId());
|
||||
R<Map<String, Object>> r = flowEngineService.queryTaskVariables(variableQueryParamDto);
|
||||
if (!r.isOk()) {
|
||||
ProcessNodeRecordAssignUser processNodeRecordAssignUser = processNodeRecordAssignUserService
|
||||
.lambdaQuery()
|
||||
.eq(ProcessNodeRecordAssignUser::getTaskId, nodeFormatParamVo.getTaskId())
|
||||
.eq(ProcessNodeRecordAssignUser::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.last("limit 1")
|
||||
.orderByDesc(ProcessNodeRecordAssignUser::getEndTime)
|
||||
.one();
|
||||
}
|
||||
Map<String, Object> paramMap = nodeFormatParamVo.getParamMap();
|
||||
if (StrUtil.isNotBlank(nodeFormatParamVo.getTaskId())) {
|
||||
VariableQueryParamDto variableQueryParamDto = new VariableQueryParamDto();
|
||||
variableQueryParamDto.setTaskId(nodeFormatParamVo.getTaskId());
|
||||
R<Map<String, Object>> r = flowEngineService.queryTaskVariables(variableQueryParamDto);
|
||||
if (!r.isOk()) {
|
||||
ProcessNodeRecordAssignUser processNodeRecordAssignUser = processNodeRecordAssignUserService
|
||||
.lambdaQuery()
|
||||
.eq(ProcessNodeRecordAssignUser::getTaskId, nodeFormatParamVo.getTaskId())
|
||||
.eq(ProcessNodeRecordAssignUser::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.last("limit 1")
|
||||
.orderByDesc(ProcessNodeRecordAssignUser::getEndTime)
|
||||
.one();
|
||||
|
||||
String data = processNodeRecordAssignUser.getData();
|
||||
String data = processNodeRecordAssignUser.getData();
|
||||
|
||||
Map<String, Object> variableMap = objectMapper.readValue(data, new TypeReference<>() {
|
||||
});
|
||||
variableMap.putAll(paramMap);
|
||||
paramMap.putAll(variableMap);
|
||||
}
|
||||
else {
|
||||
Map<String, Object> variableMap = r.getData();
|
||||
variableMap.putAll(paramMap);
|
||||
paramMap.putAll(variableMap);
|
||||
}
|
||||
Map<String, Object> variableMap = objectMapper.readValue(data, new TypeReference<>() {
|
||||
});
|
||||
variableMap.putAll(paramMap);
|
||||
paramMap.putAll(variableMap);
|
||||
} else {
|
||||
Map<String, Object> variableMap = r.getData();
|
||||
variableMap.putAll(paramMap);
|
||||
paramMap.putAll(variableMap);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Set<String> completeNodeSet = new HashSet<>();
|
||||
Set<String> completeNodeSet = new HashSet<>();
|
||||
|
||||
if (StrUtil.isNotBlank(processInstanceId)) {
|
||||
List<ProcessNodeRecord> processNodeRecordList = processNodeRecordService.lambdaQuery()
|
||||
.eq(ProcessNodeRecord::getProcessInstanceId, processInstanceId)
|
||||
.eq(ProcessNodeRecord::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.list();
|
||||
Set<String> collect = processNodeRecordList.stream()
|
||||
.map(ProcessNodeRecord::getNodeId)
|
||||
.collect(Collectors.toSet());
|
||||
completeNodeSet.addAll(collect);
|
||||
}
|
||||
if (StrUtil.isNotBlank(processInstanceId)) {
|
||||
List<ProcessNodeRecord> processNodeRecordList = processNodeRecordService.lambdaQuery()
|
||||
.eq(ProcessNodeRecord::getProcessInstanceId, processInstanceId)
|
||||
.eq(ProcessNodeRecord::getStatus, NodeStatusEnum.YJS.getCode())
|
||||
.list();
|
||||
Set<String> collect = processNodeRecordList.stream()
|
||||
.map(ProcessNodeRecord::getNodeId)
|
||||
.collect(Collectors.toSet());
|
||||
completeNodeSet.addAll(collect);
|
||||
}
|
||||
|
||||
Process oaForms = processService.getByFlowId(flowId);
|
||||
String process = oaForms.getProcess();
|
||||
Node nodeDto = objectMapper.readValue(process, new TypeReference<>() {
|
||||
});
|
||||
Process oaForms = processService.getByFlowId(flowId);
|
||||
String process = oaForms.getProcess();
|
||||
Node nodeDto = objectMapper.readValue(process, new TypeReference<>() {
|
||||
});
|
||||
|
||||
List<NodeVo> processNodeShowDtos = NodeFormatUtil.formatProcessNodeShow(nodeDto, completeNodeSet,
|
||||
new HashSet<>(), processInstanceId, paramMap);
|
||||
List<NodeVo> processNodeShowDtos = NodeFormatUtil.formatProcessNodeShow(nodeDto, completeNodeSet,
|
||||
new HashSet<>(), processInstanceId, paramMap);
|
||||
|
||||
return R.ok(processNodeShowDtos);
|
||||
}
|
||||
return R.ok(processNodeShowDtos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 流程详情
|
||||
* @param processInstanceId
|
||||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public R detail(String processInstanceId) {
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId)
|
||||
.one();
|
||||
/**
|
||||
* 流程详情
|
||||
*
|
||||
* @param processInstanceId
|
||||
* @return
|
||||
*/
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public R detail(String processInstanceId) {
|
||||
ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery()
|
||||
.eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId)
|
||||
.one();
|
||||
|
||||
Process oaForms = processService.getByFlowId(processInstanceRecord.getFlowId());
|
||||
if (oaForms == null) {
|
||||
return R.failed("流程不存在");
|
||||
}
|
||||
Process oaForms = processService.getByFlowId(processInstanceRecord.getFlowId());
|
||||
if (oaForms == null) {
|
||||
return R.failed("流程不存在");
|
||||
}
|
||||
|
||||
// 发起人变量数据
|
||||
String formData = processInstanceRecord.getFormData();
|
||||
Map<String, Object> variableMap = objectMapper.readValue(formData, new TypeReference<>() {
|
||||
});
|
||||
// 发起人表单权限
|
||||
String process = oaForms.getProcess();
|
||||
// 发起人变量数据
|
||||
String formData = processInstanceRecord.getFormData();
|
||||
Map<String, Object> variableMap = objectMapper.readValue(formData, new TypeReference<>() {
|
||||
});
|
||||
// 发起人表单权限
|
||||
String process = oaForms.getProcess();
|
||||
|
||||
Node nodeDto = objectMapper.readValue(process, Node.class);
|
||||
Map<String, String> formPerms1 = nodeDto.getFormPerms();
|
||||
Node nodeDto = objectMapper.readValue(process, Node.class);
|
||||
Map<String, String> formPerms1 = nodeDto.getFormPerms();
|
||||
|
||||
List<FormItemVO> jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() {
|
||||
});
|
||||
for (FormItemVO formItemVO : jsonObjectList) {
|
||||
String id = formItemVO.getId();
|
||||
String perm = formPerms1.get(id);
|
||||
List<FormItemVO> jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() {
|
||||
});
|
||||
for (FormItemVO formItemVO : jsonObjectList) {
|
||||
String id = formItemVO.getId();
|
||||
String perm = formPerms1.get(id);
|
||||
|
||||
formItemVO.setPerm(StrUtil.isBlankIfStr(perm) ? ProcessInstanceConstant.FormPermClass.READ
|
||||
: (StrUtil.equals(perm, ProcessInstanceConstant.FormPermClass.HIDE) ? perm
|
||||
: ProcessInstanceConstant.FormPermClass.READ));
|
||||
formItemVO.setPerm(StrUtil.isBlankIfStr(perm) ? ProcessInstanceConstant.FormPermClass.READ
|
||||
: (StrUtil.equals(perm, ProcessInstanceConstant.FormPermClass.HIDE) ? perm
|
||||
: ProcessInstanceConstant.FormPermClass.READ));
|
||||
|
||||
if (formItemVO.getType().equals(FormTypeEnum.LAYOUT.getType())) {
|
||||
// 明细
|
||||
List<Map<String, Object>> subParamList = MapUtil.get(variableMap, id,
|
||||
new cn.hutool.core.lang.TypeReference<>() {
|
||||
});
|
||||
if (formItemVO.getType().equals(FormTypeEnum.LAYOUT.getType())) {
|
||||
// 明细
|
||||
List<Map<String, Object>> subParamList = MapUtil.get(variableMap, id,
|
||||
new cn.hutool.core.lang.TypeReference<>() {
|
||||
});
|
||||
|
||||
Object value = formItemVO.getProps().getValue();
|
||||
Object value = formItemVO.getProps().getValue();
|
||||
|
||||
List<List<FormItemVO>> l = new ArrayList<>();
|
||||
for (Map<String, Object> map : subParamList) {
|
||||
List<FormItemVO> subItemList = Convert.toList(FormItemVO.class, value);
|
||||
for (FormItemVO itemVO : subItemList) {
|
||||
itemVO.getProps().setValue(map.get(itemVO.getId()));
|
||||
List<List<FormItemVO>> l = new ArrayList<>();
|
||||
for (Map<String, Object> map : subParamList) {
|
||||
List<FormItemVO> subItemList = Convert.toList(FormItemVO.class, value);
|
||||
for (FormItemVO itemVO : subItemList) {
|
||||
itemVO.getProps().setValue(map.get(itemVO.getId()));
|
||||
|
||||
String permSub = formPerms1.get(itemVO.getId());
|
||||
String permSub = formPerms1.get(itemVO.getId());
|
||||
|
||||
itemVO.setPerm(StrUtil.isBlankIfStr(permSub) ? ProcessInstanceConstant.FormPermClass.READ
|
||||
: (StrUtil.equals(permSub, ProcessInstanceConstant.FormPermClass.HIDE) ? permSub
|
||||
: ProcessInstanceConstant.FormPermClass.READ));
|
||||
itemVO.setPerm(StrUtil.isBlankIfStr(permSub) ? ProcessInstanceConstant.FormPermClass.READ
|
||||
: (StrUtil.equals(permSub, ProcessInstanceConstant.FormPermClass.HIDE) ? permSub
|
||||
: ProcessInstanceConstant.FormPermClass.READ));
|
||||
|
||||
}
|
||||
l.add(subItemList);
|
||||
}
|
||||
formItemVO.getProps().setValue(l);
|
||||
}
|
||||
l.add(subItemList);
|
||||
}
|
||||
formItemVO.getProps().setValue(l);
|
||||
|
||||
}
|
||||
else {
|
||||
formItemVO.getProps().setValue(variableMap.get(id));
|
||||
} else {
|
||||
formItemVO.getProps().setValue(variableMap.get(id));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Dict set = Dict.create()
|
||||
.set("processInstanceId", processInstanceId)
|
||||
.set("process", oaForms.getProcess())
|
||||
}
|
||||
Dict set = Dict.create()
|
||||
.set("processInstanceId", processInstanceId)
|
||||
.set("process", oaForms.getProcess())
|
||||
|
||||
.set("formItems", jsonObjectList);
|
||||
.set("formItems", jsonObjectList);
|
||||
|
||||
return R.ok(set);
|
||||
}
|
||||
return R.ok(set);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -163,7 +163,7 @@ public class RemoteServiceImpl implements IRemoteService {
|
||||
*/
|
||||
@Override
|
||||
public R<Map<String, Object>> queryUserAllInfo(long userId) {
|
||||
SysUser sysUser = userService.getUserById(userId).getData();
|
||||
SysUser sysUser = userService.getUserById(CollUtil.newArrayList(userId)).getData().get(0);
|
||||
return R.ok(BeanUtil.beanToMap(sysUser));
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -257,7 +257,7 @@ public class NodeFormatUtil {
|
||||
}
|
||||
|
||||
RemoteUserService userService = SpringUtil.getBean(RemoteUserService.class);
|
||||
SysUser user = userService.getUserById(userId).getData();
|
||||
SysUser user = userService.getUserById(CollUtil.newArrayList(userId)).getData().get(0);
|
||||
if (user == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user