侯茂昌 пре 1 година
родитељ
комит
2040a3e843

+ 37 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/bpm/TestController.java

@@ -0,0 +1,37 @@
+package com.ruoyi.web.controller.bpm;
+
+
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeFormFilterConditionsVo;
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
+import com.ruoyi.execution.produce.utils.EchoNodeFormData;
+import com.ruoyi.system.entity.CommonEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/test")
+public class TestController {
+
+    @Autowired
+    EchoNodeFormData echoNodeFormData;
+
+    @GetMapping("/api")
+    public CommonEntity common(){
+        Map<String, Object> map = new HashMap<>();
+        map.put("del_flag", 0);
+        map.put("type", 2);
+        map.put("id", 7);
+        BpmRunNodeFromVo a=new BpmRunNodeFromVo();
+        a.setTaskProcessKey("557ae1f460ca44b4bf59ee64eb7bdb7c");
+        a.setTaskNodeKey("Event_2920d486-d344-4d10-bd37-13d3b785974b");
+        a.getFormDataVoList()
+                .add(new BpmRunNodeFormFilterConditionsVo("goods", map));
+        a.getFormDataVoList().add(new BpmRunNodeFormFilterConditionsVo("bpm_process", map,"list"));
+        return echoNodeFormData.getEchoNodeFormData(a);
+    }
+}

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

