Package com.founder.fix.fixflow.core.impl.bpmn.behavior

Examples of com.founder.fix.fixflow.core.impl.bpmn.behavior.UserTaskBehavior


      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);
    }
View Full Code Here


        // 设置任务预计执行时间

        taskInstance.setExpectedExecutionTime(taskDefinition.getExpectedExecutionTimeValue());

        UserTaskBehavior userTask = (UserTaskBehavior) taskDefinition.getUserTaskNode();

        // 获取操作表单
        String formUri = userTask.getFormUri();
        // 获取浏览表单
        String formUriView = userTask.getFormUriView();

        if (formUri != null && !formUri.equals("")) {

          Object returnObject = ExpressionMgmt.execute(formUri, executionContext);
          if (returnObject != null) {
            taskInstance.setFormUri(returnObject.toString());
          }

        } else {

         
          FormUri formUriObj=token.getProcessInstance().getProcessDefinition().getFormUriObj();
         
          String expressionValue=null;
          if (formUriObj != null && formUriObj.getExpression() != null) {
            expressionValue = formUriObj.getExpression().getValue();
          }
         
          Object returnObject = ExpressionMgmt.execute(expressionValue, executionContext);
          if (returnObject != null) {
            taskInstance.setFormUri(StringUtil.getString(returnObject));
          }
           else {
            throw new FixFlowException(userTask.getId() + " 节点没有指定表单,请检查流程配置!");
          }
        }
        if (taskInstance.getFormUri() == null || taskInstance.getFormUri().equals("")) {
          throw new FixFlowException(userTask.getId() + " 节点没有指定表单,请检查流程配置!");
        }

        if (formUriView != null && !formUriView.equals("")) {

          Object returnObject = ExpressionMgmt.execute(formUriView, executionContext);
          if (returnObject != null) {
            taskInstance.setFormUriView(returnObject.toString());
          }

        } else {

          taskInstance.setFormUriView(taskInstance.getFormUri());

        }
        if (taskInstance.getFormUriView() == null || taskInstance.getFormUriView().equals("")) {
          throw new FixFlowException(userTask.getId() + " 节点没有指定添加、浏览表单,请检查流程配置!");
        }

        String taskPriorityExpression = userTask.getTaskPriority();

        if (taskPriorityExpression != null && !taskPriorityExpression.equals("")) {

          Object returnObject = ExpressionMgmt.execute(taskPriorityExpression, executionContext);
          if (returnObject != null) {
View Full Code Here

TOP

Related Classes of com.founder.fix.fixflow.core.impl.bpmn.behavior.UserTaskBehavior

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.