weidy
2023-07-05 a78216b8655bbfd4d70577d21729e9741eb021d5
Source/UBCS/ubcs-ops/ubcs-flow/src/main/java/com/vci/ubcs/flow/engine/service/impl/VCIFlowserviceImpl.java
@@ -16,12 +16,14 @@
 */
package com.vci.ubcs.flow.engine.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.vci.ubcs.flow.core.constant.ProcessConstant;
import com.vci.ubcs.flow.core.entity.BladeFlow;
import com.vci.ubcs.flow.core.utils.TaskUtil;
import com.vci.ubcs.flow.engine.entity.*;
import com.vci.ubcs.flow.engine.service.FlowEngineService;
import com.vci.ubcs.flow.engine.service.FlowTaskUserService;
import com.vci.ubcs.flow.engine.service.ProcessStageAttrService;
import com.vci.ubcs.flow.engine.service.VICFlowService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -33,6 +35,7 @@
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.support.Kv;
@@ -56,8 +59,11 @@
   private final FlowTaskUserService flowTaskUserService;
   private final FlowEngineService flowEngineService;
   private final HistoryService historyService;
   private final ProcessStageAttrService processStageAttrService;
   private static String MODELKEY = "modelKey";//前端传过来的模型key
   private static String TASKID = "taskId";//前端传过来的模型key
   private static String PROCESSINSTANCEID = "processInstanceId";//前端传过来的模型key
   @Override
   public R<BladeFlow> startProcess(FlowTaskDTO flowTaskUserC){
      Map<String, Object> kvv = flowTaskUserC.getVariables();
@@ -192,7 +198,7 @@
                  for (FlowTaskDTO flowTaskUserCi:mis){
                     if(taskId.equals(flowTaskUserCi.getTaskId())){
                        flowTaskUserCi.setCondition(conditionExpression);
                        if(conditionExpression.split("=").length>1) {
                        if(conditionExpression.contains("=")||conditionExpression.contains("<")||conditionExpression.contains(">")) {
                           conditionExpression = conditionExpression.replace("${","").replace("}","").replaceAll("\"","");
                           String[] conditionExpressionStr = conditionExpression.split("==");
                           if(conditionExpression.contains("<")){
@@ -217,6 +223,17 @@
            }
         }
      }
      //流程常量
      Map<String,Object> variables = runtimeService.getVariables(processInstanceId);
      if(!variables.isEmpty()){
         flowTaskDTO.setVariables(variables);
      }
      //放入流程阶段、流程modelkey
      variables.put(TASKID,crruentActivityId);
      variables.put(PROCESSINSTANCEID,processInstanceId);
      return flowTaskDTO;
   }
}