@@ -27,6 +27,7 @@ public class BpmRunNodeFormFilterConditionsVo {
      */
     private boolean isNodeOnlyData;
 
+
     /**
      * 如果是数组,那么这就是 key
      */
@@ -47,6 +48,20 @@ public class BpmRunNodeFormFilterConditionsVo {
         return sb.toString();
     }
 
+    public BpmRunNodeFormFilterConditionsVo(String tableName, Map<String, Object> condition) {
+        this.tableName = tableName;
+        this.condition = condition;
+    }
+    public BpmRunNodeFormFilterConditionsVo(String tableName, Map<String, Object> condition,String listKey ) {
+        this.tableName = tableName;
+        this.condition = condition;
+        this.listKey = listKey;
+    }
+    public BpmRunNodeFormFilterConditionsVo(String tableName, Map<String, Object> condition, boolean isNodeOnlyData) {
+        this.tableName = tableName;
+        this.condition = condition;
+        this.isNodeOnlyData = isNodeOnlyData;
+    }
     public BpmRunNodeFormFilterConditionsVo(String tableName, Map<String, Object> condition, boolean isNodeOnlyData, String listKey) {
         this.tableName = tableName;
         this.condition = condition;
@@ -77,4 +92,9 @@ public class BpmRunNodeFormFilterConditionsVo {
     public void setNodeOnlyData(boolean nodeOnlyData) {
         isNodeOnlyData = nodeOnlyData;
     }
+
+    public String getListKey() {return listKey;}
+
+    public void setListKey(String listKey) {this.listKey = listKey;}
+
 }

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

@@ -111,12 +111,5 @@ public interface BpmExecuteNodeFormMapper
      */
     public Map<String,String> getDfFormInfo();
 
-    /**
-     * 获取详情数据
-     * @param tableName
-     * @param conditions
-     * @return
-     */
-    CommonEntity getInfoById(@Param("tableName") String tableName, @Param("conditions") Map<String, Object> conditions);
 
 }

+ 0 - 1
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/runbpm/RunImplementationClass.java

@@ -34,7 +34,6 @@ public class RunImplementationClass<J> {
     @Autowired
     private ApplicationContext applicationContext;
 
-
     private static final Logger log = LoggerFactory.getLogger(RunImplementationClass.class);
 
     /**

+ 3 - 3
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/dispersed/service/templateimpl/RunBPMImpl.java

@@ -42,13 +42,13 @@ public class RunBPMImpl implements IRunBPMService {
     /**
      * 当前节点表单的回显数据
      *
-     * @param commonEntity
+     * @param bpmRunNodeFromVo
      * @return
      */
     @Override
     public CommonEntity getNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
-        CommonEntity commonEntity = new CommonEntity();
-        return echoNodeFormData.getEchoNodeFormData(commonEntity);
+        BpmRunNodeFromVo bpmRunNodeFromVo1 = new BpmRunNodeFromVo();
+        return echoNodeFormData.getEchoNodeFormData(bpmRunNodeFromVo1);
     }
 
     /**

+ 31 - 19
ruoyi-process-execution/src/main/java/com/ruoyi/execution/produce/utils/EchoNodeFormData.java

@@ -1,15 +1,17 @@
 package com.ruoyi.execution.produce.utils;
 
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.execution.produce.dispersed.entity.BpmExecuteNode;
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeFormFilterConditionsVo;
+import com.ruoyi.execution.produce.dispersed.entity.runbpm.BpmRunNodeFromVo;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeFormMapper;
 import com.ruoyi.execution.produce.dispersed.mapper.BpmExecuteNodeMapper;
 import com.ruoyi.system.entity.CommonEntity;
+import com.ruoyi.system.mapper.CommonMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * 离散型流程回显表单数据
@@ -27,6 +29,8 @@ public class EchoNodeFormData {
     @Autowired
     private BpmExecuteNodeMapper executeNodeMapper;
 
+    @Autowired
+    private CommonMapper commonMapper;
 
     // BpmRunNodeFromVo bpmRunNodeFromVo
 
@@ -37,24 +41,32 @@ public class EchoNodeFormData {
      *
      * @return
      */
-    public CommonEntity getEchoNodeFormData(CommonEntity commonEntity) {
-        //拿到这个节点的 task_process_key【流程key】 task_node_key【节点key】 task_script_key【脚本key】
-        String taskProcessKey = commonEntity.getQueryMap().get("taskProcessKey").toString();
-        String taskNodeKey = commonEntity.getQueryMap().get("taskNodeKey").toString();
-        String tableName = commonEntity.getBasicMap().get("tableName").toString();
-        String taskScriptKey = commonEntity.getQueryMap().get("taskScriptKey").toString();
-        String taskPlanKey = commonEntity.getQueryMap().get("taskPlanKey").toString();
-        //查询节点上包含的数量记录(件数)---重量记录(重量)查询执行节点对应的表单数据信息
-        BpmExecuteNode bpmExecuteNode = executeNodeMapper.queryBpmExecuteNodeBytaskNodeKey(taskProcessKey, taskNodeKey);
-        HashMap bpmExecuteNodeMap = new HashMap();
+    public CommonEntity getEchoNodeFormData(BpmRunNodeFromVo bpmRunNodeFromVo) {
+        //返回的东西定义
+        AtomicReference<CommonEntity> commonEntity= new AtomicReference<>(new CommonEntity());
+        //默认查询的节点重量数据
+        BpmExecuteNode bpmExecuteNode = executeNodeMapper
+                .queryBpmExecuteNodeBytaskNodeKey(bpmRunNodeFromVo.getTaskProcessKey(), bpmRunNodeFromVo.getTaskNodeKey());
+        //到时候默认回显的数据
+        HashMap<String,String> bpmExecuteNodeMap = new HashMap();
         bpmExecuteNodeMap.put("taskNodeNumber", bpmExecuteNode.getTaskNodeNumber());
         bpmExecuteNodeMap.put("taskNodeWeight", bpmExecuteNode.getTaskNodeWeight());
-        //拿到前端传回来的条件
-        Map<String, Object> conditions = JSONObject.parseObject(JSON.toJSONString(commonEntity.getConditionMap()));
-        //通用的查询接口
-        CommonEntity commonEntityRt = bpmExecuteNodeFormMapper.getInfoById(tableName, conditions);
-        //件数信息-重量信息放进去
-        commonEntityRt.getResultMap().put("bpmExecuteNode", bpmExecuteNodeMap);
-        return commonEntityRt;
+        commonEntity.get().getResultMap().put("bpmExecuteNode",bpmExecuteNodeMap);
+        //查询表名、条件封装的集合
+        List<BpmRunNodeFormFilterConditionsVo> formDataVoList = bpmRunNodeFromVo.getFormDataVoList();
+        formDataVoList.forEach(item->{
+            //是否是节点回填数据(默认是true)
+            String listKey = item.getListKey();
+            if(listKey!=null){
+                //下拉框查询
+                List<Map<String, Object>> maps = commonMapper.selectDropDownListNotWhere(item.getTableName());
+                commonEntity.get().getResultMap().put(item.getListKey(),maps);
+            }else {
+                //表单回填数据查询
+                CommonEntity common = commonMapper.selectOne(item.getTableName(), item.getCondition());
+                commonEntity.get().getResultMap().putAll(common.getResultMap());
+            }
+        });
+        return commonEntity.get();
     }
 }

+ 4 - 10
ruoyi-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteNodeFormMapper.xml

@@ -164,15 +164,9 @@
                     javaType="map"></collection>
     </resultMap>
 
-    <select id="getInfoById" resultMap="retMap">
-        select * from {DBNAME}.${tableName}
-        <where>
-            <if test="conditions != null">
-                <foreach collection="conditions" item="value" index="key" separator="and">
-                    ${key}=#{value}
-                </foreach>
-            </if>
-        </where>
-    </select>
 
+
+    <!--<select id="getSelectDate">-->
+    <!--    select * from {DBNAME}.${tableName}-->
+    <!--</select>-->
 </mapper>

+ 12 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/CommonMapper.java

@@ -16,6 +16,15 @@ public interface CommonMapper {
      */
     List<CommonEntity> selectList(@Param("tableName") String tableName, @Param("conditions") Map<String, Object> conditions);
 
+    /**
+     * 获取详情数据
+     * @param tableName
+     * @param conditions
+     * @return
+     */
+    CommonEntity selectOne(@Param("tableName") String tableName, @Param("conditions") Map<String, Object> conditions);
+
+
     /**
      * 批量新增
      */
@@ -43,6 +52,9 @@ public interface CommonMapper {
      */
     List<Map<String,Object>> selectDropDownList(@Param("tableName")String tableName,@Param("fieldKey") String fieldKey,@Param("fieldName") String fieldName, @Param("conditions") Map<String, Object> conditions);
 
+    List<Map<String,Object>> selectDropDownListNotWhere(@Param("tableName")String tableName);
+
+
     /** 字典
      * 查询下拉框列表
      */

+ 15 - 0
ruoyi-system/src/main/resources/mapper/common/CommonMapper.xml

@@ -21,6 +21,17 @@
         </where>
     </select>
 
+    <select id="selectOne" resultMap="retMap">
+        select * from {DBNAME}.${tableName}
+        <where>
+            <if test="conditions != null">
+                <foreach collection="conditions" item="value" index="key" separator="and">
+                    ${key}=#{value}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
     <select id="queryTableList" resultMap="retMap">
         ${Sql}
     </select>
@@ -77,6 +88,10 @@
         </where>
     </select>
 
+    <select id="selectDropDownListNotWhere" resultType="map">
+        select * from ${tableName}
+    </select>
+
     <select id="selectDropDownListByDict" resultType="map">
         select dict_value as fieldKey,dict_label as fieldName from sys_dict_data where dict_type = #{dictType} and status = '0'
     </select>