diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java index d94485d5..8dd6e3b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java @@ -206,4 +206,11 @@ public class ProcessApprovalRecord { */ @ApiModelProperty(value = "超期标识(0:未超期 1:已超期)") private String overDue; + + /** + * 快照Id + */ + @TableField(exist = false) + @ApiModelProperty(value = "快照Id") + private String snapshotId; } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index 711f48f9..6b9c7396 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -1,5 +1,6 @@ package com.jero.modules.activiti.service; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,6 +10,8 @@ import com.jero.common.system.api.ISysBaseAPI; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; +import com.jero.modules.activiti.process.common.entity.ProcessSnapshot; +import com.jero.modules.activiti.process.common.service.ProcessSnapshotService; import com.jero.modules.laws.common.util.CurrentUserUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -17,7 +20,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * @@ -29,6 +34,9 @@ public class ProcessApprovalRecordService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProcessApprovalRecord::getTaskId,taskId); @@ -52,7 +60,17 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList = this.page(page, wrapper); List records = pageList.getRecords(); + List taskIdList = records.stream().map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList()); + LambdaQueryWrapper processSnapshotWrapper = new LambdaQueryWrapper<>(); + processSnapshotWrapper.in(ProcessSnapshot::getTaskId, taskIdList); + List snapshotList = processSnapshotService.list(processSnapshotWrapper); + Map> snapshotMap = snapshotList.stream().collect(Collectors.groupingBy(ProcessSnapshot::getTaskId)); for (ProcessApprovalRecord record : records) { + List processSnapshots = snapshotMap.get(record.getTaskId()); + if (CollUtil.isNotEmpty(processSnapshots)) { + ProcessSnapshot snapshot = processSnapshots.get(0); + record.setSnapshotId(snapshot.getId()); + } String userId = record.getUserId(); String taskAcceptor = sysBaseAPI.translateUserRealNameFromTable(userId); String delegateBy = record.getDelegateBy();