fix - 修复台账接口的租户字段没参与查询条件的问题
This commit is contained in:
parent
fa66575c41
commit
34b110c022
@ -341,7 +341,7 @@ public class BpmTransformUtil {
|
||||
createExecutionListener(EVENTNAME_START, executionListeners);
|
||||
// End 事件,主要想用于多实例节点保留一条历史的任务信息, 后续研究过程中, 发现通过更优的解决方案, 所以注释掉下面一行
|
||||
// createExecutionListener(EVENTNAME_END, executionListeners);
|
||||
|
||||
userTask.setExecutionListeners(executionListeners);
|
||||
|
||||
if (!ObjectUtils.isEmpty(flowNode.getProperty()) && Boolean.TRUE.equals(flowNode.getProperty().getIsMultiTask())) {
|
||||
BpmnJsonNodeProperty property = flowNode.getProperty();
|
||||
|
||||
@ -60,7 +60,7 @@ public interface BpmnTaskService {
|
||||
List<BpmnTaskInstanceVO> getActiveTasksByProcessInstanceId(String processInstanceId, String tenantId);
|
||||
|
||||
|
||||
FormInfo getTaskFormModel(String taskId);
|
||||
FormInfo getTaskFormModel(String taskId, String tenantId);
|
||||
|
||||
/**
|
||||
* 修改审批任务审批人
|
||||
|
||||
@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@ -23,6 +24,7 @@ public class BpmnTaskPageSearchDTO extends BpmPageParam {
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "租户Id", example = "1")
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
|
||||
@ApiModelProperty(value = "审核单类型,多选就'逗号'分隔", example = "1")
|
||||
|
||||
@ -23,4 +23,7 @@ public class FormDefinitionUpdateDTO {
|
||||
@ApiModelProperty(value = "表单定义内容")
|
||||
private FormDefinitionDTO formDefinition;
|
||||
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
|
||||
@ -31,4 +31,7 @@ public class FormContentUpdateDTO {
|
||||
@ApiModelProperty(value = "任务归属人标识", example = "1")
|
||||
@NotBlank(message = "任务归属人不能为空")
|
||||
private String userId;
|
||||
|
||||
@NotBlank(message = "租户不能为空")
|
||||
private String tenantId;
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ public class BpmnProcessDefinitionServiceImpl implements BpmnProcessDefinitionSe
|
||||
.key(model.getKey())
|
||||
.name(model.getName())
|
||||
.category(model.getCategory())
|
||||
.tenantId(String.valueOf(model.getTenantId()))
|
||||
.tenantId(model.getTenantId())
|
||||
.addBytes(model.getKey() + BPMN_FILE_SUFFIX, bpmnBytes)
|
||||
// 关闭 BPMN 文件内容校验
|
||||
.disableBpmnValidation()
|
||||
|
||||
@ -112,6 +112,9 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
if (Objects.nonNull(dto.getResult())) {
|
||||
query.processInstanceBusinessStatus(dto.getResult().getStatus());
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getTenantId())) {
|
||||
query.processInstanceTenantId(dto.getTenantId());
|
||||
}
|
||||
List<HistoricProcessInstance> instances = query.orderByProcessInstanceStartTime().desc()
|
||||
.listPage((dto.getPageNo() - 1) * dto.getPageSize(), dto.getPageSize());
|
||||
|
||||
@ -132,7 +135,7 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
|
||||
}
|
||||
|
||||
@Override
|
||||
public HistoricProcessInstance getProcessInstance(String id, String tenantId, Boolean hasVariable) {
|
||||
public HistoricProcessInstance getProcessInstance(String id, @Nullable String tenantId, Boolean hasVariable) {
|
||||
HistoricProcessInstanceQuery query = historyService.createHistoricProcessInstanceQuery().processInstanceId(id);
|
||||
if (Boolean.TRUE.equals(hasVariable)) {
|
||||
query.includeProcessVariables();
|
||||
|
||||
@ -141,6 +141,9 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, tenantId);
|
||||
}
|
||||
return bpmnModelConverter.toVo(model);
|
||||
}
|
||||
|
||||
@ -153,15 +156,21 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
if (Objects.isNull(model) && !Objects.equals(model.getMetaInfo(), MODEL_META_INFO_PROCESS)) {
|
||||
throw new WorkflowEngineException(MODEL_KEY_NOT_EXISTS, processModelKey);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, tenantId);
|
||||
}
|
||||
return bpmnModelConverter.toVo(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateBpmModel(BpmnModelUpdateDTO dto) {
|
||||
Model originModel = repositoryService.createModelQuery()
|
||||
ModelQuery query = repositoryService.createModelQuery()
|
||||
.modelId(dto.getProcessModelId())
|
||||
.modelKey(dto.getKey())
|
||||
.singleResult();
|
||||
.modelKey(dto.getKey());
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.modelTenantId(dto.getTenantId());
|
||||
}
|
||||
Model originModel = query.singleResult();
|
||||
if (ObjectUtils.isEmpty(originModel)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, dto.getProcessModelId());
|
||||
}
|
||||
@ -181,9 +190,12 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String deployBpmModelById(String processModelId, String tenantId) {
|
||||
public String deployBpmModelById(String processModelId, @Nullable String tenantId) {
|
||||
Model model = this.repositoryService.getModel(processModelId);
|
||||
if (Objects.isNull(model) || Objects.equals(model.getTenantId(), tenantId)) {
|
||||
if (Objects.isNull(model)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
}
|
||||
if (StringUtils.hasLength(tenantId) && !Objects.equals(model.getTenantId(), tenantId)) {
|
||||
throw new WorkflowEngineException(MODEL_ID_NOT_EXISTS, processModelId);
|
||||
}
|
||||
|
||||
@ -195,8 +207,12 @@ public class BpmnProcessModelServiceImpl implements BpmnProcessModelService {
|
||||
String definitionId = this.processDefinitionService.createProcessDefinition(model, bpmnBytes);
|
||||
// 挂起原来的流程定义
|
||||
this.updateProcessDefinitionSuspended(model.getDeploymentId());
|
||||
ProcessDefinition definition =
|
||||
repositoryService.createProcessDefinitionQuery().processDefinitionId(definitionId).singleResult();
|
||||
ProcessDefinitionQuery definitionQuery =
|
||||
repositoryService.createProcessDefinitionQuery().processDefinitionId(definitionId);
|
||||
if (StringUtils.hasLength(tenantId)) {
|
||||
definitionQuery.processDefinitionTenantId(tenantId);
|
||||
}
|
||||
ProcessDefinition definition = definitionQuery.singleResult();
|
||||
model.setDeploymentId(definition.getDeploymentId());
|
||||
this.repositoryService.saveModel(model);
|
||||
return definition.getId();
|
||||
|
||||
@ -78,9 +78,11 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.unfinished()
|
||||
.taskAssignee(dto.getUserId()) // 分配给自己
|
||||
.taskTenantId(dto.getTenantId())
|
||||
.orderByTaskCreateTime()
|
||||
.desc();
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.taskTenantId(dto.getTenantId());
|
||||
}
|
||||
if (StringUtils.hasLength(dto.getCategories())) {
|
||||
List<String> categories = Arrays.stream(dto.getCategories().split(","))
|
||||
.map(String::trim).collect(Collectors.toList());
|
||||
@ -115,9 +117,11 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
HistoricTaskInstanceQuery query = historyService.createHistoricTaskInstanceQuery()
|
||||
.finished() // 已完成
|
||||
.taskAssignee(dto.getUserId()) // 分配给自己
|
||||
.taskTenantId(dto.getTenantId())
|
||||
.orderByHistoricTaskInstanceEndTime()
|
||||
.desc(); // 审批时间倒序
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.taskTenantId(dto.getTenantId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(dto.getName())) {
|
||||
query.taskNameLike("%" + dto.getName() + "%");
|
||||
}
|
||||
@ -269,14 +273,6 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
} else {
|
||||
vo.setResult(APPROVED);
|
||||
}
|
||||
|
||||
// if (!taskDefinitionKeys.contains(vo.getTaskDefinitionKey()) && count == 0) {
|
||||
// vo.setResult(finalBusinessStatus);
|
||||
// } else if (Objects.equals(finalBusinessStatus, REJECTED)) {
|
||||
// vo.setResult(SKIP);
|
||||
// } else {
|
||||
// vo.setResult(APPROVED);
|
||||
// }
|
||||
taskDefinitionKeys.add(vo.getTaskDefinitionKey());
|
||||
List<Comment> taskComments = commentByTaskIdMap.getOrDefault(vo.getTaskId(), Collections.emptyList());
|
||||
|
||||
@ -356,8 +352,8 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FormInfo getTaskFormModel(String taskId) {
|
||||
Task task = getTask(taskId, null, null);
|
||||
public FormInfo getTaskFormModel(String taskId, String tenantId) {
|
||||
Task task = getTask(taskId, null, tenantId);
|
||||
if (StringUtils.hasLength(task.getFormKey())) {
|
||||
return taskService.getTaskFormModel(taskId);
|
||||
}
|
||||
@ -366,8 +362,11 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
|
||||
|
||||
@Override
|
||||
public void assigneeTask(BpmnTaskAssigneeDTO dto) {
|
||||
Task task =
|
||||
taskService.createTaskQuery().taskId(dto.getTaskId()).taskTenantId(dto.getTenantId()).singleResult();
|
||||
TaskQuery query = taskService.createTaskQuery().taskId(dto.getTaskId());
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.taskTenantId(dto.getTenantId());
|
||||
}
|
||||
Task task = query.singleResult();
|
||||
if (Objects.nonNull(task) && !Objects.equals(task.getAssignee(), dto.getOriginUserId())) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF);
|
||||
}
|
||||
|
||||
@ -70,6 +70,9 @@ public class FormDefinitionServiceImpl implements FormDefinitionService {
|
||||
if (Objects.isNull(model)) {
|
||||
throw new WorkflowEngineException(FORM_MODEL_ID_NOT_EXISTS, dto.getFormModelId());
|
||||
}
|
||||
if (StringUtils.hasLength(dto.getTenantId()) && !Objects.equals(model.getTenantId(), dto.getTenantId())) {
|
||||
throw new WorkflowEngineException(FORM_MODEL_ID_NOT_EXISTS, dto.getFormModelId());
|
||||
}
|
||||
FormDefinitionDTO formDefinition = dto.getFormDefinition();
|
||||
formDefinition.setKey(model.getKey());
|
||||
formDefinition.setName(model.getName());
|
||||
|
||||
@ -10,7 +10,9 @@ import org.flowable.form.api.FormInfo;
|
||||
import org.flowable.form.api.FormRepositoryService;
|
||||
import org.flowable.form.api.FormService;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.task.api.TaskQuery;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
@ -38,14 +40,17 @@ public class FormInstanceServiceImpl implements FormInstanceService {
|
||||
|
||||
@Override
|
||||
public void updateFormContent(FormContentUpdateDTO dto) {
|
||||
Task task = taskService.createTaskQuery().taskId(dto.getTaskId()).singleResult();
|
||||
if (Objects.nonNull(task) && !Objects.equals(dto.getUserId(), task.getAssignee())) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF);
|
||||
TaskQuery query = taskService.createTaskQuery().taskId(dto.getTaskId());
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
query.taskTenantId(dto.getTenantId());
|
||||
}
|
||||
Task task = query.singleResult();
|
||||
if (Objects.isNull(task)) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_NOT_EXISTS);
|
||||
}
|
||||
|
||||
if (!Objects.equals(dto.getUserId(), task.getAssignee())) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF);
|
||||
}
|
||||
|
||||
FormInfo formInfo = formRepositoryService.getFormModelById(dto.getFormDefinitionId());
|
||||
if (Objects.nonNull(task.getProcessInstanceId())) {
|
||||
|
||||
@ -182,7 +182,7 @@ public class FormModelServiceImpl implements FormModelService {
|
||||
throw new WorkflowEngineException(FORM_MODEL_NOT_EXISTS);
|
||||
}
|
||||
|
||||
return deployFormModelById(model.getId(), null);
|
||||
return deployFormModelById(model.getId(), tenantId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -111,8 +111,9 @@ public class BpmnTaskController {
|
||||
}
|
||||
|
||||
@GetMapping("/form")
|
||||
public CommonResponse<FormInfo> getTaskForm(@NotBlank(message = "任务 ID 不能为空") @RequestParam String taskId) {
|
||||
return success(bpmnTaskService.getTaskFormModel(taskId));
|
||||
public CommonResponse<FormInfo> getTaskForm(@NotBlank(message = "任务 ID 不能为空") @RequestParam String taskId,
|
||||
@NotBlank(message = "租户不能为空") @RequestParam String tenantId) {
|
||||
return success(bpmnTaskService.getTaskFormModel(taskId, tenantId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user