ソースを参照

fix:表单接口

侯茂昌 1 年間 前
コミット
86e2acf332
18 ファイル変更348 行追加25 行削除
  1. 29 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/CamelCaseConverterUtil.java
  2. 0 1
      ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java
  3. 0 1
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmExecuteProcessController.java
  4. 7 3
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmRunController.java
  5. 53 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/entity/runbpm/BpmRunNodePlusVo.java
  6. 32 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteNodeFormMapper.java
  7. 7 1
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java
  8. 156 4
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/runbpm/PreExecutionToolClass.java
  9. 5 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteNodeFormService.java
  10. 1 1
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteProcessService.java
  11. 5 1
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeFormServiceImpl.java
  12. 3 2
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeMiddleServiceImpl.java
  13. 17 8
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java
  14. 1 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/runbpm/common/SandProductionImpl.java
  15. 1 0
      ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/script/ProductionWarehousing.java
  16. 25 0
      ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeFormMapper.xml
  17. 6 2
      ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml
  18. 0 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragTableConditionServiceImpl.java

+ 29 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/CamelCaseConverterUtil.java

@@ -0,0 +1,29 @@
+package com.ruoyi.common.utils;
+
+/**
+ * @author hmc
+ * @date 2023-12-11 19:53
+ * @Description:
+ */
+
+
+public class CamelCaseConverterUtil {
+
+    public static String toCamelCase(String input) {
+        StringBuilder camelCase = new StringBuilder();
+        boolean capitalizeNext = false;
+
+        for (char c : input.toCharArray()) {
+            if (c == '_' || c == '-') {
+                capitalizeNext = true;
+            } else if (capitalizeNext) {
+                camelCase.append(Character.toUpperCase(c));
+                capitalizeNext = false;
+            } else {
+                camelCase.append(Character.toLowerCase(c));
+            }
+        }
+
+        return camelCase.toString();
+    }
+}

+ 0 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/Sending.java

@@ -92,7 +92,6 @@ public class Sending<T> {
         // 将请求体和请求头添加到 HttpEntity
         HttpEntity<Object> requestEntity = new HttpEntity<>(param, headers);
         // 发送请求
-        System.err.println(url);
         ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.resolve(httpMethod), requestEntity, String.class);
         // 返回响应
         return response;

+ 0 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmExecuteProcessController.java

@@ -112,7 +112,6 @@ public class BpmExecuteProcessController extends BaseController {
 
     /**
      * 查询节点表单信息
-     *
      */
     @GetMapping("/getNodeFormInfos")
     public AjaxResult getNodeFormInfos(Map<String,String> nodeForm) {

+ 7 - 3
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/controller/BpmRunController.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodePlusVo;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeVo;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.TriggerExceptionVO;
 import com.ruoyi.execution.produce.dispersed.runbpm.PreExecutionToolClass;
@@ -56,7 +57,7 @@ public class BpmRunController extends BaseController {
                 throw new RuntimeException(e);
             }
         }
-        return ipreExecutionToolClass.executionNode(bpmRunNodeVo);
+        return AjaxResult.success(ipreExecutionToolClass.executionNode(bpmRunNodeVo));
     }
 
 
