瀏覽代碼

fix:表单接口

侯茂昌 1 年之前
父節點
當前提交
68c9443af5

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

@@ -2,6 +2,7 @@ package com.ruoyi.execution.produce.dispersed.controller;
 
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.execution.produce.dispersed.runbpm.PreExecutionToolClass;
 import com.ruoyi.execution.produce.dispersed.runbpm.RunImplementationClass;
 import com.ruoyi.system.entity.CommonEntity;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +22,8 @@ import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;
 import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteProcessService;
 import com.ruoyi.common.core.page.TableDataInfo;
 
+import java.util.Map;
+
 /**
  * 流程执行任务Controller
  *
@@ -34,6 +37,8 @@ public class BpmExecuteProcessController extends BaseController {
     private IBpmExecuteProcessService bpmExecuteProcessService;
     @Autowired
     private RunImplementationClass implementationClass;
+    @Autowired
+    private PreExecutionToolClass PreExecutionToolClass;
 
     /**
      * 查询流程执行任务列表
@@ -105,4 +110,13 @@ public class BpmExecuteProcessController extends BaseController {
         return bpmExecuteProcessService.productionScheduling(commonEntity);
     }
 
+    /**
+     * 查询节点表单信息
+     *
+     */
+    @GetMapping("/getNodeFormInfos")
+    public AjaxResult getNodeFormInfos(Map<String,String> nodeForm) {
+        return AjaxResult.success(PreExecutionToolClass.getNodeFormInfos(nodeForm));
+    }
+
 }

+ 22 - 0
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java

@@ -93,4 +93,26 @@ public interface BpmExecuteProcessMapper {
      * @return
      */
     int updateProcessNode(BpmExecuteProcess bpmExecuteProcess);
+
+    /**
+     * 通过formKey查询表单信息
+     * @param formKey
+     * @return
+     */
+    Map<String,String> getFromInfo(String formKey);
+
+    /**
+     * 根据groupKey查询表格组信息
+     */
+    Map<String,String> getGroupInfo(String groupKey);
+
+    /**
+     * 根据tableKey查询Table表格信息
+     */
+    Map<String,String> getTableInfo(String tableKey);
+
+    /**
+     * 根据tableKey查询Table表格信息
+     */
+    String getTableSqlInfo(String sqlKey);
 }

+ 16 - 6
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/runbpm/PreExecutionToolClass.java

@@ -1,6 +1,7 @@
 package com.ruoyi.execution.produce.dispersed.runbpm;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.utils.bpm.XmlDataParserUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
@@ -13,6 +14,7 @@ import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMiddleMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteProcessMapper;
 import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteNodeFormService;
+import com.ruoyi.execution.produce.dispersed.service.IBpmExecuteProcessService;
 import com.ruoyi.execution.produce.dispersed.service.impl.utils.VerifyExecutionProcess;
 import com.ruoyi.system.entity.*;
 import com.ruoyi.system.mapper.BpmNodeHandleUserMapper;
@@ -24,9 +26,8 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
-
 import java.util.*;
-import java.util.concurrent.locks.ReentrantLock;
+
 
 /**
  * 预备执行流程工具类
@@ -68,6 +69,9 @@ public class PreExecutionToolClass<R> {
     @Autowired // 节点脚本表单中间表
     private IBpmExecuteNodeFormService iBpmExecuteNodeFormService;
 
+    @Autowired
+    private IBpmExecuteProcessService iBpmExecuteProcessService;
+
     /**
      * 预执行流程自动执行开始节点
      *
@@ -397,18 +401,24 @@ public class PreExecutionToolClass<R> {
         return intoProduction;
     }
 
+
     public Map<String, Object> getNodeFormInfos(Map<String, String> nodeForm) {
+        //nodeForm.put("5", "dragForm");
+        nodeForm.put("e8e649b5-61d0-4616-8a10-8bc8a49d3882", "composeForm");
         Set<String> nodeKey = nodeForm.keySet();
+        Map resultMap=new HashMap();
         nodeKey.forEach(item -> {
             if (nodeForm.get(item).equals("dragForm")) {  // 拖拽类型的表单
-
+                String fromInfo = iBpmExecuteProcessService.getFromInfo(item);
+                resultMap.put(item, fromInfo);
             } else if (nodeForm.get(item).equals("composeForm")) { // 组合类型的表单
-
+                String groupTableInfo = iBpmExecuteProcessService.getGroupTableInfo(item);
+                resultMap.put(item, groupTableInfo);
             } else if (nodeForm.get(item).equals("designForm")) {  // 自定义类型表单
-
+                resultMap.put(item, "");
             }
         });
-        return null;
+        return resultMap;
     }
 
     // 弃用保留

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

@@ -1,6 +1,7 @@
 package com.ruoyi.execution.produce.dispersed.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteProcess;
@@ -65,8 +66,18 @@ public interface IBpmExecuteProcessService {
     /**
      * 共通投产流程接口
      *
-     * @param intoProduction 预执行流程任务实体
+     * @param commonEntity 预执行流程任务实体
      * @return
      */
     public AjaxResult productionScheduling(CommonEntity commonEntity);
