feat(REQ-2752) - 调整自定义查询指定变量名的变量命令的实现逻辑

This commit is contained in:
wangli 2024-10-14 15:52:25 +08:00
parent 3563b5ba3d
commit af304ad293

View File

@ -7,9 +7,9 @@ import org.flowable.engine.ManagementService;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.impl.util.CommandContextUtil;
import org.flowable.variable.api.history.HistoricVariableInstance;
import org.flowable.variable.api.history.NativeHistoricVariableInstanceQuery;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.List;
/**
@ -34,14 +34,16 @@ public class CustomGetHistoricVariablesCmd implements Command<List<HistoricVaria
HistoryService historyService = processEngineConfiguration.getHistoryService();
historyService.createNativeHistoricVariableInstanceQuery()
NativeHistoricVariableInstanceQuery query = historyService.createNativeHistoricVariableInstanceQuery()
.sql(buildQuerySql(commandContext))
.parameter("processInstanceId", processInstanceId)
.parameter("variableNames", variableNames)
.list();
.parameter("processInstanceId", processInstanceId);
if (!CollectionUtils.isEmpty(variableNames)) {
for (int i = 0; i < variableNames.size(); i++) {
query.parameter("variableName" + i, variableNames.get(i));
}
}
return Collections.emptyList();
return query.list();
}
private String buildQuerySql(CommandContext commandContext) {
@ -51,9 +53,7 @@ public class CustomGetHistoricVariablesCmd implements Command<List<HistoricVaria
.append(" FROM ")
.append(managementService.getTableName(HistoricVariableInstance.class))
.append(" WHERE 1 = 1")
.append(" AND PROC_INST_ID_ = '")
.append(processInstanceId)
.append("'");
.append(" AND PROC_INST_ID_ = #{processInstanceId}");
if (!CollectionUtils.isEmpty(variableNames)) {
baseQuerySql.append(" AND (");
@ -61,7 +61,7 @@ public class CustomGetHistoricVariablesCmd implements Command<List<HistoricVaria
if (i != 0) {
baseQuerySql.append(" OR ");
}
baseQuerySql.append(" NAME_ = '").append(variableNames.get(i)).append("'");
baseQuerySql.append(" NAME_ = #{variableName").append(i).append("}");
}
}
return baseQuerySql.append(")").toString();