@@ -64,8 +65,11 @@ public class BpmRunController extends BaseController {
      * 共通执行节点表单模版接口
      */
     @GetMapping("/ProcessNodeFormTemplate")
-    public AjaxResult ProcessNodeFormTemplate(BpmRunNodeVo bpmRunNodeVo) {
-        return AjaxResult.success(null);
+    public AjaxResult ProcessNodeFormTemplate(BpmRunNodePlusVo bpmRunNodePlusVo) {
+        //bpmRunNodePlusVo.setTaskProcessKey("e27cd00ef97448a697adbcaac704292e");
+        //bpmRunNodePlusVo.setTaskNodeKey("Activity_0k0fm8s");
+        //bpmRunNodePlusVo.setTaskScriptKey("11f4951b-682f-4185-acb7-f4b8db9d5940");
+        return AjaxResult.success(ipreExecutionToolClass.getProcessNodeFormTemplate(bpmRunNodePlusVo));
     }
 
 

+ 53 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/entity/runbpm/BpmRunNodePlusVo.java

@@ -0,0 +1,53 @@
+package com.ruoyi.execution.produce.dispersed.entity.runbpm;
+
+/**
+ * @author hmc
+ * @date 2023-12-11 13:18
+ * @Description:
+ */
+
+public class BpmRunNodePlusVo {
+
+    //  当前任务流程编码
+    private String taskProcessKey;
+
+    //  当前执行节点的唯一编码
+    private String taskNodeKey;
+
+    //  当前执行节点的脚本编码
+    private String taskScriptKey;
+
+    public String getTaskProcessKey() {
+        return taskProcessKey;
+    }
+
+    public void setTaskProcessKey(String taskProcessKey) {
+        this.taskProcessKey = taskProcessKey;
+    }
+
+    public String getTaskNodeKey() {
+        return taskNodeKey;
+    }
+
+    public void setTaskNodeKey(String taskNodeKey) {
+        this.taskNodeKey = taskNodeKey;
+    }
+
+    public String getTaskScriptKey() {
+        return taskScriptKey;
+    }
+
+    public void setTaskScriptKey(String taskScriptKey) {
+        this.taskScriptKey = taskScriptKey;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuffer sb = new StringBuffer("BpmRunNodeVo{");
+        sb.append("taskProcessKey='").append(taskProcessKey).append('\'');
+        sb.append(",taskNodeKey='").append(taskNodeKey).append('\'');
+        sb.append(",taskScriptKey='").append(taskScriptKey).append('\'');
+        sb.append('}');
+        return sb.toString();
+    }
+}

+ 32 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteNodeFormMapper.java

@@ -3,6 +3,7 @@ package com.ruoyi.execution.produce.dispersed.mapper;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeForm;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -77,4 +78,35 @@ public interface BpmExecuteNodeFormMapper
      * @return 执行节点单集合
      */
     BpmExecuteNodeForm selectBpmExecuteNodeFormInfo(BpmExecuteNodeForm bpmExecuteNodeForm);
+
+    /**
+     *  根据 taskProcessKey和 taskNodeKey查询当前节点执行的表单模版信息
+     */
+    public BpmExecuteNodeForm selectBpmExecuteNodeFormByTpKAndTnkAndTsk(@Param("taskProcessKey") String taskProcessKey, @Param("taskNodeKey") String taskNodeKey,  @Param("taskScriptKey") String taskScriptKey);
+
+    /**
+     * 根据tableSql查询这个sql对应的数据
+     * @param tableSql
+     * @return
+     */
+    public Map<String,String> tableSql(String tableSql);
+
+    /**
+     * 根据tableSql查询这个sql对应的数据(目前是查询表单下拉框数据在用)
+     * @param tableSql
+     * @return
+     */
+    public List<Map<String,Object>> executeSql(String tableSql);
+
+    /**
+     * 根据sqlKey查询tableSql数据
+     * @param sqlKey
+     * @return
+     */
+    public Map<String,String> getTableSqlBySqlKey(String sqlKey);
+
+    /**
+     * 根据sqlKey查询对应的表单数据
+     */
+    public Map<String,String> getDfFormInfo();
 }

+ 7 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java

@@ -1,5 +1,6 @@
 package com.ruoyi.execution.produce.dispersed.mapper;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -114,5 +115,10 @@ public interface BpmExecuteProcessMapper {
     /**
      * 根据tableKey查询Table表格信息
      */
-    String getTableSqlInfo(String sqlKey);
+    Map<String,String> getTableSqlInfo(String sqlKey);
+
+    /**
+     * 根据动态表格编号查询 drag_table_
+     */
+    List<Map<String,String>> getTableCondition(String tId);
 }

+ 156 - 4
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/runbpm/PreExecutionToolClass.java

@@ -1,8 +1,13 @@
 package com.ruoyi.execution.produce.dispersed.runbpm;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.CamelCaseConverterUtil;
 import com.ruoyi.common.utils.bpm.XmlDataParserUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNode;
@@ -10,6 +15,7 @@ import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeForm;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeMiddle;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;
 import com.ruoyi.execution.produce.dispersed.entity.runbpm.*;
+import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeFormMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMiddleMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
@@ -74,6 +80,9 @@ public class PreExecutionToolClass<R> {
     private VerifyExecutionProcess iVerifyExecutionProcess;
 
 
+    @Autowired
+    private  BpmExecuteNodeFormMapper executeNodeFormMapper;
+
     /**
      * 预执行流程自动执行开始节点
      *
@@ -81,16 +90,16 @@ public class PreExecutionToolClass<R> {
      * @return
      */
     @Transactional
-    @Async
+    //@Async
     public AjaxResult ReadyToExecute(CommonEntity commonEntity) {
         // 获取发起流程所需数据
         IntoProduction intoProduction = this.obtainData(commonEntity);
         /**
          * 根据流程key校验当前流程数据的完整性,是否可以运行
          */
-        if (!iVerifyExecutionProcess.VerifyProcessData(intoProduction.getTaskProcessKey())) {
-            return AjaxResult.error(HttpStatus.EXECUTEPROCESS, "流程数据验证失败!");
-        }
+        //if (!iVerifyExecutionProcess.VerifyProcessData(intoProduction.getTaskProcessKey())) {
+        //    return AjaxResult.error(HttpStatus.EXECUTEPROCESS, "流程数据验证失败!");
+        //}
         /**1️⃣1️⃣1️⃣ 得到当前投产需要执行的流程详细信息*/
         //--得到当前流程的详细信息
         BpmProcess bpmProcess = bpmProcessMapper.selectBpmProcessByProcessKey(intoProduction.getTaskProcessKey());
@@ -435,6 +444,12 @@ public class PreExecutionToolClass<R> {
         return intoProduction;
     }
 
+
+    /**
+     * 查询节点对应的表单信息
+     * @param nodeForm
+     * @return
+     */
     public Map<String, Object> getNodeFormInfos(Map<String, String> nodeForm) {
         Set<String> nodeKey = nodeForm.keySet();
         Map resultMap = new HashMap();
@@ -452,4 +467,141 @@ public class PreExecutionToolClass<R> {
         return resultMap;
     }
 
+    // 弃用保留
+    public int updateNodeState(String taskProcessKey, String taskNodeKey, CommonEntity commonEntity) {
+        BpmExecuteNode bpmExecuteNode1 = new BpmExecuteNode();
+        bpmExecuteNode1.setTaskProcessKey(taskProcessKey);
+        bpmExecuteNode1.setTaskNodeKey(taskNodeKey);
+        bpmExecuteNode1.setTaskNodeState("1");      // 状态标识已经执行
+        // 修改当前节点的状态
+        runBpmExecuteNodeMapper.updateNodeState(bpmExecuteNode1);
+
+        // 得到当前节点的所有信息
+        BpmExecuteNode currentBpmExecuteNode = runBpmExecuteNodeMapper.queryBpmExecuteNodeBytaskNodeKey(taskProcessKey, taskNodeKey);
+        /**
+         * 执行当前节点配置的操作  例如:当前节点中的自动执行的脚本
+         * 得到当前节点的关联信息
+         */
+        BpmExecuteNodeMiddle bpmExecuteNodeMiddle = runBpmExecuteNodeMiddleMapper.queryBpmExecuteNodeMiddleByTaskNodeKey(taskProcessKey, taskNodeKey);
+        String script[] = bpmExecuteNodeMiddle.getTaskAutomaticScriptTriggerType().split(",");  // 得到当前节点需要自动执行的脚本
+        // 1️⃣1️⃣1️⃣节点前执行的脚本
+        if (currentBpmExecuteNode.getTaskNodeBefore().equals("true")) {
+            // 调用执行脚本接口
+            if (script.length != 0 && !script[0].isEmpty()) {
+                for (int i = 0; i < script.length; i++) {
+                    //  节点执行必要的参数
+                    IScriptEntity iScriptEntity = new IScriptEntity();
+                    iScriptEntity.setScriptFlowKey(taskProcessKey);
+                    iScriptEntity.setScriptNodeKey(taskNodeKey);
+                    iScriptEntity.setImplementationName(script[i]);
+                    // 调用执行节点
+                    iRunImplementationClass.RunScriptImplementationClassLogicCode(iScriptEntity, commonEntity);
+                }
+            }
+        }
+        // 2️⃣2️⃣2️⃣执行节点绑定的正常脚本
+        IRunBPMEntity iRunBPMEntity = new IRunBPMEntity();
+        iRunBPMEntity.setImplementationName(commonEntity.getBasicMap().get("implementationName").toString());
+        iRunBPMEntity.setExecutionFlowKey(taskProcessKey);
+        iRunBPMEntity.setExecutionNodeKey(taskNodeKey);
+        iRunBPMEntity.setExecutionMap((Map<String, Object>) JSON.parse(commonEntity.toString()));
+        iRunImplementationClass.RunBPMImplementationClassLogicCode(iRunBPMEntity);
+        // 3️⃣3️⃣3️⃣节点后执行的脚本
+        if (currentBpmExecuteNode.getTaskNodeAfter().equals("true")) {
+            // 调用执行脚本接口
+            if (script.length != 0 && !script[0].isEmpty()) {
+                for (int i = 0; i < script.length; i++) {
+                    //  节点执行必要的参数
+                    IScriptEntity iScriptEntity = new IScriptEntity();
+                    iScriptEntity.setScriptFlowKey(taskProcessKey);
+                    iScriptEntity.setScriptNodeKey(taskNodeKey);
+                    iScriptEntity.setImplementationName(script[i]);
+                    // 调用执行节点
+                    iRunImplementationClass.RunScriptImplementationClassLogicCode(iScriptEntity, commonEntity);
+                }
+            }
+        }
+        return 1;
+    }
+
+    /**
+     * 共通执行节点表单模版接口
+     */
+    public  List<Map> getProcessNodeFormTemplate(BpmRunNodePlusVo bpmRunNodeV) {
+        //任务流程key
+        String taskProcessKey = bpmRunNodeV.getTaskProcessKey();
+        //任务节点key
+        String taskNodeKey = bpmRunNodeV.getTaskNodeKey();
+        //脚本名称
+        String taskScriptKey = bpmRunNodeV.getTaskScriptKey();
+        //根据流程key和节点key查询节点表单关系表【bpm_execute_node_form】
+        BpmExecuteNodeForm bpmExecuteNodeForm = iBpmExecuteNodeFormService.getBpmExecuteNodeForm(taskProcessKey, taskNodeKey,taskScriptKey);
+        //存放返回结果
+        List<Map> mapList=new ArrayList<>();
+        //节点对应的表单信息不能为空
+        if(bpmExecuteNodeForm!=null){
+            String taskNodeFromContent = bpmExecuteNodeForm.getTaskNodeFromContent();
+            //拿到当前节点对应的表单类型
+            String taskNodeFromType = bpmExecuteNodeForm.getTaskNodeFromType();
+            if(taskNodeFromType.equals("dragForm")){
+                HashMap hashMap=new HashMap();
+                //解析存进去的表单信息【task_node_from_content】
+                JSONObject taskNodeFromContentJson = JSONObject.parseObject(taskNodeFromContent);
+                //得到sqlKey
+                String sqlKey = taskNodeFromContentJson.get("sqlKey").toString();
+                //根据sqlKey查询表单数据
+                if(!sqlKey.isEmpty()){
+                    Map<String, String> tableSqlBySqlKey = executeNodeFormMapper.getTableSqlBySqlKey(sqlKey);
+                    hashMap.put("resultMap",tableSqlBySqlKey);
+                }
+                //得到【df_form_sql】
+                String dfFormSql = taskNodeFromContentJson.get("dfFormSql").toString();
+                ObjectMapper objectMapper = new ObjectMapper();
+                Map<String, Object>  sqlMap=null;
+                try {
+                    sqlMap = objectMapper.readValue(dfFormSql, Map.class);
+                    //循环得到每一个sql语句返回结果
+                    for (Map.Entry<String, Object> entry : sqlMap.entrySet()) {
+                        List<Map<String, Object>> resultMap = executeNodeFormMapper.executeSql(entry.getValue().toString());
+                        sqlMap.put(entry.getKey(), resultMap);
+                    }
+                    //把原来的sql语句替换成下拉框数据
+                    taskNodeFromContentJson.put("dfFormSql",JSONObject.toJSONString(sqlMap));
+                } catch (JsonProcessingException e) {
+                    e.printStackTrace();
+                }
+                //表单结构信息
+                hashMap.put("template",taskNodeFromContentJson);
+                //添加到返回集合中
+                mapList.add(hashMap);
+            }else if(taskNodeFromType.equals("composeForm")){
+                //参数为一个数组
+                JSONArray objects = JSON.parseArray(taskNodeFromContent);
+                //循环数组元素
+                objects.forEach(item->{
+                    String s = item.toString();
+                    JSONObject jsonObject = JSONObject.parseObject(s);
+                    String tableSql = jsonObject.get("tableSql").toString();
+                    String conditionArrayJson = jsonObject.get("condition").toString();
+                    JSONArray jsonArray = JSON.parseArray(conditionArrayJson);
+                    jsonArray.forEach(conditionItem->{
+                        //处理下这个条件 去掉 #{ 去掉.
+                        String conditionString = conditionItem.toString().replace("#{", "").replace(".", "_");
+                        //转驼峰
+                        String CamelConditionString = CamelCaseConverterUtil.toCamelCase(conditionString);
+                        //
+                    });
+                    Map<String, String> stringHashMap = executeNodeFormMapper.tableSql(tableSql);
+                    jsonObject.put("tableList", stringHashMap);
+                    mapList.add(jsonObject);
+                });
+            }else if(taskNodeFromContent.equals("designForm")){
+                HashMap hashMap=new HashMap();
+                hashMap.put("resultMap","");
+                hashMap.put("template","");
+                mapList.add(hashMap);
+            }
+        }
+        return mapList;
+    }
 }

+ 5 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteNodeFormService.java

@@ -68,4 +68,9 @@ public interface IBpmExecuteNodeFormService {
      * @return
      */
     public Map<String, String> selectNodeFromInfos(String processKey);
+
+    /**
+     *  根据 taskProcessKey和 taskNodeKey查询当前节点执行的表单模版信息
+     */
+    public BpmExecuteNodeForm getBpmExecuteNodeForm(String taskProcessKey,String taskNodeKey,String taskScriptKey);
 }

+ 1 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/IBpmExecuteProcessService.java

@@ -1,8 +1,8 @@
 package com.ruoyi.execution.produce.dispersed.service;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
 import com.ruoyi.common.core.domain.AjaxResult;
 
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;

+ 5 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeFormServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BpmExecuteNodeFormServiceImpl implements IBpmExecuteNodeFormService {
+
     @Autowired
     private BpmExecuteNodeFormMapper bpmExecuteNodeFormMapper;
 
@@ -95,5 +96,8 @@ public class BpmExecuteNodeFormServiceImpl implements IBpmExecuteNodeFormService
         return map;
     }
 
-
+    @Override
+    public BpmExecuteNodeForm getBpmExecuteNodeForm(String taskProcessKey, String taskNodeKey, String taskScriptKey) {
+        return bpmExecuteNodeFormMapper.selectBpmExecuteNodeFormByTpKAndTnkAndTsk(taskProcessKey,taskNodeKey,taskScriptKey);
+    }
 }

+ 3 - 2
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteNodeMiddleServiceImpl.java

@@ -27,13 +27,14 @@ import org.springframework.web.client.RestTemplate;
  */
 @Service
 public class BpmExecuteNodeMiddleServiceImpl implements IBpmExecuteNodeMiddleService {
+
     @Autowired
     private BpmExecuteNodeMiddleMapper bpmExecuteNodeMiddleMapper;
 
-    @Autowired
-    private BpmProperties bpmProperties;
+
     @Autowired
     private Sending sending;
+
     // 创建RestTemplate实例
     RestTemplate restTemplate = new RestTemplate();
 

+ 17 - 8
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java

@@ -15,13 +15,11 @@ import com.ruoyi.execution.produce.dispersed.runbpm.PreExecutionToolClass;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
 import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteNodeMiddleService;
+import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteProcessService;
 import com.ruoyi.system.entity.CommonEntity;
-import com.sun.org.apache.xerces.internal.impl.dtd.models.DFAContentModel;
-import org.springframework.beans.factory.NamedBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
-import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteProcessService;
 
 /**
  * 流程执行任务Service业务层处理
@@ -158,8 +156,7 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
     @Override
     public String getFromInfo(String fid) {
         Map<String, String> fromInfo = runBpmExecuteProcessMapper.getFromInfo(fid);
-        String jsonString = JSONObject.toJSONString(fromInfo);
-        return jsonString;
+        return JSONObject.toJSONString(fromInfo);
     }
 
 
@@ -191,10 +188,22 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
             //根据tableInfo信息拿到sqlKey信息
             String sqlKey = tableInfo.get("sqlKey");
             //根据sqlKey查询tableSQL信息
-            String tableSqlInfo = runBpmExecuteProcessMapper.getTableSqlInfo(sqlKey);
+            Map<String, String> tableSqlInfo = runBpmExecuteProcessMapper.getTableSqlInfo(sqlKey);
+            String tableSql = tableSqlInfo.get("tableSql");
+            String tableCondition = tableSqlInfo.get("tableCondition");
+            //拿到动态表格编号
+            String tId = tableInfo.get("tId");
+            List<Map<String, String>> tableConditionMap = runBpmExecuteProcessMapper.getTableCondition(tId);
+            List<String> tableConditionList=new ArrayList<>();
+            tableConditionMap.forEach(e->{
+                System.out.println(e);
+                tableConditionList.add(e.get("conditionDefaultValue"));
+            });
+            //根据动态表格编号查询这个表格的条件信息
             //tableInfo转JSON
-            hashMap.put("tableInfo", tableInfo);
-            hashMap.put("tableSql", tableSqlInfo);
+            hashMap.put("tableInfo",JSONObject.toJSONString(tableInfo));
+            hashMap.put("tableSql",tableSql+" where "+tableCondition);
+            hashMap.put("condition",JSONObject.toJSONString(tableConditionList));
             //添加到集合里
             mapList.add(hashMap);
         });

+ 1 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/runbpm/common/SandProductionImpl.java

@@ -24,6 +24,7 @@ import java.util.Map;
 @Service("11f4951b-682f-4185-acb7-f4b8db9d5940")
 @Scope("prototype")
 public class SandProductionImpl implements IRunBPMService {
+
     @Autowired // 下发Form
     private Sending sending;
 

+ 1 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/impl/script/ProductionWarehousing.java

@@ -20,6 +20,7 @@ import java.util.Map;
 @Scope("prototype")
 public class ProductionWarehousing implements IScriptService {
 
+
     @Autowired
     private BpmProperties bpmProperties;
 

+ 25 - 0
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeFormMapper.xml

@@ -134,4 +134,29 @@
             <if test="taskNodeFromContent != null  and taskNodeFromContent != ''"> and task_node_from_content = #{taskNodeFromContent}</if>
         </where>
     </select>
+
+    <select id="selectBpmExecuteNodeFormByTpKAndTnkAndTsk"
+            resultType="com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNodeForm">
+         <include refid="selectBpmExecuteNodeFormVo"/>
+         where task_process_key = #{taskProcessKey} and  task_node_key =#{taskNodeKey}
+         <if test="taskScriptKey != null and taskScriptKey!=''"> and task_script_key=#{taskScriptKey}</if>
+    </select>
+
+    <select id="tableSql" resultType="java.util.Map">
+            ${sql}
+    </select>
+
+    <select id="getTableSqlBySqlKey" resultType="java.util.Map">
+        select  table_sql from {DBNAME}.table_sql where sql_key=#{sqlKey}
+    </select>
+
+    <!--根据sqlKey查询表单结构信息-->
+    <select id="getDfFormInfo" resultType="java.util.Map">
+          select  * from {DBNAME}.drag_form where sql_key=#{sqlKey}
+    </select>
+
+    <select id="executeSql" resultType="java.util.Map" parameterType="string">
+        ${tableSql}
+    </select>
+
 </mapper>

+ 6 - 2
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -258,8 +258,12 @@
         select * from {DBNAME}.drag_table where table_key=#{tableKey}
     </select>
 
-    <select id="getTableSqlInfo" resultType="java.lang.String">
-        select table_sql from {DBNAME}.table_sql where sql_key=#{sqlKey}
+    <select id="getTableSqlInfo" resultType="java.util.Map">
+        select table_sql,table_condition from {DBNAME}.table_sql where sql_key=#{sqlKey}
+    </select>
+
+    <select id="getTableCondition" resultType="java.util.Map">
+        select * from  {DBNAME}.drag_table_condition where t_id=#{tId}
     </select>
 
 </mapper>

+ 0 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragTableConditionServiceImpl.java

@@ -38,7 +38,6 @@ public class DragTableConditionServiceImpl implements IDragTableConditionService
         List<Object> list = (List<Object>) commonEntity.getCommMap();
         List<Map<String, Object>> mapList = new ArrayList<>();
         for (Object obj : list) {
-            System.out.println(obj);
             Map<String, Object> map1 = (Map<String, Object>) obj;
             mapList.add(map1);
         }