update - 查询我已办的任务时,过滤多实例或签被别人完成的任务

This commit is contained in:
wangli 2023-09-11 16:16:09 +08:00
parent 89dbf01ebc
commit e2210b806e
3 changed files with 20 additions and 18 deletions

View File

@ -11,6 +11,7 @@ import org.springframework.beans.BeanUtils;
import java.util.*;
import static cn.axzo.workflow.core.service.converter.BpmnHistoricTaskInstanceConverter.DELETE_REASON_END;
import static org.mapstruct.NullValueCheckStrategy.ALWAYS;
/**
@ -47,17 +48,20 @@ public interface BpmnTaskDonePageItemConverter extends EntityConverter<BpmnTaskD
}
List<BpmnTaskDonePageItemVO> vos = new ArrayList<>();
tasks.forEach(i -> {
BpmnTaskDonePageItemVO vo = toVo(i);
HistoricProcessInstance instance = historicProcessInstanceMap.getOrDefault(i.getProcessInstanceId(), null);
if (Objects.nonNull(instance)) {
vo.setProcessInstanceId(instance.getId());
vo.setProcessInstanceName(instance.getName());
vo.setBusinessKey(instance.getBusinessKey());
vo.setStartUserId(instance.getStartUserId());
vo.setStartTime(instance.getStartTime());
vo.setProcessInstanceEndTime(instance.getEndTime());
vo.setResult(BpmProcessInstanceResultEnum.valueOfStatus(instance.getBusinessStatus()));
vos.add(vo);
if (!Objects.equals(DELETE_REASON_END, i.getDeleteReason())) {
BpmnTaskDonePageItemVO vo = toVo(i);
HistoricProcessInstance instance = historicProcessInstanceMap.getOrDefault(i.getProcessInstanceId(),
null);
if (Objects.nonNull(instance)) {
vo.setProcessInstanceId(instance.getId());
vo.setProcessInstanceName(instance.getName());
vo.setBusinessKey(instance.getBusinessKey());
vo.setStartUserId(instance.getStartUserId());
vo.setStartTime(instance.getStartTime());
vo.setProcessInstanceEndTime(instance.getEndTime());
vo.setResult(BpmProcessInstanceResultEnum.valueOfStatus(instance.getBusinessStatus()));
vos.add(vo);
}
}
});
return vos;

View File

@ -91,8 +91,7 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
} else {
StringBuilder baseQuerySql = new StringBuilder();
NativeHistoricTaskInstanceQuery nativeQuery = compositeTodoQuery(dto, baseQuerySql);
NativeHistoricTaskInstanceQuery dataSqlQuery = nativeQuery.parameter("assignee", dto.getUserId());
tasks = dataSqlQuery.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
tasks = nativeQuery.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
NativeHistoricTaskInstanceQuery countSqlQuery = nativeQuery.sql(countSql(baseQuerySql));
resultTotalCount = countSqlQuery.count();
}
@ -129,8 +128,7 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
} else {
StringBuilder baseQuerySql = new StringBuilder();
NativeHistoricTaskInstanceQuery nativeQuery = compositeDoneQuery(dto, baseQuerySql);
NativeHistoricTaskInstanceQuery dataSqlQuery = nativeQuery.parameter("assignee", dto.getUserId());
tasks = dataSqlQuery.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
tasks = nativeQuery.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
NativeHistoricTaskInstanceQuery countSqlQuery = nativeQuery.sql(countSql(baseQuerySql));
resultTotalCount = countSqlQuery.count();
}
@ -150,7 +148,7 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
baseQuerySql.append(sqlConnectors(baseQuerySql)).append(" a.END_TIME_ is null")
.append(sqlConnectors(baseQuerySql)).append(" a.ASSIGNEE_ = #{assignee}")
.append(" ORDER BY a.END_TIME_ DESC");
nativeQuery.sql(baseQuerySql.toString());
nativeQuery.sql(baseQuerySql.toString()).parameter("assignee", dto.getUserId());
return nativeQuery;
}
@ -159,7 +157,7 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
baseQuerySql.append(sqlConnectors(baseQuerySql)).append(" a.END_TIME_ is not null")
.append(sqlConnectors(baseQuerySql)).append(" a.ASSIGNEE_ = #{assignee}")
.append(" ORDER BY a.START_TIME_ DESC");
nativeQuery.sql(baseQuerySql.toString());
nativeQuery.sql(baseQuerySql.toString()).parameter("assignee", dto.getUserId());
return nativeQuery;
}

View File

@ -21,7 +21,7 @@ public class BpmTaskDelegateImpl implements BpmTaskDelegate {
public List<BpmTaskDelegateAssigner> calculateAssignerAtExecution(BpmTaskCalculateDTO delegateTask) {
log.info("计算审核人,当前的审批任务 DefinitionKey 为: {}", delegateTask.getTaskDefinitionKey());
List<BpmTaskDelegateAssigner> assigners = new ArrayList<>();
if (Objects.equals("sid-6589489F-EE93-43F2-A98F-78F5A578D39B", delegateTask.getTaskDefinitionKey())) {
if (Objects.equals("NODE1687954452526_0.3121942479568347_1", delegateTask.getTaskDefinitionKey())) {
BpmTaskDelegateAssigner user1 = new BpmTaskDelegateAssigner();
user1.setAssignerId("66646");
user1.setAssignerName("王军");