return STENCIL_TASK_USER;
}
@Override
protected void convertElementToJson(ObjectNode propertiesNode, FlowElement flowElement) {
UserTaskBehavior userTask = (UserTaskBehavior) flowElement;
List<ResourceRole> resources = userTask.getResources();
//任务分配
setPropertyValue(PROPERTY_USERTASK_POLICYTYPE, userTask.getAssignPolicyType().getId(), propertiesNode);
Expression assigneeExpression = userTask.getAssignPolicyType().getExpression();
if(assigneeExpression != null){
setPropertyValue(PROPERTY_USERTASK_ASSIGNEXPRESSION, assigneeExpression.getValue(), propertiesNode);
}
if(resources != null){
ObjectNode assignmentNode = objectMapper.createObjectNode();
ArrayNode itemsNode = objectMapper.createArrayNode();
for(ResourceRole resource :resources){
if(resource != null){
String resourceType = StringUtil.getString(resource.eGet(FixFlowPackage.Literals.DOCUMENT_ROOT__RESOURCE_TYPE, true));
String isContainsSub = StringUtil.getString(resource.eGet(FixFlowPackage.Literals.DOCUMENT_ROOT__IS_CONTAINS_SUB, true));
String resourceExpression = BpmnModelUtil.getExpression(resource.getResourceAssignmentExpression().getExpression());
String resourceName = resource.getName();
ObjectNode assignmentItemNode = objectMapper.createObjectNode();
assignmentItemNode.put(PROPERTY_USERTASK_RESOURCE_TYPE, resourceType);
assignmentItemNode.put(PROPERTY_USERTASK_RESOURCE_IS_CONTAINSSUB, isContainsSub);
assignmentItemNode.put(PROPERTY_USERTASK_RESOURCE_EXPRESSION, resourceExpression);
assignmentItemNode.put(PROPERTY_USERTASK_RESOURCE_NAME, resourceName);
itemsNode.add(assignmentItemNode);
}
}
assignmentNode.put("totalCount", itemsNode.size());
assignmentNode.put(EDITOR_PROPERTIES_GENERAL_ITEMS, itemsNode);
propertiesNode.put(PROPERTY_USERTASK_ASSIGNMENT, assignmentNode);
}
//处理命令
List<TaskCommandInst> commandList = userTask.getTaskCommands();
if(commandList != null){
ObjectNode commandNode = objectMapper.createObjectNode();
ArrayNode itemsNode = objectMapper.createArrayNode();
for(TaskCommandInst command :commandList){
String commandId = command.getId();
String commandType = command.getTaskCommandType();
String commandName = command.getName();
String commandExpression = command.getExpression();
String isSaveData = StringUtil.getString(command.isSaveData());
String isVerification = StringUtil.getString(command.isVerification());
String isSimulationRun = StringUtil.getString(command.isSimulationRun());
String parameterExpression = command.getExpressionParam();
ObjectNode taskCommandNode = objectMapper.createObjectNode();
taskCommandNode.put(PROPERTY_TASKCOMMAND_ID, commandId);
taskCommandNode.put(PROPERTY_TASKCOMMAND_NAME, commandName);
taskCommandNode.put(PROPERTY_TASKCOMMAND_TYPE, commandType);
taskCommandNode.put(PROPERTY_TASKCOMMAND_EXPRESSION, commandExpression);
taskCommandNode.put(PROPERTY_TASKCOMMAND_IS_SAVEDATA, isSaveData);
taskCommandNode.put(PROPERTY_TASKCOMMAND_IS_SIMULATION_RUN, isSimulationRun);
taskCommandNode.put(PROPERTY_TASKCOMMAND_IS_VERIFICATION, isVerification);
taskCommandNode.put(PROPERTY_TASKCOMMAND_PARA_EXPRESSION, parameterExpression);
itemsNode.add(taskCommandNode);
}
commandNode.put("totalCount", itemsNode.size());
commandNode.put(EDITOR_PROPERTIES_GENERAL_ITEMS, itemsNode);
propertiesNode.put(PROPERTY_TASKCOMMAND, commandNode);
}
//任务主题
if(userTask.getTaskSubject() !=null){
setPropertyValue(PROPERTY_USERTASK_SUBJECT, userTask.getTaskSubject().getExpressionValue(), propertiesNode);
}
//任务类型
if(userTask.getTaskInstanceType() != null){
setPropertyValue(PROPERTY_USERTASK_TASKTYPE, StringUtil.getString(userTask.getTaskInstanceType()), propertiesNode);
}
//任务优先级
if (userTask.getTaskPriority() != null) {
setPropertyValue(PROPERTY_PRIORITY, userTask.getTaskPriority(), propertiesNode);
}
//操作表单
setPropertyValue(PROPERTY_FORMURI, userTask.getFormUri(), propertiesNode);
//浏览表单
setPropertyValue(PROPERTY_FORMURI_VIEW, userTask.getFormUriView(), propertiesNode);
}