feat - 新增前后加签的分支

This commit is contained in:
wangli 2025-09-29 14:21:41 +08:00
parent dc11b8c994
commit fb790b724f

View File

@ -22,6 +22,7 @@ import org.flowable.task.api.TaskInfo;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
@ -35,6 +36,7 @@ import java.util.stream.Collectors;
import static cn.axzo.workflow.common.code.OtherRespCode.ASSIGNEE_NODE_ID_NOT_EXISTS;
import static cn.axzo.workflow.common.constant.BpmnConstants.COUNTERSIGN_ASSIGNER_SHOW_NUMBER;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT;
import static cn.axzo.workflow.common.enums.BpmnCountersignTypeEnum.FORWARD_COUNTERSIGN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.COUNTERSIGN;
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getCategoryVersion;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment;
@ -130,9 +132,11 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand<Void> implemen
switch (countersignType) {
case FORWARD_COUNTERSIGN:
// 加签的一种方式前加签具体定义由后续产品需求来定
forwardCountSign(commandContext, task, valuTargetAssigneeList);
break;
case BACK_COUNTERSIGN:
// 加签的另一种方式
backCountSign(commandContext, task, valuTargetAssigneeList);
break;
default:
// 共享签不区分顺序
@ -143,6 +147,42 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand<Void> implemen
return null;
}
/**
* 前加签
*
* @param commandContext
* @param task
* @param valuTargetAssigneeList
*/
private void forwardCountSign(CommandContext commandContext, TaskEntity task, List<BpmnTaskDelegateAssigner> valuTargetAssigneeList) {
ProcessEngineConfigurationImpl processEngineConfiguration =
CommandContextUtil.getProcessEngineConfiguration(commandContext);
TaskService taskService = processEngineConfiguration.getTaskService();
if (task instanceof TaskEntityImpl) {
TaskEntityImpl taskEntity = (TaskEntityImpl) task;
taskEntity.setCountEnabled(true);
taskEntity.setOwner(task.getAssignee());
taskEntity.setAssignee(null);
taskEntity.setScopeType(FORWARD_COUNTERSIGN.getType());
taskService.saveTask(taskEntity);
valuTargetAssigneeList.forEach(e -> {
// TODO 创建新的任务
});
}
}
/**
* 后加签
*
* @param commandContext
* @param task
* @param valuTargetAssigneeList
*/
private void backCountSign(CommandContext commandContext, TaskEntity task, List<BpmnTaskDelegateAssigner> valuTargetAssigneeList) {
}
/**
* 共享签
*
@ -167,8 +207,19 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand<Void> implemen
private void resolveOriginTask(CommandContext commandContext, ExtAxHiTaskInstService extAxHiTaskInstService,
TaskService taskService, TaskEntity task) {
// 构建评论内容
StringBuilder message = new StringBuilder("添加");
StringBuilder message = new StringBuilder();
switch (countersignType) {
case FORWARD_COUNTERSIGN:
message.append("向前加签,添加");
break;
case BACK_COUNTERSIGN:
message.append("向后加签,添加");
break;
default:
// 构建评论内容
message.append("添加");
break;
}
int end = Math.min(targetTaskAssigneeList.size(), COUNTERSIGN_ASSIGNER_SHOW_NUMBER);
//加签人员数量显示指定个数
for (int i = 0; i < end; i++) {