Merge branch 'feature/REQ-7129' into pre

This commit is contained in:
wangli 2026-02-09 15:05:47 +08:00
commit d6c161b4d2
6 changed files with 104 additions and 0 deletions

View File

@ -24,6 +24,7 @@ import cn.axzo.workflow.common.model.request.bpmn.process.doc.ChangeApproverRead
import cn.axzo.workflow.common.model.request.bpmn.process.doc.ProcessDocQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskButtonSearchDTO;
import cn.axzo.workflow.common.model.request.form.ConditionPermissionMetaInfo;
import cn.axzo.workflow.common.model.request.form.instance.CooperationOrgUpdateDTO;
import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
@ -322,6 +323,16 @@ public interface ProcessInstanceApi {
@InvokeMode(SYNC)
CommonResponse<Boolean> updateInstanceFormVariables(@Validated @RequestBody FormVariablesUpdateDTO dto);
/**
* 更新指定流程的CooperationOrg
*
* @param dto
* @return
*/
@Operation(summary = "更新指定流程的CooperationOrg")
@PostMapping("/api/process/instance/cooperation/update")
@InvokeMode(SYNC)
CommonResponse<Boolean> updateCooperationOrg(@Validated @RequestBody CooperationOrgUpdateDTO dto);
/**
* 签署业务流程实例在审批待办中查询使用的文档列表
*

View File

@ -0,0 +1,25 @@
package cn.axzo.workflow.common.model.request.form.instance;
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 更新流程实例中的 CooperationOrg 整个对象
*
* @author wangli
* @since 2026-02-09 11:30
*/
@ApiModel("更新流程实例中的 CooperationOrg 整个对象")
@Data
public class CooperationOrgUpdateDTO implements Serializable {
@NotBlank(message = "流程实例不能为空")
private String processInstanceId;
@NotNull(message = "组织关系数据不能为空")
private CooperationOrgDTO cooperationOrg;
}

View File

@ -0,0 +1,48 @@
package cn.axzo.workflow.core.engine.cmd;
import cn.axzo.workflow.common.constant.BpmnConstants;
import cn.axzo.workflow.common.model.dto.CooperationOrgDTO;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.flowable.common.engine.impl.interceptor.CommandContext;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.impl.util.CommandContextUtil;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* 更新指定流程的CooperationOrg
*
* @author wangli
* @since 2026-02-09 11:33
*/
@Slf4j
public class CustomOverrideCooperationOrgCmd extends AbstractCommand<Void> implements Serializable {
private final String processInstanceId;
private final CooperationOrgDTO cooperationOrg;
public CustomOverrideCooperationOrgCmd(String processInstanceId, CooperationOrgDTO cooperationOrg) {
this.processInstanceId = processInstanceId;
this.cooperationOrg = cooperationOrg;
}
@Override
public String paramToJsonString() {
Map<String, Object> params = new HashMap<>();
params.put("processInstanceId", processInstanceId);
params.put("cooperationOrg", cooperationOrg);
return JSON.toJSONString(params);
}
@Override
public Void executeInternal(CommandContext commandContext) {
ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(commandContext);
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
runtimeService.setVariable(processInstanceId, BpmnConstants.BIZ_ORG_RELATION, cooperationOrg);
return null;
}
}

View File

@ -16,6 +16,7 @@ import cn.axzo.workflow.common.model.request.bpmn.process.SuperBpmnProcessInstan
import cn.axzo.workflow.common.model.request.bpmn.process.doc.ProcessDocQueryDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskButtonSearchDTO;
import cn.axzo.workflow.common.model.request.form.ConditionPermissionMetaInfo;
import cn.axzo.workflow.common.model.request.form.instance.CooperationOrgUpdateDTO;
import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
@ -217,4 +218,6 @@ public interface BpmnProcessInstanceService {
void overrideProcessVariables(BpmnProcessInstanceVariablesUpdateDTO dto);
List<ConditionPermissionMetaInfo> getConditions(String processInstanceId);
void overrideCooperationOrg(CooperationOrgUpdateDTO dto);
}

View File

@ -41,6 +41,7 @@ import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.model.request.bpmn.task.ExtHiTaskSearchDTO;
import cn.axzo.workflow.common.model.request.category.CategorySearchDTO;
import cn.axzo.workflow.common.model.request.form.ConditionPermissionMetaInfo;
import cn.axzo.workflow.common.model.request.form.instance.CooperationOrgUpdateDTO;
import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationItemResultVO;
@ -69,6 +70,7 @@ import cn.axzo.workflow.core.engine.cmd.CustomCarbonCopyUserSelectorCmd;
import cn.axzo.workflow.core.engine.cmd.CustomForecastUserTaskAssigneeCmd;
import cn.axzo.workflow.core.engine.cmd.CustomGetConditionPermissionsCmd;
import cn.axzo.workflow.core.engine.cmd.CustomGetModelDocsCmd;
import cn.axzo.workflow.core.engine.cmd.CustomOverrideCooperationOrgCmd;
import cn.axzo.workflow.core.engine.cmd.CustomOverrideFormVariablesByLatestInstanceCmd;
import cn.axzo.workflow.core.engine.cmd.CustomOverrideProcessVariablesCmd;
import cn.axzo.workflow.core.engine.listener.EngineExecutionStartListener;
@ -1884,6 +1886,12 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
commandExecutor.execute(new CustomOverrideFormVariablesByLatestInstanceCmd(dto.getProcessInstanceId(), dto.getFormVariables()));
}
@Override
public void overrideCooperationOrg(CooperationOrgUpdateDTO dto) {
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();
commandExecutor.execute(new CustomOverrideCooperationOrgCmd(dto.getProcessInstanceId(), dto.getCooperationOrg()));
}
@Override
public List<DocPendingVO> processInstanceSelectDocs(ProcessDocQueryDTO dto) {
CommandExecutor commandExecutor = springProcessEngineConfiguration.getCommandExecutor();

View File

@ -31,6 +31,7 @@ import cn.axzo.workflow.common.model.request.bpmn.process.doc.ProcessDocQueryDTO
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskButtonSearchDTO;
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
import cn.axzo.workflow.common.model.request.form.ConditionPermissionMetaInfo;
import cn.axzo.workflow.common.model.request.form.instance.CooperationOrgUpdateDTO;
import cn.axzo.workflow.common.model.request.form.instance.FormVariablesUpdateDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.bpmn.BatchOperationResultVO;
@ -493,6 +494,14 @@ public class BpmnProcessInstanceController extends BasicPopulateAvatarController
return CommonResponse.success(true);
}
@Operation(summary = "更新指定流程的CooperationOrg")
@PostMapping("/cooperation/update")
@Override
public CommonResponse<Boolean> updateCooperationOrg(@Validated @RequestBody CooperationOrgUpdateDTO dto) {
bpmnProcessInstanceService.overrideCooperationOrg(dto);
return CommonResponse.success(true);
}
@Override
@Operation(summary = "签署业务流程实例在审批待办中查询使用的文档列表")
@PostMapping("/select/doc/list")