+
+    /**
+     * 根据formId查询form表单信息
+     */
+    public String getFromInfo(String fid);
+
+    /**
+     * 根据groupKey查询表格组对应的表格信息
+     */
+    public String getGroupTableInfo(String groupKey);
 }

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

@@ -4,6 +4,8 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -13,6 +15,8 @@ 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.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;
@@ -144,6 +148,59 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
         // intoProduction.getTaskProcessKey();
         return AjaxResult.success(ipreExecutionToolClass.ReadyToExecute(commonEntity));
     }
+
+    /**
+     * 根据FormId查询表单结构信息
+     * @param fid
+     * @return
+     */
+    @Override
+    public String getFromInfo(String fid) {
+        Map<String, String> fromInfo = runBpmExecuteProcessMapper.getFromInfo(fid);
+        String jsonString = JSONObject.toJSONString(fromInfo);
+        return jsonString;
+    }
+
+
+    /**
+     * 根据groupKey查询表格组对应的表格信息
+     * @param groupKey
+     * @return
+     */
+    @Override
+    public String getGroupTableInfo(String groupKey) {
+        //存tableInfo信息的Arraylist数组
+        List<HashMap> mapList=new ArrayList<>();
+        //查询表格组信息
+        Map<String, String> groupInfo = runBpmExecuteProcessMapper.getGroupInfo(groupKey);
+        //拿到表格组的TableInfo信息
+        String groupTableInfo = groupInfo.get("groupTableInfo");
+        //json字符传转数组
+        JSONArray jsonArray = JSON.parseArray(groupTableInfo);
+        //循环表格组里的tableInfo信息
+        jsonArray.forEach(item->{
+            JSONObject jsonObject = JSONObject.parseObject(item.toString());
+            HashMap hashMap =new HashMap();
+            jsonObject.forEach((k,v)->{
+                hashMap.put(k,v);
+            });
+            String tableKey = jsonObject.get("tableKey").toString();
+            //根据TableKey查询tableInfo
+            Map<String, String> tableInfo = runBpmExecuteProcessMapper.getTableInfo(tableKey);
+            //根据tableInfo信息拿到sqlKey信息
+            String sqlKey = tableInfo.get("sqlKey");
+            //根据sqlKey查询tableSQL信息
+            String tableSqlInfo = runBpmExecuteProcessMapper.getTableSqlInfo(sqlKey);
+            //tableInfo转JSON
+            hashMap.put("tableInfo", tableInfo);
+            hashMap.put("tableSql", tableSqlInfo);
+            //添加到集合里
+            mapList.add(hashMap);
+        });
+        return JSONObject.toJSONString(mapList);
+    }
+
+
 }
 
 

+ 17 - 1
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -222,7 +222,6 @@
         where task_key = #{taskKey} and del_flag = '0'
     </select>
 
-
     <update id="endProcess" parameterType="String">
         update bpm_execute_process
         SET task_process_state = 3
@@ -246,5 +245,22 @@
         </trim>
         where task_key = #{taskKey}
     </update>
+
+    <select id="getFromInfo" resultType="java.util.Map" parameterType="string">
+        select * from {DBNAME}.drag_form where f_id=#{fid}
+    </select>
+
+    <select id="getGroupInfo" resultType="java.util.Map" parameterType="string">
+        select * from {DBNAME}.drag_table_group where group_key=#{groupKey}
+    </select>
+
+    <select id="getTableInfo" resultType="java.util.Map" parameterType="string">
+        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>
+
 </mapper>