update 略微修改ModelNode的类型生成规则

This commit is contained in:
lijiarao
2023-12-12 16:17:10 +08:00
parent 4dfde3711d
commit b420334db0
@@ -12,6 +12,7 @@ import com.jero.modules.activiti.enums.VariableTypeEnum;
import com.jero.modules.activiti.listener.CompleteListener;
import com.jero.modules.activiti.listener.CreateListener;
import com.jero.modules.activiti.vo.AddTaskVO;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.activiti.bpmn.BpmnAutoLayout;
import org.activiti.bpmn.converter.BpmnXMLConverter;
@@ -48,7 +49,11 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
@Resource
private ProcessModelNodeMapper processModelNodeMapper;
public static Integer sort = 1;
public static List<String> multiInstanceElementVariableList = new ArrayList<>();
@Synchronized
public void generateNode(String modelId) {
sort = 1;
multiInstanceElementVariableList = new ArrayList<>();
ObjectNode objectNode = null;
try {
objectNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelId));
@@ -377,8 +382,13 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
processModelNode.setVariableType(VariableTypeEnum.LIST.getName());
processModelNode.setVariableName(inputDataItem.replace("${","").replace("}",""));
}else {
processModelNode.setVariableType(VariableTypeEnum.STRING.getName());
processModelNode.setVariableName(assignee.replace("${","").replace("}",""));
String replace = assignee.replace("${", "").replace("}", "");
processModelNode.setVariableName(replace);
if (multiInstanceElementVariableList.contains(replace)) {
processModelNode.setVariableType(VariableTypeEnum.LIST.getName());
}else {
processModelNode.setVariableType(VariableTypeEnum.STRING.getName());
}
}
processModelNode.setSort(sort++);
} else if (flowElement instanceof SequenceFlow) {
@@ -399,6 +409,9 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
} else if (flowElement instanceof SubProcess) {
SubProcess subProcess = (SubProcess) flowElement;
MultiInstanceLoopCharacteristics loopCharacteristics = subProcess.getLoopCharacteristics();
String elementVariable = loopCharacteristics.getElementVariable();
multiInstanceElementVariableList.add(elementVariable);
Collection<FlowElement> flowElements1 = subProcess.getFlowElements();
xmlNodeId = subProcess.getId();
List<ProcessModelNode> processModelNodes = handlerLawsProcessModelNode(flowElements1, gatewayIdList, modelId, xmlNodeId);